Sistema Operacional Raspbian
Sistema Operacional Raspbian
Sistema Operacional Raspbian
1 Apresentação
Trechos extraídos de wikipedia.
Raspberry Pi 3 Model B, lançado em fevereiro de 2016, vem com WiFi e Bluetooth na placa e
utiliza um “system on a chip” da Broadcom, que inclui um processador central compatível com
ARM e um processador gráfico (GPU, a VideoCore IV). CPU tem 4 núcleos, a sua velocidade é 1,2
GHz e possui memória RAM de 1 GBytes. A fundação fornece Raspberry Pi OS, uma distribuição
de Linux baseado em Debian e vários outros sistemas operacionais de terceiros.
Nos meus testes “grosseiros”, Intel i7 foi umas 6 vezes mais rápido Raspberry Pi 3 em programas
sequenciais.
1
No mercado, há outras placas semelhantes à Raspberry Pi, entre elas: Banana Pi, Odroid e Orange
Pi. Alguns destes modelos possuem desempenho consideravelmente superior a Raspberry Pi.
2.1 Instalação
[ Este ano (2020) Raspberry Pi OS, já está instalado nos cartões dos kits.
Usuário: pi. Senha: rasp2020.
]
Para instalar Raspberry Pi OS, você deve gravar SD-card num computador (usando um adaptador).
Depois, deve inseri-lo no Raspberry. No site do Raspberry tem informações de como instalar
Raspberry Pi OS:
https://www.raspberrypi.org/documentation/setup/
https://www.raspberrypi.org/documentation/installation/
Para funcionar, deve ligar Raspberry a um monitor (ou TV, via HDMI ou DVI usando cabo
apropriado), um teclado USB e um mouse USB. Depois, deve ligar à fonte de alimentação 5V, de
preferência pelo menos 2,5A. Ligando a uma fonte de celular que fornece 5V 2A, Raspberry
reclama que tensão está baixa quando começa a usar câmera ou outros periféricos. Powerbank
fornece nominalmente somente 5V 2A, mas Raspberry nunca reclamou que a tensão fornecida pelo
powerbank está baixa. Ligando a força, deve aparecer na tela do monitor o sistema operacional do
Raspberry.
Se você já conhece bem o Linux, pode pular o resto desta seção, indo direto para a seção 3.
2
2.3 Atualização
Para atualizar o sistema [https://www.raspberrypi.org/documentation/raspbian/updating.md ]:
sudo apt update
sudo apt full-upgrade
Sugiro que atualize o sistema após a instalação.
Instale um aplicativo usando “sudo apt install programa” (apt e apt-get são praticamente iguais), por
exemplo:
sudo apt install zip (compactador de arquivos)
sudo apt install firefox-esr (Browser Firefox)
sudo apt install smplayer (Visualizador de vídeo)
Remova um aplicativo usando “sudo apt remove programa”. Se quiser apagar também os arquivos
de configuração, use “sudo apt purge programa”.
Por exemplo, HOME (Linux) ou HOMEPATH (Windows) contém o diretório raiz do usuário.
PATH contém a lista de diretórios onde pode estar um arquivo executável (tanto Linux como
Windows). No Linux, os diretórios são separados por dois pontos ":". No Windows, os diretórios
são separados por ponto-e-vírgula ";".
3
• C_INCLUDE_PATH: Lista de diretórios onde procurar os arquivos include
(*.h) da linguagem C (Ex: #include <stdio.h>).
• CPLUS_INCLUDE_PATH: Lista de diretórios onde procurar os arquivos include
da linguagem C++ (Ex: #include <iostream>).
No diretório HOME dos sistemas derivados de Debian (Mint, Ubuntu e Raspberry Pi OS) fica o
arquivo .bashrc que é executado toda vez que bash (terminal de comando) é inicializado. Esse
arquivo não aparecer na lista de arquivos, pois arquivos que começam com ponto são considerados
arquivos escondidos. Você deve escrever “ls -a” para visualizá-los. Você pode mudar algumas
configurações nele para deixar Raspbian de acordo com as suas preferências. Por exemplo,
colocando a linha
alias del='rm'
nesse arquivo, você poderá escrever "del" no lugar de "rm". Se você acrescentar o comando:
export PATH=".:$PATH"
não haverá a necessidade de escrever "./programa" para executar programa que se encontra no
diretório default. Bastará escrever "programa".
4
3 Instalar Linux no computador
Para fazer este projeto, o aluno deve ter um computador com sistema Linux (Mint ou Ubuntu). Seria
possível fazer o projeto em Windows, mas vai dar trabalho pois os comandos para acessar a rede
serão diferentes em Linux (Raspberry) e Windows (computador). Se o seu computador tem Linux
Mint ou Ubuntu, não precisa fazer nada (só vai ter que instalar Cekeikon para Linux
[http://www.lps.usp.br/hae/software/cekeikon56.html] na próxima aula). Se o sistema operacional do seu
computador for Windows, o site abaixo explica detalhadamente como instalar Linux Mint dentro do
VirtualBox em Windows. Entre no site abaixo usando usuário/senha recebidas via email.
http://www.lme.usp.br/~mauricio/linux_psi/
Configurando assim, Linux Mint vai rodar sobre o sistema Windows, dentro de uma janela (figura
2) ou ocupando a tela toda.
Figura 2: Linux Mint está rodando dentro de uma janela do Windows através do VirtualBox. A tela
do Raspberry está aparecendo como uma janela de Linux Mint através de VNC.
5
4 Controlar Raspberry remotamente
Para fazer esta seção, você precisa ter um computador com sistema Linux e um Raspberry. É
desejável que tanto o computador quanto Raspberry possuam monitor, teclado e mouse próprios.
Caso contrário, vai ter que ficar alternando esses periféricos entre os dois dispositivos.
6
Raspberry pode ser controlado remotamente por um computador com Linux. Neste caso, Raspberry
pode funcionar sem monitor, teclado e mouse próprios (headless). Siga os passos de:
https://www.raspberrypi.org/documentation/remote-access/
Para ver o número IP do seu computador ou Raspberry use um dos comandos abaixo:
>hostname -I
>ifconfig
1) [Pode pular este item se constatar que o seu roteador não muda número IP toda vez que
desliga/liga.] O número IP do seu computador e do Raspberry podem mudar toda vez que se
conecta ao roteador. Para facilitar o acesso remoto, é conveniente que os números IP permaneçam
constantes. Para isso, deve programar o roteador, acessando http://192.168.0.1/ com um navegador
de internet. A forma de configurar depende do modelo do roteador. Estou usando 192.168.0.110
para Raspberry e 192.168.0.109 para computador. Procure aprender o que são número MAC e
endereço IP (veja, por exemplo, [https://beej.us/guide/bgnet/ ]). No roteador D-link (figura 4), pode-se
fixar os números IP na opção “network settings” → “DHCP reservations list”.
Figura 4: Menu de reserva de número IP do D-link (network setting → DHCP reservation list).
7
3) VNC (Virtual Network Computing). É possível acessar remotamente o desktop do raspberry a
partir do computador. Leia a documentação para saber como fazer isto.
https://www.raspberrypi.org/documentation/remote-access/vnc/README.md
A figura 5 mostra VNC funcionando. A tela do Raspberry aparece como uma janela na tela do
computador.
Nota: Use “VNC Viewer” de RealVNC no computador para acessar Raspberry (link abaixo). Parece
que TightVNC e outros programas não funcionam bem com Raspberry.
https://www.realvnc.com/en/connect/download/viewer/
Figura 5: Controlar Raspberry remotamente através de VNC. A tela do Raspberry aparece como
uma janela no computador.
Se a comunicação entre computador e Raspberry não for suficientemente rápida, VNC irá se tornar
pouco responsivo. Neste caso, é melhor usar ssh e sshfs.
[Lição de casa 1 da aula 1] Mostre VNC funcionando no vídeo. Isto é, mostre uma tela como a da
figura 5.
Exercício opcional: Como é possível fazer funcionar VNC quando o computador e o Raspberry não
estiverem conectados ao mesmo roteador?
8
4) Também é possível acessar a linha de comandos de Raspberry (bash) através de SSH (secure
shell):
https://www.raspberrypi.org/documentation/remote-access/ssh/README.md
É possível acessar tanto de Linux como de Windows. O comando seguinte permite acessar
remotamente o terminal de comandos do Raspberry (troque os números pelo número IP do seu
Raspberry):
ssh pi@192.168.0.110
É possível rodar remotamente os programas GUI (com janela) do Raspberry e transmitir a tela
através das opções:
ssh -X pi@192.168.0.110
ssh -X -C pi@192.168.0.110 (faz compactação antes de transmitir)
Figura 6: Janela de execução do programa em Raspberry pode ser mostrada no computador através
de "ssh -X".
[Lição de casa 2 da aula 1] Mostre "ssh -X" funcionando no vídeo. Pode ser uma tela como figura 6.
Exercício opcional: Como é possível fazer funcionar ssh quando o computador e o Raspberry não
estiverem conectados ao mesmo roteador?
9
5) Use sshfs (SSH filesystem) para montar a estrutura de diretórios do Raspberry como um
subdiretório do computador:
https://www.raspberrypi.org/documentation/remote-access/ssh/sshfs.md
Opcionalmente, se não quiser decorar e ficar digitando os comandos acima, pode criar "script bash".
Por exemplo, criando arquivo “montar-pi” com conteúdo:
>chmod +x montar-pi
você pode digitar “montar-pi” em vez de ter de escrever todo o comando. Pode fazer o mesmo para
desmontar-pi.
10
[Lição de casa 3 da aula 1] Mostre no vídeo sshfs funcionando. Pode mostrar o acesso ao diretório
do Raspberry via terminal e/ou via gerenciador de arquivos (como na figura 7).
Exercício opcional: Como é possível fazer funcionar sshfs quando o computador e o Raspberry não
estiverem conectados ao mesmo roteador?
11
6) Para copiar arquivos entre computador e Raspberry, pode usar scp (secure copy protocol), rsync
(remote sync), FreeFileSync ou simplesmente sshfs junto com cp.
https://www.raspberrypi.org/documentation/remote-access/ssh/scp.md
https://www.raspberrypi.org/documentation/remote-access/ssh/rsync.md
http://www.freefilesync.org/
Gosto de usar FreeFileSync para manter os dois diretórios sincronizados, pois é bem intuitivo para
usar. No Mint, esse aplicativo pode ser instalado através do “gerenciador de aplicativos”.
Infelizmente, não há uma versão pré-compilada deste programa para Raspberry. Porém, sempre é
possível fazer sincronização a partir do computador.
12
8) Iremos desenvolver um sistema servidor-cliente (para ser executado no Raspberry e no
computador). É recomendável que você crie um ambiente onde se pode trabalhar com os dois
dispositivos ao mesmo tempo. Caso contrário, provavelmente irá perder muito tempo chaveando
entre um dispositivo e outro. Figura 8 mostra um ambiente de desenvolvimento, onde na coluna
esquerda há o editor de texto e terminal do computador e na coluna direita há o editor de texto e
terminal do Raspberry.
As duas opções funcionam. Porém, o editor se torna mais responsivo na opção (2), pois o editor é
executado localmente. Nesta opção, somente vai acessar o disco de Raspberry para carregar ou
salvar arquivo. Usando opção (1), o editor fica lento se a conexão raspberry-computador for ruim,
pois toda atualização da janela deve ser transmitida do Raspberry para computador.
13