Blobless Linux sur Raspberry Pi
Bien qu'il y ait eu une brève interruption dans le développement du microprogramme ouvert pour Raspberry Pi, nous pouvons maintenant démarrer Linux directement à partir de bootcode.bin (notez, cela nécessite un initrd intégré dans zImage car il ya encore des problèmes avec eMMC fonctionnant de façon fiable au démarrage ). Nous sommes également en train d'enquêter et de nous rapprocher de ce qui suit: USB PHY: Le pilote préliminaire pour l'initialisation USB PHY est prêt, mais l'USB lui-même dépend du fonctionnement du moteur DMA et nous le voyons encore. Pilotes de gestion centralisée de l'alimentation et de l'horloge dans le microprogramme (déjà utilisé pour BCM2708PowerDomainARM et BCM2708PowerDomainImage) EMMC (SDHOST) fiabilité (à l'heure actuelle, il semble avoir 1 sur 100 taux d'échec, nécessitant un redémarrage). EMMC (SDHOST) pour le noyau Linux. Le coffre actuel du rpi-open-firmware est capable de démarrer une image minimale du noyau Linux, vous aurez besoin de cmdline.txt, rpi.dtb (arborescence de périphériques compilés pour votre modèle rPi) et zImage sur votre partition d'amorçage. Bin réside). Vous êtes encouragé à construire un noyau minimal et à l'essayer (un bon point de départ est ce fichier .config que vous pourriez utiliser pour votre compilation du noyau en utilisant le noyau Linux le plus récent, qui inclut également les commandes printk correctement configurées). Peu de mises en garde: Vous devez utiliser le pilote SDHOST et assurez-vous qu'il est dans votre arborescence de périphériques si vous voulez une chance d'eMMC être reconnu au démarrage (pas cela étant donné qu'initrd est actuellement presque nécessaire). En raison des différences de carte mémoire stock Linux ne sera pas actuellement boot sur les modèles rPi1, tout ce qui précède (BCM2709 - rPi2 / BCM2710 - rPi3) devrait être bien cependant. GPIOs travail, eMMC (avec SDHOST pilote) type de travaux, USB, DMA et vidéo choses ne fonctionnent pas encore (comme indiqué ci-dessus, nous travaillons à les élever). Voici un extrait de Linux qui démarre (vous pouvez trouver le journal complet incluant les logs du firmware ici:
[LDR:LoaderImpl]: Jumping to the Linux kernel... Uncompressing Linux... done, booting the kernel. [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Initializing cgroup subsys cpuacct [ 0.000000] Linux version 4.4.31-v7+ (alyssa@debian) (gcc version 6.2.1 20161124 (Debian 6.2.1-5) ) #81 Fri Jan 6 13:44:14 PST 2017 [ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c53c7d [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] Machine model: Raspberry Pi 2 Model B -snip- / # uname -a Linux (none) 4.4.31-v7+ #81 Fri Jan 6 13:44:14 PST 2017 armv7l GNU/Linux