Fedora Linux 40 Officially Released
Read more of this story at Slashdot.
Read more of this story at Slashdot.
Minimachines.net en partenariat avec TopAchat.com
OpenWRT One est la suite logique d’un projet porté par des programmeurs chevronnés. Il s’agit d’un écrin matériel destiné à recevoir la partie logicielle qu’est OpenWRT.
Sous ce nom étrange d’OpenWRT One se matérialisent en réalité deux projets. D’abord un projet logiciel très complet qui existe depuis des années qui est OpenWRT. Pour résumer simplement, il s’agit d’une distribution Linux extrêmement spécialisée et construite pour piloter des appareils spécifiques. Des routeurs dont ils vont remplacer le système originel pour une solution souvent plus compétente et surtout moins propriétaire. Une solution mise à jour de manière régulière et qui corrige des failles dont certains fabricants se moquent rapidement lorsqu’ils sortent les « vieilles » gammes de routeurs de leurs catalogues.
OpenWRT est libre, gratuit et s’appuie sur une architecture malléable pour s’adapter aux différents matériels rencontrés dans les routeurs. C’est un travail exceptionnel, encore une fois porté par une poignée de volontaires, qui a su libérer des centaines d’appareils de dizaines de marques différents. D’ailleurs si vous voulez savoir si votre materiel est compatible avec OpenWRT, une base de données regroupe l’ensemble des routeurs compatibles.
OpenWRT One
Le travail mené par OpenWRT est donc toujours le même depuis des années. On prend un materiel existant, un routeur la plupart du temps, parfois des choses un peu plus exotiques. Puis on l’analyse pour comprendre comment il fonctionne et enfin on implémente une image du système Linux pour coller à ses compétences afin de lui porter la distribution la plus adaptée à ses capacités. Son SoC est analysé, sa mémoire vive mais également les puces qui gèrent ses réseaux. C’est un travail de haute couture qui est probablement ingrat, enrichissant mais aussi frustrant. Frustrant car au delà de l’excitation liée au fait d’arriver à ses fins, il y a également la découverte d’un materiel parfois mal calibré, mal développé ou tout simplement pensé pour être limité dans ses capacités. Certaines marques fabriquent quasiment la même électronique pour toute leur gamme mais limitent artificiellement les capacités de certains produits en désactivant des fonctions.
C’est probablement de cette frustration qu’est née l’idée OpenWRT One. Un materiel conçu en amont pour coller aux besoins de la partie logicielle. Construit en offrant à la marque Banana Pi un cahier des charges des besoins, cette carte mère est un prototype de ce premier materiel censé devenir le routeur par excellence. On y retrouve un SoC MediaTek MT7981B sous double cœur ARM Cortex-a53 cadencé à 1.3 GHz accompagné par 1 Go de mémoire vive DDR4 et un stockage de type SPI NAND de 128 Mo. 4 Mo de stockage supplémentaire protégés sont également intégrés comme sauvegarde du système et enfin un port M.2 2230/2242 NVMe PCIe 2 X1 est disponible pour ajouter un stockage externe. On retrouve évidemment un support de pile pour l’horloge interne et toute une connectique dédiée au travail de routeur.
L’OpenWRT One présenté propose ainsi un USB 2.0 Type-A et un port d’extension mikroBUS ouvrant la voie à énormément de possibilités techniques. La partie réseau a proprement parler comprend deux ports Ethernet. Le premier en Gigabit classique et le second en 2.5 Gigabit. Un SoC Mediatek MT7976C prend en charge la partie Wi-Fi6 du dispositif. On peut supposer que l’ensemble de ces puces a été choisi par les deux parties que sont les développeurs d’OpenWRT et Banana Pi pour leurs comptabilité avec le projet.
Sur les 14.8 cm de large et 10.1 cm de haut de la carte, on note la présence d’un port USB Type-C pour piloter le système embarqué et le programmer ainsi que des boutons spécifiquement conçus pour les développeurs et les mises à jour. On peut ainsi retrouver des boutons Reset et d’autres programmables. Un interrupteur pour distinguer les stockages internes est également présent pour faciliter les mises à jour. L’alimentation est assuré par une entrée 12 volts et une possibilité d’utilisation en Power over Ethernet via un module optionnel est également possible.
Pas d’informations techniques plus détaillées sur un produit plus « classique » avec un enrobage qu’on jugera plus consensuel… On imagine qu’il sera possible de trouver rapidement des plans pour imprimer un boitier en 3D. Le prix de la carte devrait se situer sous les 100$. C’est plus cher qu’un routeur classique de grande marque mais l’objectif ici n’et pas spécialement de leur faire concurrence. Il sera toujours plus rentable d’acheter ou de récupérer un routeur fabriqué en masse par un fabricant tiers et de lui injecter OpenWRT que d’acheter l’OpenWRT One pour de simples raisons d’échelles commerciales. Mais les utilisateurs aguerris, programmeurs et bidouilleurs en tous genres seront probablement d’avoir un outil qui servira a accueillir du mieux possible la suite Linux plutôt que de devoir la contorsionner pour la faire rentrer dans un materiel pas prévu pour elle.
On note au passage l’excellent opération que ce produit représente pour Mediatek, deux puces ont été retenues ici. En suivant les recommandations proposées par ce prototype, la marque peut établir de son côté un cahier des charges pour que ses futurs clients puissent construire des routeurs commerciaux compatibles du mieux possible avec OpenWRT.
Source : CNX Software
OpenWRT One : BananaPi dévoile un prototype de routeur © MiniMachines.net. 2024.
Read more of this story at Slashdot.
Il y a quelques années, je vous avais présenté TuxMake, un utilitaire pour faciliter la (cross-)compilation du noyau Linux supportant une grande variété de toolchains différentes : TuxMake et le noyau Linux.
TuxMake facilitant la compilation du noyau Linux, nous nous sommes alors attaqués à rendre l’exécution de ces noyaux plus aisée : ainsi est né TuxRun.
TuxRun propose une interface en ligne de commande simple pour exécuter un noyau dans QEMU. TuxRun se charge de fournir un environnement suffisant pour démarrer le noyau avec QEMU.
tuxrun --device qemu-arm64 \
--kernel https://example.com/arm64/Image
TuxRun va alors télécharger le noyau et un système de fichier compatible avec ARM64 puis lancer qemu-system-arm64 avec les bons arguments et afficher les logs du boot.
La ligne de commande de qemu générée par TuxRun est la suivante :
/usr/bin/qemu-system-aarch64 \
-cpu max,pauth-impdef=on \
-machine virt,virtualization=on,gic-version=3,mte=on \
-nographic -nic none -m 4G -monitor none -no-reboot -smp 2 \
-kernel /.../Image \
-append "console=ttyAMA0,115200 rootwait root=/dev/vda debug verbose console_msg_format=syslog systemd.log_level=warning earlycon" \
-drive file=/.../rootfs.ext4,if=none,format=raw,id=hd0 \
-device virtio-blk-device,drive=hd0
Il est également possible de lancer une suite de tests directement depuis la ligne de commande :
tuxrun --device qemu-arm64 \
--kernel https://example.com/arm64/Image \
--tests ltp-smoke
Les résultats de la suite de test seront analysés par TuxRun et la valeur de retour de TuxRun sera 0 uniquement si la suite de tests passe intégralement. Ceci permet d’utiliser TuxRun pour valider qu’une suite de tests donnée fonctionne toujours correctement sur un nouveau noyau.
Grâce à QEMU, TuxRun supporte de nombreuses architectures:
- ARM: v5/v7/v7be/64/64be
- Intel/AMD: i386/x86_64
- MIPS: 32/32el/64/64el
- PPC: 32/64/64le
- RISCV: 32/64
- sh4, sparc64, …
La liste complète est disponible dans la documentation.
Il est également possible d’utiliser FVP, le simulateur de ARM pour simuler un processeur ARMv9. FVP est un simulateur bien plus précis que QEMU au prix d’un temps d’exécution bien supérieur.
FVP permettant de configurer et simuler de nombreux composants du processeur, TuxRun propose une configuration permettant de démarrer et tester Linux dans un temps raisonnable.
tuxrun --device fvp-aemva \
--kernel https://example.com/arm64/Image \
--tests ltp-smoke \
--image tuxrun:fvp
ARM ne permettant pas (pour le moment) de redistribuer les binaires FVP, il faut construire localement le container tuxrun:fvp.
Par défaut, TuxRun télécharge et utilise un système de fichier compatible avec l’architecture cible. TuxRun fournit donc 20 systèmes de fichiers différents, un pour chaque architecture disponible.
Ces systèmes de fichiers sont basés sur buildroot et comportent les outils nécessaires pour faire tourner la majorité des suites de tests supportés par TuxRun. La liste complète est disponible dans la documentation.
Il est également possible d’utiliser un autre système de fichiers :
tuxrun --device qemu-arm64 \
--kernel https://example.com/Image \
--rootfs https://example.com/rootfs.ext4.zst
TuxRun télécharge et utilise un container que nous maintenons. Ce container inclut l’ensemble des binaires nécessaires ainsi que QEMU. Par défaut, TuxRun utilise toujours la dernière version du container disponible.
Il est cependant possible de spécifier une version particulière afin de reproduire plus facilement une erreur. Les nouvelles versions de QEMU introduisent quelques fois des régressions dans les suites de tests. Il est alors nécessaire d’utiliser exactement la même image pour reproduire le problème.
TuxRun est utilisé, via tuxsuite notre service de compilation et de test dans le cloud, par le projet LKFT (Linux Kernel Functional Testing) de Linaro. Lorsqu’une régression est détectée, il suffit de fournir la ligne de commande TuxRun pointant sur les artefacts utilisés pour pouvoir reproduire le problème.
Les développeurs du noyau sont alors à même de reproduire et de corriger les régressions détectées par LKFT. TuxRun simplifie ainsi énormément la reproduction du test.
Un exemple parmi tant d’autres : selftests: sigaltstack: sas…
TuxRun étant un programme Python, il est possible de l’installer depuis pypi :
python3 -m pip install tuxrun
Nous fournissons également un paquet Debian, et un rpm.
Dans un prochain article, je vous montrerai comment combiner TuxMake et TuxRun pour automatiquement trouver le commit responsable de la régression dans le noyau.
Commentaires : voir le flux Atom ouvrir dans le navigateur
Read more of this story at Slashdot.