Sortie du projet OpenBricks: un framework pour Linux embarqué.

Posté par (page perso) . Modéré par patrick_g.
Tags :
17
19
oct.
2010
Communauté
L'équipe OpenBricks est fière d'annoncer le Day 1 du projet OpenBricks: Embedded Linux Framework. Nouvellement créé par des membres de la distribution multimédia GeeXboX, le projet OpenBricks est un framework orienté entreprise, permettant la création rapide de distributions GNU/Linux spécifiques et personnalisées pour divers appareils, cartes et autres gadgets embarqués. Il propose un kit de développement complet adapté aux systèmes embarqués, permettant le prototypage rapide (ou plus si affinité) de systèmes pour diverses architectures matérielles telles que l'x86, l'ARM, le PowerPC ou encore le MIPS. Même s'il a une orientation « entreprise », le projet OpenBricks se veut complètement libre (OpenSource) et à but non-financier (mais les dons, aides et autres formes de sponsors sont les bienvenus et profitent au développement du projet bien entendu). Son but premier est de permettre la mise à disposition d'une distribution GNU/Linux cohérente, capable de fonctionner sur autant d'architectures, systèmes et périphériques que possible. Autant que faire se peut, le projet repose sur des technologies, protocoles et autres composants OpenSource standardisés afin de permettre la plus grande réutilisation de code déjà existant.

Le projet peut se voir comme une base logicielle sur laquelle vous pouvez ajouter les briques de votre choix afin de construire la distribution Linux spécifique à vos besoins, qu'il s'agisse de construire un lecteur multimédia (Set-Top-Box), une tablette tactile, un serveur de fichiers NAS, un routeur ou quoi que ce soit d'autre. « Porter » sa carte sous Linux et y ajouter vos propres programmes devient alors d'une très grande simplicité et il devient ainsi possible en quelques heures seulement de créer sa propre configuration de distribution.

Le projet se veut comme une extension / réorientation du projet GeeXboX. Fort de huit ans de développement, les auteurs se sont rendus compte que les outils qu'ils avaient créés pouvaient tout à fait être étendus pour créer bien plus de choses que « juste » une distribution multimédia. OpenBricks s'apparente donc à d'autres solutions analogues (telles que OpenEmbedded, Buildroot, OpenWRT...) mais n'est pas nouveau à proprement parler (laissons donc de côté les questions évidentes telles que « pourquoi vouloir réinventer ce qui existe déjà »). Son historique est semblable à celui des autres outils précités, l'implémentation et la philosophie derrière chacun des projets sont cependant très différentes.

OpenBricks est basé sur un ensemble de scripts en shell et un certain nombre de macros permettent d'abstraire un grand nombre de « soucis » bien souvent rencontrés en matière de compilation croisée. Il est globalement très facile de rajouter de nouveaux paquetages (le projet en propose actuellement plus de 400), de définir des dépendances, de la compilation par fonctionnalité (à la Gentoo dirons-nous ...) ou de surcharger des règles déjà existantes. Point suffisamment rare pour être signalé, le projet est fourni avec une documentation complète en version HTML et PDF quant à son utilisation et à sa modification.

OpenBricks gère aujourd'hui de nombreuses architectures et pour chacune, un certain nombre de variantes. La prise en charge de nombreux SoC ARM est de la partie, telles que les ARM9, ARM11 ou encore Cortex-A8 (TI OMAP3) ou Cortex-A9 (TI OMAP4 et nVidia Tegra250). Avec le support ou les sponsors d'industriels à venir (ou pas), davantage de systèmes seront évidemment supportés au fur et à mesure du temps à venir.

Le projet est également une base pour créer sa distribution. En tout logique, le projet GeeXboX continuera d'utiliser cette base, ne devenant alors qu'une configuration (« flavour ») multimédia (comprendre par là que seul un sous-ensemble de paquetages à caractère multimédia sera sélectionné). Il est tout à fait envisageable (soyons francs, souhaité) que d'autres distributions se basent dessus (à caractère réseau ou autre) afin d'enrichir la base et factoriser les efforts.

D'aucuns se demanderont alors peut-être, pourquoi vouloir créer un projet de plus ? Par rapport à ses compétiteurs directs, comme dit précédemment, il s'agit de différence de philosophie. Différents industriels ont tenté de les réutiliser, modifier et personnaliser. Les difficultés et lourdeurs rencontrées ont souvent été remontées.

Pourquoi vouloir créer ce projet alors qu'Android et bientôt MeeGo ravagent tout sur leur passage ? Question légitime, mais parce que justement, tout le monde n'est pas indifférent à cette approche « bulldozer ». Il existe encore de nombreux secteurs et domaines d'applications où les besoins restent spécifiques et où Google n'est pas la solution. Le côté libre de ces distributions n'est pas non plus négligeable et l'on est souvent amené à prendre les choses telles qu'on veut bien nous les fournir sans trop laisser de choix. OpenBricks permet donc une approche plus ouverte. Les composants propriétaires sont bien évidemment disponibles et pris en charge, mais libre à chacun de les utiliser ou non.

La liste des architectures, cartes gérées et autres fonctionnalités disponibles est d'ores et déjà conséquente, mais peut encore s'agrandir. L'aide et le sponsoring de différents fabricants de semi-conducteurs (en terme de carte d'évaluation par exemple) ont été, sont et seront toujours précieux. Toutes ces informations étant, bien entendu, disponibles sur la page principale (en anglais uniquement) du projet.

Plus versatile que GeeXboX, le projet OpenBricks n'en reste qu'une continuité, d'où un changement de nom nécessaire. Plus que jamais, le projet requiert l'aide de tous et toute contribution se veut la bienvenue, qu'il s'agisse de code, d'intégration, de documentation ou autres.
  • # différences ?

    Posté par (page perso) . Évalué à 7.

    J'ai bien compris que ce projet ne part pas de rien. J'ai aussi compris qu'il n'avait pas la même philosophie que les projets similaires. Mais je n'ai pas compris qu'elles étaient ces différences ? Aussi bien buildroot que OE sont utilisés en industries. Quels sont les problèmes bloquants dont parle cette dépêche ? Et surtout, comment sont ils résolus ?

    La dépêche ne m'a pas convaincu à première lecture...
    • [^] # Re: différences ?

      Posté par . Évalué à 2.

      Mêmes questions.

      Buildroot permet déjà de faire les bases de sa mini-distrib pour l'embarqué. Alors, quelles différences ? Et quels interêts à utiliser OpenBricks ?

      Quand je regarde la liste des fonctionnalités, je ne vois rien qui n'existe pas déjà.

      Mais bon, quand j'aurais récupérer ma carte mère, je veux bien tester pour voir ( proc Mips pour une console portable ).
    • [^] # Re: différences ?

      Posté par . Évalué à 1.

      Idem, certains projets ont leurs limites ça aurait été bien de connaître lesquels et quels choix ont été fait pour ne pas avoir les mêmes.

      Certains projets sont bien plus avancés aussi, ou contiennent des briques de bases sans doute intéréssantes à reprendre/étendre, je pense notamment à T2 qui n'est pas cité dans la depeche.
  • # au pluriel, avec un s

    Posté par . Évalué à 3.

    Rien à voir avec les OpenBrick(s) donc... Ces petits matériels qui faisaient des prouesses fût un temps ( https://linuxfr.org//~jcs/7085.html & StoreEver le magasin en ligne permettant d'en acheter [et même des grosses...], aussi http://mail.nexedi.com/mailman/listinfo/openbrick & surtout http://nexedi.org/static/mandrivalinux/SRPMS/ )
    ??

    Question : SoC Arm avec un arm cortex 9. Heu, on peux acheter ça où ? (SoC ça veut bien dire system-on-chip, non ?)

    Question 2 : quel environnement de build utilisez vous ? Bon ok question idiote :) disons plutot "est ce un projet from scratch ou bien en collaboration avec par exemple BuildRoot ? ) En fait, serait il possible de décrire en français en deux mots les avantages de OpenBrick sur BuildRoot ou encore ScratchBox ou encore rraa zut le super mais que pour redhat... comment il se nomme déjà ?) Bref un micro comparatif, avec les avantages de OpenBrick.

    Dans tout les cas, merci (beaucoup) pour cette nouvelle.
    • [^] # Re: au pluriel, avec un s

      Posté par . Évalué à 2.

    • [^] # Re: au pluriel, avec un s

      Posté par . Évalué à 2.

      Réponse concernant l'arm9 :

      http://en.wikipedia.org/wiki/GP2X_Caanoo

      Je l'ai reçue la semaine dernière, c'est vraiment sympa entre autres

      *** pour bidouiller :
      - telnet directement sur le linux inside à travers l'usb ou le wifi (dongle nécessaire)
      - toolchain opensource et disponible pour linux
      - sources du noyau et du bootloader disponibles
      - port usb host, permet de brancher tout et n'importe quoi (modulo la compilation des modules quivontbien), par exemple clavier usb, disque UMS...
      - bon esprit de communauté des développeurs (évolution de la wiz)

      *** pour le retro-gaming :
      - mame
      - snes (haaaa zelda...)

      Le seul point gênant pour moi est l'absence de wifi on-board, c'est dommage de se trimballer un dongle.
    • [^] # Re: au pluriel, avec un s

      Posté par (page perso) . Évalué à 4.


      Question 2 : quel environnement de build utilisez vous ? Bon ok question idiote :) disons plutot "est ce un projet from scratch ou bien en collaboration avec par exemple BuildRoot ? )


      A l'origine le projet a été écrit "from scratch" et pour le plaisir de faire les choses par soi-même par les deux fondateurs du projet GeeXboX (dont l'auteur de la news). Puis le toolchain a été amélioré par beaucoup d'autres contributeurs. Jusqu'à OpenBricks il n'y avait aucune promotion de nos outils. Bien que parfois il y avait quelqu'un qui passait sur notre devel-list pour proposer des patchs parce qu'il utilisait le toolchain à d'autres fin que pour le multimédia par exemple. Un intérêt pour certaines personnes de passer par un toolchain GeeXboX modifié que par un buildroot, etc,... était donc bien réel.
      Personnellement j'ai utilisé le toolchain GeeXboX pour équiper un robot dans un labo. Néanmoins, faisant partie du team c'est "normal" que je ne sois pas passé par un autre outil.

      Un des gros avantages de GeeXboX c'est à mon avis sa simplicité. Sans documentation c'est facile à comprendre comment ça fonctionne. Puis un deuxième point que je considère très important par rapport aux autres solutions c'est qu'il est orienté shell script. Je trouve indigeste les toolchains orientés Makefiles (comme buildroot) ou Bitbake (comme OE). Mais c'est une question de goût je suppose.
  • # Le nom ?

    Posté par (page perso) . Évalué à 6.

    Le nom OpenBricks, c'est pour signaler qu'on peut librement briquer son système ? :-)
  • # turn key linux

    Posté par . Évalué à 1.

    Donc si j'ai bien compris...
    OpenBricks s'il est orienté shell scripts ressemble à Turn Key Linux qui a différents "flavour" appelés Turn Key Patch qui sont un set de shell scripts permettant de transformer une distribution de base en qqch d'autres (eg. une appliance Joomla!)... sauf qu'OpenBricks est orienté embarqué...

    Est-ce que j'ai bien compris ?
  • # ...

    Posté par . Évalué à 2.


    Supported Filesystems
    * EXT 2/3/4
    * JBD
    * ReiserFS
    * JFS
    * XFS
    * GFS2
    * OCFS2
    * FUSE
    * ISO9660 / Joliet / UDF
    * FAT16 / FAT32 / NTFS


    Par de support de fs nand, c'est pratique pour l'embarqué...

    Sinon la liste des fonctionalitées fait vraiment pipo
    Key Features

    * Multi-Cores SMP optimizations.
    * Support for SMT HyperThreading.
    * Hardware Cryptographic Acceleration: SHA1, MD5, AES …

    Ca vient du kernel et ca va dependre du hardware que l'on aura...


    Media Players

    * libplayer Audio/Video abstraction framework
    * FFmpeg
    * MPlayer
    * Xine
    * GStreamer
    * VLC
    * VDR (Video Disk Recorder)
    [...]
    Key Audio/Video Profiles

    * Video Codecs: MPEG 1/2/4, H.264, Theora, VC-1, VP8 …
    * Audio Codecs: MP3, Vorbis, AAC, AC-3, DTS …
    * Protocols: CDDA, DVD, DVB-C/S/T, V4L2, Bluray …
    * Streaming: RTP, RTSP, ASF, MMS, WebM …

    C'est bien de lister ce que supporte les media player...


    Toolchain Features

    * Supported Target Languages: C, C++, Python
    * Complete Cross-Compiler and Sysroot generation
    * Support for external CodeSourcery toolchain for ARM targets
    * Modularized distribution.
    * Multiple supported C libraries: eglibc, glibc, uClibc
    * SIMD Optimizations: NEON, VFP, AltiVec, MMX, SSE.
    * Generic CPU support or target specific fine tuning optimizations.

    En gros vous supporter plusieurs version de gcc

    * OPKG Packaging

    Quel version ?
    Parce que la dernière fois que j'ai regarder, chacun le patchait dans son coin (openmoko, openwrt, ...)


    PS : ca apporte quoi ?

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.