1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

Kernelmodule kompilieren...

Dieses Thema im Forum "Toshiba AC100 Forum" wurde erstellt von morph027, 08.11.2011.

  1. morph027, 08.11.2011 #1
    morph027

    morph027 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    3
    Registriert seit:
    03.11.2011
    Hi!

    So...ich wollte mir mal ein Kernelmodul bauen, um meinen USB-Serial-Adapter zu testen.

    Hab mir die Android-Toolchain geladen und so kompiliert:

    Code:
    scp root@mein-netbook:/proc/config.gz ~/android/binary-source/kernel
    gunzip ~/android/binary-source/kernel/config.gz
    mv ~/android/binary-source/kernel/config ~/android/binary-source/kernel/.config
    
    Dann in der .config eigetragen

    Code:
    CONFIG_USB_SERIAL_FTDI_SIO=m
    
    Code:
    export ARCH=arm
    export CROSS_COMPILE=arm-eabi-
    export PATH=$PATH:~/bin/foo/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/
    cd ~/android/binary-source/kernel
    make modules
    
    insmod liefert:

    Code:
    insmod: can't insert 'ftdi_sio.ko': invalid module format
    
    dmesg | tail:

    Code:
    ftdi_sio: no symbol version for module_layout
    
    laut
    Code:
    strings drivers/usb/serial/ftdi_sio.ko | grep vermagic
    vermagic=2.6.32.9-silver-v3 SMP preempt mod_unload modversions ARMv7
    
    und
    Code:
    file -k drivers/usb/serial/ftdi_sio.ko
    drivers/usb/serial/ftdi_sio.ko: ELF 32-bit LSB relocatable, ARM, version 1 (SYSV), from 'Y', not stripped
    Sollte das auch laufen...hat jemand schon mal Module übersetzte? Andere Toolchain versuchen?

    Dankööööö!
     
  2. scooterdie, 08.11.2011 #2
    scooterdie

    scooterdie Android-Hilfe.de Mitglied

    Beiträge:
    136
    Erhaltene Danke:
    19
    Registriert seit:
    25.05.2011
    Ich denke nicht das das so klappt weil:

    insmod: can't insert 'ftdi_sio.ko': invalid module format

    Das ist eine Fehlermeldung.

    Ich bin auch grad am Kernelbauen wegen der Gamepad sache ...

    Wenn ich es richtig verstanden habe musst du dir die Module wenn sie bei dir fehlen immer mit der Kernelsource kompilieren welche du aktuell am laufen hast.
    Sprich wenn du dir den letzten Kernel geladen hast aber auf deinem Gerät ein älterer läuft geht das meinem Verständnis nach nicht.

    Ich erhebe keinen Anspruch auf Richtigkeit meiner Aussagen ;)
     
  3. morph027, 08.11.2011 #3
    morph027

    morph027 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    3
    Registriert seit:
    03.11.2011
    Ich hab natürlich den passenden Kernel...das ist der silver-Kernel aus dem Custom 2.2er ROM

    Code:
    uname -a
    Linux localhost 2.6.32.9-silver-v3 #14 SMP PREEMPT Thu May 19 23:10:33 MSD 2011 armv7l GNU/Linux
    
    Kernel und Sourcen passen zusammen...komische Sache.
     
  4. scooterdie, 08.11.2011 #4
    scooterdie

    scooterdie Android-Hilfe.de Mitglied

    Beiträge:
    136
    Erhaltene Danke:
    19
    Registriert seit:
    25.05.2011
    und die binary-source mit der du kompilierst ist auch 2.6.32.9 ?

    Wenn dein Gerät gerootet ist könntest du mal nach der datei "config.gz" suchen. Das ist in der Regel die .config Datei mit der der laufende Kernel erstellt wurde.
    Vielleicht kommst du beim build damit eher weiter.


    Alternativ kannst du noch statt insmod xxxx.ko mit "modprobe xxxx" versuchen. Vielleicht kannst du es wenns als M kompiliert ist nur laden aber nicht in den Kernel installieren ???

    lg
     
  5. morph027, 08.11.2011 #5
    morph027

    morph027 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    3
    Registriert seit:
    03.11.2011
  6. scooterdie, 08.11.2011 #6
    scooterdie

    scooterdie Android-Hilfe.de Mitglied

    Beiträge:
    136
    Erhaltene Danke:
    19
    Registriert seit:
    25.05.2011
    Bei mir gehts auch nicht.. Vielleicht muss der Kernel mit der option aufs Modul kompiliert werden ?
     
    Zuletzt bearbeitet: 08.11.2011
  7. morph027, 09.11.2011 #7
    morph027

    morph027 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    3
    Registriert seit:
    03.11.2011
    Das glaub ich nicht...beim ROM von silver sind ja unter /system/lib/modules/ auch Module dabei, die sich anstandslos laden lassen...Ich versuch ihn im xda-developers Forum mal zu fragen, mit was für einer Toolchain er das gebaut hat.
     
  8. morph027, 09.11.2011 #8
    morph027

    morph027 Threadstarter Neuer Benutzer

    Beiträge:
    23
    Erhaltene Danke:
    3
    Registriert seit:
    03.11.2011
    So...er hat einfach den stinknormalen Ubuntu Cross-Compiler genommen....ich jetzt auch und es geht :D Vorher einfach nochmal den kompletten Quelltext gezogen, wegen der Sauberkeit.

    Code:
    sudo apt-get install gcc-arm-linux-gnueabi
    cd ~/android
    git clone https://github.com/silver-alx/ac100_kernel
    export ARCH=arm
    export CROSS_COMPILE=arm-linux-gnueabi-
    cd ac100_kernel
    make modules
    
    Und ich kann mich super mit meinem AC100 und den USB-Serial-Adaptern auf meine Server verbinden ;)

    Hab mal ein joydev.ko angehängt, wer testen mag...
     

    Anhänge:

    Zuletzt bearbeitet: 09.11.2011
  9. scooterdie, 09.11.2011 #9
    scooterdie

    scooterdie Android-Hilfe.de Mitglied

    Beiträge:
    136
    Erhaltene Danke:
    19
    Registriert seit:
    25.05.2011
    Hi. Ja den linux cross c hab ich mir gestern auch noch geladen muss ich heute mal versuche.
    Würde mir trotzdem gerne einen frischen Kernel mal testhalber selber machen.
    Vielen Dank für die Joydev das spart mir eine Menge arbeit ;)

    lg
     

Diese Seite empfehlen