Möchte Kernelmodule für orig. FW erstellen m.H. von Freetz. Help!

MT_1

Neuer User
Mitglied seit
26 Mai 2008
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hallo,

ich möchte gerne Kernelmodule für meine Fritz!Box 7141 erstellen, damit ich meinen USB<->Seriell-Adapter verwenden kann. Das Thema ist bereits diskutiert worden, ich komme aber irgendwie nicht weiter. Ich denke, dass ich pl2303.ko und usbserial.ko benötige. Da ich die Module erstmal einfach vom USB-Stick nachladen möchte, habe ich mich entschieden es mal so zu versuchen, wie hier vorgeschlagen: http://www.ip-phone-forum.de/showthread.php?t=101712&page=2 (letzer Beitrag auf der Seite vom 12.03.2007, 20:35).

Also habe ich folgendes gemacht:

Toolchain erstellt nach folgender Anleitung: http://wiki.ip-phone-forum.de/software:ds-mod:howtos#cross-compiler_toolchain_erstellen.
Also freetz heruntergeladen, entpackt und dann:
Code:
make menuconfig
make toolchain
make libs
Wobei ich inzwischen folgende Einstellungen bei make menuconfig probiert habe:
Hardware type: 7141
Advanced options->Compiler options-> Build toolchain und alle 3 Möglichkeiten unter uClibc-Config
(Da habe ich dran herumgestellt wegen dem Hinweis im Howto und weil ich ja für die originale Firmware compilen will).
Welche ist hier die richtige Einstellung? Es gibt mod_26, 4MB_26, 8MB_26.

Naja, das läuft alles durch und ich konnte ein Hello World auf meine Box bringen - Hurra!

Dann hab ich die Schritte im folgenden Howto durchgeführt:
http://wiki.ip-phone-forum.de/software:ds-mod:howtos#kernel_konfigurieren_und_kompilieren
Also:
Code:
make kernel-dirclean
make kernel-menuconfig
make kernel-precompiled
Um an meine Module zu kommen, stelle ich in make kernel-menuconfig den Support dafür ein (Device Drivers->USB-Support->USB Serial Converter support).

Dann kommt es zu Fehlern. Der erste ist:
Code:
In file included from drivers/mtd/maps/ohio-flash.c:18:
include/linux/squashfs_fs.h:37:2: #error unsupported
drivers/mtd/maps/ohio-flash.c: In function `ohio_find_hidden_filesystem':
drivers/mtd/maps/ohio-flash.c:133: warning: unsigned int format, different type arg (arg 2)
drivers/mtd/maps/ohio-flash.c:133: warning: unsigned int format, different type arg (arg 3)
drivers/net/avm_cpmac/cpphy_if.c: In function `cpphy_if_control_req':
drivers/net/avm_cpmac/cpphy_if.c:509: warning: implicit declaration of function `switch_dump'
make[4]: *** [drivers/mtd/maps/ohio-flash.o] Fehler 1
make[3]: *** [drivers/mtd/maps] Fehler 2
make[2]: *** [drivers/mtd] Fehler 2
make[2]: *** Warte auf noch nicht beendete Prozesse...
  CC      drivers/net/avm_cpmac/cpphy_mdio.o
  CC      drivers/net/avm_cpmac/cpphy_main.o
  CC      drivers/net/avm_cpmac/cpphy_misc.o
  CC      drivers/net/avm_cpmac/cpphy_adm6996.o
  CC      drivers/net/avm_cpmac/cpmac_eth.o
  CC      drivers/net/avm_cpmac/cpmac_sched.o
  LD      drivers/net/wireless/built-in.o
  CC      drivers/net/Space.o
  CC      drivers/net/loopback.o
  CC      drivers/net/avm_cpmac/cpphy_entry.o
  CC      drivers/net/tun.o
touch drivers/net/avm_cpmac/dummy.o
  LD      drivers/net/avm_cpmac/avm_cpmac.o
  LD      drivers/net/avm_cpmac/built-in.o
  LD      drivers/net/built-in.o
make[1]: *** [drivers] Fehler 2
make[1]: Verlasse Verzeichnis '/home/jens/Desktop/freetz-1.0/source/ref-8mb_26-04.49/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1'
make: *** [source/ref-8mb_26-04.49/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1/vmlinux.eva_pad] Fehler 2
Google kannte das Problem und gab mir folgenden Hinweis:
http://trac.freetz.org/ticket/187. Damit ließ sich das beheben.
Beim nächsten Versuch läuft es ein Stück weiter und bricht mit:
Code:
  KSYM    .tmp_kallsyms1.S
  AS      .tmp_kallsyms1.o
  LD      .tmp_vmlinux2
  KSYM    .tmp_kallsyms2.S
  AS      .tmp_kallsyms2.o
  LD      .tmp_vmlinux3
  KSYM    .tmp_kallsyms3.S
  AS      .tmp_kallsyms3.o
  LD      vmlinux
  SYSMAP  System.map
  SYSMAP  .tmp_System.map
mipsel-unknown-linux-gnu-objcopy -S -O binary /home/jens/Desktop/freetz-1.0/source/ref-8mb_26-04.49/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1/vmlinux vmlinux.bin
if [ -x ../../../../../../tools/lzma ]; then \
	  ../../../../../../tools/lzma e -lc1 -lp2 -pb2 \
	    vmlinux.bin vmlinux.lzma; \
	else \
	  lzma e -lc1 -lp2 -pb2 vmlinux.bin vmlinux.lzma; \
	fi
lzma: invalid option -- l
make[1]: *** [vmlinux.lzma] Fehler 1
make[1]: Verlasse Verzeichnis '/home/jens/Desktop/freetz-1.0/source/ref-8mb_26-04.49/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1'
make: *** [source/ref-8mb_26-04.49/kernel/kernel_8mb_26_build/kernel/linux-2.6.13.1/vmlinux.eva_pad] Fehler 2
ab.

So da stehe ich nun und bitte euch mal drüber zu schauen, ob ich da nicht grundsätzlich was falsch mache. Wie man sicher merkt, kenne ich mich mit makefiles, menuconfig und kernel-konfigureren noch nicht besonders gut aus. Ich bedanke mich schon mal fürs lesen.


Gruß,

Jens
 
Hi.
Die Einstellungen für die uClibc beziehen sich auf die Target Toolchain. Das hat nichts mit der Toolchain zu tun, die für den Kernel benötigt wird.
Ist denn tools/lzma bei dir vorhanden? Ansonsten mach mal ein "make tools".

Das Howto ist etwas out-of-date. Wir haben den ganzen Prozess automatisiert und eigentlich sollte ein einfaches "make" reichen, um dein Vorhaben zu erreichen. Und das pl2303 Modul sollte eigentlich von Haus aus gebaut werden.

MfG Oliver
 
Daaanke!


Ich habe
Code:
make tools
gemacht und dann nochmal die drei
Code:
make kernel-...

So gehts.
 
Kostenlos!

Statistik des Forums

Themen
248,889
Beiträge
2,304,146
Mitglieder
378,573
Neuestes Mitglied
Friedrich Otto Kurt