Follow

Juste réutiliser des paquets précompilés pour se simplifier la vie n'est même plus possible parce 90% du temps il sont fournis avec un hook systemd ou même juste l'intégration de dbus qui nécessite... libsystemd...

Ceux qui se plaignaient de la possible hégémonie de ce système d'init il y a quelques années avaient sans doute raison.

On est presque obligé aujourd'hui de se taper la lenteur (et la lourdeur) de systemd pour un système embarqué qu'on aimerait juste faire fonctionner sans prise de tête.

(2/2)

@talone Tu as des exemples concrets de logiciels qui sont dans ce cas ? Utiliser des paquets précompilés quand on fait de l'embarqué, ça me parait louche. Yocto rulez?

@MicroJoe : le cas actuel c'est wpa_supplicant.

Bien que ce ne soit pas hyper-compliqué à juste compiler à la main, on commence à avoir quelques dépendances.

Pour un autre exemple, il y a OpenCV, qui nécessite trouzemille dépendances, et donc bien sûr il y a un libdbus quelque part.

Alors oui ça peut paraître louche, mais on gagnerait un temps fou à ne pas tout recompiler ; bref, c'est le but d'avoir des dépôts de paquets...

Jamais tenté Yocto, mais Buildroot ne répond que partiellement à mes besoins.

@MicroJoe : Le besoin principal étant que je veux qu'une personne débutant branche la carte sur son PC, se connecte en SSH et puisse installer des paquets directement, sans passer par l'étape compilation.

@talone Ça me fait plus penser à une distribution type Raspian ou archlinux-arm plutôt qu'à un système embarqué.

La distribution Yocto de référence (poky) n'utilise pas systemd mais sysvinit par défaut, ainsi que busybox, ce qui est assez primitif mais c'est ce que l'on cherche pour prendre le moins de place et de temps possible — je me souviens qu'en activant systemd le rootfs avait environ doublé de taille à cause de ce binaire énorme par rapport à tout le reste.

Après il est vrai que ce genre de plateforme que l'on retrouve un peu partout dans le monde industriel et professionnel est assez à l'opposé d'une distribution pour débutant avec "apt update"".

@MicroJoe : Oui, une Arch ARM est adaptée, mais bien trop lente à booter...

@talone Tu te bases sur quoi du coup pour avoir un temps de boot plus rapide que archlinuxarm ? Buildroot avec busybox et sysvinit ?

@MicroJoe : Non, je compile moi-même noyau + Busybox pour le moment, à partir d'un gros Makefile. J'ai eu des problèmes avec Buildroot dans ce cas précis, donc j'ai un truc un peu moche qui compile depuis la toolchain officielle Arch pour pouvoir leur chopper certains paquets.

@talone Ah, sympa, un peu un Linux From Scratch de l'embarqué !

Je viens de filmer le temps de démarrage de ma carte actuelle avec Yocto et je suis à 20s, mais comme tu peux le voir je perd pas mal de temps sur le démarrage du lien Ethernet (IPv6 not ready) avant que le prompt arrive.

@MicroJoe : J'arrive à 6 secondes perso, et je ne pense pas qu'il soit honnêtement possible de faire moins de 5 sec. Pas de problème avec le lien Ethernet parce que je n'ouvre que du WiFi.

@talone Impressionnant ! Je perds 2s dans uboot car il attend que j'appuie sur une touche, mais sinon je ne vois pas trop où gagner du temps. Peut-être que mon CPU ou ma carte SD sont trop faibles, c'est quoi ta carte ?

Et sinon si tu l'as loupé, mon dernier article sur comment utiliser un écran LCD avec le kernel et le driver charlcd sur ma NanoPi Neo : blog.microjoe.org/2019/hd44780

@MicroJoe : Ton U-Boot m'a l'air assez lent, même si on omet les 2s de sélection. A priori si tu le recompile à la main on perd déjà bien 5s. Ensuite, il y a ton lien Ethernet, et puis la dernière étape pourrait être de virer les trucs par défaut du noyau (tout ce qui est chargé et non-indispensable, ou qui pourrait être chargé ultérieurement par des modules).

@talone Tout est compilé from scratch avec Yocto, mais j'utilise une surcouche fournie par linux-sunxi qui ne doit pas être très optimisée.

Par contre c'est peut-être les modules, moi j'ai tout mis en monolithique car j'ai toujours fait comme ça. Mais il faudrait comparer sur une carte comparable, mon petit Allwinner H3 et ses 256 Mo de RAM sont peut-être en cause également.

@MicroJoe : PocketBeagle de mon côté, donc on tape plutôt dans le Giga de RAM si je me souvient bien.

Sign in to participate in the conversation
Cybrespace

Cybrespace is an instance of Mastodon, a social network based on open web protocols and free, open-source software. It is decentralized like e-mail.