[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [debian-users] 3Com 3c900 NIC troubles



Hi,

Regarding your NIC woes:

> I'm trying to get my 3Com 3c900B-TPO working under Debian 2.2.18pre21.
> Here's what I've tried, and what I know, or think I know :P
> 
>  - Debian installer didn't detect the card.
>  - The card's not detected by Debian at boot (I found no 'eth0' in dmesg)
>  - 'ifconfig' lists only "lo" (local loopback?)
>  - 'ifconfig eth0 up' gives me "eth0 not found"
>  - but 'lspci' shows the card correctly as "02:09.0 Ethernet controller 3com
> 3c900B-TPO"
>  - Plug 'n Pray is turned off in BIOS
> 
> I tried to use linuxconf to set the 3c59x module, but that failed. It looks
> like it created an "/etc/conf.modules" file, which Debian tells me is
> deprecated. So no help there. Peripherally, is linuxconf a good thing to use
> on Debian? Frankly, I don't know any other way of doing it.

Maybe I am superstitious.  I took one look at linuxconf sometime ago,
and I am never going back there.  A well worn linux system is just far
too subtle a beast (too many possible configuration choices) that a
hack like that could ever work.  In comparison, consider the body of
careful scripts and policy in debian to get packages to configure
themselves and play together.  Coming from RH myself I am pretty
amazed at the level of careful policy in Debian.  And yet ... it still
doesn't always work.

but back to your question...

It seems clear that the first thing you must do is work out the module
for the card.  Of course you already know tha ;-(.  But maybe you need
some pointers to push modules in and out of a running kernel?  After
all probing cannot not always work.

Another thing is that I observed the modules for my 3com NIC change
name between 2.2 and 2.4 --- could that also be an issue here?

A good source of info on the module to NIC mapping is the kernel
documentation.  On a Debian machine I tried the following searches
(mind the fact that Debian docs are compressed)

    cd /usr/share/doc

    for f in ./kernel-doc-2.4.3/Documentation/networking/*.gz
    do
        if gunzip --stdout ${f} | grep -q -e '3c9' ; then
	    echo ${f}
	fi
    done

to get

  /usr/share/doc/kernel-doc-2.4.3/Documentation/networking/vortex.txt.gz

which talks about the 3c59x.c modules supporting  a bunch of 3c900 NIC
hardware.  This looks like the module you had been using on RH.  Maybe
you had a 2.4 kernel there, or they had backported the driver.  Anyhow
looking in the 2.2 kernel documentation I instead find a match for

  /usr/share/doc/kernel-doc-2.2.17/Documentation/networking/bonding.txt.gz

definitely off topic ;-).


You can also just look at the module names in

  /lib/modules/2.4.3/kernel/drivers/net/

and 

  /lib/modules/2.2.17/net/

(substitute your own kernel version numers as applicable), and then
just try inserting modules for the running kernel with commands like

     modprobe 3c59x

and removing with 

    modprobe -r 3c59x

You can even pass parameters.  As always see modprobe(8).  Maybe some
details will get logged to /var/log/messages et al.  There are some
parameters discussed in

  /usr/share/doc/kernel-doc-2.4.3/Documentation/networking/vortex.txt.gz

or by using modinfo(8)



Maybe it is a matter of moving to a 2.4 kernel.  You could do that via
Adrian Bunk's potato packages.  See:

       http://www.internatif.org/bortzmeyer/debian/apt-sources/




Cheers and hope this helps a little



Reply to: