Aller au contenu

Toolchain & Cross Compilation Pour Les Nuls


Madmax

Messages recommandés

bon pas de soucis pour les modules :)

je rajouterai une section à jour pour les powerpc 853x et 854x quand le DSM 2.2 sera définitif

la doc officielle (pdf) n'est pas vraiment explicite, et dans le fichier source gpl prévu pour powerpc, il y a de grosses blagues dans les makefile

modules compilés sans problèmes après quelques modifications, et en test dans la bêta 939 pour un petit projet, depuis hier aprem

quelques erreurs mineures en cross compilation

pour compiler des applis c'est un autre combat qui commence, vu que l'on ne sait pas quelles versions de compilateurs, ils ont utilisés pour la version 2.2 .

voili voilà

à bientôt pour d'autres aventures ;)

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...
  • Réponses 63
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans ce sujet

j'ai décortiqué un peu les sources, et les patch's utilisés pour le kernel en 2.6.24 pour ppc, je pense que nous sommes passé en 2.6.24.3 pour améliorer un peu la compatibilité et accepter un plus large éventail de matériel via drivers que la version 844 ou on était en 2.6.24.rc4

bref plus vraiment en 2.6.24 branche stable tel que le renvois un uname -r , à qui on peut faire dire n'importe quoi tout comme un cat /proc/cpuinfo pour troubler un peu les dev éventuels...

du moins mon petit doigt me le dit, au vu des patch insérés dans le kernel mais comme il n'y a aucune info nulle part sur le net dans l'underground syno,, encore moins en annonce officielle, ....... ce qui expliquerais nos déboires en cross-compilant des modules kernel avec les sources 844 sous réserve que je me trompe mais je ne le pense pas en écrivant ce propos :)

j'ai mis un post sur le forum anglais, en attente de réponse, si bzou de nslu2 ou quelqu'un du staff officiel a une réponse à ce sujet, on ne perd rien à essayer pour avancer.

http://forum.synolog...pic.php?t=19719

@++

Lien vers le commentaire
Partager sur d’autres sites

  • 3 mois après...
  • 3 semaines après...

Yo,

Un lien dans ton tuto envisage le cross-compile directement depuis le Syno (http://oinkzwurgl.org/diskstation_toolchains).

Est-ce vraiment envisageable sur toutes les plate-formes ?

Lien vers le commentaire
Partager sur d’autres sites

Yo,

Un lien dans ton tuto envisage le cross-compile directement depuis le Syno (http://oinkzwurgl.or...tion_toolchains).

Est-ce vraiment envisageable sur toutes les plate-formes ?

C'est possible et dans ce cas c'est de la compilation mais c'est un peu lourd car il te faudra copier toutes les sources sur le syno environ 1,5 giga et en plus tu ne pourra pas profiter de aptitude ou de yum pour charger les sources qui manquent....

Et en plus les fichiers de configuration automatiques riquent de ne pas marcher à cause de toutes les dépendances qui vont manquer mais c'est possible => et mise à part sur ta bête de course ça risque d'être un peu lent ....

Je te suggére plutôt de le faire sur un linux (Moi je suis PC avec Fedora 12 !!!!) mais une installation virtualisé type VMWare, VirtualBox ou Qemu fera trés bien l'affaire pour compiler.

Lien vers le commentaire
Partager sur d’autres sites

C'est possible et dans ce cas c'est de la compilation mais c'est un peu lourd car il te faudra copier toutes les sources sur le syno environ 1,5 giga et en plus tu ne pourra pas profiter de aptitude ou de yum pour charger les sources qui manquent....

Et en plus les fichiers de configuration automatiques riquent de ne pas marcher

Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

Perso je vois bien le fichier

/usr/local/powerpc-linux-gnuspe/source/linux-2.6.15/88f5281-config

dans ton find !!!!

Mais tu confonds 2 choses la cross compilation de module de noyau => et la tu vas dans sources linux 2.6.qui va bien et tu renomme le bon fichier xxx-config pour ton archi

en .config et tu fais un

make oldconfig => super important

et apres avec make menuconfig tu peut venir s

Lien vers le commentaire
Partager sur d’autres sites

En fait tu as téléchargé est installé 2 choses différentes :

- La tool chains qui contient les outils de cross compilation (Gcc,....) => cela permet de compiler n'importe quel code source en binaire compatible avec ton syno

- La Gpl de synology qui contient les sources de toutes (ou presque) les applications utilisées sur ton syno => cela permet permet principalement de compiler les application déja présente de ton syno sauf que comme tu as les source tu peux altérer certaines fonctionnalités, par exemple le noyau linux du syno ne dispose pas de modules (drivers) pour gérer des webcams USB. Le topic que tu cite (que j'ai d'ailleurs initié) explique entre autres choses comment patcher le noyau d'origine de la GPL pour ajouter le support des webcams USB.

Pour compiler ton application qui gère des tuners tu as 2 choses à faire :

- Copier le répertoire des sources de ton appli avec les autres sources du syno au même niveau que les linux2.6.15 et linux 2.6.24 et autres c'est une source comme les autres, ensuite tu dois compiler ton application mais attention c'est de la "Cross compilation" et la 3 cas ce présente:

  1. Les sources sont prévu pour la cross compilation => suffit de suivre la procédure spécifique décrite dans la documentation des sources
  2. Les sources ne sont pas prévu pour la cross compilation => il faut éditer le fichier .config des sources pour modifier tous les FLAGS de compilation pour qu'il pointe vers la toolchain
  3. C'est un mix des 2 premiers cas => ben faut mettre les mains dnas le cambouis et chercher => c'est le seul cas que j'ai rencontré jusqu'à maintenant ....
- Pour que ton application fonctionne il faut que le tuner soit reconnue par le système car ton applications ne sait pas "parler" en direct au tuner( par la libusb) elle sait parler un langage standard qui est certainement le video4Linux (ce point est à vérifier sur un pc sous linux avec un tuner et le soft dessus) => ajout d'une extension au noyau du linux du syno.

Donc comme je te l'ai dis il faut d'abord patcher la source d'origine du linux.2.6.xx qui va bien avec les sources de V4L (car V4L n'est intégré nativement dans les kernels que depuis la 2.6.26), puis après certaines manips c'est la qu'intervient le menu de paramétrage dont tu as fait un copie d'écran il sert uniquement à éditer le fichier .config (du kernel linux;2.6.xx) pour y demander la compilation d'un module additionnel une fois que tout et bien configurer.

Une fois que tu a réussit cela tu lance la compilation des modules du noyau et tu récupère les bon modules qui vont bien et tu dois les ajouter dans ton syno

Donc voilà la cross compilation est quelque chose de relativement délicats car elle nécessite souvent quelques ajustements des sources pour que les applications fonctionne, de plus je n'en ai pas parler mais je suppose que cette application à des dépendances avec des librairies et il faudra s'assurer quels sont présentes (dans les bonnes versions) sur le syno et au besoin les cross compiler également .....

C'est pour ça que je pense qu'un script basé autour de vlc serait plus simple car il est disponible sur ipkg !!!

Lien vers le commentaire
Partager sur d’autres sites

salut

je suis trop pris pour mettre à jour mes tutos compilation, et toujours en attente du dev pour la finalisation du panel....l'été et le soleil y sont pour beaucoup aussi et aux dernieres nouvelles son projet a été débattu aux rmll2010 ce jour, donc j'espère une avancée rapide ces jours ci que je puisse à mon tour faire avancer quelques trucs en cour :)

de base, les firmwares apportent leurs lots de modifications, souvent concernant des versions de logiciels, l'intégration de nouveaux programmes, MAIS AUSSI PARFOIS de gestions au niveau hardware, gestion améliorée des échanges CPU/RAM , du coup, même si tu arrivais à compiler sans erreurs en cross-compilation des modules kernel, cela serait une horreur sans nom une fois installé dans le syno !!!

c'est le cas pour la série de firmware 959, car depuis il y a eu deux modifications majeures dans l'adressage mémoire pour allouer de l'espace de travail en ram aux modules..

donc avant d'envisager toute modification sur ton syno et cela pour t'éviter une cata, tu es prié de préparer (sauvegarde etc....) puis de migrer vers un firmware stable en série 11xx la série 1144 apporte aussi un changement de l'adressage en mémoire fifo, bref 116xx

regarde du côté du site officiel, tu as des mises à jour

Lien vers le commentaire
Partager sur d’autres sites

Notre grand spécialiste en Cross compilation à parler il ne te reste plus qu'à l'écouter !!!

Sinon content pour toi que cela compile !!!!

spécialiste ? atchoum !!!

disons plutôt fouineur es bricoles/contournements et fourberies diverses informatiques pour arriver à faire ce qui semple impossible/possible

merci d'appuyer mon point de vue ;)

Lien vers le commentaire
Partager sur d’autres sites

d'un œil le match en cour alors ca être rapide

segmentation fault signifie en général que tu as chargé un module kernel avec une mauvaise allocation en mémoire (relocation dans les options kernels)

(plus d'infos demain ou dans qques jours)

bonne soirée

Modifié par MS_Totor
Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.