Raspberry e Raspbian 1 Apresentação Trechos extraídos de wikipedia. Raspberry Pi é um computador do tamanho de um cartão de crédito, que se conecta a um monitor, e usa um teclado e um mouse padrão. Foi desenolido no Reino !nido pela Funda"ão Raspberry Pi. # capa$ de %a$er tudo que se esperaria de um computador desktop, como nae&ar na internet, reprodu$ir ídeo, %a$er planilhas, processamento de texto, e 'o&ar 'o&os. (lém do mais, o Raspberry Pi tem a capacidade de intera&ir com o mundo exterior atraés da conexão )P*+ )eneral Purpose *npu *nputt-+u +utp tput ut, , e tem sido sido usad usadoo numa numa ampl amplaa &ama &ama de pro' pro'eto etoss di&i di&itai taiss como como um siste sistema ma embarcado. Raspberry Pi / 0odel 1, lan"ado em %eereiro de 2345, em com 6iFi e 1luetooth na placa e utili$a um 7system on a chip8 da 1roadcom, que inclui um processador central compatíel com (R0 e um processador &r9%ico )P!, a :ideo;ore *:. ;P! tem < n=cleos, a sua elocidade é 4,2 )>$ e possui mem?ria R(0 de 4 )1ytes. ( %unda"ão %ornece Raspbian, uma distribui"ão de @inux baseado em Aebian para download e 9rios outros sistemas operacionais de terceiros.
Figura 1: Raspberry Pi 3 Model B (do Wikipedia).
(rquitetura (R0 primeiramente (corn R*B; 0achine, posteriormente (danced R*B; 0achine é uma arquitetura de processador usada principalmente em sistemas embarcados, smartphones, e tablets tablets.. +s process processado adores res (R0 são conhec conhecido idoss pela pela sua ersati ersatilid lidade ade,, pois pois possuem possuem poucas poucas instru"Ces para pro&rama"ão. + padrão R*B; do processador permite que estes processadores tenham menos transistores que processadores ;*B; como xD5. Essa aborda&em redu$ custos, libera"ão de calor e consumo de ener&ia. Essas são características dese'9eis para dispositios port9teis. port9teis. ( empresa britnica britnica (R0 >oldin&s desenole desenole a arquitetura arquitetura e a licencia licencia para outras empresa empresas, s, que pro'eta pro'etam m seus seus pr?pri pr?prios os produt produtos os que implem implement entam am uma dessas dessas arquit arquitetu eturas ras G incluindo sistemas em chips Bo; que incorporam mem?ria, inter%aces, etc. Hos meus testes I&rosseirosI, *ntel iJ %oi umas 5 e$es mais mais r9pido Raspberry Pi / em pro&ramas sequenciais sem usar paralelismo e sem usar instru"Ces etoriais. Ho mercado, h9 outras placas semelhantes semelhantes K Raspberry Raspberry Pi, entre elasL 1anana 1anana Pi, +droid e +ran&e Pi, e al&uns destes modelos possuem desempenho consideraelmente superior a Raspberry Pi.
4
2 Instalação do sistema Raspbian Raspbian é um sistema operacional lire baseado em Aebian e otimi$ado para Raspberry Pi. ( documenta"ão da Raspberry-Raspbian é bem did9tica e est9 emL https://www.raspberrypi.org/documentation/
Hão irei repetir aqui o que est9 escrito no site o%icial. @eiaGo.
2.1 Instalação + pesquisador 0aurício Pére$ deixou uma boa lista de instru"Ces para instalar RaspbianL http://www.lps.usp.br/hae/apostilaraspi/Instalacao_raspbian.pdf
Ho site do Raspberry também tem boas in%orma"CesL https://www.raspberrypi.org/documentation/setup/ https://www.raspberrypi.org/documentation/installation/
Be ocM '9 conhece bem o @inux, pode pular o resto desta apostila.
2.2 Principais comandos Pratique 9rias características do Raspian para se %amiliari$ar. Para aprender os principais comandos de @inux, leiaL https://www.raspberrypi.org/documentation/linux/
Procure aprender e praticar pelo menosL ls, cd, pwd, mkdir, rmdir, rm, cp, mv, cat, chmod, ssh, scp, sudo, df, zip, unzip, pipe, , man, find, whereis, ps, kill.
2.3 Atualização Para atuali$ar o sistema RaspbianL sudo apt!get update sudo apt!get dist!upgrade
HotaL + comando Isudo aptG&et up&radeI pode não %a$er a atuali$a"ão completa. Para atuali$ar %irmwareL sudo rpi!update
2.4 Instalação de um programa !m aplicatio pode ser instalado usando o pro&rama Iinício N pre%erences N add-remoe so%twareI ou pela linha de comando. *nstale um aplicatio usando Isudo apt install pro&ramaI apt e aptG&et são praticamente i&uais, por exemploL sudo sudo sudo sudo
apt apt apt apt
install install install install
firefox-esr (Browser de internet.) gimp (Manipulador de imagens) geany (Editor de textos e programas GUI) smplayer (Visualizador de !deo)
2
Remoa um aplicatio usando Isudo apt remoe pro&ramaI. Be quiser apa&ar também os arquios de con%i&ura"ão, use Isudo apt pur&e pro&ramaI.
2.5 Editor de teto Existem 9rios editores de texto I)!*I no Raspbian. :ocM pode usar o que &ostar mais para editar o seu pro&ramaL geany, leafpad, idle "do python#, scite, gedit, xedit, etc.
Ho Raspberry, '9 em lea%pad e scite. Eu &ostei do &eany. Também existem editores de linha de comando =teis quando, por al&um problema, não dispuser de um ambiente &r9%icoL nano, vi, vim, emacs, etc.
Editor nano é bem %9cil de usar.
2.! "ari#$eis de ambiente !ma ari9el de ambiente é uma ari9el de um sistema operacional que contém in%orma"Ces sobre a maneira como um processo se comporta. Tanto @inux como 6indows utili$amGnas. Por exemplo, >+0E @inux ou >+0EP(T> 6indows contém o diret?rio rai$ do usu9rio corrente. P(T> contém a lista de diret?rios onde pode estar um arquio execut9el tanto @inux como 6indows. Ho @inux, os diret?rios são separados por dois pontos ILI. Ho 6indows, os diret?rios são separados por pontoGeGír&ula IOI. Em @inux, @A@*1R(RQP(T> indica a lista de diret?rios onde pode estar biblioteca compartilhada .so. Em 6indows, os diret?rios das bibliotecas compartilhadas .dll são indicadas pela ari9el P(T>. + compilador );;-)SS usa as ari9eis de ambiente tanto no @inux como no 6indowsL •
•
•
"IB#$#%&'$* "ista de diret+rios onde pro,urar iliote,a durante a linagem. /&I0/"U1E&'$* "ista de diret+rios onde pro,urar os ar2uios in,lude (3.4) da linguagem / (Ex* 5in,lude 6stdio.47). /'"U8&I0/"U1E&'$* "ista de diret+rios onde pro,urar os ar2uios in,lude da linguagem /99 (Ex* 5in,lude 6iostream7).
Ho @inux, ocM pode listar todas as ari9eis comL 7printen 7printen : sort ;para imprimir em ordem alfa
Ho 6indows, useL 7set
:ocM pode er o conte=do de uma ari9el de ambiente usandoL e,4o >0?MEV$# (linux) e,4o @0?MEV$#@ (windows)
Ho diret?rio >+0E, %ica o arquio .bashrc que é executado toda e$ que bash terminal de comando é iniciali$ado. :ocM pode mudar al&umas con%i&ura"Ces nele para deixar Raspbian de acordo com as suas pre%erMncias. Por exemplo, colocando a linha alias del$%rm%
nesse arquio, ocM poder9 escreer &del& no lu&ar de &rm&. Be ocM acrescentar o comandoL /
export '()*$&.:+'()*&
não haer9 a necessidade de escreer &./programa& para executar pro&rama que se encontra no diret?rio de%ault. 1astar9 escreer &programa& .
2.% Eecução autom#tica 4 Be ocM quiser rodar um pro&rama não &r9%ico ao iniciali$ar Raspberry, edite /etc/rc.local, con%ormeL https://www.raspberrypi.org/documentation/linux/usage/rc!local.md
2 Be ocM quiser rodar um pro&rama )!* no início da sessão @AE @i&htwei&ht 44 Aesktop Enironment edite o arquio /home/pi/.config/lxsession/-!pi/autostart con%ormeL www.raspberry!pro0ects.com/pi/pi!operating!systems/raspbian/auto!running!programs!gui
2.& 3' (e $oc) *uiser rodar um programa *uando inicia o terminal de comando+ edite ,.bas-rc, *ue ica no diret/rio 0-ome0pi. Esse ar*ui$o pode não aparecer na lista de ar*ui$os+ pois ar*ui$os *ue começam com ponto são considerados ar*ui$os escondidos. "oc) de$e escre$er ,ls l, ou ,ls a, para $isualiz#los. 2. -ecar disco Be ocM descon%iar que Raspberry est9 com cartão corrompido por exemplo, desli&ou Raspberry de %orma não ordenada, o se&uinte comando checar9 o cartão na pr?xima e$ que der bootL +sudo touch /forcefsck +reboot
3 ontrolar Raspberr remotamente Raspberry pode ser controlado remotamente por um computador com @inux, 6indows ou em I1ash on !bunto on 6indows 43I abreiaremos aqui como 1ash6in. Ele pode %uncionar sem monitor, teclado e mouse pr?prios headless. Bi&a os passos deL https://www.raspberrypi.org/documentation/remote-access/
Para er o n=mero *P do seu computador ou Raspberry escreaL >hostname -I
4 UPode pular este passo se constatar que o seu roteador não muda n=mero *P toda e$ que desli&a-li&a.V + n=mero *P do seu computador e do Raspberry podem mudar toda e$ que se conecta ao roteador. Para %acilitar o acesso remoto, é coneniente que os n=meros *P permane"am constantes. Para isso, dee pro&ramar o roteador, acessando httpL--4W2.45D.3.4- com um nae&ador de internet. ( %orma de con%i&urar depende do modelo do roteador. Estou usando 4W2.45D.3.443 para Raspberry e 4W2.45D.3.43W para computador. Procure aprender o que são n=mero 0(; e endere"o *P. Ho roteador AGlink %i&ura 2, podeGse %ixar os n=meros *P na op"ão Inetwork settin&sI N IA>;P reserations listI.
<
Fi&ura 2L 0enu de resera de n=mero *P do AGlink network settin& N A>;P reseration list. 2 Podemos classi%icar o acesso remoto a Raspberry em trMs tipos principaisL a (cessar somente os arquios de Raspberry. Heste tipo de acesso, não é possíel executar remotamente os pro&ramas no Raspberry. ExL ssh%s, scp, rsync, FreeFileBync, etc. b (cessar o terminal do Raspberry. Heste acesso, h9 um terminal 'anela de comando ou bash do Raspberry no computador e é possíel executar os pro&ramas do Raspberry remotamente. ExL ssh. c (cessar o sistema &r9%ico do Raspberry no computador. ExL :H;.
X
/ :H; :irtual Hetwork ;omputin&. # possíel acessar remotamente o desktop do raspberry de computador. @eia a documenta"ão para saber como %a$er isto. https://www.raspberrypi.org/documentation/remote-access/vnc/README.md
( %i&ura / mostra :H; %uncionando. ( tela do Raspberry aparece como uma 'anela do computador. HotaL !se Real:H; no computador para acessar Raspberry link abaixo. Parece que Ti&ht:H; e outros pro&ramas não %uncionam bem com Raspberry. httpsL--www.realnc.com-en-connect-download-iewerHotaL Be não h9 preocupa"ão com se&uran"a, pode desli&ar cripto&ra%ia de :H;. *sto torna a comunica"ão um pouco mais r9pida.
Fi&ura /L ;ontrolar Raspberry remotamente atraés de :H;. ( tela do Raspberry aparece como uma 'anela no computador remoto. Exercício 4 alendo X pontos 0ostre ao pro%essor :H; %uncionando. Be não conse&uir %a$er este item durante a aula, dee trabalhar %ora da aula e mostrar este item %uncionando na aula se&uinte. < Também é possíel acessar a linha de comandos de Raspberry atraés de BB>L https://www.raspberrypi.org/documentation/remote-access/ssh/README.md
tanto de @inux, 6indows ou 1ash6in. + comando se&uinte permite acessar remotamente o terminal de comandos do RaspberryL ss4 piACD.F..
# possíel rodar remotamente os pro&ramas )!* do Raspberry atraés da op"ãoL ss4 -H piACD.F.. ss4 -H -/ piACD.F.. (faz ,ompa,taJo antes de transmitir)
Ho @inux, isto dee %uncionar sem %a$er nada extra. Aepois de estabelecida a conexão IBB> GI, é possíel abrir pro&ramas &r9%icos do Raspberry chamandoGos da linha de comando. Por exemploL piArasperrypi> geany K piArasperrypi> xeyes K
5
U*tens em amarelo indicam particularidades do 6indows ou do 1ash6inV Ho 6indows e 1ash6in, é necess9rio primeiro instalar e executar o pro&rama min& seridor de 44 para 6indows. (lém disso, dee setar localmente a ari9el ambienteL export I1'(2$localhost:3 "4ash5in# set I1'(2$localhost:3 "5indows#
antes de chamar Issh G 4W2.45D.3.443I. :ocM pode tornar esses comandos permanentes no @inux editando .bashrc e no 6indows Iwindows explorer Y este computador Y propriedades Y con%i&ura"Ces aa"adas do sistemaI ou usando o pro&rama IedarI do ;ekeikonX. Aepois, pode acessar raspberry no 6indows por PuTTQ ou chamando Issh G 4W2.45D.3.443I no prompt de comando ssh do msys em 'unto com ;ekeikonX para 6indows. Ho 1ash6in, chame diretamente Issh G 4W2.45D.3.443I. X !se ssh%s para montar um diret?rio remoto. https://www.raspberrypi.org/documentation/remote!access/ssh/sshfs.md
HotaL *sto s? pode ser %eito em @inux não pode ser %eito em 1ash6in ou em 6indows. ExemploL ;rie um diret?rio pi no -home-usuario do computador remoto. 7,d L 7mdir pi
Aepois, dM o se&uinte comando no computadorL 7ss4fs piACD.F..* 4omeusuariopi ;tro2ue usuario pelo username do seu ,omputador=
Aepois disso, se ocM acessar o diret?rio -home-usuario-pi do computador, estar9 acessando a estrutura de diret?rio do Raspberry. Para desmontar o olumeL 7fusermount -u 4omeusuariopi ;tro2ue usuario pelo username do seu ,omputador=
UPara 234WL Tornar ssh%s item obri&at?rio.V 5 ;opie arquios entre computador e Raspberry usando scp, rsync ou FreeFileByncL https://www.raspberrypi.org/documentation/remote!access/ssh/scp.md https://www.raspberrypi.org/documentation/remote!access/ssh/rsync.md http://www.freefilesync.org/
HotaL FreeFileBync é muito bom para manter os diret?rios de Raspberry e computador sincroni$ados. >9 FreeFileBync préGcompilado para @inux xD5 e 6indows. Ho Raspberry (R0, in%eli$mente precisa compilar a partir da %onte. Porém, ocM pode sempre %a$er sincronismo chamando FreeFileBync do computador. A9 para instalar FreeFileBync no @inux 0int atraés do I&erenciador de aplicatiosI. *remos desenoler um sistema seridorGcliente para ser executado no Raspberry e no computador. # importante que ocM crie um ambiente em que se pode trabalhar com dois computadores ao mesmo tempo. ;aso contr9rio, proaelmente ir9 perder muito tempo chaeando entre um computador e outro. Fi&ura < mostra um ambiente de desenolimento, onde na coluna esquerda h9 o editor de texto e 'anela de comandos do computador 1ash6in e na coluna direita h9 o editor de texto e 'anela de comandos do Raspberry.
J
Fi&ura geany programa.,pp K
2 Executando o editor no localmente no computador e acessando o arquio de Raspberry remotamenteL ,d L KK mdir pi ;8e diret+rio Lpi ainda nJo existe= ss4fs piACD.F..* 4omeusuariopi ,omputador> geany Lpidiretorioprograma.,pp K
(s duas op"Ces %uncionam. Porém, o editor se torna mais responsio na op"ão 2. !sando op"ão 4, o editor %ica lento. # =til criar um esquema para manter os diret?rios de pro'eto de computador e Raspberry sincroni$ados. !so FreeFileBync para manter os diret?rios dos dois computadores atuali$ados. :e'a %i&ura X.
D
Fi&ura XL FreeFileBync detecta arquios di%erentes nos dois computadores e copia s? o que %or necess9rio para menter os diret?rios sincroni$ados.
J Raspberry não possui rel?&io permanente. Para acertar o rel?&ioL Ysudo apt install ntpdate Rodar quando iniciarL Ysudo ntpdateGdebian 4W2.45D.453.2X< +u Ysudo ntpdate br.pool.ntp.or&
W