Chaine de Cross-Compilation
+6
euronext
murigny64
Youpla
cdriko
Seb@stien
cavatb
10 participants
Page 1 sur 1
Chaine de Cross-Compilation
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 !!!
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
Re: Chaine de Cross-Compilation
Mais tu sais qu'on t'aime toi !!!
Bon bah y'a plus qu'à ...
Tu veux bien partager ta version compilé de Busybox ?
Seb@tien
Bon bah y'a plus qu'à ...
Tu veux bien partager ta version compilé de Busybox ?
Seb@tien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Chaine de Cross-Compilation
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.
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
Re: Chaine de Cross-Compilation
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
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
Re: Chaine de Cross-Compilation
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 ?
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
Re: Chaine de Cross-Compilation
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
Re: Chaine de Cross-Compilation
A tout hasard : T'aurais pas compilé VLC avec les bibliothèques qui vont bien ?
Seb@stien
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Chaine de Cross-Compilation
Super boulot qui va bien nous aider.
Sinon je pense que tu voulais dire ln et non pas ls.
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 ?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.
Sinon je pense que tu voulais dire ln et non pas ls.
Youpla- Messages : 144
Date d'inscription : 04/12/2009
Age : 48
Localisation : Lyon
Re: Chaine de Cross-Compilation
Super cabatb, ta compil fonctionne nickel.
Seul hic: nano ne se lance pas, j'ai un message:
Seul hic: nano ne se lance pas, j'ai un message:
- Code:
Error opening terminal: vt320.
murigny64- Messages : 265
Date d'inscription : 11/12/2009
Re: Chaine de Cross-Compilation
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.
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
Re: Chaine de Cross-Compilation
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
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 : 45
Localisation : 22
Re: Chaine de Cross-Compilation
Si je ne me trompe pas, le WOL est une fonctionnalité hardware et non pas software ?
Or le MS400 n'accepte pas de WOL
Il y a bien ether-wake dans la busybox, mais c'est pour faire du WOL sur une machine l'acceptant.
Seb@stien
Or le MS400 n'accepte pas de WOL
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
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Chaine de Cross-Compilation
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 : 45
Localisation : 22
re: Chaine de Cross-Compilation
J'ai pas réussi à utiliser nano. C'est ncurses qui nous jette. J'ai mis en place l'arborescence de fichiersmurigny64 a écrit:Super cabatb, ta compil fonctionne nickel.
Seul hic: nano ne se lance pas, j'ai un message:
- Code:
Error opening terminal: vt320.
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
Re: Chaine de Cross-Compilation
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.
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
Re: Chaine de Cross-Compilation
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
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
Re: Chaine de Cross-Compilation
Y'a du avoir une erreur lors de la réponse, je fusionne avec le sujet principal
Seb@stien
Seb@stien
Seb@stien- Admin
- Messages : 569
Date d'inscription : 02/12/2009
Age : 46
Localisation : 95
Re: Chaine de Cross-Compilation
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:
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
Re: Chaine de Cross-Compilation
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 ?
murigny64- Messages : 265
Date d'inscription : 11/12/2009
Re: Chaine de Cross-Compilation
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:
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
Re: Chaine de Cross-Compilation
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 )
murigny64- Messages : 265
Date d'inscription : 11/12/2009
Re: Chaine de Cross-Compilation
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...
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...
Re: Chaine de Cross-Compilation
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
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
Sujets similaires
» Démarrage automatique sur une chaine TV
» Niveau de son different entre chaine HD et SD
» Mauvaise reception chaine du groupe M6
» Afficher le numéro de la chaine regardée sur l'écran LCD?
» Enregistrement chaine crypté tnt ou à partir d'une source externe
» Niveau de son different entre chaine HD et SD
» Mauvaise reception chaine du groupe M6
» Afficher le numéro de la chaine regardée sur l'écran LCD?
» Enregistrement chaine crypté tnt ou à partir d'une source externe
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|