Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 03/03/2016, à 11:43

djelko

Cross compilation ARM kernel linux pour ANDROID

Bonjour à tous !

Je voulais savoir si quelqu'un avait déjà essayé de cross compiler un kernel linux de base genre (3.0 ou 4.0), pour qu'il soit compatible avec Android (5.0 ou 5.1).

Mon problème est que je bénéficie d'une jolie carte avec un Cortex A9 (genre Raspberry +++ avec plein de chose sympa dessus) et je voudrais avoir un vrai kernel Linux mais modifié pour accueillir la partie haute d'Android (machine java et partie applications).

La cross compilation, je pense savoir faire avec un buildroot, mais j'ai crus comprendre aussi qu' Android, propose une chaine de cross compil qui s'appelle NDK, je ne sais pas si c'est vraiment utile d'utiliser cet outil.

Voila, je ne demande pas forcement une solution clé en main, mais surtout avoir de la doc et savoir si c'est possible de le faire ou si quelqu'un l'a déjà fait ?

Merci beaucoup d'avance !

PS : voila le liens vers une petite doc de la carte que j'utilise :

http://cache.nxp.com/files/32bit/doc/fa … leExt=.pdf


" Qui ne tente rien n'a rien ! "

Site perso : http://alexandre-schmitt.fr.nf
Robotique Club de l'Ouest : http://rco.fr.nf

Hors ligne

#2 Le 03/03/2016, à 16:03

claudius01

Re : Cross compilation ARM kernel linux pour ANDROID

Bonjour,

Tu veux vraiment te lancer dans une cross-compilation du kernel !...

C'est tout à ton honneur, mais celui-ci avec Android ne seraient-il pas déjà disponibles car je lis dans la fiche technique de ta jolie carte SABRE:
"OS Support: Linux® and Android™ from our company" ;-)

Maintenant, cela a peut-être un coût financier et pour répondre a ta question "si quelqu'un l'a déjà fait", effectivement ce portage a déjà été réalisé "from scrach" comme on dit dans le métier:
Cf. linux compilation for sabre platform avec notamment Linux on the i.MX6 sabre sd platform in a few commands

Hors ligne

#3 Le 03/03/2016, à 18:05

djelko

Re : Cross compilation ARM kernel linux pour ANDROID

Merci claudius01,

effectivement la cross compilation du noyau m'interresse bien car je compte bien le modifier d'ici quelque temps.

Tes liens je les ai trouvés aussi mais moi ce qui m’intéresse c'est plutôt la cross compilation d'un noyau compatible pour Android et la c'est "juste" un noyau de base... (dans le "de base" ne pas croire que je trouve que la création d'un noyau soit basique big_smile)

La principale difficulté est donc d'arriver à trouver ce que je dois rajouter dans ce kernel de base pour ensuite le cross compiler puis y rajouter mes couches haute d'Android ...

As tu une idée ?

Je sais que c'est ambitieux mais j'aimerais pouvoir maitriser toute la chaine du boot jusqu’à l'appli .apk que je vais mettre dans ma carte.


" Qui ne tente rien n'a rien ! "

Site perso : http://alexandre-schmitt.fr.nf
Robotique Club de l'Ouest : http://rco.fr.nf

Hors ligne

#4 Le 03/03/2016, à 18:10

djelko

Re : Cross compilation ARM kernel linux pour ANDROID

Je me rend compte d'ailleurs au fur et à mesure de mes recherches que seul les sources kernel Androi <= 4.4 sont disponibles en open source. Je ne trouve pas de version supérieur pour le moment.


" Qui ne tente rien n'a rien ! "

Site perso : http://alexandre-schmitt.fr.nf
Robotique Club de l'Ouest : http://rco.fr.nf

Hors ligne

#5 Le 03/03/2016, à 21:26

claudius01

Re : Cross compilation ARM kernel linux pour ANDROID

djelko a écrit :

...
La principale difficulté est donc d'arriver à trouver ce que je dois rajouter dans ce kernel de base pour ensuite le cross compiler puis y rajouter mes couches haute d'Android ...

Sauf erreur de ma part, Android s'appuie sur une JVM du type Dalvik que tu devras porter ou "prendre" telle quelle pour la carte en question...

Pour moi, il n'y a rien à apporter dans le kernel mais c'est peut-être réducteur, je te l'avoue ;-)

Il faut voir ce qu'impose cette JVM d'un point de vue dépendances avec les couches basses disponibles dans le kernel, mais là je dois dire que c'est un sujet à part entière...

Sinon, Joli Projet effectivement pour lequel je te souhaite plein de réussite et, tiens nous au courant ... à l'occasion ;-))

Hors ligne

#6 Le 04/03/2016, à 00:21

derderder

Re : Cross compilation ARM kernel linux pour ANDROID

Tu peux trouver le code du noyaux des téléphones android sur le site des constructeurs ( merci la gpl ),
et de télécharger le code d'un téléphone sous android 5, par exemple le galaxy J5 de samsung: http://opensource.samsung.com/reception … alue=SM-J5

Hors ligne

#7 Le 04/03/2016, à 10:45

djelko

Re : Cross compilation ARM kernel linux pour ANDROID

Merci derderder !

J'ai effectivement vu qu'il était possible de bénéficier des noyaux pour un grand nombre de téléphones grâce à notre bonne vielle licence GPL contaminante big_smile.

Si certain sont intéressés, j'ai aussi trouvé un article faisant une liste assez exhaustive des différences entre noyau Linux et noyau Android. Visiblement les différences ne sont pas "juste" quelques patchs, mais bien des briques assez importantes rajoutées (IPC, d' autre type d’ordonnancement, une gestion de mémoire différente, ...).

http://www.ijens.org/vol_12_i_05/128005 … -ijens.pdf


" Qui ne tente rien n'a rien ! "

Site perso : http://alexandre-schmitt.fr.nf
Robotique Club de l'Ouest : http://rco.fr.nf

Hors ligne

#8 Le 08/03/2016, à 17:39

djelko

Re : Cross compilation ARM kernel linux pour ANDROID

Bonjour à tous,

Je viens vous donner quelques nouvelles concernant mon projet. J'ai réussi à trouver pas mal d'informations qui pourraient en intéresser certains.
Tout d'abord, Freescale (nouvellement NXP) propose un bon nombre de documents pour la cross compilation d'Android sur les cartes qu'il propose. Il met a disposition aussi des images pré compilée afin de tester la carte avant de voir comment cross compiler son système. La mise en place d'une carte SD avec les images que propose le site est loin d'être simple quand on ne lit pas bien les docs associées (et oui on se lance souvent sans regarder la doc jusqu'au moment où on se rend compte que tout ce que l'on cherche à faire est écrit clairement dans la doc...:lol:)

Donc aujourd’hui j’ai réussi à lancer pour la première fois Android grâce aux images pré-compilées d’NXP sur ma carte MCIMX6DL-SDP. C’est un soulagement car voir enfin un truc à l’écran, ça fait du bien :-D

Maintenant, le but prochain est de cross compiler un noyau que propose NXP pour Android. C’est principalement cette étape qui m’intéresse car tout le système de fichier que propose NXP englobe visiblement toutes les parties haut niveau d’Android (Machine JAVA, firmware, applications,…) et là c’est moins mon truc … plus tard peut-être :-D

Plusieurs versions de noyau sont disponibles et à chaque version d’Android correspond une version de noyau spécifique.
J’en suis donc actuellement à voir comment lancer la procédure de cross compilation et je vous tiendrai au courant de comment ça évolue dans les prochains jours.

Voici les liens bien sympas vers les docs NXP, je vous conseille de vous créer un compte sur le site si vous voulez accéder à tous les fichiers en téléchargement.

Images pré-compilées et doc pour la cross compilation d’Android :
http://www.nxp.com/products/microcontro … X6_SW#nogo

Tuto, synthétisant la doc pour la cross compilation d’Android :
https://community.freescale.com/docs/DO … ling_tools


" Qui ne tente rien n'a rien ! "

Site perso : http://alexandre-schmitt.fr.nf
Robotique Club de l'Ouest : http://rco.fr.nf

Hors ligne