Nota: Tanto a documentação oficial do Raspberry Pi, quanto a do Sistema Operacional que você escolheu continua sendo a melhor fonte de informação sobre a instalção do sistema, tente, antes de seguir qualquer coisa dita aqui, utilizar os documentos oficiais.
Instalar um sistema no Raspberry Pi não é difícil, no entanto, algumas operações nem sempre são claras, ou as ferramentas utilizadas não estão disponíveis, ou o sistema que você deseja não é oficialmente suportado.
O objetivo desta página é reunir o mínimo possível de informação que auxilie na instalação de sistemas operacionais no Raspberry Pi 4. Os sistemas escolhidos foram os que eu utilizei, ou utilizo, para testes. Em alguns casos, as instruções servirão para outras versões do Raspberry Pi (além do Raspberry Pi 4, eu também uso algumas versões do 1 e o ZeroW).
A partir do Raspberry Pi 4, é possível inicializar o sistema a partir de um disco externo (USB), como meus objetivos são testes rápidos ou usar o Rasberry Pi com “o menor footprint físico possível”, eu faço todas as instalações utilizando um cartão de memória micro-SD.
O uso de um micro-SD como disco de sistema deixa o sistema um pouco mais lento (Raspberry Pi 4) e é uma questão de tempo para que o sistema do arquivo do cartão seja corrompido e ele precise ser recuperado ou reconstruído. Leve isso em consideração ao planejar o uso do Raspberry Pi, incluindo a necessidade de backup de dados, replicação e restauração do sistema.
O Raspberry Pi OS, antigamente conhecido como “Raspbian” é o sistema operacional “oficial” do Raspberry Pi. É, no mínimo, o que oferece melhor suporte ao dispositivo. Existem várias formas de instalação, porém eu prefiro a forma manual.
Após baixar a imagem desejada (utilizei o Rapsberry Pi OS Lite, da versão para todos os modelos), grave a imagem em um cartão SD:
xzcat <image_file> | sudo dd status=progress of='/dev/disk/by-id/my-sd-card'
Não esqueça de criar um usuário, que será o administrador do sistema, durante a instalação.
Após a configuração inicial, precisei configurar o WiFi, que utiliza o wpa_supplicant
. Minha rede (como diversas outras) utiliza WPA-PSK (WPA2) para autenticação e precisei adicionar a seguinte configuração ao arquivo /etc/wpa_supplicant/wpa_supplicant.conf
:
network={
ssid="MyNetworkSSID"
scan_ssid=1
key_mgmt=WPA-PSK
psk="my_secret_password"
}
sudo apt-get update
sudo apt-get dist-upgrade
sudo raspi-config
, incluindo quantidade de memória da GPU, overclock, protocolos de comunicação do GPIO (ex. I2C, SPI e UART), entre diversas outras configurações.
Eu não gosto muito da interface do
raspi-config
, no entanto é bom encontrar toda a configuração centralizada em um único programa.
Caso você tenha esquecido e precise refazer a configuração persistente do teclado, você pode utilizar:
sudo dpkg-reconfigure keyboard-configuration
Uma das vantagens de utilizar a versão lite do Raspberry Pi OS, é que ocupa relativamente pouco espaço no cartão de memória. Com um cartão de 8GB, o sistema inteiro ocupa 1.6Gb, deixando 5.2GB disponíveis para uso.
Há diversas versões do Fedora compatíveis com o Raspberry Pi 4 e os passos aqui descritos foram testados com a versão “Minimal” do Fedora 35 e 36.
Embora eu prefire utilizar o Fedora no Raspberry que outras distribuições, a instalação tem uma desvantagem que é a necessidade de um teclado e monitor para configurar a instalação no primeiro boot. Ainda não achei uma forma de fazer isso de forma automatizada.
Em um computador, grave a imagem escolhida no micro-SD:
xzcat <image_file> | sudo dd status=progress of='/dev/disk/by-id/my-sd-card'
Instale o cartão micro-SD no Raspberry Pi. Ligue um teclado e um monitor ao dispositivo e inicialize-o. A finalização da configuração deve ser feita diretamente no Raspberry Pi.
No primeiro boot, será exibido um menu com opções para configuração do dispositivo, e você deve configurá-lo com suas preferências.
Configure a língua que você deseja utilizar (pode ser feito mais parte, junto com o passo 4.1, uma vez que a configuração inicial não lhe permite alterar o mapa de teclado).
Configure a sua time zone.
Configure a rede apenas se você for utilizar rede cabeada, não configure se você for utilizar o WiFi.
A senha de root não precisa ser configurada e/ou usuários não precisam ser criados. Como o meu objetivo é gerenciar os usuários com o FreeIPA, eu configurei uma senha para o root, mas não criei novos usuários, se você for utilizar o dispositivo como um desktop, eu recomendo fazer exatamente o contrário.
Após a configuração, faça login com um usuário que lhe permita alterar configurações da máquina (root ou sudoer).
localectl set-keymap us-dvorak-alt-intl
(Opcional) Configure o WiFi:
nmcli device wifi list
nmcli device wifi connect <SSID> --ask
nmcli connection modify <SSID> ipv4.method "manual" ipv4.addresses "192.168.15.250/24" ipv4.gateway "192.168.15.1" ipv4.dns "1.1.1.1,8.8.8.8"
Aumente o tamanho da partição de dados e do sistema de arquivos para ocupar todo o espaço disponível no cartão micro-SD:
growpart /dev/mmcblk0 3
resize2fs /dev/mmcblk0p3
Atualize o sistema (esse passo pode demorar vários minutos):
dnf update -y
A instalação do Fedora 35 exigiu um cartão micro-SD de 8Gb, e após a instalação da versão Minimal, devido ao particionamento utilizado por padrão, a partição disponível para uso (“/”) ficou com um tamanho de 5.7GB, com 3.7GB disponíveis.
Nota: as instruções oficiais para a instalação do Ubuntu utilizam o Raspberry Pi Image Writer, que embora seja muito útil, pode não estar disponível ou exigir a instalação de um pograma extra. Aqui, é utilizado o
dd
, que está disponível em qualquer instalação Linux.
Nota: Este processo foi testado com as versões 20.04 e 22.04 do Ubuntu.
A instalação do Ubuntu Server é um pouco mais fácil que a do Fedora, pois toda a configuração inicial pode ser realizada antes do primeiro boot no Raspberry Pi, e não é necessário que o dispositivo seja ligado a um teclado e a um monitor, e, embora os passos aqui são executados manualmente, automatizar o processo de configuração do sistema é bem simples.
Em um computador, grave a imagem no micro-SD:
zcat <image_file> | sudo dd status=progress of='/dev/disk/by-id/my-sd-card'
Monte a partição system-boot
encontrada no cartão micro-SD.
Edite o arquivo <system-boot>/network-config
, habilitando a rede WiFi.
wifis:
wlan0:
dhcp4: true
optional: true
access-points:
my_cool_network_name:
password: "1123581321"
Se você estiver usando rede por cabo, procure pela seção ethernets
e a entrada eth0
.
(Opcional) Caso for utilizar endereços IP estáticos, altere a linha dhcp4: true
para:
addresses:
- 192.168.15.250/24
gateway4: 192.168.15.1
nameservers:
addresses:
- 1.1.1.1
- 8.8.8.8
Após a instalação do sistema, a configuração de rede estará disponível no arquivo /etc/netplan/50-cloud-init.yaml
.
Instale o cartão micro-SD no Raspberry Pi. Se você vai utilizar um monitor e um teclado, plugue-os ao Raspberry Pi antes de ligar o dispositivo.
A configuração inicial é realizada pela ferramenta cloud-init
. Se você plugou o Raspberry Pi em um monitor, espere até que algumas mensagens sobre configuração do SSH apareçam no terminal. Caso não esteja utilizando um monitor, a instalação no meu Raspberry Pi 4 com 8Gb de RAM, demorou um pouco menos de 5 minutos.
Com a instalação terminada, você pode realizar o login no dispositivo com o usuário ubuntu
. A senha também é ubuntu
, e a troca de senha será requisitada no primeiro login. Você pode precisar esperar uns minutos para que o usuário seja criado e habilitado. Utilize uma senha “forte”, pois este usuário tem permissões de executar comandos com sudo
.
Atualize o sistema (essa operação pode demorar bastante tempo):
sudo apt-get update
sudo apt-get dist-upgrade
Nota: Por algum motivo que não procurei, precisei executar o
update
duas vezes, pois na primeira os repositórios não são atualizados, aparentemente, por um problema de certificado (data).
A partir desse ponto, seu sistema está pronto para uso. Embora o site oficial afirme que o sistema possa ser instalado em um cartão de 4GiB, o sistema que instalei ocupa um pouco mais de 4GiB, logo o uso de um cartão de memória maior ou a instalação em um disco externo USB é altamente recomendada.
Opcionais:
Configuração persistente do teclado:
sudo dpkg-reconfigure keyboard-configuration`
O NetBSD é um sistema operacional Open Source, cujos principais objetivos são prover um sistema estável, rápido, distribuído sob uma licença simples (BSD de 2 cláusulas), portável e voltado a interoperabilidade e padrões abertos, sempre que possível.
O port NetBSD/evbarm possui versões para diversos dispositivos ARM, incluindo o Raspberry PI, tanto para versões 32-bits com para as versões 64-bits. Se você tem um Raspberry Pi 1, você pode utilizar a plataforma earmv6hf
, e para o Raspberry Pi 3 ou 4, utilize a plataforma aarch64
.
Como sempre, recomendo seguir o processo oficial de instalação, aqui vou documentar apenas um resumo com os passou que eu segui.
Ao contrário dos outros sistemas operacionais avaliados aqui, utilizei o NetBSD apenas no Rapsberry Pi 1 B+. Esse modelo possui 512MB de RAM, e um single-core ARMv6 rodando a 700Mhz. É possível fazer overclock até 1Ghz (acima de 800Mhz é necessário o uso de refrigeração ativa (“fans”)), o que é até bastante simples no Linux, no entanto, não tentei fazer isso com o NetBSD.
Para instalar o NetBSD, baixe a imagem adequada, descompacte e grave num cartão (micro-)SD. Por exemplo, para o Raspbery 1, você pode utilizar (ajuste o dispositivo do cartão de memória):
curl \
http://nycdn.netbsd.org/pub/NetBSD-daily/netbsd-9/latest/evbarm-earmv6hf/binary/gzimg/rpi.img.gz \
| gunzip -c | dd of=/dev/disks/by-id/mmc-my-SD-card bs=1m status=progress
Insira o cartão no Raspberry Pi, ligue e espere o NetBSD terminar a instalação (que inclui o ajuste do tamanho do rootfs
). Quando o prompt de login aparecer, faça o login com o usuário root
. Note que esse usuário não terá uma senha definida, e tem poderes de superusuário, portanto é importante criar uma nova senha.
Após a instalação, algumas configurações ainda são necessárias:
wsconsctl -k -w encoding=us.dvorak
para alterar o mapa de teclado. Para que a alteração seja permatente execute o comando
echo "encoding us.dvorak" >> /etc/wscons.conf
O NetBSD não tem suporte ao WiFi dos Raspberry Zero, Zero2, 3 e 4, portanto, se você vai utilizar WiFi nos dispositivos é necessário um dongle USB. Eu uso o velho, lento, mas que funciona em qualquer sistema, dongle Wi-Pi
com o chipset Ralink 5370.
/etc/wpa_supplicant/wpa_supplicant.conf
, adicionando:
network={
ssid="MyNetworkSSID"
scan_ssid=1
key_mgmt=WPA-PSK
psk="my_secret_password"
}
TODO