Treiberproblem-Kernel-2.6.18-1-686

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
hackbox
Beiträge: 78
Registriert: 02.07.2004 14:42:32

Treiberproblem-Kernel-2.6.18-1-686

Beitrag von hackbox » 15.12.2006 15:37:56

Hallo Debianer,

ich habe eine ziemlich komplexe Problemstellung, die ich versuchen möchte so kompakt als möglich darzustellen.
Auf meiner Maschine läuft ein Etch mit Kernel-2.6.18-3-686 die fstab sieht so aus:
------------------------------------------------------------------------------------------------------------------------------------------------
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/mapper/murphy-root / ext3 defaults,errors=remount-ro 0 $/dev/hda1 /boot ext3 defaults 0 2
/dev/mapper/murphy-home /home ext3 defaults 0 2
/dev/mapper/murphy-tmp /tmp ext3 defaults 0 2
/dev/mapper/murphy-usr /usr ext3 defaults 0 2
/dev/mapper/murphy-var /var ext3 defaults 0 2
/dev/mapper/murphy-swap_1 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
------------------------------------------------------------------------------------------------------------------------------------------------
Die LVM sind mit LUKS verschlüsselt.
Für meine WLAN-Karte benötige ich das Modul-RT61, das ich in den Kernel kompilieren möchte. mit dieser Makefile:
------------------------------------------------------------------------------------------------------------------------------------------------
WFLAGS := -DAGGREGATION_SUPPORT -DWMM_SUPPORT -Wall -Wstrict-prototypes -Wno-trigraphs

## Comment/uncomment the following line to enable/disable debugging
#CFLAGS += -DDBG

CFLAGS+= $(WFLAGS)

obj-m := rt61.o

rt61-objs := rtmp_main.o mlme.o connect.o sync.o assoc.o auth.o auth_rsp.o rtmp_data.o rtmp_init.o sanity.o rtmp_wep.o rtmp_$
## Configuration files on SuSE
#NDDIR=/etc/sysconfig/network
#MOD_CONF=/etc/modprobe.d/module-renames

## NDDIR/ifcfg-ra0
ND_CONF=/etc/sysconfig/network-scripts/ifcfg-ra0

ifdef NDDIR
NDDIR := $(NDDIR)
else
NDDIR := /etc/sysconfig/network-scripts
endif

ifdef MOD_CONF
MOD_CONF := $(MOD_CONF)
else
MOD_CONF := /etc/modprobe.conf
endif

all:
make -C /lib/modules/2.6.18-3-686/build SUBDIRS=$(shell pwd) modules

clean:
rm -rf *.o *~ .*.cmd *.ko *.mod.c .tmp_versions built-in.o

install:
make -C /lib/modules/$(shell uname -r)/build \
INSTALL_MOD_DIR=extra SUBDIRS=$(shell pwd) \
modules_install

@echo "Network device directory $(NDDIR)";
@echo "Module configuration file $(MOD_CONF)";

@if [ -d "$(NDDIR)" ] ; then \
if [ ! -f "$(ND_CONF)" ]; then \
echo "Create 'ifcfg-ra0' in $(NDDIR)/"; \
cp ifcfg-ra0 $(NDDIR)/ ; \
fi; \
fi

@if ! grep -q 'ra0' $(MOD_CONF) ; then \
echo "append 'alias ra0 rt61' to $(MOD_CONF)"; \
echo "alias ra0 rt61" >> $(MOD_CONF) ; \
fi
/sbin/depmod -a
------------------------------------------------------------------------------------------------------------------------------------------------
Versuche ich das Modul mit make all zu kompilieren erhalte ich folgende Fehlermeldung:
------------------------------------------------------------------------------------------------------------------------------------------------
make -C /lib/modules/2.6.18-3-686/build SUBDIRS=/usr/src/RT61_Linux_STA_Drv1.1.0.0/Module modules
make: *** /lib/modules/2.6.18-3-686/build: Datei oder Verzeichnis nicht gefunden. Schluss.
make: *** [all] Fehler 2
------------------------------------------------------------------------------------------------------------------------------------------------
Also habe ich mir den Vanilla-Kernel-2.6.19.1 gesaugt und mit make-kpkg zu linux-image-2.6.19.1_2.6.19.1-10.00.Custom_i386.deb kompiliert . Versuche ich nun diesen Kernel mit Grub:
------------------------------------------------------------------------------------------------------------------------------------------------
title Debian GNU/Linux, kernel 2.6.19.1 Default
root (hd0,0)
kernel /vmlinuz root=/dev/mapper/murphy-root ro
savedefault
------------------------------------------------------------------------------------------------------------------------------------------------
zu booten, kommt es zu einer Kernel Panic, und einer Meldung dass eine anderer Resource auf die Hardware zugreift.
Also habe ich den Pfad in der Makefile so geändert :
------------------------------------------------------------------------------------------------------------------------------------------------
make -C /lib/modules/2.6.19.1/build SUBDIRS=$(shell pwd) modules
------------------------------------------------------------------------------------------------------------------------------------------------
und es dann mit make all versucht:
------------------------------------------------------------------------------------------------------------------------------------------------
make -C /lib/modules/2.6.19.1/build SUBDIRS=/usr/src/RT61_Linux_STA_Drv1.1.0.0/Module modules
make[1]: Entering directory `/usr/src/linux-2.6.19.1'
CC [M] /usr/src/RT61_Linux_STA_Drv1.1.0.0/Module/rtmp_main.o
/usr/src/RT61_Linux_STA_Drv1.1.0.0/Module/rtmp_main.c: In function ‘RT61_probe’:
/usr/src/RT61_Linux_STA_Drv1.1.0.0/Module/rtmp_main.c:197: error: ‘struct net_device’ has no member named ‘get_wireless_stats’
/usr/src/RT61_Linux_STA_Drv1.1.0.0/Module/rtmp_main.c: In function ‘RT61_open’:
/usr/src/RT61_Linux_STA_Drv1.1.0.0/Module/rtmp_main.c:326: warning: passing argument 2 of ‘request_irq’ from incompatible pointer type
make[2]: *** [/usr/src/RT61_Linux_STA_Drv1.1.0.0/Module/rtmp_main.o] Fehler 1
make[1]: *** [_module_/usr/src/RT61_Linux_STA_Drv1.1.0.0/Module] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.19.1'
make: *** [all] Fehler 2
------------------------------------------------------------------------------------------------------------------------------------------------
So und hier verliessen sie ihn. Wie kannich diese Probleme beheben, ohne den ganzen Kram komplett neu patitionieren zu müssen? Ich hoffe ich habe jetzt nicht zuviel Infos gepostet und die Code-Tags funktionieren. Auf jeden Fall schon mal Danke für euere Hilfe.

Hackbox
root is a question of mind

Mebuh
Beiträge: 122
Registriert: 21.06.2004 15:27:19
Wohnort: München

Beitrag von Mebuh » 19.12.2006 12:12:25

Hallo,

Ich gebe zu ich habe keinen vollen Überblick über das Problem, aber mir ist aufgefallen, dass du statt gleich einen anderen Kernel neu zu kompilieren, auch einfach das kernel-header (bzw.linux-header) Paket des Debiankernels installieren hättest können.
Dieses Paket sollte dann /lib/modules/2.6.18-3-686/build auf /usr/src/kernel-header-2.6.18-3-686 verlinken und dein erster kompilierversuch hätte nicht in diesem Fehler geendet.

Weiterhin viel Erfolg,

Mebuh

Benutzeravatar
hackbox
Beiträge: 78
Registriert: 02.07.2004 14:42:32

RE:Treiberproblem kernel-2.6.18-686

Beitrag von hackbox » 19.12.2006 16:02:34

Hallo mebuh,

immerhin danke für den Tip. Das Problem lag wohl eher darin daß diese LVM LUKS verschlüsselt war so daß Grub die /boot zwar laden jedoch das / Verzeichnis nicht lesen kann (Nur eine Vermutung)
Wie dem auch sein mag ich mußte den ganzen Mist neu machen und feststellen, daß der Treiber sich z.B. in Kernel-2.6.19 nicht allerdings in kernel-2.6.15.7 kompilieren lässt. (2.6.18 hab ich nicht getestet)
Werde die Fehlermeldung ggf. auch mal posten.

Nochmals Danke eine Antwort ist besser als gar keine.

Gruss

hackbox
root is a question of mind

Antworten