Nesta seção vamos disponibilizar informações sobre a instalação e configuração de uma placa Raspberry Pi modelo B+.
Inicialmente preparei um cartão micro SD (Tutorial: SD Cards and Writing Images - SparkFun) para gravar o instalador NOOBS (New Out Of the Box Software) usando o slot que estava disponível no meu nobebook conforme descrito na seção: como montar SD Card.
O NOOBS é um instalador que facilita a instalação de um sistema operacional para a placa Raspberry Pi. Ele já vem com o sistema Raspbian e pode ser baixado em www.raspberrypi.org/downloads/raspbian/.
O Raspbian é um sistema Linux baseado no Debian que foi portado para a arquitetura da placa Raspberry Pi.
Particionei e formatei o cartão SD como FAT32 usando o Gparted, mas se preferir pode usar o fdisk.
Removi a partição existente no cartão SD e criei nova partição ocupando todo o disco formatada como FAT32.
Em seguida baixei o arquivo NOOBS_v2_1_0.zip (consulte a última versão na página de download do NOOBS) e verifiquei a integridade do arquivo com o comando sha1sum:
sha1sum NOOBS_v2_1_0.zip
e comparando com a string disponível na página www.raspberrypi.org/downloads/noobs/.
Depois de verificar a integridade do arquivo, descompactei e copiei os arquivos descompactados para o cartão micro SD que estava no slot do nobebook.
Em seguida coloquei o cartão SD no slot (embaixo da placa), o mouse e o teclado nas portas USB, e no conector HDMI um adaptador HDMI-VGA ligado a um monitor VGA, e conectei a fonte da alimentação ao conector PWR IN.
Fiquei esperando mas não aparecia imagem no monitor e o LED indicador de energia (PWR) ficou piscando.
Depois de quebrar a cabeça algum tempo descobri que o problema era a potência insuficiente da fonte e o adaptador de vídeo HDMI-VGA.
A placa, fonte de alimentação e adaptador HDMI-VGA foram comprados em um único lote no site www.lojamundi.com.br.
Fiz essa compra no mesmo site com a promessa que os acessórios eram compatíveis com o modelo da Raspberry Pi B+, mas me dei mal. :-(
Por sorte eu tinha uma outra fonte e adaptador que havia comprado para outra placa Raspberry mais antiga (Modelo B), e esses acessórios funcionaram na placa mais nova. :-)
Figura 2. Fonte de alimentação comprada na www.lojamundi.com.br que NÃO funcionou com o Raspberry Pi B+, conforme o anúncio!

Figura 3. Fonte de alimentação que funcionou com o Raspberry Pi B+ (Fonte: http://newportcom.com.br)

Figura 4. Adaptador HDMI-VGA comprado na www.lojamundi.com.br que NÃO funcionou com o Raspberry Pi B+, conforme o anúncio!

Felizmente a fonte e o adaptador HDMI-VGA comprados na www.lojamundi.com.br funcionaram com a placa Raspberry mais antiga (Modelo B).
Os tutoriais Identifying Your Model of Raspberry Pi e How To Identify Which Model Of The Raspberry Pi You Have contêm muitas informações para identificar os diferentes modelos de Raspberry Pi.
Figura 6. Modelos A, A+, B e B+ da placa Raspberry Pi (Fonte:How To Identify Which Model Of The Raspberry Pi You Have)

Depois de colocar o cartão Micro SD, teclado, mouse, adaptador HDMI-VGA/monitor, ligamos a fonte no conector de alimentação (PWR IN) para o primeiro boot e fazer a instalação.
Fizemos a instalção e sem problemas e tivemos acesso à interface gráfica:
Tutoriais para instalação:
É muito comum ter problemas com fontes de alimentação que não oferecem uma potência suficiente para o correto funcionamento das placas Raspberry.
Para verificar a tensão da fonte de alimentação fiz alguns testes seguindo o tutorial 5 Fun Raspberry Pi Projects: Getting Started.
Para programar com a minha “linguagem preferida” me loguei como root com o comando sudo su - e instalei os pacotes:
root@raspberrypi:~# apt-get install tcl8.5 tcl8.5-dev tcl8.5-doc root@raspberrypi:~# apt-get install tk8.5 tk8.5-dev tk8.5-doc
Para instalar o banco de dados Metakit baixei o arquivo https://github.com/jcw/metakit/archive/master.zip, descompactei com o comando:
pi@raspberrypi:~$ unzip metakit-master.zip
Entrei no diretório metakit-master:
pi@raspberrypi:~$ cd metakit-master
E conforme orientações do arquivo README executei os comandos:
pi@raspberrypi:~$ mkdir tbuild
O nome do diretório (tbuild) é arbitrário.
pi@raspberrypi:~$ cd tbuild pi@raspberrypi:~$ CC=g++ sh ../tcl/configure
Mas ao rodar o comando CC=g++ sh ../tcl/configure, apareceu o erro:
checking for correct TEA configuration... ok (TEA 3.6) checking for Tcl configuration... configure: WARNING: Can't find Tcl configuration definitions
Me loguei como root e procurei pelo local com o arquivo tcl.h:
pi@raspberrypi:~/Metakit/metakit-master/tbuild $ sudo su - root@raspberrypi:~# find / -name tcl.h /usr/include/tcl8.5/tcl.h /usr/include/tcl8.5/tcl-private/generic/tcl.h
Mas ao rodar com a nova opção apareceu a mensagem que não encontrava o arquivo tclConfig.sh
pi@raspberrypi:~/Metakit/metakit-master/tbuild $ CC=g++ sh ../tcl/configure --with-tcl=/usr/include/tcl8.5 checking for correct TEA configuration... ok (TEA 3.6) checking for Tcl configuration... configure: error: /usr/include/tcl8.5 directory doesn't contain tclConfig.sh
Então me loguei novamente como root e procurei esse arquivo:
pi@raspberrypi:~/Metakit/metakit-master/tbuild $ sudo su - root@raspberrypi:~# find / -name tclConfig.sh /usr/lib/tcl8.5/tclConfig.sh /usr/lib/arm-linux-gnueabihf/tcl8.5/tclConfig.sh
E finalmente rodei o comando sem erros:
pi@raspberrypi:~/Metakit/metakit-master/tbuild $ CC=g++ sh ../tcl/configure --with-tcl=/usr/lib/tcl8.5
Em seguida executei o comando:
pi@raspberrypi:~/Metakit/metakit-master/tbuild $ make
Mas ao rodar o teste apareceu uma mensagem de erro:
make test
TCL_LIBRARY=`echo /usr/include/tcl8.5/tcl-private/library` LD_LIBRARY_PATH=".:/usr/lib/tcl8.5:" PATH=".:/usr/lib/tcl8.5:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games" TCLLIBPATH="." /usr/bin/tclsh8.5 `echo ../tcl/tests/all.tcl`
Tests running in interp: /usr/bin/tclsh8.5
Tests located in: /home/pi/Metakit/metakit-master/tcl/tests
Tests running in: /home/pi/Metakit/metakit-master/tbuild
Temporary files stored in /home/pi/Metakit/metakit-master/tbuild
Test files sourced into current interpreter
Running tests that match: *
Skipping test files that match: l.*.test
Only running test files that match: *.test
Tests began at Fri Dec 16 17:53:38 UTC 2016
basic.test
commit.test
==== 1 simple commit aside FAILED
==== Contents of test case:
file delete $f $g
mk::file open db $f
mk::view layout db.a i:I
mk::row append db.a i 111
mk::row append db.a i 222
mk::row append db.a i 333
mk::file close db
mk::file open db $f -readonly
mk::file open dba $g
equal [mk::view size db.a] 3
mk::file aside db dba
equal [mk::view size db.a] 3
mk::row append db.a i 444
mk::row append db.a i 555
equal [mk::view size db.a] 5
mk::file commit db
mk::file commit dba
equal [mk::view size db.a] 5
mk::row append db.a i 666
equal [mk::view size db.a] 6
mk::file rollback db
equal [mk::view size db.a] 5
mk::file rollback db -full
equal [mk::view size db.a] 3
mk::file close db
mk::file close dba
mk::file open db $f -readonly
equal [mk::view size db.a] 3
equal [mk::get db.a!0 i] 111
equal [mk::get db.a!1 i] 222
equal [mk::get db.a!2 i] 333
mk::file open dba $g -readonly
mk::file aside db dba
equal [mk::view size db.a] 5
equal [mk::get db.a!0 i] 111
equal [mk::get db.a!1 i] 222
equal [mk::get db.a!2 i] 333
equal [mk::get db.a!3 i] 444
equal [mk::get db.a!4 i] 555
---- Test generated error; Return code was: 1
---- Return code should have been one of: 0 2
---- errorInfo: expected 3 got 5
while executing
"equal [mk::view size db.a] 5"
("uplevel" body line 24)
invoked from within
"uplevel 1 $script"
---- errorCode: NONE
==== 1 FAILED
fixed.test
limit.test
object.test
Tests ended at Fri Dec 16 17:53:45 UTC 2016
all.tcl: Total 46 Passed 45 Skipped 0 Failed 1
Sourced 5 Test Files.
Files with failing tests: commit.test
Não consegui identificar a causa ou a gravidade dessa mensagem de erro, mas testei a execução de um programa (Multipar 04) que utiliza essa biblioteca e aparentemente funcionou normalmente.
Resolvi instalar com o comando:
pi@raspberrypi:~$ make install
Resolvi pedir ajuda no fórum comp.lang.tcl e diretamente no fórum do desenvolvedor do Metakit Jean Claude Wipler. Mas o próprio desenvolvedor alegou que está a mais de 10 anos sem mexer nesse programa. :-(
Percebi que já era hora de começar a usar uma outra ferramenta de banco de dados e comecei a estudar o SQLite.
O pacote Tklib é uma coleção de pacotes com utilitários para a programação de Interfaces Gráficas (GUI).
O meu interesse mais imediato é o pacote Plotchart que facilita a exibição de gráficos.
O Tklib é instalado com o comando:
pi@raspberrypi:~# apt-get install tklib
Tive que capturar a tela e seguindo a dica How to printscreen on Raspberry Pi? resolvi instalar o programa Scrot com o comando:
pi@raspberrypi:~# apt-get install scrot
Para capturar tela após 5s e salvar no diretório local do usuário:
pi@raspberrypi:~$ scrot -d5
E para instalar o programa ImageMagick basta o comando:
pi@raspberrypi:~# apt-get install imagemagick