Manual

do

Maker

.

com

Colocar múltiplos sistemas no mesmo SD do Raspberry Pi

Colocar múltiplos sistemas no mesmo SD do Raspberry Pi

Estou preparando um curso de Raspberry Pi na Udemy, o qual deverá custar menos que o transporte público de um dia de trabalho da maioria das pessoas. Bom, havendo interessados, podem comentar na página oficial DobitAoByte no Facebook para eu ter uma noção se vale a pena o esforço. Estando disponível, publico a informação. Um dos itens do curso (deve ter aproximadamente 10 aulas, com média de 12 minutos entre o maior e o menor  vídeo, e com material de apoio) é relacionada a gerenciadores de boot.

Uma das coisas que vou mostrar é essa configuração ( um pouco mais) para adicionar múltiplos sistemas no mesmo SD do Raspberry, afinal, espaço tem de sobra se não estiver utilizando-o como console de jogos.

Bootloader

Tudo acontece no bootloader. Infelizmente o bootloader padrão do Raspberry pertence à Broadcom e é fechado. Daí ficamos limitados os recursos que eles oferecem, mas temos alternativas interessantes. Uma delas é o BerryBoot. Clique no link e baixe a versão disponível, que serve para todas as versões do Raspberry Pi até a 3 (não sei se funcionará na versão 4 de imediato, mas certamente teremos uma versão para a RPi 4 no futuro, caso não funcione ainda).

Não se trata exatamente de um bootloader, isso veremos mais a fundo em outro artigo, aqui devemos considerar apenas que o boot é dado no Berryboot.

Como instalar o BerryBoot

O primeiro passo é ter um cartão micro SD formatado com o sistema de arquivos FAT. Provavelmente todos sabem fazê-lo no Windows, é quase tão simples quanto abrir uma pasta com dois cliques.

Para quem usa Linux, o procedimento é mais simples ainda. Coloque o cartão SD no computador, veja qual o dispositivo que foi criado. Isso pode ser feito com o comando dmesg, por exemplo:

dmesg_sdb.webp

Parece bastante claro para mim que o dispositivo é o sdb. Em Linux, os dispositivos ficam em /dev, logo, o dispositivo a ser formatado é /dev/sdb.

Desmonte as partições se forem montadas automaticamente

Normalmente a montagem do sistema de arquivos do cartão (se houver um) é feita de forma automática, estando acessível em /media/usuario/. Se for o caso, já ganhe acesso de root  e desmonte o sistema de arquivos primeiramente. Por exemplo:

sudo su
umount /media/djames/*

Formate o sistema de arquivos se houver apenas 1 partição

Ainda como root, faça agora a formatação do cartão:

mkfs.vfat /dev/sdb1

Recriando a tabela de partições se já havia um sistema anterior

Se seu cartão já possui uma instalação prévia de algum sistema para Raspberry, será necessário recriar as partições. O jeito mais rápido é por linha de comando:

dd if=/dev/zero of=/dev/sdb count=1 bs=512
parted /dev/sdb mktable msdos
partprobe
parted /dev/sdb mkpart primary 0% 100%
partprobe
mkfs.vfat /dev/sdb1

Use o GParted se tiver deficiência motora ou motivacional

Mas se por alguma razão não tiver coordenação motora desenvolvida o suficiente para digitar esses (aproximados) 100 caracteres, instale uma ferramenta gráfica para fazer a manipulação:

sudo apt-get install gparted
gparted /dev/sdb

Daí é bastante intuitivo, não vou descrever como clicar com o mouse. Se quiser ter uma ideia, dê uma olhada nesse artigo.

gparted-fat32.webp

Transfira o conteúdo para o cartão

Agora é hora de baixar o BerryBoot, se já não o fez. O link supracitado lhe garantirá acesso à versão mais atual sempre, entretanto, porém e todavia você pode ter escolhido usar o GParted invés de digitar. Nesse caso, para que você não tenha que rolar a página para cima para copiar o link, o disponibilizo novamente. Eis. Desça até "Download link Berryboot for the original bla,bla,bla...". O programa está hospedado no SourceForge e você será redirecionado para o site ao clicar no link de downloads. Só esperar o download ser feito. São poucas dezenas de megas, o download é bastante rápido.

Descomprima o arquivo dentro do cartão micro SD. Basta tirar e colocar o cartão SD novamente após formatá-lo e a montagem deve ser automática. Será criado um diretório com números em /media/seu_usuario. O arquivo normalmente está em Downloads, então a cópia seria algo como (supondo meu usuário djames):

cp /home/djames/Downloads/berryboot-20190612-pi0-pi1-pi2-pi3.zip /media/djames/97D5-9A57/

Depois da cópia, entre e descomprima o arquivo, então exclua-o do cartão:

cd /media/djames/97D5-9A57/
unzip berryboot-20190612-pi0-pi1-pi2-pi3.zip
rm -f berryboot-20190612-pi0-pi1-pi2-pi3.zip

Daí pode sair do diretório e desmontar o sistema de arquivos:

cd
umount /media/djames/97D5-9A57

Lembre-se de verificar o nome do diretório criado, certamente não será o usuário djames nem o dispositivo 97D5-9A57.

Agora basta colocar o cartão micro SD no Raspberry e fazer o boot.

Acesso ao menu de boot por VNC

Em uma das aulas do curso de Raspberry que estou prestes a publicar, mostro como manipular a imagem antes de fazer a instalação, para que as configurações pessoais seja replicáveis. O processo aqui me lembra um pouco, apenas pelo fato das manipulações antes do boot.

O que precisamos fazer para acessar o menu de boot sem a necessidade de monitor e teclado conectados ao Raspberry é configurar o BerryBoot previamente, adicionando o recurso ao boot.

Colocando o cartão SD no computador (e isso pode ser feito tanto no Windows quanto no Linux), edite o arquivo cmdline.txt da partição boot (a única que estará em FAT32). Adicione ao final da linha de parâmetros o IP desejado, a máscara de rede e o gateway, seguido pela interface WiFi. Por exemplo:

vncinstall ipv4=192.168.1.2/255.255.255.0/192.168.1.1/wlan0

Se desejar fazer o acesso pela interface ethernet, simplesmente omita '/wlan0'.

Feito isso, crie agora um arquivo chamado wpa_supplicant.confe adicione o seguinte conteúdo:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
ap_scan=1


network={
    ssid="sua_rede_wifi"
    psk="senha_da_sua_rede"
}

Conectar-se via VNC ao menu

Pela conexão VNC também é possível adicionar mais sistemas no mesmo SD.

Alguns pontos muito importantes a considerar; primeiramente, o client VNC que for utilizar deve mandatoriamente utilizar 24-bits de profundidade de cores.

Eu utilizei (no Linux) o krdc para fazer a conexão ao menu, utilizando o protocolo VNC. Mas antes de ligar o Raspberry, mantenha um terminal efetuando ping ao sistema. Continuando do exemplo mais acima, onde utilizei o IP 192.168.1.2 no client:

ping 192.168.1.2

Então clique em conexão no krdc e antes de confirmar a conexão, ligue o Raspberry e aguarde até que o terminal devolva um resultado semelhante a esse:

ping-rpi.webp

Se não retornar a linha finalizando em ms, ainda não é a resposta do Raspberry.

Imediatamente após iniciar a resposta do ping em ms, confirme a conexão no krdc. Mais rapidamente, mexa nas setas do teclado para interromper o timeout do boot, que é de 10 segundos e ao iniciar a conexão, já estará quase estourando.

Você deverá ver uma tela assim:

berryboot-vnc.webp

Só que essa tela já é a tela após instalação do sistema, infelizmente. Esqueci de pegar a tela inicial e a filmagem do monitor do Raspberry não ficou boa. De qualquer modo, estará disposta no vídeo, assim como a interação através do VNC, onde instalo o segundo sistema.

Configurações adicionais, além do recurso de colocar outros sistemas no mesmo SD

Depois de estar conectado por VNC, será bastante simples manipular diversos parâmetros através dos itens do menu.

No vídeo mostro também os diversos sistemas disponíveis e em breve mostro como adicionar o seu próprio, para quem desejar.

As opções extras do menu incluindo o botão para adicionar mais sistemas no mesmo SD:

berryboot-vnc_2.webp

Primeira impressão e vídeo

first_screen-berryboot.webp

Evidentemente o programa foi escrito em Qt usando o framebuffer da placa de vídeo.

Inicialmente escolhe-se o dispositivo a formatar, tipo de conexão de rede, então sistema operacional a instalar.

A interface parece bastante amigável para mim,  é fácil adicionar sistemas no mesmo SD com 0 esforço, mas dê uma conferida no vídeo que colocarei no nosso canal DobitAoByteBrasil no Youtube. Se não for inscrito, inscreva-se e clique no sininho para receber notificações, assim saberá quando o vídeo foi publicado. Não esqueça de deixar um like, por gentileza.

Locais de boot

Com o Berryboot temos a possiblidade de instalar sistemas no mesmo SD, em um pendrive ou HD/SSD externo, ou então em um local de rede com iSCSI. Nesse último caso, é possível fazer terminal burro com o Raspberry, como se fosse um Thin client.

 

Projetos para sua empresa

Manual do Maker é mais do que um blog. Somos uma empresa de serviços, cuja principal atividade é desenvolvimento e implementação de projetos embarcados e IoT. Trabalhamos dentro da legalidade, emitindo nota fiscal de serviço, elaboração de requisitos de sistema e documentação do código. Não importa onde você esteja, montamos a prova de conceito e gravamos vídeo do projeto antes de entregar o código e/ou hardware configurado.

Em parceria com a AFEletrônica, projetamos e produzimos hardware industrial (também com nota), para lhe entregar a melhor experiência para seu projeto.

Se precisar de treinamento para sua equipe, palestra, projetos com requisitos, perícia forense digital, consultoria, auditoria, software ou hardware, somos quem você procura! Entre em contato: vendas@afeletronica.com.br Ou direto comigo: djames.suhanko@gmail.com

Será um prazer tê-lo como nosso cliente!

Inscreva-se no nosso canal Manual do Maker no YouTube.

Também estamos no Instagram.

Nome do Autor

Djames Suhanko

Autor do blog "Do bit Ao Byte / Manual do Maker".

Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.