NanoBSD sur SOC ARMv7

NanoBSD est un outil inclus dans les sources de FreeBSD qui permet de créer des images systèmes réduites 1 pour des applications embarquées. Il survit aux défunts picobsd (supprimé en 2019) et tinybsd (supprimé en 2021). Même si le système est « réduit », c’est un vrai FreeBSD: on peut donc y installer n’importe quel logiciel issu des ports. Pour simplifier, c’est l’équivalent de buildroot ou de Yocto pour Linux.

Je l’utilise depuis la version 8.0 sur i686 ou amd64 (x86_64) pour toutes sortes d’applications, mais j’en ai eu besoin sur Nanopi Neo (soc ARMv7) pour un serveur Nginx.

Sur ARMv7, le boot se fait, comme pour Linux, via U-boot. Seulement u-boot ne prend pas en charge directement FreeBSD. Jusqu’à FreeBSD 12, sur ARMv6/7, u-boot exécutait un second programme nommé ubldr qui chargeait le noyau en mémoire. Depuis la version 13, ubldr n’est plus supporté. Il est remplacé par UEFI comme sur AArch64. Le programme s’appelle loader_lua.efi et doit être copié sur la partition EFi dans le fichier EFI/BOOT/bootarm.efi. Son fichier de configuration est /EFI/FREEBSD/loader.env. Il est nécessaire d’y préciser la partition racine contenant le noyau.

# cat /boot/EFI/FREEBSD/loader.env
rootdev=disk0s3:

Vous trouverez un exemple de configuration générique sur github. A noter qu’à ce jour, la construction sur ARMv7 nécessite les patchs suivants:

La variable « NANO_PACKAGES » permet d’ajouter des packages à la construction de l’image, par exemple:

NANO_LOCAL_PACKAGES="nginx-lite"

La construction de l’image prend un certain temps: environ 1 heure avec un i4590 et 4 Go de RAM. Sur des machines récentes, on doit descendre sous les 15 minutes.

Lien(s)

Notes

1 : On peut facilement le faire tenir (sans package additionnel) dans moins de 90Mo (kernel + userland).

2 thoughts on “NanoBSD sur SOC ARMv7

  1. Bonjour,
    J’ai un Galaxy A15 5G, j’aurai voulu savoir s’il était possible de le hacker pour y mettre nanoBSD et gnome en tactile.

    J’ai de bonnes connaissances en informatique et vue la situation actuelle et les africains qui ne cesse de nous cracker je cherche une solution BSD de secours

    D’avance merci

    • Bonjour,
      Merci beaucoup pour votre intérêt.
      Installer FreeBSD (nanoBSD) sur un smartphone est un vrai challenge en soi. Sans parler des problèmes de compatibilité matérielle (modem 3/4/5G, Framebuffer, USB, écran tactile, gestion de la batterie, etc..), vous allez vous heurter à des problèmes pratiques: Quelle application utiliser pour appeler un correspondant ou recevoir des SMS.
      NanoBSD, sans être élitiste, est destiné a des applications embarquées où le développeur et/ou l’intégrateur maitrise la disponibilité de tous les composants logiciels.
      Je reconnais que le manque de choix dans le domaine des smartphones est un vrai problème (Android vs iOS), mais dans votre cas, je vous conseille de vous tourner vers LineageOS qui est une version d’Android indépendante de toute organisation commerciale.
      Luc

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>