[PlanetCCRMA] Network driver problem - RH 8.0 fails but RH 7.3 works...

Mark Knecht markknecht@attbi.com
Sun Mar 16 10:41:01 2003


Hi,
   Hopefully someone here will be able to suggest what might be going
wrong and point me toward how to fix it. 

PROBLEM STATEMENT: Broadcom 4400 driver works under RH 7.3, RH 7.3 with
2.4.19-1.ll kernel & RH 8.0, but fails under RH 8.0 + 2.4.19-1.ll
kernel. Why?

   I have a machine with a somewhat complicated setup using both System
Commander 7 and Grub: At boot time SC7 provides me with 3 choices. (DOS,
RH 7.3 & RH 8.0) If I choose either of the Linux options, then Grub
takes over and lets me choose the default RH kernel, or the Planet CCRMA
kernel.

SC7	- DOS
	- RH 7.3
	(grub)
		- 2.4.19-1.ll  [NIC works]
		- 2.4.18-3     [NIC works]
		- DOS
	- RH 8.0
	(grub)
		- 2.4.19-1.ll  [NIC fails]
		- 2.4.18-14    [NIC works]
		- DOS

   All of this works fine, except that this motherboard's NIC (Broadcom
4400) is not supported by either of the RH distributions. To get it
working, I dug up source code that, according to the release notes, had
been tested up through the 2.4.18 kernels.

   OK, so on this machine, based on which of these distributions and
kernels I've booted into, I have separate source code directories for
this networking driver. I've built the driver for each of the kernels
and distributions, and the kernel builds cleanly. (There are warning
messages, but they are the same in all cases.)

   FYI - there is nothing other than the swap partition shared between
these two installation. Each Linux distribution sits in it's own
partition and the other is not even mounted.

   If I insmod the driver in the 3 working cases, it loads cleanly and
seems to attach itself to the network stack. Here's what I see:


[root@Wizard root]# uname -a
Linux Wizard 2.4.18-14 #1 Wed Sep 4 12:13:11 EDT 2002 i686 athlon i386
GNU/Linux
[root@Wizard root]# insmod ~mark/bin/bcm4400-2.4.18/bcm4400.o
[root@Wizard root]# lsmod
Module                  Size  Used by    Not tainted
bcm4400                30880   1
ide-cd                 33608   0  (autoclean)
cdrom                  33696   0  (autoclean) [ide-cd]
soundcore               6500   0  (autoclean)
autofs                 13348   0  (autoclean) (unused)
ipt_REJECT              3736   6  (autoclean)
iptable_filter          2412   1  (autoclean)
ip_tables              14840   2  [ipt_REJECT iptable_filter]
mousedev                5524   0  (unused)
keybdev                 2976   0  (unused)
hid                    22244   0  (unused)
input                   5888   0  [mousedev keybdev hid]
usb-uhci               26188   0  (unused)
ehci-hcd               17448   0  (unused)
usbcore                77056   1  [hid usb-uhci ehci-hcd]
ext3                   70400   1
jbd                    52212   1  [ext3]

In this case the network comes up and I can get to the web.


   However, if I try this under RH 8.0 with the 2.4.19-1.ll kernel, I
loads cleanly, but doesn't attach itself to the stack. (Apparently!)

[root@Wizard root]# uname -a
Linux Wizard 2.4.19-1.ll #1 Sun Aug 4 16:58:22 PDT 2002 i686 athlon i386
GNU/Linux
[root@Wizard root]# insmod ~mark/bin/bcm4400-2.4.19.ll/bcm4400.o
[root@Wizard root]# lsmod
Module                  Size  Used by    Not tainted
bcm4400                31040   0  (unused)     <------------!!!!!!!!!!
ide-cd                 30112   1  (autoclean)
cdrom                  31936   0  (autoclean) [ide-cd]
soundcore               6372   0  (autoclean)
autofs                 11364   0  (autoclean) (unused)
ipt_REJECT              3552   6  (autoclean)
iptable_filter          2368   1  (autoclean)
ip_tables              13696   2  [ipt_REJECT iptable_filter]
mousedev                5088   0  (unused)
keybdev                 2432   0  (unused)
hid                    20672   0  (unused)
input                   5664   0  [mousedev keybdev hid]
usb-uhci               25412   0  (unused)
ehci-hcd               17760   0  (unused)
usbcore                73120   1  [hid usb-uhci ehci-hcd]
ext3                   66112   1
jbd                    48208   1  [ext3]

In this case I cannot get to anything on the network. Note my
highlighting of the difference I see - the bcm4400 driver is "unused" in
this case. (RH 8.0 + Planet CCRMA kernel)


   Trying to restart the network leads to interesting messages:
[root@Wizard root]# service network restart
Shutting down interface eth0:                              [  OK  ]
Shutting down loopback interface:                          [  OK  ]
Setting network parameters:                                [  OK  ]
Bringing up loopback interface:                            [  OK  ]
Bringing up interface eth0:  Error, some other host already uses address
192.168.1.155.
./ifup: line 277:  1289 Segmentation fault      arping -q -c 2 -w 3 -D
-I ${REALDEVICE} ${IPADDR}
                                                           [FAILED]
[root@Wizard root]#


   The driver does work with 2.4.19-1.ll under RH 7.3, but fails under
RH 8.0.

   Any ideas how to get past this would be very appreciated.

Thanks,
Mark