Motivação
Com as informações de que os SD card´s podem avariar de um momento para o outro, resolvi testar o boot do Rpi4 por SSD (valido só para rpi4).
Depois de ler algumas coisas, deixo aqui um resumo da minha experiencia, ainda incompleta, pois não consegui tirar conclusões da falha de alguns boot´s (ver mais à frente).
1º Verificar se rpi está pronto para USB/SSD boot
- flashar o PiOS 32bits num SD com programa Raspberry Pi Imager e arrancar o Rpi
- Verificar a versão de booloader com cli (linha comandos), introduzindo
sudo rpi-eeprom-update
ou
vcgencmd bootloader_version
- Se o resultado for “CURRENT: … 03 Set 2020 …” , (ou data mais recente) o Rpi está pronto para SSD boot(testado).
- Se for este " CURRENT: … xx Jun 2020 …" , o Rpi tb deve estar pronto para SSD boot (por algumas experiencias de utilizadores que li).
Todas as versoes de datas anteriores, julgo que não estejam preparadas para SSD boot
Se não estiver preparado ou quiserem actualizar o firmware, passar ao 2º passo
2º Actualizar o firmwar do rpi4
- Na net encontramos varios comandos possiveis, usei esta sequencia e funcionou
sudo apt update
sudo apt full-upgrade
reboot
- Verificar novamente a versão do bootloader, pois desconfio que apos os comandos anteriores já terá ficado actualizado, se confirmarem que está , o rpi está pronto para SSD boot.
sudo rpi-eeprom-update
Se não estiver , continuar …
- Confirmar se o ficheio “rpi-eeprom-update” contem a opção "FIRMWARE_RELEASE_STATUS= “stable” " com o comando.
sudo nano /etc/default/rpi-eeprom-update
- Caso não esteja “stable” editar o ficheiro e sair com ‘^X’ , confirmando depois que querem gravar ‘Y’ e ‘Enter’
- A seguir, instalar o update
sudo rpi-eeprom-update -d -a
reboot
- Apos arranque do rpi verificar novamente a versão do bootloader
vcgencmd bootloader_version
- Verificar a configuração do bootloader
vcgencmd bootloader_config
Procurar por BOOT_ORDER=0xf41, se aparecer assim indica que a ordem de boot será:
1ºUSB/SSD (4)
2ºSD (1)
O “f” tem a haver com qualquer coisas de loop boot
Já temos o Rpi4 pronto para boot pelo SSD.
3º Testes:
A- PiOs 32 bit Boot pelo USB com Pen Sandisk Extreme USB3.0 16Gb
- flashar o PiOS 32bits na pen com programa Raspberry Pi Imager e arrancar o Rpi ( não esquecer tirar o SD)
Resultado, exito no arranque quer na porta USB2.0 quer na USB3.0
B-PiOs 32 bit Boot pelo USB com SSD Kingston A400 120Gb caixa com chip Jmicron567
- flashar o PiOS 32bits no SSD com programa Raspberry Pi Imager e arrancar o Rpi ( não esquecer tirar o SD)
Resultado exito no arranque na porta USB2.0, na USB3.0 não arranca ou fica desmasiado tempo para arrancar
Há alguns relatos de que pode ter a haver com o chip do adaptador da caixa SSD/USB, para verifiar o tipo de chip, podem usar o comando
lsusb
C-Hassos 4.13, 4.13 64bit, 5.2
testes flashando com Raspberry Pi Imager e tb com balenaEtcher, na PEN SanDisk e no SSD não consegui arrranque
O processo de flashar e arrancar leva muto tempo , com o SSD nem vou testar
#############################################################################
actualização testes
#############################################################################
**D-Hassos 5.2 64bits , na PEN SanDisk **
Arrancou na porta USB2.0 e ainda não testei mais nada
PS: Acabei de arrancar na porta 3.0, tb arrancou . Tb não sei se tenho mais paciencia para testar com o SSD. Provavlmente com outra caixa e outro chip daria …
D-Hassos 5.2 64bits , no SSD (já funciona na porta 3.0)
- Arrancou na porta 2.0 , falhou na 3.0 , definitivamente problemas com o chip do adaptador
- Solução aplicar “quirks” , depois de aplicar , já arrnaca na porta 3.0
#####################
Aplicação de quirks:
#####################
Arrancar o rpi com SD card com PiOS, ligar o SSD na porta 2.0, na cli executar o comando para obter ID do adaptador
lsusb
Aparece algo do genero , procurar e apontar o ID do adaptador
Ligar o SSD num PC , editar o ficheiro ‘cmdline.txt’ que está na raiz do SSD.
O ficheiro já tem conteudo por ex" dwc_otg.lpm_enavle=0 console=tty" vamos adicionar logo no incio "usb-storage.quirks=XXXX:XXXX:u " onde XXXX:XXXX é o ID do adapatador
ficando assim tudo na mesma linha
“usb-storage.quirks=XXXX:XXXX:u dwc_otg.lpm_enavle=0 console=tty”.
Ligar o SSD ao rpi sem SD e temos o HassSO a arrancar pelo USB3.0/SSD no rpi4.
A performance com quirks não será a mesma , mas ao menos funciona.
#############################################################################
actualização 2020/11/08 testes
#############################################################################
Comprei um adaptador iitrust USB 3.0
https://www.amazon.es/gp/product/B073QG493V/ref=ppx_yo_dt_b_asin_title_o00_s00?ie=UTF8&psc=1
Com este adaptador consegui arranque na porta USB3.0 sem necessidade dos “quirks” de:
- PiOS 32
- Hassio 5.4 64bit
#############################################################################
Fontes usadas , para registo / consulta :
#############################################################################
https://www.jeffgeerling.com/blog/2020/im-booting-my-raspberry-pi-4-usb-ssd
EDITED: 2020-10-17 Fontes:
(fala da questão do boot por USB3.0)
(ultimas releases à data (2021/01) temos hassos_rpi4-64-5.10.img.gz)