crocodanser Posté(e) 6 février 2013 Share Posté(e) 6 février 2013 (modifié) Pour celles et ceux qui ont commencé à se renseigner sur le développement d'android, Pouvez-vous nous indiquer les meilleurs tutos que vous avez trouvez? Compilation du Kernel fourni par WIKO : En attendant, je vais essayer de compiler le kernel fourni par Wiko. Je vais tenir mais notes ici ( Pas de présentation). Début de Tuto : Créer l'arborescence de travail : mkdir -p ~/android/kernel Télécharger les sources : http://www.wikogeek.com/ Les placer dans ~/android/kernel Décompresser l'archive unzip CINK_KING_ICS_1564dsf4s64.zip Télécharger toolchain ( Cross Compiler ): git clone https://android.googlesource.com/platform/prebuilt/ Il y'a environ 2G à télécharger. Vous devriez avoir cette arborescence : drwxr-xr-x 25 croco croco 4096 févr. 20 13:55 kernel/ drwxr-xr-x 7 croco croco 4096 nov. 13 09:07 mediatek/ drwxr-xr-x 3 croco croco 4096 févr. 20 14:38 prebuilt/ -rwxr-xr-x 1 croco croco 259 déc. 14 11:16 README* Préparer le compilation : export ARCH=arm export CROSS_COMPILE=arm-eabi- export PATH=$PATH:~/android/kernel/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/ Récupérer le fichier arm-eabi-ld.bfd et le placer dans ~/android/kernel/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/kernel/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/ chmod +x ~/android/kernel/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-ld.bfd Lancer la compilation cd ~/android/kernel/kernel cp mediatek-configs .config TARGET_PRODUCT=s9081 MTK_ROOT_CUSTOM=../mediatek/custom make le .config nous permet d'effectuer des optimisations. Décompacter le boot.img http://technologeek....?title=Boot.img Récupérer l'outil mtk-tool (Dont le unpack-MT65xx.pl et le repack) git clone https://github.com/bgcngm/mtk-tools Pour le boot.img, je vais utiliser celui de la MAJ V14 mais bon je ne suis pas sur. On verra bien... # 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 Bon on place le zImage dans le répertoire que l'on veut et on doit repack le tout. 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 Bon faut ajouter les droits d'execution au fichier mkbootimg J'ai utilisé cette commande : # sudo mtk-tools/repack-MT65xx.pl -boot zImage 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'. J'ai bien mon fichier monboot.img qui a été créé. Bizzarrement, il est plus grand que celui d'origine.. Est-ce parcequ'il provient de la MAJ? ... # du -sh * 4,0M boot.img 3,4M boot.img-kernel.img 1,1M boot.img-ramdisk 4,2M monboot.img 292K mtk-tools 3,6M zImage Sources : http://forum.xda-dev...d.php?t=1197147 http://www.droidforu...own-kernel.html http://madteam.co/ne...or-your-device/ Bon imaginons que le nouveau boot.img est bon... Quel est notre interet? En quoi d'avoir le kernel nous permettrait de passer à Cyanogen? J'arrive pas à trouver un tuto ou je comprends bien la compilation de Cyanogen et surtout un tuto pour un téléphone pour lequel ils n'ont rien développé. Si vous avez ça je suis preneur. Edit du 12/02 --> Super tuto ici : http://forums.androi...age-source.html Eléments de compilation de cyanogen CM9 Début de réponse : http://forum.xda-dev...d.php?t=2010281 et http://forum.xda-dev...d.php?t=1935162 Je commence par ça : - SDK - Java - Packages de dev C... Préparation de l'environnement de développement : apt-get update apt-get install git-core gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev:i386 \ g++-multilib mingw32 openjdk-6-jdk tofrodos python-markdown \ libxml2-utils xsltproc zlib1g-dev:i386 pngcrush Téléchargement des sources android mkdir ~/bin export PATH=~/bin:$PATH curl [url="https://dl-ssl.google.com/dl/googlesource/git-repo/repo"]https://dl-ssl.google.com/dl/googlesource/git-repo/repo[/url] > ~/bin/repo chmod a+x ~/bin/repo mkdir -p ~/android/system cd ~/android/system repo init -u [url="https://github.com/CyanogenMod/android.git"]https://github.com/CyanogenMod/android.git[/url] -b ics repo sync -f Je pars la dessus : http://wiki.cyanogen...:_porting_intro 1ere chose : Récupérer des infos sur le téléphone. Pour ce faire : Une fois que le sdk est installé, il faut modifier le path pour ajouter le chemin d'adb puis récupérer le fichier build.prop comme ceci : adb pull /system/build.prop Dans ce fichier il y a ces lignes : ro.product.name=s9081 ro.product.manufacturer=WIKO Ces informations vont nous servir à créer le script extract-files.sh tout d'abord, creer l'aborescence : mkdir -p device/wiko/s9081 mkdir -p vendor/wiko/s9081 mkdir -p kernel/wiko/s9081 J'ai placé le code source du kernel ici : ( je sais pas encore si ça sert à qqchose) mkdir -p device/wiko/s9081/kernel Ensuite on copie un fichier extract-files.sh qui se trouve par exemple dans l'arborescence du device panda comme ceci : sudo cp -p device/ti/panda/extract-files.sh device/wiko/s9081/ sudo cp -p device/ti/panda/setup-makefiles.sh device/wiko/s9081/ J'ai modifié les deux fichiers device/wiko/s9081/extract-files.sh et setup-makefiles.sh comme ceci : DEVICE=s9081 MANUFACTURER=wiko Ce script va permettre, il me semble, de récupérer des librairies nécessaire à la compilation de CM. Il faut que le tel soit connecté au pc et reconnu par la commande adb. adb devices S'il y a des ???????????? c'est qu'il n'y a pas les bons droit sur votre PC. Il faut donc taper cette commande : $ lsusb Bus 001 Device 004: ID [b]0bb4:0c03[/b] HTC (High Tech Computer Corp.) Récuperer l'id. puis creer le fichier /etc/udev/rules.d/99-android.rules et mettre cette ligne à l'interieur : SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4:0c03", SYMLINK+="android_adb", MODE="0666" GROUP="plugdev" TEST=="/var/run/ConsoleKit/database", \ RUN+="udev-acl --action=$env{action} --device=$env{DEVNAME}" Maintenant, il faut débranché et rebrancher le tel et retesté la commande adb devices. voir : http://forum.xda-dev...40#post11823740 Bon maintenant on se place dans device/wiko/s9081 et on lance la commande extract-files.sh. J'ai des librairies qui ne sont pas récupérée : $ ./extract-files.sh 45 KB/s (5476 bytes in 0.116s) remote object '/system/vendor/lib/egl/libEGL_POWERVR_SGX540_120.so' does not exist remote object '/system/vendor/lib/egl/libGLESv1_CM_POWERVR_SGX540_120.so' does not exist remote object '/system/vendor/lib/egl/libGLESv2_POWERVR_SGX540_120.so' does not exist remote object '/system/vendor/lib/hw/gralloc.omap4.so' does not exist 446 KB/s (248888 bytes in 0.544s) 347 KB/s (75492 bytes in 0.212s) 150 KB/s (21768 bytes in 0.141s) 133 KB/s (13660 bytes in 0.100s) 75 KB/s (9340 bytes in 0.120s) 375 KB/s (95356 bytes in 0.248s) 422 KB/s (197980 bytes in 0.457s) 524 KB/s (877956 bytes in 1.633s) ./extract-files.sh: 99: ./extract-files.sh: ./setup-makefiles.sh: not found Je vais regarder si c'est fichiers sont à un autre emplacement. Bon déja dans le répertoire /system/vendor/lib/egl/, j'ai que : libEGL_mtk.so libGLESv1_CM_mtk.so libGLESv2_mtk.so J'pense qu'il faut que je modifie le fichier extract-files.sh pour qu'il récupère ces fichiers mais faut-il qu'ils gardent le même nom??? Bon j'ai modifié comme ceci : adb pull /system/vendor/lib/egl/libEGL_mtk.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libEGL_mtk.so adb pull /system/vendor/lib/egl/libGLESv1_CM_mtk.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libGLESv1_CM_mtk.so adb pull /system/vendor/lib/egl/libGLESv2_mtk.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/libGLESv2_mtk.so adb pull /system/vendor/lib/hw/gralloc.mt6577.so ../../../vendor/$MANUFACTURER/$DEVICE/proprietary/gralloc.mt6577.so Bon j'vais fouiller un peu car je suis perdu... J'arrive pas à lancer la compilation enfin je sais meme pas ce que je compile... Ce qu'il faut que je comprenne : Comment gérer au mieux les variables d'environnement. Comment intégrer les sources mediatek ( Il semble y avoir pas mal d'info importante dans le repertoire mediatek des sources fournies par wiko) Le problème c'est que l'arborescence ne correspond pas à cyanogen... Comment compiler convenablement... Bon j'fais une pause... J'fouillerais demain... Modifié 20 février 2013 par croco 2 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tenchirox Posté(e) 7 février 2013 Share Posté(e) 7 février 2013 Ton zimage est plus gros que celui de wiko donc ca se ressent dans le boot.img stou Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 7 février 2013 Auteur Share Posté(e) 7 février 2013 Kernel compilé mais pas testé. Y'a t'il un risque de tester un boot.img? Mais pourquoi il est plus gros ? J'ai rien fait de plus que ce qu'ils ont fourni. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tenchirox Posté(e) 7 février 2013 Share Posté(e) 7 février 2013 Si tu backup avant de flash non, au pire tu restore si sa tourne au vinaigre. Il peut être plus gros tout bêtement a par manque d'optimisation a ce niveau (genre option -0s) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 7 février 2013 Auteur Share Posté(e) 7 février 2013 Ok merci As tu vu ce que g mis a la fin de mon topic? As tu des infos ? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tenchirox Posté(e) 7 février 2013 Share Posté(e) 7 février 2013 Pour cyanogen, il ne faut pas obligatoirement les sources du noyau pour le compiler mais on a besoin de celles-ci pour correctement le rendre compatible... Le plus simple et que tu commence par compiler cyanogen pour un autre téléphone histoire de générer les outils et te familiariser avec les sources et voir comment et gérer le code spécifique a un tél... Âpres tu peux commencer par cela : http://wiki.cyanogenmod.org/w/Doc:_porting_intro Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 7 février 2013 Auteur Share Posté(e) 7 février 2013 ok merci du conseil ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
niikkoo Posté(e) 8 février 2013 Share Posté(e) 8 février 2013 (modifié) alors franchement si vous etes assez bon pour pondre un kernel modded facon franco ce serait tres puissant !! :) je suis de tout coeur avec vous : ) Modifié 8 février 2013 par niikkoo Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 8 février 2013 Auteur Share Posté(e) 8 février 2013 He he ! j'aimerais bien :) j'apprends tranquille :) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
nexgen Posté(e) 9 février 2013 Share Posté(e) 9 février 2013 ou un petit dorimax...ou hyperdroid...y en a tellement ^^ quand j aurais un peu de temps je me plongerais dedans..mais avec un bon gros tuto si tu peu nous en pondre un ;) Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 9 février 2013 Auteur Share Posté(e) 9 février 2013 Ba écoute, j'écris mes notes ici. Si j'arrive à quelque chose, je ferais un méga tuto bien détaillé comme il en existe très peu... Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
nexgen Posté(e) 9 février 2013 Share Posté(e) 9 février 2013 etant sous win a l epoque ou je regardais les tuto c etais toujours sous linux... les outils sous win ca serais bien.. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tenchirox Posté(e) 9 février 2013 Share Posté(e) 9 février 2013 T'as qu'a être sous linux comme tout les dev :P 1 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
nexgen Posté(e) 9 février 2013 Share Posté(e) 9 février 2013 franchement je prefere de loing mon windows seven kernel whs ^^ j ai mint d installer sur mon autre pc mais ca me gave le tux je m en sert uniquement pour les serveurs plus light que whs Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Marc Rosser Posté(e) 15 février 2013 Share Posté(e) 15 février 2013 Interessant ca, ca devrait nous aider à compiler JB ou CM10! Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
niikkoo Posté(e) 15 février 2013 Share Posté(e) 15 février 2013 bah tu virtualize ton mint dasn ton whs et ta tout ce qu il te faut ^^ Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 15 février 2013 Auteur Share Posté(e) 15 février 2013 crakeron, si tu as des infos pour m'aider ça serait cool. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
jmb462 Posté(e) 19 février 2013 Share Posté(e) 19 février 2013 (modifié) J'ai également réussi à compiler le kernel stock et j'ai obtenu le zImage. Pour personnaliser le kernel, j'ai fait un make config mais ... pfiou... beaucoup trop d'options dont j'ignore totalement le rôle. J'ai modifié les sources pour ajouter le gouvernor smartass2 d'Erasmusx. Modifié 20 février 2013 par jmb-- Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 20 février 2013 Auteur Share Posté(e) 20 février 2013 Salut jmb, C'est quoi smartass2? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
jmb462 Posté(e) 20 février 2013 Share Posté(e) 20 février 2013 (modifié) Croco : http://forum.frandro...r-io-scheduler/ C'est une manière plus équilibrée de gerer l'activité du CPU. C'est censé procurer de bonne performance tout en économisant le CPU dès qu'il n'y a plus trop besoin de lui. C'est pas forcément le governor que tout le monde utilisera mais c'est surtout pour moi l'occasion de tester comment on rajoute des fonctions au kernel de base (le kernel wiko propose de base hybrid/ondeman/performance/powersave/userspace) Je me retrouve avec 2 versions du boot.img Une version stock compilée depuis les sources, je vais commencer par tester celle ci. Une version mod avec l'ajout du governor smartass2 que je testerai si mon téléphone n'est pas encore brické par l'étape 1 :) J'éditerai ce message ensuite pour éviter le flooder le topic. Edit 10h30 : Echec. J'ai flashé le boot.img compilé. Le King tourne en boucle dès l'allumage sur le logo cink king (il s'allume, affiche le logo, s'éteint, se rallume, etc.) J'ai donc reflashé le boot.img fourni dans la v14 et ça roule. Je pense que la compilation est ok mais que la méthode pour empaqueter le tout dans le boot.img ne doit pas être la bonne. Aucune idée pour débloquer la situation. Modifié 20 février 2013 par jmb-- Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 20 février 2013 Auteur Share Posté(e) 20 février 2013 Merci pour l'info. Peux-tu décrire la methode que tu as utilisé pour ajouter le module? La méthode de compilation que tu as utilisé est la même que la mienne? T'as utilisé la même commande que moi pour l'empactage du zImage en boot.img? Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
jmb462 Posté(e) 20 février 2013 Share Posté(e) 20 février 2013 (modifié) Je me suis basé sur ton premier post. J'ai utilisé la même méthode que toi pour la compilation et l'empactage. Je viens de faire un test : j'ai récupéré le boot.img de la v14, j'ai utilisé le script unpack pour obtenir le kernel et le ramdisk. J'ai immédiatement repacké les 2 parties et le boot.img obtenu fonctionne quand on le flash via flashtool. Le problème n'est donc pas l'empactage en boot.img mais cela vient du zImage lui même. Pourtant, aucun problème à la compilation. Pour ajouter le smartass, j'ai modifié les sources du kernel en ajoutant tout cela dans les fichiers indiqués: https://github.com/e...1f0aebd8f0b9302 (j'ai fait le commit à la main ;) ) Je n'ai même pas testé le zImage obtenu vu que le premier ne fonctionne déjà pas. Modifié 20 février 2013 par jmb-- Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 20 février 2013 Auteur Share Posté(e) 20 février 2013 (modifié) C'est étrange.... Y'a vraiment quelque chose de bizarre... j'ai pas trop d'idée qui me viennent... Il faudrait recompiler et mettre le déroulement de la compilation dans un fichier et analyser chaque warning. De mémoire, il y a quelques warning Modifié 20 février 2013 par croco Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
jmb462 Posté(e) 20 février 2013 Share Posté(e) 20 février 2013 Je testerai de booter sur le zImage avec fastboot boot zImage [du sdk] mais je n'y crois pas trop. Je referai une compil quand j'aurai accès a mon ordi qui fait aussi emulateur psx pour mon fils. Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
crocodanser Posté(e) 20 février 2013 Auteur Share Posté(e) 20 février 2013 moi j'vais en refaire un ce midi. Pour tester, il faut SPFlashtool juste le boot.img en cas de problème, j'ai juste à reflasher le boot.img de la v14 c'est ça? Pas besoin de root? 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.