2005年4月25日

Abit NF7-S2 board ethernet Linux driver.

The NF7-S2 board from Abit has a buildin ethernet chip. This is a NForce2 board but they do not use Nvidia's NIC. The one I got has this ICPlus IP100A 10/100 ethernet chip on it. Found that out from Abit's China site. Of cause if you are not a Chinese, you are not gonna find it out because this piece of information won't appare on any other Abit sites. Anyway, Under Linux, lspci shows it as:



Ethernet controller: Sundance Technology Inc: Unknown device 0200 (rev 31)



So it is basically a Sundance Ethernet Chip. It turns out that the Sundance driver come with Linux 2.6.11 does not work with the chip. I have to download the ICPlus IP100A Linux driver from ICPlus's own site.



After 'make all' and copy the sundance.ko (Why do they still call it sundance.ko?) to /lib/modules/2.6.11-01/kernel/drivers/net/ , "modprobe sundance". dah dah..., one more NIC on this box. :)



So now we know that one revision of Abit NF7 S2 mainboard use ICPlus IP100A ethernet chip which shows up as Sundance chip.

4 条评论:

匿名 说...

Thank you, thank you, thank you! Your info saved me time & cash.

匿名 说...

Tried this, still can't get the driver to work with PCLinux OS.

When I try to make the driver, it tells me that certain things are missing and it will be created without dependencies.

Can you help me with this at all? I have yet to get this NIC working. Please email me at: matteliz@gmail.com

匿名 说...

I don't know. You have to ask ICPLUS' tech support on how to compile the module.

Normally, You just need to install the Linux kernel header in order to compile the module.

匿名 说...

I have already reported this as a bug and the fix is already included in the Linux kernel (see http://bugzilla.kernel.org/show_bug.cgi?id=6691).

A workaround for those that don't have the necessary tools included in their distro to compile the vendor's driver or experience compiling their own software, is to use ndiswrapper with the original winxp driver. This requires that the ndsiwrapper be included in the distro kernel because the source code is not part of the official one. In any other case, you will have to patch and recompile your kernel. If you don't feel capable of doing it, it will be time to go shopping for a different GNU/Linux distribution that includes the ndiswrapper modules out of the box.

Here's the recipe:

1. Install the ndiswrapper userspace utilities if they are not already in the system (they are in PCLinuxOS, SUSE, Fedora and some others; in Ubuntu they are present in the alternate installer CD but are not installed by default).

2. Extract the .sys and .inf files from the ICP100A distribution zip file (that's easy, most vendors use a propietary installer and things become a lot more difficult). How to get them to your GNU/Linux is an exercise left to the reader.

3. Use ndiswrapper to install the driver, as root/with sudo:

ndiswrapper -i netipf

do a

modprobe ndiswrapper

and confirm that it is loading correctly:

ndiswrapper -l
Installed ndis drivers:
netipf driver present, hardware present

4. Make sure that the ndiswrapper module is loaded at startup; this is highly dependent on your distribution, thus you better ask in the proper place(s). In the case of Debian and derivatives, you add the name of the module (ndiswrapper) to the /etc/modules file.

5. The interface will appear to the system as if it were a wi-fi card; that is, it will show up as wlan0 instead of eth0. This is purely cosmetic, you can configure it as if it were a normal ethernet interface, be it by hand or with the help of some of those networking applets as long as you ignore the special settings of a wi-fi card such as the ESSID.

6. If you feel ready to experiment, you can make the network interface show up as a normal ethernet device by creating a file called /etc/modprobe.d/ndiswrapper with the following contents:

options ndiswrapper if_name=eth%d
alias eth0 ndiswrapper

If you don't have a populated modprobe.d directory, then your distro is still using the deprecated /etc/modprobe.conf file. Insert those lines there. And btw, the name I used for the modprobe.d file is something I pulled out of my hat. Give it the name of your cat if that's your fancy.

And lastly, to whoever has the compulsion to contact me privately: my consulting time ain't free. :-)