• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

Grr! Can't install my NIC's drivers for Linux

BlitzRommel

Golden Member
Network Card: 3Com 10/100 with 3XP Processor (3CR990-TX-97)
Linux Dis: Mandrake 8.0, using KDE2 Desktop

I was able to extract the files into a folder at /usr/src/3c990. I read the README file and to be honest, it made NO fscking sense! I'm using an SMP kernel. Someone help me with installing drivers! I'm literally an AOL n00b at linux.
 
What does the readme say? I would be guessing it came as a tar.gz extension which you unpacked into a folder.? If the readme isn't too big, you could post it here...otherwise email it to me and i'll see if I can make any sense out of it!
 
Normally, you need to copy the .o file (3c59x.o) into /lib/modules/<kernel-flavour>/net (You might check, it might already be there). Then you need to update /etc/modules.conf to include an alias to eth0 (alias eth0 3c59x). Then you need to go into /etc/network/interfaces, and configure eth0 (Here's mine:
iface eth0 inet static
netmask 255.255.255.0
address 192.168.0.5
gateway 192.168.0.1

You should be able to do an
insmod 3c59x
ifup eth0
and see your network come up.

You might also want to read the man pages on modules.conf, as I can't remember if you have to do something to update the System Map or boot.b stuff.....


One caveat. This is all for Debian 2.3, using a 2.2.19 kernel. Not sure if it will be exactly the same for Mandrake. YMMV

Also, I use statically assigned IP addresses in my home Net. I'm not sure how you configure it for DHCP. Do a man 5 interfaces for more info.
 
Here's the full contents of the README file:


3Com (R) Corporation
3CR990 Network Interface Card
Driver for Linux


This file describes the 3CR990 network interface card (NIC) driver for Linux.
It includes the following topics:

* Supported NICs
* Getting the Sources
* Unzipping the Sources
* Building the Driver as a Module
* Installing the Driver as a Module
* Configuration options for the Driver Module
* Support Information
* Additional Information

CAUTION: 3Com has not yet verified functionality of the 3c990
driver on platforms, architectures, or configurations other than
those specified in this file. Although it may operate correctly
on other configurations, users are encouraged to exercise caution
when using the driver with other configurations.

DISCLAIMER: 3Com makes no warranties or guarantees, expressly,
implied, or otherwise. Usage of this driver is solely at the
risk of the user.


* Supported NICs
----------------

The 3C990 NIC driver for Linux supports the following EtherLink NICs:

* 3Com 10/100 PCI NIC w/3XP (3CR990-TX-95)
This NIC has PCI device ID of 9902 (in hexadecimal)
* 3Com 10/100 PCI NIC w/3XP (3CR990-TX-97)
This NIC has PCI device ID of 9903 (in hexadecimal)
* 3Com 10/100 PCI NIC w/3XP (3C990B-TX-M)
This NIC has PCI device ID of 9904 (in hexadecimal)
* 3Com 10/100 PCI Server NIC w/3XP (3CR990SVR95)
This NIC has PCI device ID of 9908 (in hexadecimal)
* 3Com 10/100 PCI Server NIC w/3XP (3CR990SVR97)
This NIC has PCI device ID of 9909 (in hexadecimal)
* 3Com 10/100 PCI Server NIC w/3XP (3C990BSVR)
This NIC has PCI device ID of 990A (in hexadecimal)

The 3c590/3c592/3c595/3c597 and 3C905 Families are supported
with the 3c59x driver from Donald Becker.


* Getting the Sources
---------------------

Sources are in the file 3c990-1.0.0a.tar.gz. This file can be obtained
from http://www.3com.com/infodeli/tools/nic/linuxdownload.htm

* Unzipping the Sources
-----------------------

To unzip the 3c990-1.0.0a.tar.gz, run the command -

#tar zxvf 3c990-1.0.0a.tar.gz

* Building the Driver as a Module
----------------------------------

To build the 3c990 driver as a loadable module, you can either:
+ make
to build the driver for the Uni-processor machine
+ make up
to build the driver for Uni-processor machine
+ make smp
to build the driver for SMP (symmetric multi-processor) machine

+ Compile the 3c990.c source file with the following command:

gcc -DMODULE -D__KERNEL__ -Wall -Wstrict-prototypes \
-I/usr/src/linux/include -O6 -c 3c990.c \
`[ -f /usr/include/linux/modversions.h ] &amp;&amp; echo -DMODVERSIONS`

Additionally, you can modify this compile line by:
+ Adding -D__SMP__ to the command line for SMP support
+ Adding -I/usr/src/linux/include to the command line if you've
upgraded the kernel (assuming kernel source is in /usr/src/linux/include)

* Installing Driver as a Module
--------------------------------

To load the 3C990 driver module on a RedHat 6.1 or 6.2 system,
place an &quot;alias&quot; in the file named /etc/conf.modules.

The alias instructs the kernel module loader to use the
3C990 driver module for a specific Linux Ethernet interface.
When the system attempts to use this Ethernet interface, it
causes the kernel module loader to load the 3c990 driver
into the system automatically, and initialize it for use.

The alias listed below associates the Ethernet device &quot;eth0&quot; with
the 3c990 driver module. If you have one of the EtherLink NICs
that is supported by the driver, place the following line in the
/etc/conf.modules file:

alias eth0 3c990

To enable additional supported EtherLink NICs, create additional
aliases, such as:

alias eth1 3c990
alias eth2 3c990

To install a loadable module by hand, enter the following command:

#insmod 3c990.o

Note: If PATH does not include current directory and module is in
the current directory, use

#insmod ./3c990.o


* Configuration options for the Driver Module
---------------------------------------------------------

The 3C990 driver supports the following options, which can be
supplied as command line arguments to the insmod command or in the
/etc/conf.modules file. Unless otherwise stated, all settings take
the form of:

force=value [,value ]

value can be
1) 0 [10 Megabit Half Duplex]
2) 1 [10 Megabit Full Duplex]
3) 2 [100 Megabit Half Duplex]
4) 3 [100 Megabit Full Duplex]
5) 4 [Default option: Auto]

NOTE: If you use the conf.modules file to load the driver at
boot time, include the word &quot;options&quot; when configuring the driver.
For example: options 3c990 force=0

If you use command line insmod, do not include the word &quot;option&quot;
when configuring the driver. For example: #insmod ./3c990.o force=0
will force the 10 Megabit half duplex settings.
If you have multiple adapters, settings can be done by specifying the
value of force for each adapter. For example -
a) #insmod ./3c990.o force=0,2
This will force the settings for first NIC to 10 Megabit Half Duplex
and the second NIC to 100 Megabit Full duplex.
b) #insmod ./3c990.o force=0,,3
This will force the settings for first NIC to 10 Megabit Half Duplex,
second NIC to autonegotiation and third NIC to 100Megabit Half Duplex.



* Support Information
---------------------

E-mail Support:

- USA or Canada: linux_support@3com.com
- Mexico and Latin America: AMI_HD@3com.com
- Brazil: br-nicsupport@3com.com
- Europe, Middle East and Africa: European_Technical_Support@3com.com
- Asia Pacific Rim: apr_technical_support@3com.com
- Source/binary name/location
(http://support.3com.com/infodeli/tools/nic/linux.htm )


Knowledgebase Support:
- http://knowledgebase.3com.com

Enhancement Requests:
- To request or submit driver modifications for 3Com consideration, go
to http://support.3com.com/infodeli/tools/nic/linuxrequest.htm to obtain
the form.


* Additional Information
------------------------

- Linux network driver site:
http://cesdis.gsfc.nasa.gov/linux/drivers

- Detailed instructions for building a driver:
http://cesdis.gsfc.nasa.gov/linux/misc/modules.html

/usr/src/linux/Documentation

========

The part I am not getting is the &quot;building&quot; and the &quot;compiling&quot; of the drivers...
 
Easy enough:
As root, in that directory issue:

gcc -DMODULE -D__SMP__ -Wall -Wstrict-prototypes \
-I/usr/src/linux/include -O6 -c 3c990.c \
`[ -f /usr/include/linux/modversions.h ] &amp;&amp; echo -DMODVERSIONS`


Now, copy cp the module you just made (3c990.o) to /lib/modules/<whatever the kernel name is/net/.

Then run depmod -a, the do the rest of what it's telling you to alias the module, then insmod 3c990. Then configure it as it says.

Make more sense?
 
What version of the kernel are you running? When I try to download the 2.2.x 3c990 tar.gz file, I get a zero byte file, so I can't try to compile that. I can download the 2.4 tar.gz, but I'm running a 2.2.19 kernel, so I can't compile that. If you are working with the 2.2.x file, would you PM it to me (can we do that?).

Have you tried the 3c59x module? It is a 3rd party 3COM driver created and supported by Donald Becker. It is mentioned on the bottom of the 3COM support page, and his home page is here:Donald Becker's Drivers..... They are the drivers I mention in my first post.... If they work, then you won't have to build the 3COM ones....
 
Back
Top