Déploiement d’un noyau sur Snowball depuis les sources du noyau Igloo.Deploy Snowball system from Igloo kernel sources with wlan features

Voici un arbre git permettant de déployer un système avec wifi fonctionnel sur la Snowball de Calao Système en utilisant le noyau fournit par la communauté Igloo.

Pour le recupérer :

git clone https://github.com/Evanok/snowball_builder.git.

Vous pouvez aussi télécharger directement la tarball correspondant au dernier commit de l’arbre pour ne pas vous embarrasser de l’arbre git complet :

wget https://github.com/Evanok/snowball_builder/tarball/master -O snowball_builder.tar.gz

Dans l’arborescence du projet, vous trouverez un Makefile. Vous n’avez qu’a faire make pour démarrer la construction du système avec les paramètres par défauts. A savoir un noyau Android 3.3 avec une distribution Debian.

Les deux principaux éléments du projet sont le script builder.sh et le script shell config_creator. Ce sont donc ces deux fichiers que vous devrez modifier pour toute modification de la procédure.

Dans builder.sh, les étapes sont :

  • Récupération des éléments necessaires : source du noyau Igloo, compilateur croisé ARM
  • Génération du uImage à l’aide du configure donné en paramètre
  • Génération des modules noyaux
  • Génération de 3 scripts utilisés par multistrap pour générer le rootfs à l’aide de config_creator
  • Construction du rootfs à l’aide du multistrap

Description des scripts utilisés par multistrap :

snowball_multistrap_configuration 

C’est le principal script utilisé par multistrap, il fera référence aux deux autres. Vous pouvez y ajouter par exemple les paquets installés à la génération du système.

snowball_setup_script.sh

Ce script défini les opérations à effectuer sur le rootfs avant de le compresser sous la forme d’une tarball. On y défini les utilisateurs, récupère les modules du noyau, défini le fichier network/interfaces ou encore procédons à la création de certain bloc de /dev. Si vous souhaitez ajouter des élements au rootfs pendant la génération c’est ici que vous devrez effectuer vos modifications.

snowball_config_script.sh

Ce script permettra de configurer la Snowball lors du premier démarrage. On en profitera aussi pour installer le patch du package debian bluez ainsi que de proceder au test du wlan.

Le système déployée par défaut est un noyau Android et une distribution Debian Squeeze. En effet ici seul nous intéresse la fonctionnalité du WIFI.

Enfin un script permet de déployer de façon automatisée le système produit sur une micro sd. Attention votre carte micro sd devra avoir été formatée correctement auparavant en deux partitions afin d’y recueillir l’image du noyau d’un coté et le rootfs de l’autre.

Ensuite vous n’avez plus qu’a démarrer votre Snowball avec la sd carte. Attention votre Snowball doit être reliée à internet par le port Ethernet au démarrage. Une fois démarrée, vous n’avez plus qu’a lancer le script de configuration /snowball_config_script.sh

Enfin pour déployer le wifi au démarrage après chaque redémarrage de la Snowball :

  • hciattach -a 23 -n -s 115200 /dev/ttyAMA0 cg2900 115200 flow &
  • modprobe cw1200_core
  • modprobe cw1200_wlan
  • ifconfig wlan0 up

Et voila, on va pouvoir commencer à faire mumuse avec notre nouveau jouet.

This is a git tree which allow you to deploy a Snowball system from Igloo kernel sources with wlan features.

Get the git tree :

git clone https://github.com/Evanok/snowball_builder.git.

You can also download directly the tarball which fetch the last commit of the git tree to have lighter Snowball builder :

wget https://github.com/Evanok/snowball_builder/tarball/master -O snowball_builder.tar.gz

In the project tree, you will find a Makefile. You just have to run make to start the building process with default parameters. These defaults parameters are the branch linux-android-3.3 of the igloo kernel and a basic configure. The system will run with Debian Squeeze distribution.

The two most important files of the project tree are the script builder.sh and config_creator.sh. Theses two scripts must be modify if you wan customize your building process.

builder.sh steps :

  • Clone some git trees : Igloo kernel sources, cross arm compiler
  • Building uImage
  • Installing kernel modules
  • Generate scripts ubing by Multistrap
  • Building rootfs with Multistrap

Description of scripts using by Multistrap

snowball_multistrap_configuration 

Main script using by Multistrap, you can find for example debian package installed in the Snowball system

snowball_setup_script.sh

This script define command to run before compress the rootfs. We will define users, copying kernel modules in rootfs, define some configurations files like network/interfaces… If you want add some directory to the rootfs, you must customize this script !

snowball_config_script.sh

This script will allow to configure the Snowball system at the first booting. For example we will mount /proc or installing bluez package patch for hciattach command.

Finaly a script which allow to deploy Snowball system on micro sd card. Be carefull, your sd card must be partionned correctly. You must have two partitions, in one hand, a partition for kernel image and in the other hand a partition for the rootfs.

Ensuite vous n’avez plus qu’a démarrer votre Snowball avec la sd carte. Attention votre Snowball doit être reliée à internet par le port Ethernet au démarrage. Une fois démarrée, vous n’avez plus qu’a lancer le script de configuration /snowball_config_script.sh

Next you just have to boot yoour Snowball with micro sd card. With some Snowball you must use Ethernet cable to connect your Snowball to Internet to boot it correctly. After booting, you just have to run the configuration script : /snowball_config_script.sh which configure the rootfs the first time that you start your system board.

To enable wlan, command are :

  • hciattach -a 23 -n -s 115200 /dev/ttyAMA0 cg2900 115200 flow &
  • modprobe cw1200_core
  • modprobe cw1200_wlan
  • ifconfig wlan0 up

And now we can start to play we our new toy !

8 réflexions au sujet de « Déploiement d’un noyau sur Snowball depuis les sources du noyau Igloo.Deploy Snowball system from Igloo kernel sources with wlan features »

  1. Bonjour et merci pour cette bonne nouvelle surtout que je cherchais depuis un moment à installer une Debian sur cette bestiole et que j’avais pratiquement abandonné.

    Est-il possible de mettre le rootfs et le kernel sur l’e-mmc ?

    Bonne journée

    • Bonsoir,

      Je suppose que c’est possible; après tout le Linaro-create-image + riff permet de le faire pour Android. Personnellement je ne connais pas la manipulation pour génerer l’image coté e-mmc géré par riff. Est ce qu’on a accès au source des outils cotés Linaro ? Si c’est le cas tu pourrai essayer de voir comment ils font de leur coté pour reproduire un outil qui fonctionnerai pour une debian ? J’ai pas touché a la configuration de ma Snowball depuis un bail. je regarderai ce week end si il y a pas quelquechose d’existant ou un moyen simple d’y arriver.

      • Bonjour,

        je galère pas mal pour reproduire la manip. J’ai du fixer quelques problèmes de scripts. Je pourrais vous les faire parvenir si vous êtes intéressé . Mais mon problème critique est le premier boot. La SDCard obtenu ne boote pas…car pas de inittab. Pourriez vous m’indiquer comment obtenir un premier boot pour exécuter le script de config et ainsi configurer correctement le rootfs.

        Merci
        Damien

  2. Bonjour Damien,

    C’est marrant de voir ta galère parceque justement j’ai ressorti ma Snowball du placard il y a quelques semaines et j’ai été surpris de voir que l’Igloo community n’existe plus ! J’ai essayé de generer une sd card android et la plupart des outils existants ne fonctionnent plus car ils pointent vers des repo git qui n’existe plus même si les git de igloo semblent avoit été sauvegardé sur github.

    Je n’ai pas testé cette procédure depuis un bail. Mais ca ne me dérange pas de voir si j’arrive toujours a reproduire une sd fonctionnelle mais je pourrai pas regarder cela avant ce week end.

    Arthur.

  3. Bonjour,

    Merci de ta réponse…j’ai pas été notifié du coup je l’avait zappé.
    Entre temps j’ai réussi a me créer une image Debian Wheezy en adaptant tes scripts légèrement sur le kernel 3.3….En fait j’avais loupé l’étape du stop boot et init=/bin/sh et quelques modifs bien tordus…du genre si le Unix path est trop long mutlistrap n’execute pas les fichiers configs…

    En faisant de l’archéologie j’ai également réussi a mettre en place la plupart des fonctionnalités gps, accélération mali, je galére encore un peu sur l’HDMI en ce moment car elle est bloquée en 720p.

    En fait j’ai profité que les snowballs soient désormais a 35E HT chez Calao pour investir et compléter mon parc de mini ordinateur.
    J’ai fait ca un peu a l’arrache je vais profiter des vacances de Noel pour mettre ca au propre et j’essayerais de soumettre ca sur github.

    Cordialement

    Damien

  4. Hésite pas a partager le boulot oui. Peu de chance que cela serve vu la date de sortie de la board mais si ca peut servir a quelqu’un un jour…

    35 euros….. Je préfère même pas dire a combien je l’ai acheté a l’époque…..

    • Je connais bien le prix…je voulais en acheter une a l’epoque…mais j’avais finalement pris un Raspberry un peu plus tard.

      A 35E (42 avec la TVA) en habitant a cote du revendeur et donc sans frais de port ca fait une alternative valable a une PI ou autre Cubieboard avec dual A9 + 1Gb et tous les sensors. #revivalSnowball 🙂

      Et puis il y a un cote affectif, j’avait bosse sur la conception du Nova 9500 …

      Merci en tout cas pour le boulot fait a l’epoque, sans ca je serais encore en train de pleurer avec un Ubuntu 12.xx installe par defaut et dont on peut pas faire grand chose…

      • Bon j’ai updaté le git :

        – Mis a jour du paquet mkimage qui est obsolète : uboot-mkimage -> u-boot-tools
        – Changement de deux liens git. Un qui n’était plus valable + un autre qui pointait vers un git local (pas bien !)
        – Bug sur multistrap remonté par la communauté depuis Avril sur ubuntu par exemple toujours pas corrigé. Rajout du lien vers le bug et du workaround dans le cas ou le bug est détecté

        J’ai juste corrigé la génération de la sdcard. J’ai pas ma snowball sous la main, je vais essayé de tester ca.

        Le hasard fait que je vais surement réutiliser ce taff pour une autre board alors autant faire l’effort…

Laisser un commentaire

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