Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 26 Aug 2004 11:37:42 +0200
From:      Ulrich Spoerlein <q@uni.de>
To:        current@freebsd.org
Subject:   ndiscvt: Unresolved symbols / kldload if_ndis panic
Message-ID:  <20040826093742.GA703@galgenberg.net>

next in thread | raw e-mail | index | archive | help

--6TrnltStXW4iwmi0
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Hello,

I'm trying to get Projet Evil working on this Dell Inspiron 8600 Laptop
with an Intel Pro Wireless NIC. I tried the XP driver shipped with it
and the latest offered from Dell, but none works (more below).

I'm running RELENG_5, dmesg and drivers can be obtained from
http://www.galgenberg.net/~q/freebsd/

none3@pci2:3:0: class=3D0x028000 card=3D0x25618086 chip=3D0x10438086 rev=3D=
0x04 hdr=3D0x00
    vendor   =3D 'Intel Corporation'
    device   =3D 'Intel(R) PRO/Wireless 7100 LAN Card Driver'
    class    =3D network

The ipw-driver from http://http://damien.bergamini.free.fr/ipw/ seems to
work (although I needed to download the mentioned firmware)

ipw0: <Intel(R) PRO/Wireless 2100 MiniPCI> mem 0xfaffc000-0xfaffcfff irq 5 =
at device 3.0 on pci2
ipw0: [GIANT-LOCKED]
ipw0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps

I'm trying the following (old and new driver produce the same)
igor# ndiscvt -O -i /root/ipw_old/W70N51.INF -s /root/ipw_old/W70N51.SYS -o=
 ndis_driver_data.h
objcopy -I binary -O elf32-i386-freebsd -B i386 /tmp/ndiscvt.K3zhkM ndis_dr=
iver_data.o
objcopy --redefine-sym _binary__tmp_ndiscvt_K3zhkM_start=3DW70N51_SYS_drv_d=
ata_start --strip-symbol _binary__tmp_ndiscvt_K3zhkM_size --redefine-sym _b=
inary__tmp_ndiscvt_K3zhkM_end=3DW70N51_SYS_drv_data_end ndis_driver_data.o =
ndis_driver_data.o
igor# make
Warning: Object directory not changed from original /usr/src/sys/modules/if=
_ndis
@ -> /usr/src/sys
machine -> /usr/src/sys/i386/include
touch opt_bdg.h
awk -f @/tools/makeobjops.awk @/kern/device_if.m -h
awk -f @/tools/makeobjops.awk @/kern/bus_if.m -h
awk -f @/tools/makeobjops.awk @/dev/pci/pci_if.m -h
awk -f @/tools/makeobjops.awk @/dev/pccard/card_if.m -h
awk -f @/tools/pccarddevs2h.awk @/dev/pccard/pccarddevs
cc -O -pipe  -D_KERNEL -DKLD_MODULE -nostdinc -I-   -I. -I@ -I@/contrib/alt=
q -I@/../include -I/usr/include -finline-limit=3D8000 -fno-common  -mno-ali=
gn-long-strings -mpreferred-stack-boundary=3D2 -ffreestanding -Wall -Wredun=
dant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpoi=
nter-arith -Winline -Wcast-qual  -fformat-extensions -std=3Dc99 -c /usr/src=
/sys/modules/if_ndis/../../dev/if_ndis/if_ndis.c
cc -O -pipe  -D_KERNEL -DKLD_MODULE -nostdinc -I-   -I. -I@ -I@/contrib/alt=
q -I@/../include -I/usr/include -finline-limit=3D8000 -fno-common  -mno-ali=
gn-long-strings -mpreferred-stack-boundary=3D2 -ffreestanding -Wall -Wredun=
dant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpoi=
nter-arith -Winline -Wcast-qual  -fformat-extensions -std=3Dc99 -c /usr/src=
/sys/modules/if_ndis/../../dev/if_ndis/if_ndis_pci.c
cc -O -pipe  -D_KERNEL -DKLD_MODULE -nostdinc -I-   -I. -I@ -I@/contrib/alt=
q -I@/../include -I/usr/include -finline-limit=3D8000 -fno-common  -mno-ali=
gn-long-strings -mpreferred-stack-boundary=3D2 -ffreestanding -Wall -Wredun=
dant-decls -Wnested-externs -Wstrict-prototypes  -Wmissing-prototypes -Wpoi=
nter-arith -Winline -Wcast-qual  -fformat-extensions -std=3Dc99 -c /usr/src=
/sys/modules/if_ndis/../../dev/if_ndis/if_ndis_pccard.c
ld  -d -warn-common -r -d -o if_ndis.kld if_ndis.o if_ndis_pci.o if_ndis_pc=
card.o
touch /usr/src/sys/modules/if_ndis/export_syms
awk -f /usr/src/sys/modules/if_ndis/../../conf/kmod_syms.awk if_ndis.kld  /=
usr/src/sys/modules/if_ndis/export_syms |  xargs -J% objcopy % if_ndis.kld
ld -Bshareable  -d -warn-common -o if_ndis.ko if_ndis.kld
objcopy --strip-debug if_ndis.ko
igor# make install
install -o root -g wheel -m 555   if_ndis.ko /boot/kernel
kldxref /boot/kernel
igor# nm ndis_driver_data.o
0025e000 D W70N51_SYS_drv_data_end
00000000 D W70N51_SYS_drv_data_start

Afer running 'kldload if_ndis' I get the kernel message:
link_elf: symbol W70N51_SYS_drv_data_start undefined

and kldload just sits there for about 60s. top showed that kldload is in
state 'ndisth'. I then tried 'ps auxl' and got a panic.

I can also reproduce the panic when running sysctl -a after the kldload
has finished. It will print the first lines (until kern.clockrate) and
panics with the following trace:
strlcpy
fill_kinfo_thread
sysctl_out_proc
sysctl_kern_proc
sysctl_root
userland_sysctl
__sysctl
syscall
Xint0x80_syscall

Calling doadump() is not possible, because a mutex is held...

But back to the real question, where the heck is
W70N51_SYS_drv_data_start? Am I using the wrong driver?=20


Ulrich Spoerlein
--=20
PGP Key ID: F0DB9F44				Get it while it's hot!
PGP Fingerprint: F1CE D062 0CA9 ADE3 349B  2FE8 980A C6B5 F0DB 9F44
"They that can give up essential liberty to obtain a little temporary
safety deserve neither liberty nor safety."	-- Benjamin Franklin

--6TrnltStXW4iwmi0
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (FreeBSD)

iD8DBQFBLa9mmArGtfDbn0QRAml6AKCFoinD1MkrH593uVWJi61uVnV0nACgi/iv
SmTPlOMPWVqkcOXmotxvAXY=
=5JaX
-----END PGP SIGNATURE-----

--6TrnltStXW4iwmi0--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040826093742.GA703>