FreeBSD 5.4 Stable ndis Kernel Support

From: Tobias Tom <tobiastom(at)gmail.com>
Date: Sat, 2 Jul 2005 20:46:35 +0200

Hallo,

ich lese hier schon eine ganze Weile mit. Nun bräuchte ich mal Eure Hifle.

Ich habe hier ein WLAN PCI Karte die von FreeBSD 5.x leider nicht
unterstützt wird. Die Karte ist eine Level One WNC-0301. Eingebaut ist
laut Google, und Hersteller der Ralink RT2500 Chip. Für CURRENT gibt
es inzwischen einen Treiber. Leider hilft mir der nicht viel weiter,
da er laut Entwickler wohl auch nicht mit der 5.x kompatibel ist, und
wahrscheinlich nie eine Version für die REL_5 rauskommen wird.

Soweit so gut. Zum glück gibt es ja seit 5.3 den ndsi Support. Bin mir
zwar noch nicht sicher wie ich es finde Windows Treiber auf meiner
FreeDBS Kiste laufen zu lassen, aber ich sehe keine Alternative. Da
ich ndis für diese Karte zum ersten mal brauche habe ich noch
keinerlei Erfahrungen damit gemacht. Ich habe versucht vorzugehen wie
es im handbuch unter
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-wireless.html#AEN38018
beschrieben steht. Inklusive dem Scritt wo ich mit ndiscvt die
ndis_driver_data.h erstelle hat alles einwandfrei funktioniert. Das
darauf folgende make && make install lief auch noch erfolgreich durch.

Bei kldload ndis meldet mit die Konsole "kldload: can't load ndis: No
such file or directory". /usr/src/sys/modules/ndis/ndis.ko existiert
aber im Dateisystem:
-rwxr-xr-x 1 root wheel 91686 Jul 3 15:37 /usr/src/sys/modules/ndis/ndis.ko

Ich habe dann auf die Ausgabe von dmesg geschaut, und folgende
Fehlermeldung entdeckt:

link_elf: symbol VOP_GETATTR_APV undefined
KLD if_ndis.ko: depends on ndisapi - not available

Leider konnte ich damit nicht viel anfangen. Also habe ich nach
Alternativen Wegen gesucht. In der man Page zu ndis steht unter
Synopsis

options NDISAPI
device ndis
device wlan

ich habe dann versucht diese Zeilen mit in meinen eigenen Kernel
einzubauen. Als Ausgabe erschienen am Ende

cc -c -O -pipe -Wall -Wredundant-decls -Wnested-externs
-Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Winline
-Wcast-qual -fformat-extensions -std=c99 -nostdinc -I- -I.
-I/usr/src/sys -I/usr/src/sys/contrib/dev/acpica
-I/usr/src/sys/contrib/altq -I/usr/src/sys/contrib/ipfilter
-I/usr/src/sys/contrib/pf -I/usr/src/sys/contrib/dev/ath
-I/usr/src/sys/contrib/dev/ath/freebsd -I/usr/src/sys/contrib/ngatm
-I/usr/src/sys/dev/twa -D_KERNEL -include opt_global.h -fno-common
-finline-limit=8000 --param inline-unit-growth=100 --param
large-function-growth=1000 -mno-align-long-strings
-mpreferred-stack-boundary=2 -mno-mmx -mno-3dnow -mno-sse -mno-sse2
-ffreestanding -Werror /usr/src/sys/compat/ndis/subr_ntoskrnl.c
/usr/src/sys/compat/ndis/subr_ntoskrnl.c: In function `KeRemoveQueueDpc':
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3115: warning: dereferencing
`void *' pointer
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3115: error: request for
member `mtx_lock' in something not a structure or union
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3115: warning: dereferencing
`void *' pointer
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3115: error: request for
member `mtx_recurse' in something not a structure or union
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3115: warning: dereferencing
`void *' pointer
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3115: error: request for
member `mtx_lock' in something not a structure or union
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3117: warning: dereferencing
`void *' pointer
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3117: error: request for
member `mtx_recurse' in something not a structure or union
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3117: warning: dereferencing
`void *' pointer
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3117: error: request for
member `mtx_recurse' in something not a structure or union
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3117: warning: dereferencing
`void *' pointer
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3117: error: request for
member `mtx_lock' in something not a structure or union
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3123: warning: dereferencing
`void *' pointer
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3123: error: request for
member `mtx_recurse' in something not a structure or union
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3123: warning: dereferencing
`void *' pointer
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3123: error: request for
member `mtx_recurse' in something not a structure or union
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3123: warning: dereferencing
`void *' pointer
/usr/src/sys/compat/ndis/subr_ntoskrnl.c:3123: error: request for
member `mtx_lock' in something not a structure or union
*** Error code 1
Stop in /usr/obj/usr/src/sys/GATE.
*** Error code 1
Stop in /usr/src.
*** Error code 1
Stop in /usr/src.

So wie ich das sehe ist es mir nun nicht gelungen diesen ndis Support
als Modul oder im Kernel zu laufen zu bekommen. Ob als Module oder im
Kernel ist mir eigentlich egal, Hauptsache es läuft. Wenn mir wer gute
Gründe für oder gegen die eine oder andere variante sagen kann, nur
her damit ;o)

Hat irgendwer eine Idee was ich versuchen könnte, oder woran es scheitert?

Vielen Dank für Eure Hilfe!

Tobias

P.S.: Mein letztes cvsup habe ich vor ca 10 Minuten durchlaufen
lassen, falls das irgendwie wichtig ist ....

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Sat 02 Jul 2005 - 20:50:57 CEST

search this site