crocodanser Posted March 11, 2013 Share Posted March 11, 2013 (edited) 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. Edited March 12, 2013 by croco 2 Quote Link to comment Share on other sites More sharing options...
gingo_21 Posted March 11, 2013 Share Posted March 11, 2013 Bon tuto, merci :) Pratique la commande pour ajouter le header, je rajoute ça dans mon script de compilation ! Quote Link to comment Share on other sites More sharing options...
crocodanser Posted March 11, 2013 Author Share Posted March 11, 2013 Yes je l'ai déjà fait ici : https://github.com/crocoolivier/wikodev/tree/master/tools Quote Link to comment Share on other sites More sharing options...
spanish Posted March 11, 2013 Share Posted March 11, 2013 Tres bon tuto, merci ! Quote Link to comment Share on other sites More sharing options...
Tenchirox Posted March 11, 2013 Share Posted March 11, 2013 merci Quote Link to comment Share on other sites More sharing options...
timdu13 Posted March 11, 2013 Share Posted March 11, 2013 (edited) 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 ;) Edited March 11, 2013 by Le Bugdroid Quote Link to comment Share on other sites More sharing options...
crocodanser Posted March 12, 2013 Author Share Posted March 12, 2013 (edited) Lol ok j' corrige. j'avoue que je l'ai fait à l'aveugle. merci pour le retour Edited March 12, 2013 by croco Quote Link to comment Share on other sites More sharing options...
nexgen Posted March 12, 2013 Share Posted March 12, 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 Quote Link to comment Share on other sites More sharing options...
crocodanser Posted March 12, 2013 Author Share Posted March 12, 2013 Je suis d'accord pour JB. ça nous aura permis de nous entraîner :) Quote Link to comment Share on other sites More sharing options...
benoitm974 Posted March 17, 2013 Share Posted March 17, 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 Quote Link to comment Share on other sites More sharing options...
crocodanser Posted April 12, 2013 Author Share Posted April 12, 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 Quote Link to comment Share on other sites More sharing options...
marcos_59143 Posted April 12, 2013 Share Posted April 12, 2013 varun bosse dessus aussi et a besoin de testeur Quote Link to comment Share on other sites More sharing options...
Guest Posted April 12, 2013 Share Posted April 12, 2013 (edited) 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) Edited April 12, 2013 by Old geek Quote Link to comment Share on other sites More sharing options...
crocodanser Posted April 13, 2013 Author Share Posted April 13, 2013 Quel version de toolchain? 4.6 ? Tu l'as trouvé ou le toolchain? Quote Link to comment Share on other sites More sharing options...
Guest Posted April 13, 2013 Share Posted April 13, 2013 (edited) 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) Edited April 13, 2013 by Old geek Quote Link to comment Share on other sites More sharing options...
crocodanser Posted April 15, 2013 Author Share Posted April 15, 2013 Ok je vais tenté. même si je crois que je l'ai déjà fait :) Merci Quote Link to comment Share on other sites More sharing options...
crocodanser Posted April 15, 2013 Author Share Posted April 15, 2013 (edited) 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... Edited April 15, 2013 by croco Quote Link to comment Share on other sites More sharing options...
timdu13 Posted April 15, 2013 Share Posted April 15, 2013 (edited) 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" Edited April 15, 2013 by Pdroid Quote Link to comment Share on other sites More sharing options...
crocodanser Posted April 15, 2013 Author Share Posted April 15, 2013 j'utilise ce qu'il y a dans le readme. Tinno j'sais plus quoi. j'regarderais demain merci :) Quote Link to comment Share on other sites More sharing options...
Guest Posted April 15, 2013 Share Posted April 15, 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 Quote Link to comment Share on other sites More sharing options...
crocodanser Posted April 16, 2013 Author Share Posted April 16, 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 Quote Link to comment Share on other sites More sharing options...
crocodanser Posted April 17, 2013 Author Share Posted April 17, 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 Quote Link to comment Share on other sites More sharing options...
marcos_59143 Posted April 17, 2013 Share Posted April 17, 2013 bien joué, hâte de voir et tester ce kernel jb Quote Link to comment Share on other sites More sharing options...
gingo_21 Posted April 20, 2013 Share Posted April 20, 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. Quote Link to comment Share on other sites More sharing options...
tikilou Posted April 20, 2013 Share Posted April 20, 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 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.