Accueil > hack, Linux > Linux is everywhere_PQI AIRCard, partie II: soeur Anne, ne vois-tu rien venir ?

Linux is everywhere_PQI AIRCard, partie II: soeur Anne, ne vois-tu rien venir ?

easy-way   Je fais suite au post précédent en continuant les investigations sur la pqi Air Card. Je n’ai pas encore reçu le matériel mais disons que je prends de l’avance. Comme précédemment énoncé, il y a déjà quelques trucs à faire et à tester en jouant uniquement avec avec le BusyBox livré d’origine dans la carte. Cependant, le vrai hack c’est de pouvoir compiler ses propres binaires.

L’obtention de toolchain pour Arm est quelque chose de relativement aisé. Là où les choses se compliquent c’est quand on veut utiliser les librairies partagées installées d’origine sur la plateforme.

Pour s’affranchir de cette contrainte, on peut bien sûr compiler en statique son programme; mais en procédant ainsi, on aura tôt fait de saturer les capacités de stockages (réduites en embarqué).

On peut aussi reconstruire complètement le système. Mais là il faut  repartir de 0 et ce n’est pas la meilleure des options pour votre productivité.

Donc le mieux pour aller droit au but, c’est de disposer de la même toolchain que celle utilisée par les concepteurs du firmware. C’est le « Easy Way » et on va voir qu’ en la matière (et je pense sans le vouloir) pqi nous facilite bien les choses.
On continue dans la même veine que précédemment à mener notre petite enquête grâce à la verbosité du Kernel :

lemoi@T60:~/temp/pqiAIRCard$ strings Image3 | grep gcc
Linux version 2.6.32.28 (root@ubuntu-desktop) (gcc version 4.5.2 (Sourcery G++ Lite 2011.03-42) ) #125 PREEMPT Fri Dec 14 14:40:11 CST 2012

Tiens tiens les ingénieurs de chez pqi là-bas ils utilisent Ubuntu (en root en plus,  Bôoo c’est pô bien !!)
Et la toolchain elle a un nom: Soucery .
Ils sont vraiment gentils de nous faciliter la tâche à ce point😉

Alors Sourcery c’est une toolchain de chez Mentor Graphic faites pour l’industrie de l’embarquée (oui oui c’est une industrie maintenant, une vraie avec des gens sérieux qui font du M2M pour le B2B non non on rigole pas ).

Sourcery c’est aussi un clickodrome fait pour les ingénieurs tout frais, tout beaux et qu’ont besoin de leur toolchain intégrée dans leur IDE. Bon, loin de moi l’idée de lancer la polémique mais j’ai bataillé plus d’une heure sur leur site pour avoir la version dite Lite (gratuite quoi ! c’est gcc quand même faut pas pousser !!) mais qui suffit largement pour mon utilisation (mon IDE à moi c’est VIM ). Heureusement, je vous donne la solution direct histoire de pas vous énerver à votre tour.

A savoir que les informations délivrées ici sortent d’un site. Je les adapte à mon usage. Tout d’abord on récupère la doc (très bien faite par contre il faut le reconnaître) :

mkdir /mnt/Sdk/CodeBench/
cd /mnt/SdK/Codebench
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11457/as.pdf &
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11456/binutils.pdf &
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11464/libc.pdf &
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11460/gcc.pdf &
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11462/gdb.pdf &
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11463/getting-started.pdf &
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11458/ld.pdf &
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11465/libm.pdf &
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11461/cpp.pdf &
wget -nv https://sourcery.mentor.com/sgpp/lite/arm/portal/doc11459/gprof.pdf &
wait

Puis, on récupère l’installateur:

wget https://sourcery.mentor.com/sgpp/lite/arm/portal/package8736/public/arm-none-eabi/arm-2011.03-42-arm-none-eabi.bin

Comme précisé dans la doc, l’installateur a un problème avec le shell dash (par défaut sous Debian) il faut donc le désactiver. A noter que par la suite (après installation) on peut le remettre sans problème pour la cross-compil:

# dpkg-reconfigure -plow dash
et répondre non à la question « Utiliser Dash comme interpréteur de ligne de commande par défaut (/bin/sh)? »

on vérifie:

lemoi@T60:/$ ls -alh /bin/sh
lrwxrwxrwx 1 root root 4 14 févr. 14:55 /bin/sh -> bash

Puis on lance l’installateur proprement dit:

/bin/sh arm-2011.03-42-arm-none-eabi.bin

C’est du click-click-next. On choisit :
– minimal installation
– Install dir: /mnt/Sdk/Armeabi (enfin c’est comme vous voulez !!)
– Ne pas ajouter le path (on s’en chargera)
– Ne pas créer le lien

Pour le PATH vous pouvez toujours créer le script suivant et l’appeler lors le l’utilisation de la chaîne de cross-compilation:

echo « export PATH=/mnt/Sdk/Armeabi/bin:\$PATH » > /mnt/Sdk/Armeabi/bin/crossarm.sh

Voilà il reste évidemment à tester sur la carte mais  pas de raison que ça marche pas.

Catégories :hack, Linux Étiquettes : ,
  1. juin 6, 2013 à 8:34

    Salut,
    J’ai téléchargé et installé « Sourcery G++ Lite » ainsi que la version d’évaluation avec l’IDE (eclipse) mais impossible de compiler pour ma carte wifi sdhc, en fait plus exactement impossible de linker. Pour faire le link il faut passer un script .ld en paramètre mais impossible d’avoir un script correct. Où en es-tu de ton coté ? Peux-tu fournir un script qui fonctionne ?

  2. août 14, 2013 à 5:02

    Superbe série d’article ! J’ai commandé la carte Transcend et du coup j’ai commencé mes recherches et je suis tombé sur ton blog. Bravo pour tout le boulot réalisé en amont et félicitation pour toutes les découvertes. Je compte bien ouvrir la Transcend pour voir si elle propose aussi une console facilement accessible.
    Mon grain de sel : pense à synchroniser les tags des 4 articles pour qu’on les retrouve facilement.

  1. mars 6, 2013 à 8:05

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :