Chaine de Cross-Compilation

Voir le sujet précédent Voir le sujet suivant Aller en bas

Chaine de Cross-Compilation

Message  cavatb le Jeu 17 Déc 2009 - 10:50

J'ai testé une chaine de cross-compilation pour le LG à partir des outils Buildroot
voir http://buildroot.uclibc.org/
Après 2 jours de galère parce que les exécutables généré était de type ELF MSB alors que le
processeur du LG veut des exécutables de type ELF LSB, j'ai trouvé les bon réglages pour
la cross-compilation.

resultat de la commande: file sur linux
busybox_genere: ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0x41000000 = 0xf676e75, stripped
busybox_genere1: ELF 32-bit MSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0x41000000 = 0xf676e75, stripped
busybox_lg: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), stripped



Il faut les réglages suivant : Target architecture = mipsel , Target architecture variant = mips 32
pour avoir des résultats corrects. J'ai compilé busybox complet, ldd, file, nano.
La compilation a été faite sous linux en utilisant la roll-royce des distrib ARCH.

Sur le LG, j'ai installé les exécutables sous /tmp/hdd/root/bin , les librairies sous /tmp/hdd/root/lib après avoir créé ces deux répertoires.
La partition /tmp/hdd/root/ est une partition linux EXT3 qui permet les liens symboliques.
J'ai rajouté /tmp/hdd/root/bin en fin du PATH, positionné la variables d'environnement export LD_LIBRARY_PATH=/tmp/hdd/root/lib.
Dans le répertoire /tmp/hdd/root/bin j'ai fait les liens sur busybox : ls -s busybox top, puis ls -s busybox less.
J'ai testé c'est deux commandes (top, less) avec succès, ainsi que les commandes file, ln, nano.
A FAIRE : Pour les 3 dernière commandes mettre en place les fichiers de données nécessaires pour avoir un résultat complet.
Ajout dans /usr/local/etc/profile du nouveau CHEMIN en fin des CHEMIN du LG PATH=$PATH:/tmp/hdd/root/bin, et de LD_LIBRARY_PATH.
Pour mon LG j'ai rajouté dans le profile : alias ll="ls -l" depuis plusieurs jours.

Dans Buildroot il y a plein d'autres choses à compiler, par exemple vlc.

Compilez bien !!!

cavatb

Messages : 14
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  Seb@stien le Jeu 17 Déc 2009 - 11:29

Mais tu sais qu'on t'aime toi !!! Very Happy

Bon bah y'a plus qu'à ...

Tu veux bien partager ta version compilé de Busybox ? Wink

Seb@tien

Seb@stien
Admin
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  cavatb le Jeu 17 Déc 2009 - 17:20

les fichiers sont la dans un tar compressé
http://www.megaupload.com/?d=7D7CEQ58

Il faut surtout remercier les développeurs de BUILDROOT, de BUSYBOX de UCLIBC
pour la partie linux embarqué. Les développeurs de LINUX, du GNU et des logiciels
libres pour le reste.
Puis espérer que LG ouvre son code.

cavatb

Messages : 14
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  cdriko le Jeu 17 Déc 2009 - 22:57

cavatb a écrit:
Puis espérer que LG ouvre son code.

J'ai relancé plusieurs fois lg à ce sujet mais ils m'ont clairement indiqué qu'il n'était pas obligé de donner le code source du dvdplayer Sad

En tout cas bravo cavatb, j'avais essayer de faire la même chose que toi il y a une semaine mais je n'y étais pas arrivé !!!
J'attend pour télécharger ton archive car elle n'est pas encore dispo sur mégaupload,
On peut l'installer sur un ubuntu ?

cdriko

Messages : 25
Date d'inscription : 02/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  cdriko le Jeu 17 Déc 2009 - 23:16

Au fait cavatb, peux-tu nous expliquer comment tu as créés ta chaîne de compilation.
As-tu repris les versions d'ulibc, neon, ... propre au lg ou bien as tu simplement utilisé le buildroot de base ?

cdriko

Messages : 25
Date d'inscription : 02/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  cavatb le Ven 18 Déc 2009 - 10:50

cdriko a écrit:Au fait cavatb, peux-tu nous expliquer comment tu as créés ta chaîne de compilation.
As-tu repris les versions d'ulibc, neon, ... propre au lg ou bien as tu simplement utilisé le buildroot de base ?

Installer d'abord builroot (le builroot de base)
Dans le répertoire d'install faire: $ make xconfig
Dans les menus choisir
  • la cible, (mipsel, mips32)
  • les options de compil, (on peut laisser les options de base)
  • les paquets à compiler, (on peut laisser les propositions de base)
  • sauver et sortir


lancer la cross-compil par la commande : $ make

Builroot fait alors tous le job: téléchargement des sources nécessaire, génération des makefile, compil, link.
Dans le répertoire d'install de builroot sous output/target on trouve les résultats de la cross-compil.
On récupère dans cette arborescence les exécutables, les libs que l'on veut mettre en place sur le LG.
Important après modification des conditions de génération, faire $ make clean avant de relancer la compil.
Builroot génère aussi des images, pour l'instant je déconseille de les utiliser.

Toutes les distrib linux doivent pouvoir convenir, installer si nécessaire les outils et les libs de développement.
Builroot prévient s'il lui manque des outils.

cavatb

Messages : 14
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  Seb@stien le Ven 18 Déc 2009 - 12:08

A tout hasard : T'aurais pas compilé VLC avec les bibliothèques qui vont bien ?

Seb@stien

Seb@stien
Admin
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  Youpla le Ven 18 Déc 2009 - 14:07

Super boulot qui va bien nous aider.

cavatb a écrit:Dans le répertoire /tmp/hdd/root/bin j'ai fait les liens sur busybox : ls -s busybox top, puis ls -s busybox less.
Je n'ai pas bien compris cette étape. En fait tu recompiles une busybox complète c'est ça ? c'est pas possible de compiler les commandes individuellement ?

Sinon je pense que tu voulais dire ln et non pas ls.

Youpla

Messages : 114
Date d'inscription : 04/12/2009
Age : 41
Localisation : Lyon

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  murigny64 le Lun 4 Jan 2010 - 20:02

Super cabatb, ta compil fonctionne nickel. Wink
Seul hic: nano ne se lance pas, j'ai un message:
Code:
Error opening terminal: vt320.
Neutral

murigny64

Messages : 265
Date d'inscription : 11/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  euronext le Dim 10 Jan 2010 - 12:14

Hello,
Cette chaine de cross-compil ne tourne que sous Linux ?
Ou bien aussi sous Windows ?
Je ne suis pour ma part pas équipé de PC sous Linux à la maison. Enfin, pas encore ...
Cdlt.

euronext

Messages : 34
Date d'inscription : 04/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  demi-sel le Lun 11 Jan 2010 - 11:38

Est-ce que la version d' "ethtool" contenue dans la busybox accepte l'option "wol".
Le Wake-On-Lan pourrait être un moyen de démarrer le MS400 à partir d'un PC.
Plus d'infos sur le WOL :
http://gsd.di.uminho.pt/jpo/software/wakeonlan/mini-howto/
http://www.commentcamarche.net/forum/affich-1395762-le-wake-on-lan-sous-linux

demi-sel

Messages : 5
Date d'inscription : 03/12/2009
Age : 37
Localisation : 22

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  Seb@stien le Lun 11 Jan 2010 - 12:10

Si je ne me trompe pas, le WOL est une fonctionnalité hardware et non pas software ?

Or le MS400 n'accepte pas de WOL Sad

Il y a bien ether-wake dans la busybox, mais c'est pour faire du WOL sur une machine l'acceptant.

Seb@stien

Seb@stien
Admin
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  demi-sel le Lun 11 Jan 2010 - 12:37

Effectivement... Par contre, le LG boote dès qu'il est mis sous tension, il reste plus qu'à utiliser une prise programmable.

demi-sel

Messages : 5
Date d'inscription : 03/12/2009
Age : 37
Localisation : 22

Revenir en haut Aller en bas

re: Chaine de Cross-Compilation

Message  cavatb le Jeu 14 Jan 2010 - 17:26

murigny64 a écrit:Super cabatb, ta compil fonctionne nickel. Wink
Seul hic: nano ne se lance pas, j'ai un message:
Code:
Error opening terminal: vt320.
Neutral
J'ai pas réussi à utiliser nano. C'est ncurses qui nous jette. J'ai mis en place l'arborescence de fichiers
terminfo et la variable d'environnement TERMINFO qui précise ou les trouver, mais rien n'y
fait. Dans les sources de ncurses on voit que le message d'erreur est le même si le fichier n'est
pas trouvé, ou si sa syntaxe est incorrecte.
Hypothèse: Le fichier vt320 est généré par tic à partir de terminfo.src
mais BUILDROOT ne généré pas tic. Peut être un PB de représentation des données avec un vt320 generé
sur 686.
Par contre le vi de base fonctionne très bien.
Pas réussi pour l'instant à compiler vlc des librairies sont manquantes

cavatb

Messages : 14
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  cavatb le Sam 16 Jan 2010 - 10:35

Le vi de la busybox généré a aussi un PB. Le PB vient de l'appel système stat
qui remonte des info mauvaises dans la structure stat.
S_ISREG dit n'importe quoi sur le type du fichier. La taille du fichier remonté
par la structure est fausse.
Il doit manquer quelque part une adaptation à l'architecture MIPS.

Un petit programme de test en utilisant les makefiles de lelas donne les
mêmes résultats que vi. Ceci doit expliquer aussi les PB de nano et de file.

cavatb

Messages : 14
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  lelas le Sam 16 Jan 2010 - 15:49

Je confirme que le VI de la busybox généré ne fonctionne pas.
Je me demande si ce n'est pas lié à un problème de compatibilité de version Linux

Je vais essayer une autre toolchain disponible ici:
http://rtd1073.wikidot.com/source-code
=> http://download.conceptronic.net/GNU-GPL/CM3Gxx/

Il semble qu'il y ait également un SDK pour la puce RTD1282

lelas

Messages : 10
Date d'inscription : 03/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  Seb@stien le Sam 16 Jan 2010 - 16:03

Y'a du avoir une erreur lors de la réponse, je fusionne avec le sujet principal

Seb@stien

Seb@stien
Admin
Admin

Messages : 568
Date d'inscription : 02/12/2009
Age : 38
Localisation : 95

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  cavatb le Ven 22 Jan 2010 - 14:49

En modifiant le fichier stat.h que l'on trouve sous buildroot-2009.11/output/toolchain/uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/ pour
réaligner les données remonté du LG par l'appel système stat les exécutables générés sont opérationnels:

  • busybox OK ( vi de cette busybox OK )

  • nano oK en lui fournissant les terminfo de ma distrib linux, et en positionnant la variable d'environnement qui montre ou ils ont été placés
    export TERMINFO=/tmp/hdd/root/terminfo
    nota: il suffit de récupérer /tmp/hdd/root/terminfo/v/vt320

  • file est ok en positionnant export MAGIC=/tmp/hdd/root/magic/elf:/tmp/hdd/root/magic/compress. l'utilisation des fichier magic
    compilés ne fonctionne pas.

  • ldd est ok : il donne la liste des librairie dynamiques dont on besoin les exécutables

cavatb

Messages : 14
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  murigny64 le Ven 22 Jan 2010 - 15:26

cavatb a écrit:En modifiant le fichier stat.h que l'on trouve sous buildroot-2009.11/output/toolchain/uClibc-0.9.30.1/libc/sysdeps/linux/mips/bits/ pour
réaligner les données remonté du LG par l'appel système stat les exécutables générés sont opérationnels:

  • busybox OK ( vi de cette busybox OK )

  • nano oK en lui fournissant les terminfo de ma distrib linux, et en positionnant la variable d'environnement qui montre ou ils ont été placés
    export TERMINFO=/tmp/hdd/root/terminfo
    nota: il suffit de récupérer /tmp/hdd/root/terminfo/v/vt320

  • file est ok en positionnant export MAGIC=/tmp/hdd/root/magic/elf:/tmp/hdd/root/magic/compress. l'utilisation des fichier magic
    compilés ne fonctionne pas.

  • ldd est ok : il donne la liste des librairie dynamiques dont on besoin les exécutables

Bon boulot cavatb ! peux tu nous mettre a dispo ta compil ? Wink

murigny64

Messages : 265
Date d'inscription : 11/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  cavatb le Ven 22 Jan 2010 - 18:43

C'est ici : http://www.megaupload.com/?d=KWZ3F1SL

Dans le tar il y a mon architecture d'install sous /tmp/hdd/root/

Il y a aussi plusieurs utilitaires:
  • xdca qui dumpe les fichiers en hexa et ascii. syntaxe: xdca fichier.
    il travaille aussi sur stdin

  • test_stat fichier écris sur l'écran des valeurs du sizeof de plusieurs types, des champs de la structure stat
    et de leurs adresse. il crée aussi un nouveau fichier appelé fichier_statbuf qui contient un dump de la structure.

  • environnement un script pour mettre en place les variables d'environnement.

cavatb

Messages : 14
Date d'inscription : 09/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  murigny64 le Ven 22 Jan 2010 - 20:52

cavatb a écrit:C'est ici : http://www.megaupload.com/?d=KWZ3F1SL

Dans le tar il y a mon architecture d'install sous /tmp/hdd/root/

Il y a aussi plusieurs utilitaires:
  • xdca qui dumpe les fichiers en hexa et ascii. syntaxe: xdca fichier.
    il travaille aussi sur stdin

  • test_stat fichier écris sur l'écran des valeurs du sizeof de plusieurs types, des champs de la structure stat
    et de leurs adresse. il crée aussi un nouveau fichier appelé fichier_statbuf qui contient un dump de la structure.

  • environnement un script pour mettre en place les variables d'environnement.

Ca marche Nickel chrome !
Variables positionnées dans /etc/profile.

(je prefere nano, plus conviviale à vi Wink )

murigny64

Messages : 265
Date d'inscription : 11/12/2009

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  Keltek le Mer 7 Avr 2010 - 14:23

Hello all,
I'm sorry I don't speak French, so I apologize.
I make a toolchain with GCC 3.4.6 and GCC 4.3.4. I create brand new filesystem with update busybox and uClibc but I found totally weird behavior of /sbin/hotplug
This tool is responsive of mounting HDD and USB and create some custom files for DvdPlayer. If I use old uClibc (v0.9.28, with no changes) all works great. But If I use v0.9.28.1 or newer, the hotplug tool stops to work. I compare version of uClibc but there are many changes to elaborate, which function is responsive to this.
I only found that the libc library do this.
If anyone have the source of this (custom compiled by LG), it it chance to make it work. I have prepared the web administration pages with channel editing, record editing, backup/restore and more, but this is my very headache.
Thanks...

Keltek

Messages : 23
Date d'inscription : 07/04/2010
Age : 39
Localisation : Praha - Czech Republic

http://www.fozona.cz/

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  matthelas le Mer 7 Avr 2010 - 14:57

Hello,

Did you try the last cavatb tar for the compilation?
http://www.megaupload.com/?d=KWZ3F1SL
It indeed seems there are some variables to set correctly.

You can also check in the Spanish forum, they could perhaps alors help you:
http://ms450.forosactivos.net/forum.htm

Hope this helps,
Cheers,
Matt

PS: sorry not to be able to further help you, my own C development skills were lost years ago

matthelas

Messages : 250
Date d'inscription : 22/01/2010

Revenir en haut Aller en bas

Re: Chaine de Cross-Compilation

Message  Contenu sponsorisé Aujourd'hui à 9:50


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum