Archives du mot-clé Debian

Réalisation d’une image système pour ARM : U-boot / Linux / Debian

Aujourd’hui, nous allons travailler sur la partie système de notre calculatrice. L’objectif est de pouvoir lancer nos propres logiciels et de proposer suffisamment de souplesse pour que l’utilisateur puisse lui aussi adapter le système à ses besoins.

Depuis le début du projet, nous souhaitions utiliser un noyau Linux. C’est certainement le noyau libre le plus répandu. En choisissant Linux, nous sommes certains de trouver de la documentation et de l’aide en cas de besoin, en particulier lorsqu’il faudra mettre les mains dans le code pour supporter nos propres périphériques ! C’est aussi certainement le noyau qui supporte le plus de fonctionnalités, et le plus de matériels. De plus, le design de notre board est fortement inspiré de celui d’une Olinuxino Micro, qui utilise un SoC iMX.233.  Ce SoC semble bien supporté par Linux, nous espérons donc une mise en place sans surprise du noyau Linux sur notre board.

C’est donc décidé pour le noyau. Nous pourrions ensuite choisir de lancer directement notre émulateur de TI-83, ou un autre logiciel, directement après le boot du noyau Linux. Mais au contraire, l’intérêt de notre matériel est de fournir un système standard, sur lequel l’utilisateur pourra se sentir à l’aise et en terrain connu. Quoi de mieux alors, pour la distribution logiciels, que Debian ? :-) N’importe quel logiciel ou presque, à portée de apt-get !

Il reste une composante importante du système à déterminer, le bootloader. En effet, le mécanisme de boot du SoC ne permet pas d’amorcer directement sur le noyau Linux. Il faut un composant logiciel intermédiaire, légé, qui chargera le noyau Linux en RAM puis l’exécutera. Le bootloader offre aussi de la souplesse pendant la phase de boot : pouvoir charger le noyau depuis le réseau, depuis une clé usb, sur une partition en FAT32 ou en ext4… Ces fonctionnalités peuvent être utiles !

Notre choix se porte sur U-Boot. En effet, U-Boot est également très répandu, en particulier sur le matériel embarqué, plutôt bien documenté et supporte notre board de référence, la Olinuxino Micro.

En résumé, notre système est constitué de trois composantes :

  • U-Boot, le bootloader. Charge le noyau Linux en RAM et l’exécute.
  • Le noyau Linux. Supporte les périphériques présents sur la board.
  • Debian, la distribution logiciels.

Continuer la lecture