[TUTO] Beta - Boot USB natif sur PI 4 -

Tags: #<Tag:0x00007f282f29ecb8> #<Tag:0x00007f282f29ebc8> #<Tag:0x00007f282f29eb00> #<Tag:0x00007f282f29e9c0>

Bonjour à tous,

Comme vous le savez ou pas , le firmware beta qui permet de booter en natif sur un périphérique USB est disponible depuis hier…
Je n’ai pas résisté et j’ai testé. C’est top…

Attention manipulation à réserver aux initiés car il va falloir mettre les mains dans le cambouis…

Je ne suis pas responsable de la suite. Il y peu de risque si vous suivez ce que je dis mais cela reste à vos risques et périls…
Je viens de le faire, aucun problème cela fonctionne et le boot Sd est conservé si pas de USB.

1/ On va graver une raspbian Lite sur une SD.

C’est encore plus facile avec l’outil PI imager ici
On lance, on choisit rasbian Lite
On sélectionne sa carte SD
On clique sur Write.
image

2/ on recommence l’opération avec le périphérique USB. Pour un test une clé USB fera parfaitement l’affaire. Pour la suite du tuto je parle de clé USB mais c’est exactement la même chose avec un SSD…

3/ On va de suite ouvrir le SSH (qui n’est pas activé par défaut) sur la carte SD et sur la Clé USB en créant un fichier ssh vide (sans extension) dans la partition boot. C’est du classique, voir la doc si difficulté.

4/ On insère la carte SD et la clé USB dans le PI, on branche, on recherche l’adresse IP et on se connecte en SSH (Pi + raspberry).

5/ On va devoir mettre à jour notre PI

En premier lieu on va autoriser la BETA de l’eeprom

On édite le fichier avec
sudo nano /etc/default/rpi-eeprom-update
et on remplace critical par beta, ce qui donne :

image

On sauvegarde par CTRL X et on confirme par Y

Maintenant on met à jour

sudo apt update
sudo apt full-upgrade

A la suite de cette mise à jour vous devez avoir un fichier pieeprom-2020-05-15.bin dans le répertoire /lib/firmware/raspberrypi/bootloader/beta/

6/ Maintenant on va mettre a jour l’eeprom avec la version béta

sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-15.bin

Pui on va rebooter
sudo reboot

Voila votre eeprom est en version beta et permet de booster sur un périphérique USB. Lors de ce reboot le Pi cherchera d’ailleurs à booter sur votre USB mais il manque encore une étape.

Edit du 28 mai 2020 : La stable est sortie.
En conséquence un simple
sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo rpi-update && sudo reboot suffira a mettre a jour votre distribution.
7/ Maintenant dernière étape, il faut mettre à jour tous les fichiers *.elf *.dat de la partition boot de votre clé USB en partant en principe de la branche master du Github raspberry. Le github est ici. En fait ce sont les fichiers de la prochaine version de rasbian. Cela nécessite de faire un wget sur tous les fichiers présent dans dans https://github.com/raspberrypi/firmware/raw/master/boot… et de les mettre dans le boot de la clé USB. C’est faisable mais pas simple.

On peut donc faire beaucoup plus simple.
Méthode 1 :
On arrête son Pi, on branche son Sd et sa clé USB sur un PC et on copie tous les fichiers de la partition Boot de la Sd sur la partiton Boot de l’USB.
Méthode 2 (je bosse la dessus car j’ai eu des problèmes à tester chez vous)
On va :

  • actualiser les fichiers qui se trouvent dans la partition Boot de la SD
    Un simple :

sudo rpi-update

va tous nous les mettre à jour.

  • les copier dans la partition boot du périphérique USB.

Bon la c’est assez simple aussi :

On va créer un répertoire temporaire

sudo mkdir /tmp/bootusb

et on va monter ce répertoire temporaire avec le contenu du fichier boot de la clé USB (SDA1)

sudo mount /dev/sda1 /tmp/bootusb

On va maintenant copier les fichiers a jour du boot de la carte Sd vers le Boot de la clé l’USB
sudo cp -rf /boot/* /tmp/bootusb/

Méthode 3 probablement la plus simple…:

On va ici : Les images de bronche

On récupère le fichier zip boot pi4. Et on le décompresse dans la partition boot du périphérique USB.

8/: On arrête proprement le PI avec un
sudo halt

9/ On enlève la carte SD.

10/ On branche la clé USB seule (ou le SSD), on alimente en on admire…

Important : ne pas oublier que /etc/default/rpi-eeprom-update n’a pas été modifié sur la clé USB ou le SSD. Si vous souhaitez suivre les évolutions de cette béta (dernière version du 15 mai : pieeprom-2020-05-15.bin ), il faut naturellement reprendre à l’étape 5 avant de faire un full upgrade…

J’attends vos retours et corrections au besoin.

Amitiés

Philippe

5 J'aimes

Bravo !
image
Petite optimisation :

sudo mkdir /tmp/boot
sudo mount /dev/sda1 /tmp/boot

A partir de là on peut directement mettre les fichiers à jour sur la SD et/ou sur le SSD (/boot versus /tmp/boot) sans tout éteindre

Copier par exemple

cp -rf /boot/* /tmp/boot/

Mettre à jour les fichiers

cd /tmp/boot
wget https://github.com/raspberrypi/firmware/raw/master/boot/fixup.dat
wget https://github.com/raspberrypi/firmware/raw/master/boot/fixup4.dat
wget https://github.com/raspberrypi/firmware/raw/master/boot/fixup4cd.dat
wget https://github.com/raspberrypi/firmware/raw/master/boot/fixup4db.dat
wget https://github.com/raspberrypi/firmware/raw/master/boot/fixup4x.dat
wget https://github.com/raspberrypi/firmware/raw/master/boot/fixup_cd.dat
wget https://github.com/raspberrypi/firmware/raw/master/boot/fixup_db.dat
wget https://github.com/raspberrypi/firmware/raw/master/boot/fixup_x.dat
wget https://github.com/raspberrypi/firmware/raw/master/boot/start.elf
wget https://github.com/raspberrypi/firmware/raw/master/boot/start4.elf
wget https://github.com/raspberrypi/firmware/raw/master/boot/start4cd.elf
wget https://github.com/raspberrypi/firmware/raw/master/boot/start4db.elf
wget https://github.com/raspberrypi/firmware/raw/master/boot/start4x.elf
wget https://github.com/raspberrypi/firmware/raw/master/boot/start_cd.elf
wget https://github.com/raspberrypi/firmware/raw/master/boot/start_db.elf
wget https://github.com/raspberrypi/firmware/raw/master/boot/start_x.elf

Bonsoir
tu peux détailler ?
Merci

En fait le mount permet de « voir » la partition boot du ssd comme n’importe quel autre répertoire

Ha ok,
L’idée est donc de ne pas passer par un PC mais de laisser brancher la Sd et la clé USB pour mettre cette dernière à jour.
Je vais voir pour intégrer ça directement dans le tuto.
Donc si j’ai bien compris il faut :
Monter la partition boot du périphérique usb

sudo mkdir /tmp/bootusb
sudo mount /dev/sda1 /tmp/bootusb

copier tout le répertoire boot de la SD vers le répertoire boot de l’USB
sudo cp -rf /boot/* /tmp/bootusb/

Par contre pour la mise à jour des fichiers à partir de github je ne vois pas comment mettre à jour tout le répertoire en une seule commande. Une idée ?
Si tu veux bien compléter le tuto pour automatiser tout cela je prends. Merci

C’est exactement ça

Pour cloner un répertoire de github, j’utilise ghclone… Mais dans ce cas là il ne faut pas tout récupérer de github ça sert à rien il faut uniquement les *.elf et *.dat. D’où les 17 wget plus haut.
En plus, les autres fichiers sont déjà sur la carte sd donc la copie est suffisante, si elle est suivie par la mise à jour

Bonjour @bronche,

Oui, je suis d’accord, c’est top !

Quelques informations complémentaires ici : [Présentation] akenad

akenad :slight_smile:

suite du post Présentation akenad


Pour moi cela à été périls
je n’ai même plus le splash screen …
que ce soit sur carte sd ou au travers de l’usb …

j’ai donc fait la procedure suivante


resultat ecran vert et led clignotte infinie
puis ja remis ma carte sd dans la machine
pas de boot ! pas de splash screen

1 J'aime

@olive

Tu n’as pas oublié une commande ?
Dans le pire des cas, tu peux refaire une sd propre. Tu pourras remonter le ssd ensuite

Oui mais ça c’est la solution facile une fois la remise en service grace au recovery avec Raspberry Pi Imager

Bonjour,
Bizarre… Je l’ai fait sur 2 pi 4 sans souci.
De toute façon c’est réversible.
Au pire tu fais un recovery de l’eeprom,

Ou encore plus simple avec l’outil Pi Manager qui te propose une Sd de recovery.

If your Raspberry Pi 4 will not boot, it is possible that the SPI EEPROM has become corrupted. To check, remove the SD card, disconnect the device from power, then reconnect it. If the green LED does not flash, this indicates that the EEPROM has become corrupted.

Raspberry Pi Imager provides an easy way to fix this problem, by automatically preparing an SD card that will reprogram your Raspberry Pi 4’s EEPROM:

  1. Find an SD card that is empty, or does not contain any data you want to keep; it will be completely erased of all data during this process.
  2. Download Raspberry Pi Imager for your operating system from the list near the top of this page.
  3. Click “CHOOSE OS” and select “Misc utility images” then “Pi 4 EEPROM boot recovery”.
  4. Insert an SD card, click “CHOOSE SD CARD”, select the card you have inserted, then click “WRITE”.
  5. Once the SD card is ready, insert it into your Raspberry Pi 4 then connect the Raspberry Pi to power.
  6. Once complete, the green LED will blink rapidly in a steady pattern. Disconnect the device from power. Now you can remove the recovery SD card, insert your usual SD card, and resume using your Raspberry Pi.

Alternatively, you can download the bootloader and create a recovery SD card manually:

  1. Download the bootloader.
  2. Extract it to an empty FAT-formatted SD card and insert it into your Raspberry Pi 4.
  3. Connect the power and wait for the green LED to flash quickly.

Notes:

Salut,
Tu veux dire que les procédures « pi4 eeprom boot recovery » n’ont pas fonctionné et que ton pi est hs ?

Non j’ai bien eu ecran vert et led qui clignotte avec le recovery !

avec une nouvelle install ca boot

C’est avec ma sd original déjà installée que je ne reboot plus …

C’est mieux,j’ai eu peur :wink:

1 J'aime

juste à noter que la dernière beta du boot est du 27/05 à ma connaissance, pour l’installer, il suffit de faire:

sudo nano /etc/default/rpi-eeprom-update

modifier la branche de « CRITICAL » en « beta » et ensuite,

Lancer ensuite les commandes suivantes :

sudo rpi-eeprom-update -d -f /lib/firmware/raspberrypi/bootloader/beta/pieeprom-2020-05-27.bin
sudo reboot
vcgencmd bootloader_version

(afin de vérifier que la version du boot est bien installée).

Pour finir, il faudra mettre Raspbian à jour avec

sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo rpi-update && sudo reboot

comme indiqué au dessus

Personnellement, j’ai ensuite simplement copié ma SD sur le SSD avec Win32DiskImager sur le PC mais on peut repartir sur une installation propre. A la base, je pensais que le boot était sorti en version stable mais ce n’est pas le cas, donc on peut vérifier la version du boot avec la commande que j’ai noté).

Je suis ensuite repassé en CRITICAL, ça permettra d’installer la stable ou bien faut-il faire d’autre modifications ?

Oui mais attention qu’il n’y ai pas une stable sans le boot usb entre-temps …