• [^] # Re: Des questions, des indications et des conseils.

    Posté par . En réponse au message Pb de compilation de noyau + besoin d'explications. Évalué à 0.

    Sommaire

    OUi. Je me suis trompé. En fait je récupère la config après avoir fait du ménage avec mrproper.

    En revanche pour réinstaller le noyau d'origine là tout va bien.
    Mon problème se situe au niveau de la préparation du nouveau/futur noyau et du driver.

    /! Je n'ai pas pensé à faire un make uImage.
    Pour répondre à tes questions sur comment j'ai fait pour la réinstallation, voici toutes les infos :

    • Téléchargement du noyau + rootfs.ubi sur le site d'openplug : http://openplug.org/index.php/us/resources/downloads?func=select&id=17

    • Installation d'un serveur tftp et enregistrement des fichier uImage + rootf.ubi à la racine de celui ci.

    • Boot du guruplug et prise en main au démarrage via un module usb JTAG branché sur mon ordi de u_boot

    • Et passage des commandes suivantes pour enregistrer sur la nand tout le fatra pour que ça boot :


      Réinitialiser le guruplug avec son kernel d'origine

      setenv serverip 192.168.1.100
      setenv ipaddr 192.168.1.77

      setenv mainlineLinux yes
      setenv arcNumber 2659

      tftp 0x6400000 uImage-guruplug
      nand erase 0x100000 0x400000
      nand write.e 0x6400000 0x100000 0x400000

      tftp 0x6400000 rootfs.ubi.img
      nand erase 0x500000 0x1fb00000
      -->nand write.e 0x6400000 0x500000 0x
      nand write.e 0x6400000 0x500000 0xb940000

      setenv x_bootcmd_usb 'usb start'
      setenv x_bootcmd_kernel 'nand read.e 0x6400000 0x100000 0x400000'
      setenv x_bootargs_root 'ubi.mtd=2 root=ubi0:rootfs rootfstype=ubifs'
      setenv x_bootargs 'console=ttyS0,115200'
      setenv x_bootcmd '$(x_bootcmd_usb); $(x_bootcmd_kernel); setenv bootargs $(x_bootargs) $(x_bootargs_root) ;bootm 0x6400000;'
      setenv bootcmd 'run x_bootcmd'

      saveenv
      reset

    • Ensuite pour mettre à jour mon kernel je suis passé par le lien suivant (c'est un script qui se charge de télécharger le noyau que tu veux et l'install sur ta NAND) : http://sheeva.with-linux.com/sheeva/README-PLUG-UPDATE.sh

      ./README-PLUG-UPDATE.sh 2.6.33.3 --nandkernel

    Et à partir de là via un montage client nfs vers un autre serveur de mon réseau (c'est le même serveur que le serveur tftp), j'accède au source de mon noyau téléchargé sur kernel.org. Et là, je fais mes compilations... Par contre je n'ai pas essayé de compiler mon noyau au format uImage et de booter dessus. Il faut que je le test!

    J'espère avoir été plus clair ! Ce n'est vraiment pas la partie réinstallation qui me pose souci, mais vraiment la partie configuration du noyau et compilation de ce driver.

    Pour t'apporter plus d'info, je suis allé plus loin depuis mon premier post !
    Je vais te retaper les commandes :

    Compilation du nouveau noyau
    #cp -p /proc/config.gz /mnt/nfs/linux-2.6.33.3/.config
    #cd /mnt/nfs/linux-2.6.33.3
    #make config
    #make (*)
    #make modules_install

    Compilation du driver
    guruplug-debian:/mnt/nfs/iplc/driver/linux-2.6/cm15a.d# make
    make -C /lib/modules/2.6.33.3/build SUBDIRS=/mnt/nfs/iplc/driver/linux-2.6/cm15a.d modules
    make[1]: Entering directory /mnt/nfs/linux-2.6.33.3'
    CC [M] /mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.o
    Building modules, stage 2.
    MODPOST 1 modules
    WARNING: "usb_register_driver" [/mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko] undefined!
    WARNING: "usb_register_dev" [/mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko] undefined!
    WARNING: "usb_alloc_urb" [/mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko] undefined!
    WARNING: "usb_free_urb" [/mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko] undefined!
    WARNING: "usb_deregister_dev" [/mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko] undefined!
    WARNING: "usb_find_interface" [/mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko] undefined!
    WARNING: "usb_submit_urb" [/mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko] undefined!
    WARNING: "usb_unlink_urb" [/mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko] undefined!
    WARNING: "usb_deregister" [/mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko] undefined!
    CC /mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.mod.o
    LD [M] /mnt/nfs/iplc/driver/linux-2.6/cm15a.d/cm15a.ko
    make[1]: Leaving directory
    /mnt/nfs/linux-2.6.33.3'
    rm -rf *.mod.c *.o *~ .*cmd .tmp_versions
    guruplug-debian:/mnt/nfs/iplc/driver/linux-2.6/cm15a.d#

    guruplug-debian:/mnt/nfs/iplc/driver/linux-2.6/cm15a.d# insmod ./cm15a.ko
    insmod: error inserting './cm15a.ko': -1 Unknown symbol in module
    guruplug-debian:/mnt/nfs/iplc/driver/linux-2.6/cm15a.d#
    

    (*) IL ya des tas de choses à configurer j'ai découvert des termes qui m'ont interpelé lors de l'échec de compilation du driver + de l'insmod. Ex :

    --> Dans .config j'ai découvert la possibilité de modifier ce noyau pour le rendre PREEMPTIF. je l'ai mis à (y) à cause du message d'erreur suivant lors d'un test d'insmod :

    • cm15a: version magic '2.6.33.3 mod_unload ARMv5 ' should be '2.6.33.3 preempt mod_unload ARMv5 '

    --> Ensuite j'ai recompilé le noyau et le driver. La compilation du driver échoue mais en faisant un insmod ./cm15a.ko j'ai l'erreur suivante désormais :

    • cm15a: Unknown symbol malloc_sizes

    Mes explications sont un peu brouillon et désordonnées. C'est pas facile du tout !
    Ce que je sens c'est que le .config n'est pas bon et ne me permet pas de compiler ce driver. Mais d'ou tous mes malheurs viennent ils ??
    Cordialement