[vox-tech] driver module for Realtek 8139 NIC won't compile
Nick Schmalenberger
nschmalenberger at fastmail.fm
Tue Jun 15 22:07:15 PDT 2004
list,
I want to compile the driver module for my Realtek 8139 PCMCIA Ethernet
NIC. When I do make on the makefile, it says it can't find
pcmcia/driver_ops.h. Specifically:
"gcc -DCARDBUS -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes -O6
-I/usr/src/linux/pcmcia-cs-3.1.8/include/pcmcia -c rtl8139.c -o
realtek_cb.o
rtl8139.c:1511: pcmcia/driver_ops.h: No such file or directory
make: *** [realtek_cb.o] Error 1" .
Googling on driver_ops.h leads to this page:
http://lists.debian.org/debian-laptop/2001/07/msg00199.html .
This guy seems to have exactly the same problem as me. The guy who
responds to him says to install pcmcia-cs, but I know mine is already
installed because apt-get says so and because the pcmcia config files
are /etc/pcmcia/ . There aren't any more messages in that thread on
that listt after the two, so I don't know if the guy ever solved his
(and my, I think) problem. My problem is where are the include files?
There is no pcmcia directory off of the include directory. Most of the
include files are in /usr/include, and I guess driver_ops.h should be in
/usr/include/pcmcia, but like I said there is no pcmcia. I know that gcc
is finding the include directory because the first time I tried
compiling it, it gave me a warning to use slab.h instead of malloc.h ,
and then it gave the can't find driver_ops.h error. I changed the
reference to malloc.h to say slab.h instead, and it stopped complaining
about that, so I know it is finding the include directory. I tried
recompiling the pcmcia-cs sources , but it didn't make a
/usr/include/pcmcia. It did come with a driver_ops.h, so I tried putting
that in /usr/include and changing the reference in the rtl8139.c to
"#include <driver_ops.h>" from "#include <pcmcia/driver_ops.h>. Then it
didn't have that error anymore, but it gave a whole bunch of other
errors:
In file included from rtl8139.c:130:
kern_compat.h:463: warning: static declaration for `pci_find_capability'
follows non-static
rtl8139.c: In function `rtl8129_open':
rtl8139.c:714: structure has no member named `tbusy'
rtl8139.c:715: structure has no member named `interrupt'
rtl8139.c:716: structure has no member named `start'
rtl8139.c: In function `rtl8129_timer':
rtl8139.c:806: structure has no member named `interrupt'
rtl8139.c:812: structure has no member named `tbusy'
rtl8139.c: In function `rtl8129_tx_timeout':
rtl8139.c:939: structure has no member named `tbusy'
rtl8139.c: In function `rtl8129_start_xmit':
rtl8139.c:970: structure has no member named `tbusy'
rtl8139.c:993: structure has no member named `tbusy'
rtl8139.c:997: structure has no member named `tbusy'
rtl8139.c: In function `rtl8129_interrupt':
rtl8139.c:1022: structure has no member named `interrupt'
rtl8139.c:1025: structure has no member named `interrupt'
rtl8139.c:1122: structure has no member named `tbusy'
rtl8139.c:1123: `NET_BH' undeclared (first use in this function)
rtl8139.c:1123: (Each undeclared identifier is reported only once
rtl8139.c:1123: for each function it appears in.)
rtl8139.c:1198: structure has no member named `interrupt'
rtl8139.c: In function `rtl8129_close':
rtl8139.c:1321: structure has no member named `start'
rtl8139.c:1322: structure has no member named `tbusy'
rtl8139.c: In function `rtl8129_get_stats':
rtl8139.c:1387: structure has no member named `start'
make: *** [realtek_cb.o] Error 1
(stderr only)
Sorry for posting such a long thing, especially since a lot of it seems
redundant, but I don't know enough to describe it more concisely. Since
just giving it driver_ops.h didn't fix things, and there is no
/usr/include/pcmcia, I guess my pcmcia-cs is broken, or make isn't
finding the right headers, so maybe they're just in a weird place I
don't know
about. How can I fix it? Thanks.
Nick
More information about the vox-tech
mailing list