[eepro100] Compile problems

Steve Keith steve@extex.com
Tue Jun 11 20:17:00 2002


Background:

Tyan Tiger 200T w/dual Intel 82559 controllers.  RH7.2 detected them as 82557 eepro100 and installed the RH7.2 eepro100.o driver.  The server "fell off" the network within a few hours during a backup operation across the network.  ifconfig reported:

eth0      Link encap:Ethernet  HWaddr 00:E0:81:21:2A:DC
          inet addr:192.168.100.200  Bcast:192.168.100.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3625486 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3650831 errors:0 dropped:0 overruns:212 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:3909460367 (3728.3 Mb)  TX bytes:1961718651 (1870.8 Mb)
          Interrupt:5 Base address:0x1000

"/etc/init.d/network restart" would not restore network function.

/proc/pci reports them as 85227 chips:

  Bus  0, device  13, function  0:
    Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] (rev 8).
      IRQ 5.
      Master Capable.  Latency=32.  Min Gnt=8.Max Lat=56.
      Non-prefetchable 32 bit memory at 0xf6222000 [0xf6222fff].
      I/O at 0xe400 [0xe43f].
      Non-prefetchable 32 bit memory at 0xf6000000 [0xf60fffff].
  Bus  0, device  14, function  0:
    Ethernet controller: Intel Corporation 82557 [Ethernet Pro 100] (#2) (rev 8).
      IRQ 10.
      Master Capable.  Latency=32.  Min Gnt=8.Max Lat=56.
      Non-prefetchable 32 bit memory at 0xf6221000 [0xf6221fff].
      I/O at 0xe800 [0xe83f].
      Non-prefetchable 32 bit memory at 0xf6100000 [0xf61fffff].

I download the e100.o driver from the Intel website.  Installation was smooth, and it stayed up for about a week.  Then, it just fell off the network again... couldn't access it from win98 machines (Samba, ssh, etc)... just like before except that ifconfig showed no overruns.  I could still log into the server directly.  I tried "/etc/init.d/network restart", but no network communication could be had.  I rebooted the system and now it's up and running again.

As another shot in the dark, I decided to try the scyld driver.  I downloaded:

	eepro100.c
	kern_compat.h
	pci-scan.c
	pci-scan.h

I compiled:

	pci-scan.o  using the command at the end of pci-scan.c

"gcc -DMODULE -D__KERNEL__ -O6 -c eepro100.c" results in:

In file included from eepro100.c:97:
/usr/include/linux/modversions.h:1:2: #error Modules should never use kernel-headers system headers,
/usr/include/linux/modversions.h:2:2: #error but rather headers from an appropriate kernel-source package.
/usr/include/linux/modversions.h:3:2: #error Change -I/usr/src/linux/include (or similar) to
/usr/include/linux/modversions.h:4:2: #error -I/lib/modules/$(uname -r)/build/include
/usr/include/linux/modversions.h:5:2: #error to build against the currently-running kernel.

I recompiled incorporating the suggestions given and there were no errors.

"insmod eepro100.o" results in:

eepro100.o: unresolved symbol acpi_set_pwr_state
eepro100.o: unresolved symbol pci_drv_unregister
eepro100.o: unresolved symbol pci_drv_register

Manually moving the eepro100.o file into
	/lib/modules/2.4.7-10enterprise/kernel/drivers/net
and adding the appropriate alias in /etc/modules.conf causes failed dependencies at startup and eth0 will not come up.

The system is currently running on the Intel drivers, 356MB TX, just counting until the next failure!

Any suggestions on getting this driver to work or other tools/techniques to track down flaky network card performance will be greatly appreciated.

Thanks,

Steve