modul pro SuSE versus RedHat

Ivo Panacek Ivo.Panacek na jlabs.cz
Čtvrtek Prosinec 13 16:36:27 CET 2001


DD,

snazim se rozjet Fritze pres USB pod Linuxem. Uz jsem se
dostal relativne daleko, ale ted mam nasledujici problem:

Prekladam modul od SuSE mimo oficialni adresar kernelu.
To se podari, ale pak je v tom modulu nevyreseny link.
Budu konkretni:

RedHat je 7.1, kernel standardni 2.4.9 (= RedHat verze)
a novy 2.4.16 (cista stazena verze). Chovani v obou stejne.
Ten modul je stazen z

ftp://ftp.avm.de/cardware/fritzx.usb/linux/fxusb-suse7.3-03.09.10.tar.gz

Ostatni doporucovane veci mam v poradku: CAPI moduly v kernelu,
isdn4k-utils prelozeno nejnovejsi (7.12) a nainstalovano,
ale to asi s problemem nesouvisi.

Pri vlastnim prekladu modulu jsem tam zkusil pridat vhodnejsi (?)
volby prekladace (tytez, kter jsou pouzity pri prekladu kernelu),
nicmene vysledek tentyz.

Na me to dela dojem, ze je treba pridat nejake vhodne definice (-D),
netusim ale, jake. Ta funkce (__udivdi3) se vyskytuje nekde
v asm sekcich specifickych pro ruzne HW architektury, tam uz
vyrazne bloudim.

Muzete, prosim, nekdo poradit?

Na zaver s dovolenim pripojuji kousky z logu:

Pripojeni usb kabelu:

Dec 13 00:57:49 d kernel: usb.c: USB disconnect on device 2
Dec 13 00:57:52 d kernel: hub.c: USB new device connect on bus1/1, assigned device number 4
Dec 13 00:57:52 d kernel: usb.c: USB device 4 (vend/prod 0x57c/0x2800) is not claimed by any active driver.
Dec 13 00:57:53 d /etc/hotplug/usb.agent: ... no drivers for USB product 57c/2800/100
Dec 13 00:59:00 d kernel: usb.c: USB disconnect on device 4

Pripojeni usb kabelu po rucni zmene produktu v /lib/modules/<verze>/modules.usbmap z 0x2000 na 0x2800:

Dec 13 00:59:02 d kernel: hub.c: USB new device connect on bus1/1, assigned device number 5
Dec 13 00:59:03 d kernel: usb.c: USB device 5 (vend/prod 0x57c/0x2800) is not claimed by any active driver.
Dec 13 00:59:03 d kernel: CAPI-driver Rev 1.21.6.8: loaded
Dec 13 00:59:03 d kernel: CAPI-driver Rev 1.21.6.8 : unloaded
Dec 13 00:59:03 d /etc/hotplug/usb.agent: ... can't load module fxusb

[root na d 2.4.16]# capiinfo
capi not installed - No such device (19)
[root na d 2.4.16]# capiinit start
[root na d 2.4.16]# capiinfo
capi not installed - No such device or address (6)

A vlastni naloudeni modulu:

[root na d 2.4.16]# modprobe fxusb
/lib/modules/2.4.16/kernel/drivers/isdn/avmb1/fxusb.o: unresolved symbol __udivdi3
/lib/modules/2.4.16/kernel/drivers/isdn/avmb1/fxusb.o: insmod /lib/modules/2.4.16/kernel/drivers/isdn/avmb1/fxusb.o failed
/lib/modules/2.4.16/kernel/drivers/isdn/avmb1/fxusb.o: insmod fxusb failed
[root na d 2.4.16]#

Preklad modulu byl:

(cd src.sys; make CARD=fxusb)
make[1]: Entering directory `/usr/src/fritz-avm-7.3/src.sys'
cat capi_modules.txt

     In order to use this FRITZ!Card driver, a couple of kernel modules are required:
     capi.o, capiutils.o, kernelcapi.o and capifs.o. The source code for these modules
     is part of the linux kernel in directory /usr/src/linux/drivers/isdn/avmb1 and
     will be compiled with the kernel if the following settings are found in the
     kernel configuration:

         CONFIG_EXPERIMENTAL=y

         CONFIG_ISDN_CAPI=m
         CONFIG_ISDN_DRV_AVMB1_VERBOSE_REASON=y
         CONFIG_ISDN_CAPI_MIDDLEWARE=y
         CONFIG_ISDN_CAPI_CAPI20=m
         CONFIG_ISDN_CAPI_CAPIFS_BOOL=y
         CONFIG_ISDN_CAPI_CAPIFS=m
         CONFIG_ISDN_CAPI_CAPIDRV=m

     For "make menuconfig" go to "ISDN subsystem", "Active cards" and select:

         ...
         <M> CAPI2.0 support
             [*]   Verbose reason code reporting (kernel size +=7K)
             [*]   CAPI2.0 Middleware support (EXPERIMENTAL)
             <M>   CAPI2.0 /dev/capi support
             [*]     CAPI2.0 filesystem support
             <M>   CAPI2.0 capidrv interface support
         ...

     In addtion to these entries, please enable entry "Prompt for development
     and/or incomplete code/drivers" in the very first menu named "Code maturity
     level options".

     After the kernel's compilation, all CAPI modules can be found in directory
     /lib/modules/`uname -r`/kernel/drivers/isdn/avmb1/


make[1]: Leaving directory `/usr/src/fritz-avm-7.3/src.sys'
(cd src.drv; make CARD=fxusb)
make[1]: Entering directory `/usr/src/fritz-avm-7.3/src.drv'
gcc -c -DMODULE -D__KERNEL__ -DDEBUG -D__fxusb__ -DTARGET=\"fxusb\"  -O2 -Wall -DMODVERSIONS -march=athlon -include /usr/src/linux/include/linux/modversions.h 
-Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -I /usr/src/linux/include main.c -o 
main.o
In file included from main.c:3:
/usr/src/linux/include/linux/malloc.h:4:2: warning: #warning linux/malloc.h is deprecated, use linux/slab.h instead.
gcc -c -DMODULE -D__KERNEL__ -DDEBUG -D__fxusb__ -DTARGET=\"fxusb\"  -O2 -Wall -DMODVERSIONS -march=athlon -include /usr/src/linux/include/linux/modversions.h 
-Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -I /usr/src/linux/include drv.c -o 
drv.o
drv.c:76: warning: function declaration isn't a prototype
drv.c:77: warning: function declaration isn't a prototype
gcc -c -DMODULE -D__KERNEL__ -DDEBUG -D__fxusb__ -DTARGET=\"fxusb\"  -O2 -Wall -DMODVERSIONS -march=athlon -include /usr/src/linux/include/linux/modversions.h 
-Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -I /usr/src/linux/include tables.c 
-o tables.o
gcc -c -DMODULE -D__KERNEL__ -DDEBUG -D__fxusb__ -DTARGET=\"fxusb\"  -O2 -Wall -DMODVERSIONS -march=athlon -include /usr/src/linux/include/linux/modversions.h 
-Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -I /usr/src/linux/include queue.c -o 
queue.o
gcc -c -DMODULE -D__KERNEL__ -DDEBUG -D__fxusb__ -DTARGET=\"fxusb\"  -O2 -Wall -DMODVERSIONS -march=athlon -include /usr/src/linux/include/linux/modversions.h 
-Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -I /usr/src/linux/include lib.c -o 
lib.o
gcc -c -DMODULE -D__KERNEL__ -DDEBUG -D__fxusb__ -DTARGET=\"fxusb\"  -O2 -Wall -DMODVERSIONS -march=athlon -include /usr/src/linux/include/linux/modversions.h 
-Wstrict-prototypes -Wno-trigraphs -fomit-frame-pointer -fno-strict-aliasing -fno-common -pipe -mpreferred-stack-boundary=2 -I /usr/src/linux/include tools.c -o 
tools.o
ld -m elf_i386 -r -o fxusb.o main.o drv.o tables.o queue.o lib.o tools.o  ../lib/fxusb-lib.o
make[1]: Leaving directory `/usr/src/fritz-avm-7.3/src.drv'


-- 
E-mail: Ivo.Panacek na regionet.cz, Ivo.Panacek na jlabs.cz
WWW:    http://ivop.regionet.cz
Mobile: +420 602 337776



Další informace o konferenci Linux