Supprimer un message
philfr
Petit topic pour les gens intéressés...
J'ai donc acheté sur ebay un board de développement FriendlyARM mini2440 avec écran 3.5". Acheté le 19/12, reçu le 14/01, coût total 60€ frais de port inclus.
Premier boot: windowsCE5.net préinstallé, en chinois, avec un touch screen pas calibré. Je branche une souris USB qui est reconnue et me permet d'essayer à tâtons les différentes icônes jusqu'à tomber par hazard sur l'utilitaire de calibration. Je cherche aussi s'il n'est pas possible de changer la langue du système, mais non. Branché au réseau, je peux configurer le DHCP, et même l'IPv6 de mon réseau fonctionne out of the box. Un carte SD insérée est reconnue, et si je le branche comme USB device à mon PC, il est vu comme un serial iPaq.
Un peu plus sérieux: installer le linux livré sur CD. Le CD est aussi essentiellement en chinois, même le manuel, mais hereusement, tout se trouve sur le net en anglais.
Je connecte mon PC au port série du mini2440 avec un câble null-modem (retrouvé dans mes caisses avant de réaliser qu'il y en a un livré dans la boîte) et un convertisseur USB-série (mon PC étant, à l'instar de tous les PC modernes, dépourvu de port série).
Un petit interrupteur permet de sélectionner le boot sur la NOR, qui contient un bootloader (supervivi) permettant de partitionner la NAND et charger le kernel et l'image root par USB.
Deux versions sont fournies, suivant la taille de la flash du système. J'ai l'agréable surprise de voir qu'on m'a livré la version la plus récente avec 64MB de RAM et 128MB de flash, contrairement à ce que disait l'annonce (probablement pas mise à jour).
Je charge donc le kernel et l'image rootfs fournis, et redémarre, pour voir apparaître un beau pingouin sur l'écran, les traces du kernel sur ma console, et puis une procédure de calibration sur l'écran, puis quelques questions pour localiser l'environnement qtopia (pays, heure, langue...) Je me retrouve alors avec en petit palmtop et toutes ses application utiles.
La console permet d'avoir accès au shell, et un telnet est ouvert, ainsi qu'un serveur web. Mais pour ces deux derniers il faut configurer le réseau qui est en adresse statique (un dhcp client est présent mais le kernel par défaut ne le supporte pas...), et forcément pas la bonne. Cela fait, me voici enfin avec un système hacker-friendly...
La suite logique: recompiler un kernel et l'installer. Les sources patchées d'un linux 2.6.29.4 sont fournies, avec les configs pour les différents modèles. Je modifie la config pour ajouter le support DHCP, et l'IPv6 en module. Je change le logo de boot en passant et recompile avec le toolchain arm-linux-gcc fourni également. Tout se passe presque trop facilement, et je recharge le nouveau kernel avec supervivi. Reboot, et tout va toujours bien, à part que le DHCP ne marche toujours pas. Je copie les modules via NFS ou carte SD, mais l'IPv6 ne marche pas non plus.
Recompil avec IPv6 inclus dans le kernel, reflash, et... Le kernel est trop grand, car la partition réservée par défaut au kernel est de 2MB. J'ai donc repartitionné ma NAND pour laisser plus de place au kernel, j'ai dû modifier aussi la config de partitionnement hard-codée dans le kernel (j'ai eu du mal à trouver où, alors voici pour la postérité: arch/arm/plat-s3c24xx/common-friendly-arm.c)
Là mon kernel passe dans la partition, démarre depuis le bootloader (mais sans la console série ...?), et le DHCP ne fonctionne toujours pas
Et si je rechange le switch pour booter directement depuis la NAND, le NAND bootloader cherche le kernel au mauvais endroit et ça ne marche évidemment pas.
J'en suis là , en config un peu manuelle mais je commence à bien comprendre l'architecture du bazar et je suis confiant. J'ai fait des essais avec u-boot, je vais aussi jouer avec la feature UBIFS du kernel pour gérer la NAND.
Voilà , suite au prochain numéro, vous pouvez reprendre une activité normale...
J'ai donc acheté sur ebay un board de développement FriendlyARM mini2440 avec écran 3.5". Acheté le 19/12, reçu le 14/01, coût total 60€ frais de port inclus.
Premier boot: windowsCE5.net préinstallé, en chinois, avec un touch screen pas calibré. Je branche une souris USB qui est reconnue et me permet d'essayer à tâtons les différentes icônes jusqu'à tomber par hazard sur l'utilitaire de calibration. Je cherche aussi s'il n'est pas possible de changer la langue du système, mais non. Branché au réseau, je peux configurer le DHCP, et même l'IPv6 de mon réseau fonctionne out of the box. Un carte SD insérée est reconnue, et si je le branche comme USB device à mon PC, il est vu comme un serial iPaq.
Un peu plus sérieux: installer le linux livré sur CD. Le CD est aussi essentiellement en chinois, même le manuel, mais hereusement, tout se trouve sur le net en anglais.
Je connecte mon PC au port série du mini2440 avec un câble null-modem (retrouvé dans mes caisses avant de réaliser qu'il y en a un livré dans la boîte) et un convertisseur USB-série (mon PC étant, à l'instar de tous les PC modernes, dépourvu de port série).
Un petit interrupteur permet de sélectionner le boot sur la NOR, qui contient un bootloader (supervivi) permettant de partitionner la NAND et charger le kernel et l'image root par USB.
Deux versions sont fournies, suivant la taille de la flash du système. J'ai l'agréable surprise de voir qu'on m'a livré la version la plus récente avec 64MB de RAM et 128MB de flash, contrairement à ce que disait l'annonce (probablement pas mise à jour).
Je charge donc le kernel et l'image rootfs fournis, et redémarre, pour voir apparaître un beau pingouin sur l'écran, les traces du kernel sur ma console, et puis une procédure de calibration sur l'écran, puis quelques questions pour localiser l'environnement qtopia (pays, heure, langue...) Je me retrouve alors avec en petit palmtop et toutes ses application utiles.
La console permet d'avoir accès au shell, et un telnet est ouvert, ainsi qu'un serveur web. Mais pour ces deux derniers il faut configurer le réseau qui est en adresse statique (un dhcp client est présent mais le kernel par défaut ne le supporte pas...), et forcément pas la bonne. Cela fait, me voici enfin avec un système hacker-friendly...
La suite logique: recompiler un kernel et l'installer. Les sources patchées d'un linux 2.6.29.4 sont fournies, avec les configs pour les différents modèles. Je modifie la config pour ajouter le support DHCP, et l'IPv6 en module. Je change le logo de boot en passant et recompile avec le toolchain arm-linux-gcc fourni également. Tout se passe presque trop facilement, et je recharge le nouveau kernel avec supervivi. Reboot, et tout va toujours bien, à part que le DHCP ne marche toujours pas. Je copie les modules via NFS ou carte SD, mais l'IPv6 ne marche pas non plus.
Recompil avec IPv6 inclus dans le kernel, reflash, et... Le kernel est trop grand, car la partition réservée par défaut au kernel est de 2MB. J'ai donc repartitionné ma NAND pour laisser plus de place au kernel, j'ai dû modifier aussi la config de partitionnement hard-codée dans le kernel (j'ai eu du mal à trouver où, alors voici pour la postérité: arch/arm/plat-s3c24xx/common-friendly-arm.c)
Là mon kernel passe dans la partition, démarre depuis le bootloader (mais sans la console série ...?), et le DHCP ne fonctionne toujours pas
![:sad: :sad:](images/smileys/sad.gif)
J'en suis là , en config un peu manuelle mais je commence à bien comprendre l'architecture du bazar et je suis confiant. J'ai fait des essais avec u-boot, je vais aussi jouer avec la feature UBIFS du kernel pour gérer la NAND.
Voilà , suite au prochain numéro, vous pouvez reprendre une activité normale...