[vortex] 3c556B mini PCI

Fred Maciel fred-m@crl.hitachi.co.jp
Tue, 10 Oct 2000 17:40:00 +0900


Dear Cliff,

> I was able to successfully compile this driver using the compile command
> at the bottom of the file.  Unfortunately, when I tried to insmod the
> driver I got these errors:
>
> # /sbin/insmod 3c59x.o
> 3c59x.o: unresolved symbol init_etherdev_R4468631d
> 3c59x.o: unresolved symbol eth_type_trans_R6e012c3d
> 3c59x.o: unresolved symbol __kfree_skb_R461d1b3d
> 3c59x.o: unresolved symbol netif_rx_R82bc91e7
> 3c59x.o: unresolved symbol skb_over_panic_Rb602a3db
> 3c59x.o: unresolved symbol alloc_skb_Rd4215602
> 3c59x.o: unresolved symbol unregister_netdev_R27198b1f
>
> Am I missing something?  Is this driver applicable to the 2.2.16-3
> kernel?  Any help on this will be greatly appreciated.  Thanks.

That's (hopefully) an easy one, first let me explain the problem. The
interface between the kernel and the modules in Linux may change, and
modules compiled for one kernel version won't work for another one. So there
is a checksum included in the symbols (optional, used by Red Hat) to
verify if the kernel and the modules are compatible (that's the part after
the "_R" above). If the checksum does not match, you get these errors. You
can have this problem by, for instance, compiling the module using the
include files of one kernel and trying to use this module with another
kernel.

So: be *sure* that your /usr/src/linux link points to the source of the
kernel that you are compiling the module for, and try:

# gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes
  -O2 -c 3c59x-2.2.17+.c `[ -f /usr/src/linux/include/linux/modversions.h ]
  && echo -DMODVERSIONS`

Please tell me if this works.

BTW, look at
http://www2.neweb.ne.jp/wd/fbm/3c556/README
for additional instructions.

Hope that helps,

                         Fred Maciel
                         E-mail  fred-m@crl.hitachi.co.jp

Disclaimer:
I don't speak for Hitachi,
I don't know who speaks for Hitachi,
I don't want to know who speaks for Hitachi.