crocodanser Posté(e) 11 mars 2013 Share Posté(e) 11 mars 2013 (modifié) Dans ce tuto, je vais vous présenter ma manière de compiler le kernel fourni par Wiko. Vous remarquerez qu'ils n'ont pas fourni tous les éléments nécessaires. Quelques bugs subsistent. Espérons que pour la version JB, ils nous fourniront un code source complet et utilisable directement. Tout d'abord, nous allons nous concentrer sur les pré-requis : Créer l'arborescence de travail : mkdir ~/android cd ~/android Télécharger les sources : http://www.wikogeek.com/ Décompresser l'archive unzip ~/Téléchargements/CINK_KING_ICS_1564dsf4s64.zip Installation du compilateur (Toolchain) : Se placer dans ~/android puis lancez cette commande : git clone https://android.googlesource.com/platform/prebuilt/ Il y'a environ 2G à télécharger. Récupérer le fichier arm-eabi-ld.bfd et le placer dans ~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/ et lui donner les droits d'execution. wget https://raw.github.com/AdiPat/Android_Toolchains/master/arm-eabi-4.4.3/bin/arm-eabi-ld.bfd mv arm-eabi-ld.bfd ~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/ chmod +x ~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-ld.bfd Vous devriez mantenant avoir cette arborescence dans ~/android: drwxr-xr-x 25 utilisateur utilisateur 4096 févr. 20 13:55 kernel/ drwxr-xr-x 7 utilisateur utilisateur4096 nov. 13 09:07 mediatek/ drwxr-xr-x 3 utilisateur utilisateur 4096 févr. 20 14:38 prebuilt/ -rwxr-xr-x 1 utilisateurcutilisateur259 déc. 14 11:16 README* Télécharger les outils Pour avoir un boot.img convenable, nous aurons besoin d'un outil qui permet de récupérer le ramdisk du boot.img officiel. Le boot.img est récupérable des la maj v14 du Wiko Cink King. L'outil nécessaire est unpack-MT65xx.pl : Créer une nouvelle arborescence et télecharger les outils : mkdir ~/android/tools cd ~/android/tools git clone [url="https://github.com/bgcngm/mtk-tools"]https://github.com/bgcngm/mtk-tools[/url] Récupérer le ramdisk Copiez le boot.img de la v14 dans le répertoire ~/android/tools Placez-vous dans le répertoire ~/android/tools Lancez la commande suivante : # mtk-tools/unpack-MT65xx.pl boot.img MTK-Tools by Bruno Martins MT65xx unpack script (last update: 27-01-2013) Valid Android signature found... Input file information: Kernel size: 3506404 bytes / load address: 0x10008000 Ramdisk size: 591128 bytes / load address: 0x11000000 Second stage size: 0 bytes / load address: 0x10f00000 Page size: 2048 bytes ASCIIZ product name: '' Command line: (none) Kernel written to 'boot.img-kernel.img' Removed old ramdisk directory 'boot.img-ramdisk' Ramdisk size: 2046 blocs Extracted ramdisk contents to directory 'boot.img-ramdisk' Successfully unpacked kernel and ramdisk Vous avez maintenant un fichier boot.img-kernel.img correspondant au zImage et un répertoire contenant le ramdisk boot.img-ramdisk. Récupération du header. Pour que votre Wiko puisse démarrer sur votre kernel compilé, il vous faudra récupérer le header du fichier boot.img-kernel.img. Sachant que celui-ci est un fichier binaire, nous utiliserons cette commande : dd if=boot.img-kernel.img of=header bs=512 count=1 Le fichier header contiendra l'entête à ajouter au zImage. Préparer la compilation : ( Mention spécial au king je n'ai pas testé pour les autres) Dans les sources du king, il manque quelques drivers: - m4u - videocodec - g2d Il faut vous les procurer dans ce github : https://github.com/a.../mt6577_sources Je vous conseil de le telecharger completement de cette manière : mkdir ~/android/kernel-modules cd ~/android/kernel-modules git clone https://github.com/aquila-dev/mt6577_sources Une fois le téléchargement terminé, nous devons ajouter à nos sources les drivers manquants : [color="#000000"]cp [/color][color="#666600"]-[/color][color="#000000"]rp [/color][color="#666600"]~[/color][color="#008800"]/android/[/color][color="#000000"]kernel[/color][color="#666600"]-[/color][color="#000088"]module[/color][color="#666600"]/[/color][color="#000000"]mediatek[/color][color="#666600"]/[/color][color="#000000"]platform[/color][color="#666600"]/[/color][color="#000000"]mt6577[/color][color="#666600"]/[/color][color="#000000"]kernel[/color][color="#666600"]/[/color][color="#000000"]drivers[/color][color="#666600"]/[/color][color="#000000"]g2d [/color][color="#666600"]/[/color][color="#000000"]android[/color][color="#666600"]/[/color][color="#000000"]kernel[/color][color="#666600"]/[/color][color="#000000"]mediatek[/color][color="#666600"]/[/color][color="#000000"]platform[/color][color="#666600"]/[/color][color="#000000"]mt6577[/color][color="#666600"]/[/color][color="#000000"]kernel[/color][color="#666600"]/[/color][color="#000000"]drivers cp [/color][color="#666600"]-[/color][color="#000000"]rp [/color][color="#666600"]~[/color][color="#008800"]/android/[/color][color="#000000"]kernel[/color][color="#666600"]-[/color][color="#000088"]module[/color][color="#666600"]/[/color][color="#000000"]mediatek[/color][color="#666600"]/[/color][color="#000000"]source[/color][color="#666600"]/[/color][color="#000000"]kernel[/color][color="#666600"]/[/color][color="#000000"]drivers[/color][color="#666600"]/[/color][color="#000000"]m4u [/color][color="#666600"]~[/color][color="#008800"]/android/[/color][color="#000000"]kernel[/color][color="#666600"]-[/color][color="#000088"]module[/color][color="#666600"]/[/color][color="#000000"]mediatek[/color][color="#666600"]/[/color][color="#000000"]source[/color][color="#666600"]/[/color][color="#000000"]kernel[/color][color="#666600"]/[/color][color="#000000"]drivers cp [/color][color="#666600"]-[/color][color="#000000"]rp [/color][color="#666600"]~[/color][color="#008800"]/android/[/color][color="#000000"]kernel[/color][color="#666600"]/[/color][color="#000000"]mediatek[/color][color="#666600"]/[/color][color="#000000"]source[/color][color="#666600"]/[/color][color="#000000"]kernel[/color][color="#666600"]/[/color][color="#000000"]drivers[/color][color="#666600"]/[/color][color="#000000"]videocodec [/color][color="#666600"]~[/color][color="#008800"]/android/[/color][color="#000000"]kernel[/color][color="#666600"]-[/color][color="#000088"]module[/color][color="#666600"]/[/color][color="#000000"]mediatek[/color][color="#666600"]/[/color][color="#000000"]source[/color][color="#666600"]/[/color][color="#000000"]kernel[/color][color="#666600"]/[/color][color="#000000"]drivers[/color] Exportez les variables d'environnements nécessaire à la compilation : export ARCH=arm export CROSS_COMPILE=arm-eabi- export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/ Lancer la compilation cd ~/android/kernel cp mediatek-configs .config TARGET_PRODUCT=s9081 MTK_ROOT_CUSTOM=../mediatek/custom make La compilation se termine un fichier zImage a été créé dans ~/android/kernel/arch/arm/boot/ Placez le zImage dans le répertoire ~/android/tools Se placer dans ~/android/tools Ajout du header au zImage : dd if=header of=zImageMod dd if=zImage of=zImageMod bs=512 seek=1 Cette commande crée un nouveau fichier zImageMod contenant le header et le zImage. A présent, nous pouvons créer notre boot.img compilé en utilisant la commande repack-MT65xx.pl. Créer le nouveau boot.img Voici les arguments de l'outil repack-MT65xx.pl : # ./repack-MT65xx.pl MTK-Tools by Bruno Martins MT65xx repack script (last update: 27-01-2013) Usage: repack-MT65xx.pl COMMAND [...] COMMANDs are: -boot <kernel> <ramdisk-directory> <outfile> Repacks boot image -recovery <kernel> <ramdisk-directory> <outfile> Repacks recovery image -logo [--no_compression] <logo-directory> <outfile> Repacks logo image Ajouter les droits d'execution au fichier mkbootimg chmod +x mtk-tools/mkbootimg Lancer la commande de repack : # sudo mtk-tools/repack-MT65xx.pl -boot zImageMod boot.img-ramdisk monboot.img MTK-Tools by Bruno Martins MT65xx repack script (last update: 27-01-2013) Repacking boot image... Ramdisk size: 2046 blocs Repacked boot image into 'monboot.img'. Voila, il ne vous reste plus qu'à flasher le boot.img sur votre téléphone à l'aide de SPFlashtools. Bugs connus : - Caméra avant ne marche pas Edit : Faute d'orthographe dans le titre désolé et surement dans le texte. j'étais un peu pressé dsl. Modifié 12 mars 2013 par croco 2 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gingo_21 Posté(e) 11 mars 2013 Share Posté(e) 11 mars 2013 Bon tuto, merci :) Pratique la commande pour ajouter le header, je rajoute ça dans mon script de compilation ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 11 mars 2013 Auteur Share Posté(e) 11 mars 2013 Yes je l'ai déjà fait ici : https://github.com/crocoolivier/wikodev/tree/master/tools Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
spanish Posté(e) 11 mars 2013 Share Posté(e) 11 mars 2013 Tres bon tuto, merci ! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tenchirox Posté(e) 11 mars 2013 Share Posté(e) 11 mars 2013 merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
timdu13 Posté(e) 11 mars 2013 Share Posté(e) 11 mars 2013 (modifié) Merci pour ton tuto mais tu a commis quelques erreurs il faut lire cp -rp ~/android/kernel-modules/mt6577_sources/platform/mt6577/kernel/drivers/g2d ~/android/kernel/mediatek/platform/mt6577/kernel/drivers cp -rp ~/android/kernel-modules/mt6577_sources/source/kernel/drivers/m4u ~/android/kernel/mediatek/source/kernel/drivers cp -rp ~/android/kernel-modules/mt6577_sources/source/kernel/drivers/videocodec ~/android/kernel/mediatek/source/kernel/drivers Et non : cp -rp ~/android/kernel-module/mediatek/platform/mt6577/kernel/drivers/g2d /android/kernel/mediatek/platform/mt6577/kernel/drivers cp -rp ~/android/kernel-module/mediatek/source/kernel/drivers/m4u ~/android/kernel-module/mediatek/source/kernel/drivers cp -rp ~/android/kernel/mediatek/source/kernel/drivers/videocodec ~/android/kernel-module/mediatek/source/kernel/drivers ou alors enlève le s a ton mkdir kernel-moduleS Et le git clone done comme dossier parent mt6577_sources et non mediatek Et également cd ~/android/kernel cp mediatek-configs .config TARGET_PRODUCT=s9081 MTK_ROOT_CUSTOM=../mediatek/custom make Et non cd ~/android/kernel/kernel cp mediatek-configs .config TARGET_PRODUCT=s9081 MTK_ROOT_CUSTOM=../mediatek/custom make A corriger ;) Modifié 11 mars 2013 par Le Bugdroid Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 12 mars 2013 Auteur Share Posté(e) 12 mars 2013 (modifié) Lol ok j' corrige. j'avoue que je l'ai fait à l'aveugle. merci pour le retour Modifié 12 mars 2013 par croco Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
nexgen Posté(e) 12 mars 2013 Share Posté(e) 12 mars 2013 merci pour le tuto qui servira bien si wiko nous lache JB et son kernel je retourne pas sur du ics a present y a un gain significatif depuis JB Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 12 mars 2013 Auteur Share Posté(e) 12 mars 2013 Je suis d'accord pour JB. ça nous aura permis de nous entraîner :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
benoitm974 Posté(e) 17 mars 2013 Share Posté(e) 17 mars 2013 Bonjour, Arrivez vous à compiler tous les modules nécessaires au kernel également ? Notemment le fichier m4u.ko ? Je travail sur le peax, dont l'arbo est très similaire, j'ai bien le driver m4u, et le fichier m4u_kernel.c est bien compilé, cela permet d'utiliser les fichiers .ko déjà présent sur le device, cependant j'aimerais faire une monté de version en 3.0.69 et il me faut dans ce cas pouvoir générer les 40 modules présent sur le device stock or les source wiko ne produisent que 26 modules... Benoit Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 12 avril 2013 Auteur Share Posté(e) 12 avril 2013 Tentative de compilation du kernel Wiko JB : In file included from drivers/usb/gadget/android.c:58: drivers/usb/gadget/f_mtp.c: In function 'receive_file_work': drivers/usb/gadget/f_mtp.c:1072: warning: too few arguments for format drivers/usb/gadget/android.c: At top level: drivers/usb/gadget/android.c:2008: internal compiler error: in dwarf2out_finish, at dwarf2out.c:18906 ça ne marchera jamais du premier coup! Bizzarre Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
marcos_59143 Posté(e) 12 avril 2013 Share Posté(e) 12 avril 2013 varun bosse dessus aussi et a besoin de testeur Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 12 avril 2013 Share Posté(e) 12 avril 2013 (modifié) Ici ca marche(.com), aucun soucis de compilation (kernel JB). 3 compilations, une tel quel et rien à signaler, une avec des modifs dans la configuration par défaut et encore une autre avec des modification perso du code. (préparation pour modification de celui du slim quand il arrivera... d'ici 6 mois...) A vu de nez, il y a aussi tout ce qu'il faut pour compiler android sans avoir à trop se prendre la tête (à confirmer) Modifié 12 avril 2013 par Old geek Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 13 avril 2013 Auteur Share Posté(e) 13 avril 2013 Quel version de toolchain? 4.6 ? Tu l'as trouvé ou le toolchain? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 13 avril 2013 Share Posté(e) 13 avril 2013 (modifié) 4.6, il provient de chez google git clone https://android.goog...rm/arm-eabi-4.6 Je préviens, il y a 2 personnes qui ont eu un soucis avec dès le lancement du make (je ne sais pas pourquoi, pour le kernel 3.0) mais ici il fonctionne très bien. Je suis sous debian 7 (version 6 passé en testing pour avoir les softs en version plus récente) Pas de soucis particulier pour compiler android AOSP non plus (si ce n'est un manque de drivers à corriger ce qui devrait s'améliorer quand on aura jelly bean de dispo) Modifié 13 avril 2013 par Old geek Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 15 avril 2013 Auteur Share Posté(e) 15 avril 2013 Ok je vais tenté. même si je crois que je l'ai déjà fait :) Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 15 avril 2013 Auteur Share Posté(e) 15 avril 2013 (modifié) Bon et bien j'ai testé avec ton gcc et... Ba j'ai toujours l'erreur : make[1]: *** [mediatek/custom/out/tinno77_jb/kernel/alsps/cm3607.o] Error 1 make: *** [mediatek/custom/out/tinno77_jb/kernel] Error 2 Bizarre que toi tu n'ais pas cette erreur... Modifié 15 avril 2013 par croco Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
timdu13 Posté(e) 15 avril 2013 Share Posté(e) 15 avril 2013 (modifié) Quelle commande make utilise tu ? Après CUSTOM_MAKE tu met quoi ? Si tu met ALPS_ICS2 ou quelque chose tu genre ça ne fonctionnera pas. Rend toi dans le dossier mediatek/custom et regarde le nom du dossier qui est autre que "common" et "mtk6577" Modifié 15 avril 2013 par Pdroid Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 15 avril 2013 Auteur Share Posté(e) 15 avril 2013 j'utilise ce qu'il y a dans le readme. Tinno j'sais plus quoi. j'regarderais demain merci :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) 15 avril 2013 Share Posté(e) 15 avril 2013 Effectivement, si tu te fies à la doc ça va pas marcher. Il ne faut pas chercher plus loin. Le readme, c'est comme pour le reste, 50% vrai et 50% bidon :P TARGET_PRODUCT=s9081 MTK_ROOT_CUSTOM=../mediatek/custom/ make Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 16 avril 2013 Auteur Share Posté(e) 16 avril 2013 J'ai fais comme ça la première fois que j'ai essayé mais avec le gcc 4.4.3 Je reessai. Merci ;) Bon je viens de reessayer avec ce make : make TARGET_PRODUCT=s9081 MTK_ROOT_CUSTOM=../mediatek/custom CROSS_COMPILE=/home/olivier/android/prebuilt4.6/arm-eabi-4.6/bin/arm-eabi- Voici le message d'erreur : MODPOST vmlinux.o WARNING: modpost: Found 7 section mismatch(es). To see full details build your kernel with: 'make CONFIG_DEBUG_SECTION_MISMATCH=y' GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o LD init/built-in.o LD .tmp_vmlinux1 mediatek/kernel/built-in.o: In function `musb_dma_completion': /home/olivier/android/kernel/mediatek/kernel/drivers/usb20/musb_core.c:1203: undefined reference to `musb_h_ep0_irq' /home/olivier/android/kernel/mediatek/kernel/drivers/usb20/musb_core.c:1211: undefined reference to `musb_host_tx' /home/olivier/android/kernel/mediatek/kernel/drivers/usb20/musb_core.c:1220: undefined reference to `musb_host_rx' mediatek/kernel/built-in.o: In function `musb_interrupt': /home/olivier/android/kernel/mediatek/kernel/drivers/usb20/musb_core.c:1143: undefined reference to `musb_h_ep0_irq' /home/olivier/android/kernel/mediatek/kernel/drivers/usb20/musb_core.c:1158: undefined reference to `musb_host_rx' /home/olivier/android/kernel/mediatek/kernel/drivers/usb20/musb_core.c:1179: undefined reference to `musb_host_tx' mediatek/kernel/built-in.o: In function `musb_stage0_irq': /home/olivier/android/kernel/mediatek/kernel/drivers/usb20/musb_core.c:549: undefined reference to `musb_root_disconnect' mediatek/kernel/built-in.o: In function `musb_stop': /home/olivier/android/kernel/mediatek/kernel/drivers/usb20/musb_core.c:714: undefined reference to `musb_root_disconnect' mediatek/kernel/built-in.o: In function `musb_probe': /home/olivier/android/kernel/mediatek/kernel/drivers/usb20/musb_core.c:1450: undefined reference to `musb_hc_driver' make: *** [.tmp_vmlinux1] Error 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 17 avril 2013 Auteur Share Posté(e) 17 avril 2013 Ouai ba j'avais dû un truc avec les sources car j'ai tout retélécharger et ça fonctionne maintenant. Il me reste plus qu'à tester ;) Merci Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
marcos_59143 Posté(e) 17 avril 2013 Share Posté(e) 17 avril 2013 bien joué, hâte de voir et tester ce kernel jb Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gingo_21 Posté(e) 20 avril 2013 Share Posté(e) 20 avril 2013 Mauvaise nouvelle, selon varun http://forum.xda-developers.com/showthread.php?p=40492932#post40492932 , les sources jellybean sont du "foutage de gu*****" de la part de wiko, ce sont exactement les mêmes pour le king et le peax et c'est loin d'être fonctionnel. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
tikilou Posté(e) 20 avril 2013 Share Posté(e) 20 avril 2013 J'ai posté un petit quelque chose sur le mur Facebook de wiko, j'invite d'autres personnes à réagir à ce sujet => https://www.facebook.com/wikomobile Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.