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