06 mai 2012

Pandaboard / Pandaboard ES : suivi du kernel 3.4

Logo Pandaboard

Le kernel 3.4 est sorti (le 3.4.1 est même déjà disponible à l'heure où vous lisez ces lignes). Même si elle n'est pas encore disponible sous OpenWRT[1], cette version propose des fonctionnalités très, très importantes pour les cartes Pandaboard (et sa soeur, la Pandaboard ES). Petit florilège des mises à jour.

Note

[1] ça ne saurait tarder, tout de même...

Changements sur le code générique

Dans la liste ci-dessous, ne voyez pas des fonctionnalités très importantes ou des changements radicaux. C'est une liste que j'ai compilé, donc attendez vous surtout à y trouver des points qui ont retenu mon attention.

Scheduler

  • Le commit sched: Ensure cpu_power periodic update (4ec4412e1e91f44a3dcb97b6c9172a13fc78bac9) devrait corriger un certain nombre de problèmes de type "stalled CPU" en NO_HZ.
  • certains commits concernant le patch PREEMPT_RT ont été incorporés. Ces commits devraient encore simplifier l'écriture et la compréhension du code kernel temps-réel. Le patch 3.4-rt8 est d'ailleurs sorti récemment (cf. cette annonce) et histoire de confirmer ce que je viens de dire, fait 1000 lignes de moins que le précédent 3.2.18-rt29.
  • de nombreux petits problèmes ont été corrigés dans le load balancer (pour les kernels SMP, bien évidemment). Normallement, ça devrait améliorer le comportement du scheduler.

Drivers / core

  • un nouveau type de bus a été ajouté - le bus SoC. L'idée est que tous les devices situés sur un SoC s'enregistrent dans le ce bus, ce qui devrait simplifier l'implémentation de drivers pour certains SoC. Les bus peuvent être énumérés en user space en accédant à /sys/devices/socX. L'option CONFIG_BUS_SOC n'est pour l'instant disponible que pour la plateforme arm-ux500, mais il est plus que probable que la solution s'étendent dans les mois à venir.
  • si un driver n'obtiens pas les ressources nécessaires à son fonctionnement, le kernel peut décider de tenter de le relancer plus tard.

Drivers / staging

  • les drivers zram (ramfs compressé) et zcache (cache de fichier compressé) continuent d'évoluer. A ce rythme, ils vont bientôt être utilisable pour le grand public et sortir de la zone staging.

Changements sur le code Pandaboard

Les changements listés ci-dessous sont plus étoffés, car ils concernent directement les cartes Pandaboard - soit qu'ils corrigent des bugs, soit qu'ils ajoutent de nouvelles fonctionnalités.

Remoteproc et rpmsg

Comme le dit la documentation associée

Modern SoCs typically have heterogeneous remote processor devices in asymmetric multiprocessing (AMP) configurations, which may be running different instances of operating system, whether it's Linux or any other flavor of real-time OS.
(...)
The remoteproc framework allows different platforms/architectures to control (power on, load firmware, power off) those remote processors while abstracting the hardware differences, so the entire driver doesn't need to be duplicated.

En gros, le patch remoteproc+rpmsg permet d'initialiser et de communiquer avec certains blocs fonctionnels quit sont souvent intégrés aux microprocesseurs ARM ou MIPS (on parle de SoC, ou System on a Chip).

La première bonne nouvelle, c'est que le développement de remoteproc a principalement été fait pour supporter les blocs fonctionnels de l'OMAP4 - le processeur de la Pandaboard. Certains drivers. Les coeurs ciblés sont les suivants :

  • le coeur Tesla (DSP ; cf. RPmsg Tesla sur OMAPpedia).
  • le coeur Ducati (compression / décompression h.264 ; cf. Ducati for Dummies sur OMAPpedia).

Pour plus d'informations, cf. cette page sur OMAPpedia.

OMAP DSS2

Le driver DSS2 a pour but de remplacer le driver omapfb[1].

OMAP DRM

Le module kernel omapdrm.ko implémente l'interface DRI (Direct Rendering Infrastructure) pour les SoC OMAP3 et OMAP4. Le driver prend en charge l'initialisation du coeur graphique SGX540. Il a été introduit en staging dans la version 3.3 du kernel Linux[2]

Ce driver est nécessaire pour espérer faire fonctionner l'accélération 3D sur le chipset graphique.

Histoire d'être gentil

Et parce que ce billet, court, est plus informatif que formateur, voici quelques photos du casing réalisé en carton plume 5 mm qui protège aujourd'hui ma Pandaboard. Le design est relativement simple, les trous sont un peu gros (mais c'est nécessaire dans certains cas, notamment pour s'adapter au câble série que j'utilise), rien n'est collé (ce qui me permet de tout démonter ; l'ensemble se tient tout de même correctement, grâce aux propriétés du carton plume).

Les différentes parties

20120525_200117.jpg

Le tout a été découpé avec un couteau de précision standard, muni de lames neuves (le carton plume est très sensible à ce genre de détails). Les créneaux font 10x5 mm. Il m'a fallut environ une heure pour tout découper, en faisant très attention à ne pas me tromper.

Casing partiellement monté, avec la Pandaboard ES à l'intérieur

20120525_200219.jpg

L'assemblage du tout prends environ 30 secondes, de même que l'opération inverse. Il est primordial de faire attention à ne pas plier le carton plume (ça casserai la mousse située entre les deux feuilles externes).

Casing intégralement monté, Pandaboard branchée

20120525_200403.jpg

Ca n'empêche pas qu'il faille manipuler l'ensemble avec précaution ; mais au moins, mes doigts trop électriques ne touchent plus les composants sensibles de la carte !

Notes

[1] cf. Documentation/arm/OMAP/DSS

[2] accessoirement, c'est la raison pour laquelle j'ai décidé d'utiliser la version trunk de OpenWRT, qui supporte de kernel pour la cible Pandaboard)

Commentaires

1. Le dimanche, juin 24 2012, 00:23 par BRULE Herman

Moi je vais recevoir mon raspberry pi.

Moi je vais m'en servir comme de routeur, media center + console avec film/jeux sur mon pc, via un partage de fichiers samba.

M'aurai interressé si il y avais un port SATA, pour remplacer mon ordinateur, pour mon SSD. Ou 2, SSD + HDD.
La prochaine génération de ARM promet d’être économe en énergie à vide, et performant. Si en plus l'openGL ES 3, voir 4 sorte, que c'est supporté par linux, ...

2. Le mardi, juin 26 2012, 14:45 par Emmanuel Deloget

Hello !

Bonne chance avec la RPi ! Je vais moi-même en commander une - parce que cette petite bombe me fait kiffer grave :)

J'ai peur qu'OpenGL 3 ou 4 (il n'y a pas de version 3 ou 4 pour OpenGL ES) sur ARM, ça ne soit pas pour tout de suite - je peux me tromper, mais ces deux versions ont un fonctionnement différent de OpenGL ES 2. OpenGL 3 est théoriquement possible (les chipsets SGX intègrent les geometry shaders), mais assez peu probables, compte tenu de la puissance de calcul nécessaire à cette étape (le nombre de coeur des processeurs graphiques embarqué est encore trop faible ; trop peu de coeur, et les performances graphiques vont s'en ressentir ; du coup, on préfère faire travailler ces coeurs au rendu direct (vertex shader + pixel shader) plutôt qu'à des tâches trop consommatrices comme la tesselation ou la création de géométrie).

Ceci dit, j'espère que tu t'amuseras autant que moi à tirer de ces petites machine la quintessence de leurs possibilités !

3. Le lundi, juillet 23 2012, 21:15 par clovis

Bon j'ai trouvé encore moins cher :D

La boite de la panda, ca marche AU POIL !! héhéhé :)

2 ou 3 petits coups de cutter ... 4 chevilles découpées pour surélever les pieds et ca roule ! :p

4. Le lundi, août 13 2012, 15:21 par cthuun

Bonjour,
J'ai aussi une PandaBoard ES, cependant je n'arrive pas à faire fonctionner le module omapdrm. Avez vous de plus amples informations ?
Merci d'avance.

5. Le lundi, août 13 2012, 16:04 par Emmanuel Deloget

Le module omapdrm est assez complexe à faire marcher correctement.

Toutefois, la procédure expliquée dans http://elinux.org/Panda_How_to_kern... fonctionne a peu près. Toutefois, il y a beaucoup, beaucoup de modifications dans ce driver, et du coup, l'interface user n'est pas vraiment stabilisée. Selon le kernel utilisé, la procédure sus-citée peut ne pas fonctionner.

A titre indicatif, GeekBoX propose un version complète - avec support OpenGL et support de la vidéo HD - depuis peu. Ca vaut le coup de regarde ce qu'ils font (je pensent qu'ils passent par les drivers blob sgx, et non pas par omapdrm ; mais il faudrait quand même vérifier).

6. Le mardi, octobre 23 2012, 13:04 par clovis

Geexbox vient de sortir sa version 3 avec support de la pandaboard :)

7. Le mardi, décembre 8 2015, 19:24 par doc

bonjour,
je suis maquettiste et j'utilise souvent le carton plume. ledit carton plume est composé de papier et de polystyrène. ces deux composant sont TRÈS TRÈS INFLAMMABLE!!!!!! et vous y mettez des composants Electrique qui chauffe en cour d'utilisation..... vous voulez cramer votre appartement

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet