Depuis août 2009, le noyau ne fait plus partie du manifeste du dépôt standard que vous obtenez lorsque vous suivez les instructions pour télécharger le code source du projet open source Android. Les étapes nécessaires pour télécharger, construire et exécuter avec succès un noyau spécifique sur l'émulateur sont les suivantes :
- Obtenez le noyau Android soit en l'ajoutant à votre manifeste de dépôt, soit manuellement en exécutant :
git clone https://android.googlesource.com/kernel/goldfish.git
- Vérifiez la branche correcte pour travailler avec l'émulateur, c'est-à-dire goldfish :
git checkout -t origin/android-goldfish-2.6.29 -b goldfish
- Générer la configuration de l'émulateur (l'émulateur qemu exécute du code arm, c'est à dire une configuration arm) :
make ARCH=arm goldfish_defconfig
- si cela ne fonctionne pas, essayez
make ARCH=arm goldfish_armv7_defconfig
- Construisez maintenant le noyau en utilisant les outils de compilation croisée distribués avec le projet open source :
make ARCH=arm CROSS_COMPILE=mydroid/prebuilt/linux-x86/toolchain/arm-eabi-4.2.1/bin/arm-eabi-
- Le noyau construit de cette façon devrait se retrouver dans le dossier arch/arm/boot de votre arbre de noyau (où vous avez mis le code du clone git).
- Pour faire fonctionner l'émulateur avec votre noyau, il y a deux alternatives, soit le copier dans le dossier prebuilt kernel du projet open source pour remplacer le noyau standard. L'autre option est de démarrer l'émulateur avec l'option noyau définie :
emulator -kernel mydroid/kernel/common/arch/arm/boot/zImage
Notez que j'ai utilisé les chemins par défaut dans la description ci-dessus, vous devez les modifier en fonction de votre configuration. Cela fait un certain temps que je n'ai pas testé ceci mais je pense que cela devrait fonctionner.
Quelques informations supplémentaires : Dans la distribution open source standard d'Android, le noyau est distribué sous la forme d'un binaire pré-construit dans le dossier de l'utilisateur. mydroid/prebuilt/android-arm/kernel
et le code source n'est pas inclus. Le code source du noyau a été supprimé du manifeste par défaut pour deux raisons, selon moi. La première est que cela prend beaucoup de bande passante et d'espace disque pour un composant de plateforme avec lequel la plupart des gens ne travaillent pas beaucoup. L'autre raison est que, puisque le noyau est construit avec le système de construction du noyau et non comme une partie du système de construction de l'aosp, il est logique de le garder séparé. La branche commune pour le noyau est celle utilisée par l'émulateur. Il existe également des branches pour experimental, msm (plateformes Qualcomm) et Omap (plateforme TI) et peut-être d'autres. Si vous voulez utiliser le noyau Android avec du matériel, celles-ci peuvent être plus intéressantes pour vous.