{"id":219,"date":"2012-07-24T19:01:50","date_gmt":"2012-07-24T19:01:50","guid":{"rendered":"http:\/\/arthurlambert.fr\/robotique\/wordpress\/?p=219"},"modified":"2014-04-17T18:17:24","modified_gmt":"2014-04-17T18:17:24","slug":"deploiement-dun-noyau-sur-snowball-depuis-les-source-du-noyau-igloo","status":"publish","type":"post","link":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/deploiement-dun-noyau-sur-snowball-depuis-les-source-du-noyau-igloo\/","title":{"rendered":"<!--:fr-->D\u00e9ploiement d&#8217;un noyau sur Snowball depuis les sources du noyau Igloo.<!--:--><!--:en-->Deploy Snowball system from Igloo kernel sources with wlan features<!--:-->"},"content":{"rendered":"<p><!--:fr--><\/p>\n<p style=\"text-align: justify;\">Voici un arbre git permettant de d\u00e9ployer un syst\u00e8me avec wifi fonctionnel sur la Snowball de Calao Syst\u00e8me en utilisant le noyau fournit par la communaut\u00e9 <a title=\"Igloo Community\" href=\"http:\/\/igloocommunity.org\/\">Igloo<\/a>.<\/p>\n<p>Pour le recup\u00e9rer :<\/p>\n<p><strong>git clone\u00a0https:\/\/github.com\/Evanok\/snowball_builder.git.<\/strong><\/p>\n<p style=\"text-align: justify;\">Vous pouvez aussi t\u00e9l\u00e9charger directement la tarball correspondant au dernier commit de l&#8217;arbre pour ne pas vous embarrasser de l&#8217;arbre git complet :<\/p>\n<p><strong>wget https:\/\/github.com\/Evanok\/snowball_builder\/tarball\/master -O snowball_builder.tar.gz<\/strong><\/p>\n<p><a href=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-222\" title=\"snowball_builder_tree\" src=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree-300x173.png\" alt=\"\" width=\"300\" height=\"173\" srcset=\"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree-300x173.png 300w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree-500x288.png 500w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree.png 725w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Dans l&#8217;arborescence du projet, vous trouverez un Makefile. Vous n&#8217;avez qu&#8217;a faire make pour d\u00e9marrer la construction du syst\u00e8me avec les param\u00e8tres par d\u00e9fauts. A savoir un noyau Android 3.3 avec une distribution Debian.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-224\" title=\"make1\" src=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11-300x180.png\" alt=\"\" width=\"300\" height=\"180\" srcset=\"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11-300x180.png 300w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11-497x300.png 497w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11.png 856w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Les deux principaux \u00e9l\u00e9ments 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\u00e9dure.<\/p>\n<p style=\"text-align: justify;\">Dans builder.sh, les \u00e9tapes sont :<\/p>\n<ul>\n<li>R\u00e9cup\u00e9ration des\u00a0\u00e9l\u00e9ments\u00a0necessaires : source du noyau Igloo, compilateur crois\u00e9 ARM<\/li>\n<li>G\u00e9n\u00e9ration du uImage \u00e0 l&#8217;aide du configure donn\u00e9 en param\u00e8tre<\/li>\n<li>G\u00e9n\u00e9ration des modules noyaux<\/li>\n<li>G\u00e9n\u00e9ration de 3 scripts utilis\u00e9s par multistrap pour g\u00e9n\u00e9rer le rootfs \u00e0 l&#8217;aide de config_creator<\/li>\n<li>Construction du rootfs \u00e0 l&#8217;aide du multistrap<\/li>\n<\/ul>\n<p>Description des scripts utilis\u00e9s par multistrap :<\/p>\n<p style=\"padding-left: 30px;\"><strong>snowball_multistrap_configuration\u00a0<\/strong><\/p>\n<p style=\"text-align: justify;\">C&#8217;est le principal script utilis\u00e9 par multistrap, il fera r\u00e9f\u00e9rence aux deux autres. Vous pouvez y ajouter par exemple les paquets install\u00e9s \u00e0 la g\u00e9n\u00e9ration du syst\u00e8me.<\/p>\n<p style=\"padding-left: 30px;\"><strong>snowball_setup_script.sh<\/strong><\/p>\n<p style=\"text-align: justify;\">Ce script d\u00e9fini les op\u00e9rations \u00e0 effectuer sur le rootfs avant de le compresser sous la forme d&#8217;une tarball. On y d\u00e9fini les utilisateurs, r\u00e9cup\u00e8re les modules du noyau, d\u00e9fini le fichier network\/interfaces ou encore proc\u00e9dons \u00e0 la cr\u00e9ation de certain bloc de \/dev. Si vous souhaitez ajouter des \u00e9lements au rootfs pendant la g\u00e9n\u00e9ration c&#8217;est ici que vous devrez effectuer vos modifications.<\/p>\n<p style=\"padding-left: 30px;\"><strong>snowball_config_script.sh<\/strong><\/p>\n<p style=\"text-align: justify;\">Ce script permettra de configurer la Snowball lors du premier d\u00e9marrage. On en profitera aussi pour installer le patch du package debian bluez ainsi que de proceder au test du wlan.<\/p>\n<p style=\"text-align: justify;\">Le syst\u00e8me d\u00e9ploy\u00e9e par d\u00e9faut est un noyau Android et une distribution Debian Squeeze. En effet ici seul nous\u00a0int\u00e9resse\u00a0la fonctionnalit\u00e9 du WIFI.<\/p>\n<p style=\"text-align: justify;\">Enfin un script permet de d\u00e9ployer de fa\u00e7on automatis\u00e9e le syst\u00e8me produit sur une micro sd. Attention votre carte micro sd devra avoir \u00e9t\u00e9 format\u00e9e correctement auparavant en deux partitions afin d&#8217;y\u00a0recueillir\u00a0l&#8217;image du noyau d&#8217;un cot\u00e9 et le rootfs de l&#8217;autre.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-225\" title=\"install_sd\" src=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd-300x109.png\" alt=\"\" width=\"300\" height=\"109\" srcset=\"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd-300x109.png 300w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd-500x182.png 500w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd.png 663w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Ensuite vous n&#8217;avez plus qu&#8217;a d\u00e9marrer votre Snowball avec la sd carte. Attention votre Snowball doit \u00eatre reli\u00e9e \u00e0 internet par le port Ethernet au d\u00e9marrage. Une fois d\u00e9marr\u00e9e, vous n&#8217;avez plus qu&#8217;a lancer le script de configuration \/snowball_config_script.sh<\/p>\n<p style=\"text-align: justify;\">Enfin pour d\u00e9ployer le wifi au d\u00e9marrage apr\u00e8s chaque red\u00e9marrage de la Snowball :<\/p>\n<ul>\n<li>hciattach -a 23 -n -s 115200 \/dev\/ttyAMA0 cg2900 115200 flow &amp;<\/li>\n<li>modprobe cw1200_core<\/li>\n<li>modprobe cw1200_wlan<\/li>\n<li>ifconfig wlan0 up<\/li>\n<\/ul>\n<p>Et voila, on va pouvoir commencer \u00e0 faire mumuse avec notre nouveau jouet.<!--:--><!--:en--><\/p>\n<p style=\"text-align: justify;\">This is a git tree which allow you to deploy a Snowball system from\u00a0<a title=\"Igloo Community\" href=\"http:\/\/igloocommunity.org\/\">Igloo<\/a> kernel sources with wlan features.<\/p>\n<p>Get the git tree :<\/p>\n<p><strong>git clone\u00a0https:\/\/github.com\/Evanok\/snowball_builder.git.<\/strong><\/p>\n<p style=\"text-align: justify;\">You can also download directly the tarball which fetch the last commit of the git tree to have lighter Snowball builder :<\/p>\n<p><strong>wget https:\/\/github.com\/Evanok\/snowball_builder\/tarball\/master -O snowball_builder.tar.gz<\/strong><\/p>\n<p><a href=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-222\" title=\"snowball_builder_tree\" src=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree-300x173.png\" alt=\"\" width=\"300\" height=\"173\" srcset=\"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree-300x173.png 300w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree-500x288.png 500w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/snowball_builder_tree.png 725w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">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.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-224\" title=\"make1\" src=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11-300x180.png\" alt=\"\" width=\"300\" height=\"180\" srcset=\"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11-300x180.png 300w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11-497x300.png 497w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/make11.png 856w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">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.<\/p>\n<p style=\"text-align: justify;\">builder.sh steps :<\/p>\n<ul>\n<li>Clone some git trees : Igloo kernel sources, cross arm compiler<\/li>\n<li>Building uImage<\/li>\n<li>Installing kernel modules<\/li>\n<li>Generate scripts ubing by Multistrap<\/li>\n<li>Building rootfs with Multistrap<\/li>\n<\/ul>\n<p>Description of scripts using by <a href=\"http:\/\/www.linuxcertif.com\/man\/1\/multistrap\/en\/\">Multistrap<\/a><\/p>\n<p style=\"padding-left: 30px;\"><strong>snowball_multistrap_configuration\u00a0<\/strong><\/p>\n<p style=\"text-align: justify;\">Main script using by Multistrap, you can find for example debian package installed in the Snowball system<\/p>\n<p style=\"padding-left: 30px;\"><strong>snowball_setup_script.sh<\/strong><\/p>\n<p style=\"text-align: justify;\">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&#8230; If you want add some directory to the rootfs, you must customize this script !<\/p>\n<p style=\"padding-left: 30px;\"><strong>snowball_config_script.sh<\/strong><\/p>\n<p style=\"text-align: justify;\">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.<\/p>\n<p style=\"text-align: justify;\">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.<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium wp-image-225\" title=\"install_sd\" src=\"http:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd-300x109.png\" alt=\"\" width=\"300\" height=\"109\" srcset=\"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd-300x109.png 300w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd-500x182.png 500w, https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-content\/uploads\/2012\/07\/install_sd.png 663w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: justify;\">Ensuite vous n&#8217;avez plus qu&#8217;a d\u00e9marrer votre Snowball avec la sd carte. Attention votre Snowball doit \u00eatre reli\u00e9e \u00e0 internet par le port Ethernet au d\u00e9marrage. Une fois d\u00e9marr\u00e9e, vous n&#8217;avez plus qu&#8217;a lancer le script de configuration \/snowball_config_script.sh<\/p>\n<p style=\"text-align: justify;\">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 :\u00a0\/snowball_config_script.sh which configure the rootfs the first time that you start your system board.<\/p>\n<p style=\"text-align: justify;\">To enable wlan, command are :<\/p>\n<ul>\n<li>hciattach -a 23 -n -s 115200 \/dev\/ttyAMA0 cg2900 115200 flow &amp;<\/li>\n<li>modprobe cw1200_core<\/li>\n<li>modprobe cw1200_wlan<\/li>\n<li>ifconfig wlan0 up<\/li>\n<\/ul>\n<p>And now we can start to play we our new toy !<!--:--><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voici un arbre git permettant de d\u00e9ployer un syst\u00e8me avec wifi fonctionnel sur la Snowball de Calao Syst\u00e8me en utilisant le noyau fournit par la communaut\u00e9 Igloo. Pour le recup\u00e9rer : git clone\u00a0https:\/\/github.com\/Evanok\/snowball_builder.git. Vous pouvez aussi t\u00e9l\u00e9charger directement la tarball &hellip; <a href=\"https:\/\/arthurlambert.fr\/robotique\/wordpress\/deploiement-dun-noyau-sur-snowball-depuis-les-source-du-noyau-igloo\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3,4],"tags":[57,38,50,51,58,53,60,54,52,55,30,19,59,56,61],"class_list":["post-219","post","type-post","status-publish","format-standard","hentry","category-projet_robot","category-tuto","tag-deployer-noyau-snowball","tag-git","tag-igloo","tag-igloo-community","tag-installer","tag-kernel-android","tag-micro-sd","tag-multistrap","tag-noyau","tag-rootfs","tag-snowball","tag-snowball-arm","tag-source","tag-uimage","tag-wlan"],"_links":{"self":[{"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/posts\/219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/comments?post=219"}],"version-history":[{"count":14,"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/posts\/219\/revisions"}],"predecessor-version":[{"id":410,"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/posts\/219\/revisions\/410"}],"wp:attachment":[{"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/media?parent=219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/categories?post=219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/arthurlambert.fr\/robotique\/wordpress\/wp-json\/wp\/v2\/tags?post=219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}