Kompilieren Treibermodul für USB-Ethernet-Adapter (AX88179)

P

Pete5

Neues Mitglied
0
Hallo Zusammen,
benötige Hilfe beim Kompilieren eines Treibermoduls.
Habe ein Galaxy Tab 2 10.1 Wifi (GT-P5110) und einen USB-Ethernet-Adapter mit dem Chipsatz AX88179. Da das Galaxy Tab diesen von Haus nicht unterstützt möchte ich das Modul aus den Quellen kompilieren.
Ich bin nach folgender Anleitung vorgegangen
[Driver] Asix AX88772 kernel module (USB Eth… | AT&T, Rogers, Bell, Telus Samsung Galaxy S III | XDA Forums

Doch wenn ich nun das kompilierte Modul auf dem Tablet mittels "insmod" laden möchte, dann kommt die Fehlermeldung "Exec format error" . Nach obiger Anleitung soll dies entweder mit einem falschen Kompiler, falschen Quellcode des Kernels oder mit einem unpassenden Gerät zusammenhängen. Ich habe bisher den laut Kernel-Readme empfohlenen Kompiler "arm-2010q1" und folgende weitere Kompiler "arm-eabi-4.4.3", "arm-eabi-4.6" und den "arm-linux-gnueabi" unter Ubuntu ausprobiert. Leider immer mit obigem Fehler.

Den Quellcode für den Kernel & Treiber (V1.14.2) habe ich hierher
Samsung Opensource Release Center
AX88179 - USB 3.0 to Gigabit Ethernet (GbE,GigE) | ASIX

Ich habe sowohl die Datei "Update_1" als auch "Update_2" verwendet. Beide sind für den aktuellsten Kernel mit der Androidversion 4.2.2, wobei ich vermute dass "GT-P5110_JB_Opensource_Update1.zip" für Deutschland die richtigen Quellcodes enthält. Ich konnte dies leider nicht mit meinem installierten Kernel verifzieren, denn auf dem Tablet exisitiert keine Datei namens "config.gz", zumnidest konnte ich die nirgends finden.

Unter den Geräteinformationen meines Tablets werden folgende Versionen angezeigt:
Modellnummer
GT-P5110

Android-Version
4.2.2

Kernel-Version
3.0.31-1709803

Buildnummer
JDQ39.P5110XXDMI1

Weiß irgendwer Rat oder hat jemand eine Idee woran das liegen könnte?

Gruß
Pete
 
Hallo mrrbr,
vielen Dank für den Link! Bin danach vorgegangen und bis zu dem Punkt "Kernel-Konfiguration auslesen" gab's auch keine Probleme.

Doch woher bekomme ich diese config-Datei, auf dem Tablet existiert keine und bei Samsug kann ich auch keine finden. In dem Quellcode des Kernels gibt es im Verzeichnis "arch/arm/configs" eine Datei namens "android_espresso10_omap4430_r02_user_defconfig". Mit dieser habe ich mit
Code:
make ARCH=arm CROSS_COMPILE=arm-eabi- android_espresso10_omap4430_r02_user_defconfig
eine ".config" erstellt.

Danach habe ich versucht die Module zu erstellen, doch dieser Versuch ist auch mit einer Menge Fehlermeldungen abgebrochen worden.
Code:
~/kernel/src$ make ARCH=arm CROSS_COMPILE=arm-eabi- modules -j3
  CHK     include/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: »include/generated/mach-types.h« ist bereits aktualisiert.
  CC      arch/arm/kernel/asm-offsets.s
In file included from include/linux/sched.h:64:0,
                 from arch/arm/kernel/asm-offsets.c:13:
include/linux/mm_types.h:83:14: error: duplicate member '_count'
     atomic_t _count;  /* Usage count, see below. */
              ^
include/linux/mm_types.h:90:12: error: duplicate member '_mapcount'
   atomic_t _mapcount; /* Count of ptes mapped in mms,
            ^
include/linux/mm_types.h:95:8: error: duplicate member 'inuse'
    u16 inuse;
        ^
include/linux/mm_types.h:96:8: error: duplicate member 'objects'
    u16 objects;
        ^
include/linux/mm_types.h:108:25: error: duplicate member 'mapping'
   struct address_space *mapping; /* If low bit clear, points to
                         ^
include/linux/mm_types.h:123:11: error: duplicate member 'index'
   pgoff_t index;  /* Our offset within mapping. */
           ^
include/linux/mm_types.h:124:9: error: duplicate member 'freelist'
   void *freelist;  /* SLUB: freelist req. slab lock */
         ^
make[1]: *** [arch/arm/kernel/asm-offsets.s] Fehler 1
make: *** [prepare0] Fehler 2

Komme damit leider auch nicht weiter???

Gruß
Pete
 
Bin wieder einen kleinen Schritt weiter...
Mit der Toolchain arm-2010q1 oder arm-eabi-4.4.3 habe ich einen Durchlauf des Kompilers ohne Fehlermeldungen hinbekommen.

Wenn ich nun mein kompiliertes Modul via insmod laden möchte bekomme ich folgende Fehlermeldung:
Code:
init_module 'asix.ko' failed (Exec format error)
und in der Ausgabe von dmesg finde ich folgendes:
Code:
asix.ko: disagrees about version of symbol module_layout

Hat dazu jemand eine Idee?

Gruß Pete
 
Mit den Hinweisen aus folgendem Post aus og. Anleitung ist es mir gelungen ein ROM (CM-11) mit den aktuellen Asix Treibern zu erstellen.

Vielen Dank für die Hilfe! :thumbsup:

Pete
 

Ähnliche Themen

B
  • BachManiac
Antworten
1
Aufrufe
7.220
Maniaxx
Maniaxx
F
Antworten
1
Aufrufe
1.951
xz1c
X
G
  • Gelöschtes Mitglied 410096
Antworten
1
Aufrufe
1.974
Gelöschtes Mitglied 410096
G
Zurück
Oben Unten