Raspberry Pi : a-t-il un BIOS ?

BIOS Raspberry Pi

Certains utilisateurs je me demande si le Raspberry Pi a un BIOS ou un UEFI, comme d'autres ordinateurs, puisque UEFI, comme vous le savez, est également pris en charge sur les ordinateurs basés sur Arm, comme c'est le cas avec ce SBC si populaire et pas cher. Mais la vérité est que les gars de la framboise ont opté pour une autre solution alternative.

Ici, vous apprendrez quelle est cette solution et les raisons pour lesquelles n'utilise pas ce firmware, en plus de vous montrer comment se font certaines configurations sur le Raspberry Pi lorsqu'il n'y a pas de Setup Menu comme sur les ordinateurs...

Pourquoi le Raspberry Pi n'utilise-t-il pas le BIOS/UEFI ?

Raspberry Pi 4

Comme vous le savez, le BIOS ou UEFI est un firmware qui est présent dans une multitude d'ordinateurs, à la fois des ordinateurs de bureau, des ordinateurs portables, des AIO, des serveurs, des postes de travail, etc. Cependant, il n'est pas sur le Raspberry Pi, bien qu'il s'agisse d'un SBC (Single Board Computer), contrairement aux autres SBC x86 qui utilisent ce firmware pour le processus de démarrage et la vérification du système. Et ce n'est pas parce que le Raspberry Pi est basé sur ARM, car de nombreux ordinateurs ARM ont également un BIOS/UEFI.

Par contre, il faut dire que ce firmware est conçu pour que la botte plus facile à partir du support de stockage où se trouve le système d'exploitation, en plus de pouvoir contrôler de nombreux autres paramètres. C'est là qu'il nous donne des indices sur la raison pour laquelle le Raspberry Pi n'utilise pas le BIOS. D'une part, parce qu'il ne peut démarrer que des périphériques à partir du même support, tels que des cartes SD, et pas d'autres manières. Et d'autre part parce que le nombre de périphériques et de fonctions dans un Raspberry Pi est plus limité.

Cependant, ce n'est pas entièrement une raison pour ne pas utiliser le BIOS ou l'UEFI. En fait, si nous analysons attentivement, les Le SoC ARM du Raspberry Pi utilise son propre firmware interne pour démarrer le CPU dans un état correct et le reste du système sans avoir besoin d'une puce BIOS séparée. Mais... alors pourquoi ne pouvez-vous pas accéder à la configuration du BIOS ou au menu du BIOS ? D'une part, parce que ce firmware est très limité, et pas aussi complexe que le BIOS/UEFI, donc un menu pour configurer les paramètres n'aurait aucun sens, et d'autre part, à cause de ce qui a été mentionné précédemment, qu'il ne peut démarrer que depuis un support de stockage par défaut. , tout comme la carte SD.

Les développeurs du Raspberry Pi ont pour cette raison préféré utiliser ce firmware de base pour l'initialisation et le démarrage depuis une carte SD plutôt que d'utiliser une puce rom avec un firmware plus complexe installé sur le PCB. Et c'est que, si vous regardez, les appareils mobiles n'ont pas non plus de BIOS / UEFI, car ils ne peuvent démarrer Android (ou un autre système d'exploitation), qu'à partir de la mémoire interne.

De cette manière, d'une part, cette puce supplémentaire sur la carte est économisée, et d'autre part, la nécessité d'inclure une mémoire flash pour le stockage est également éliminée. rendrait le Raspberry Pi plus cher. Vous devez acheter la carte SD séparément.

Cependant, il faut dire que dans le Raspberry Pi 3, un support expérimental a été ajouté pour démarrer à partir d'un support USB qui doit être explicitement activé et ne peut pas être désactivé. Ceci est inclus dans le firmware intégré du SoC de la nouvelle version, mais c'était un peu plus compliqué, c'est probablement pourquoi ils ont initialement décidé de commencer par les choses simples et d'utiliser le démarrage uniquement à partir de cartes mémoire SD.

Qu'est-ce que le Raspberry Pi utilisait à la place ?

Puissance Rasbperry Pi 4

Le Raspberry Pi n'a pas de BIOS ou d'UEFI au sens du monde PC, par exemple, mais il a un micrologiciel à source fermée dans le SoC comme je l'ai mentionné ci-dessus. Cette puce est conçue par la société Broadcom, qui fournit les BCM à ces cartes Raspberry Pi Foundation.

Dans le SoC (système sur puce) Il intègre un processeur ARM Cortex-A Series, un GPU VideoCore, un DSP pour le traitement du signal numérique, une mémoire SDRAM partagée par le CPU et le GPU, et des contrôleurs tels que USB, etc. De plus, il comprend également une mémoire ROM dans laquelle le firmware dont nous parlons est intégré et qui est nécessaire au démarrage.

procédure de démarrage

Les suivantes qui suit ce firmware sont :

  1. Ce firmware prend en charge démarrer le chargeur de démarrage du système d'exploitation qui se trouve sur la carte SD. Comme vous le savez, le chargeur de démarrage monte la partition FAT32 de la carte mémoire SD et passe à la deuxième étape de démarrage, qui est programmée dans le SoC et ne peut pas être modifiée.
  2. Dans un deuxième temps, un fichier appelé bootcode.bin, dans lequel le micrologiciel GPU est préparé et démarré. Ce fichier ne peut être stocké que sur la carte SD, donc la priorité de démarrage ne peut pas être modifiée comme dans un BIOS/UEFI conventionnel d'un PC, et il ne démarrera qu'à partir de là. Cependant, comme je l'ai dit, sur le Pi 3, la possibilité de démarrer à partir de l'USB a également été ajoutée à titre expérimental.
  3. Vient ensuite une troisième étape dans laquelle on utilise le fichier start.elf, qui démarre le CPU, et un fichier appelé fixup.dat, qui est utilisé pour créer la partition nécessaire dans la SDRAM afin qu'elle puisse commencer à être utilisée par le CPU et le GPU.
  4. Enfin, le code utilisateur est exécuté, qui sont généralement les binaires exécutables ou les images du Noyau Linux, comme kernel.img, ou d'autres systèmes d'exploitation pris en charge par le Raspberry Pi, et c'est ainsi que le système d'exploitation démarre pour que vous puissiez l'utiliser...

Comme vous l'avez vu, c'est un processus simple, mais quelque peu étrange si on le compare avec un PC ou d'autres ordinateurs. Et c'est que, dans le cas du Raspberry Pi, au lieu de démarrer le CPU, comme dans d'autres cas, Le GPU démarre en premier. En fait, ce GPU Broadcomo sera chargé d'exécuter une sorte de système d'exploitation embarqué dans le SoC très simple, mais nécessaire pour fonctionner. Il est connu sous le nom de VCOS (Video Core Operating System) et il communiquera avec Linux. C'est très rare, mais la vérité est que le GPU du Pi n'est pas seulement en charge des graphismes et du démarrage, il est également en charge de contrôler l'horloge et l'audio du système.

En principe, cela dit, il semble que nous ne puissions pas faire grand-chose pour modifier la configuration de démarrageMais la vérité est que ce n'est pas tout à fait comme ça. Et c'est qu'il y a un fichier appelé config.txt qui se trouve dans le répertoire /boot/ du système et s'il est ouvert avec un éditeur de texte, son contenu peut être facilement modifié pour modifier le démarrage et le configurer avec certains paramètres .

cette fichier config.txt il sera lu par le GPU après le démarrage du noyau ARM et il contient des instructions permettant au SoC de savoir quoi faire lors du démarrage du système. Par exemple, nous pouvons y modifier la mémoire dédiée, le rafraîchissement de la mémoire, désactiver l'accès au cache L2, modifier la configuration CMA, activer ou désactiver la LED de la caméra, modifier les options du mode vidéo, les codecs, certaines options de démarrage, l'overclocking, etc.

Ce fichier a une la syntaxe assez particulier, il faut donc le respecter pour éviter les problèmes au démarrage. Et si vous voulez plus d'informations à ce sujet, vous pouvez lire le wiki que je vous laisse dans ce lien.

Modifier la priorité de démarrage sur le Raspberry Pi

NOOBS config.txt

Lorsque vous modifiez l'ordre ou la priorité de démarrage sur un PC, tout est très simple, il vous suffit d'entrer dans le BIOS/UEFI, et dans l'onglet Boot vous pouvez trouver les paramètres que vous pouvez modifier pour démarrer à partir du disque dur, un support optique , USB, réseau, etc. En échange, sur le Raspberry Pi ce n'est pas si facile. Par défaut, il démarrera toujours le système d'exploitation à partir de la carte mémoire SD insérée dans le SBC. En fait, même après la version 3, si une carte SD et une clé USB sont insérées, le système démarrera toujours à partir de la SD en premier. Si la SD est retirée et qu'il ne reste que l'USB, cela se fera via l'USB.

Mais cet ordre peut être modifié. pour cela il faut commencer raspbian, par exemple, et procédez comme suit :

  • Ouvrez la configuration de Raspberry Pi avec la commande :
sudo raspi-config
  • Allez dans la section "Options avancées". (attention, le menu est en anglais)
  • Ensuite, dans cette section, appuyez sur ENTER sur l'option "Boot Order".
  • Vous devriez maintenant voir trois options différentes parmi lesquelles choisir :
    • Démarrage de la carte SD- Par défaut, cette option est déjà activée sur votre appareil Raspberry Pi et si vous insérez simultanément une carte SD et une clé USB, le système utilisera la carte SD comme option de démarrage par défaut, sauf si vous la retirez.
    • démarrage usb: Si vous souhaitez utiliser USB comme périphérique principal pour le démarrage, vous pouvez sélectionner cette option, qui fonctionne lorsqu'un périphérique USB est inséré dans le Raspberry Pi. Sinon, vous ne devez pas insérer de carte SD pour démarrer le système.
    • démarrage réseau: Cette option de démarrage est utile si votre carte SD Raspberry Pi ne fonctionne pas pour une raison quelconque ou s'il y a un problème avec votre système d'exploitation. Dans ce cas, il utilisera l'outil Imager pour réinstaller le système sur la carte SD.

Une fois que vous avez terminé, vous pouvez redémarrer le raspberry pi pour appliquer les changements...

Diagnostiquer les problèmes de Raspberry Pi (POST)

Enfin, vous saurez que dans un BIOS/UEFI il y a une étape appelée POST qui est réalisée avant le démarrage du système d'exploitation et qui va vérifier l'état des différents composants. Si tout est OK, il démarrera le système d'exploitation. Mais s'il détecte un problème, il s'arrête et affiche un message d'erreur à l'écran ou émet un code sonore pour identifier le problème.

Cela sur le Raspberry Pi n'existe pas non plus. Cependant, le micrologiciel SoC a une méthode pour essayer de signaler les problèmes qui peuvent survenir pour un diagnostic facile. Et c'est grâce à sa LED d'alimentation. Par exemple, pour le Raspberry Pi 4, les codes lumineux que la LED émet pour signaler des problèmes sont :

longs clignotements clignotements courts Statut
0 3 Panne générale au démarrage
0 4 start*.elf introuvable
0 7 Image du noyau introuvable
0 8 Échec de la SDRAM
0 9 SDRAM insuffisante
0 10 à l'état ARRÊT
2 1 La partition n'est pas FAT (non supportée)
2 2 Impossible de lire la partition
2 3 partition étendue non FAT
2 4 Le hachage ou la signature ne correspondent pas
3 1 Erreur SPI-EEPROM
3 2 SPI EEPROM protégé en écriture
3 3 Erreur I2C
4 4 Type de carte non pris en charge
4 5 erreur fatale du firmware
4 6 Raté de type A
4 7 Ratés d'allumage de type B

Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.