-3

I have plugged in a separate network card named TF-3200 to the PCI port. I also have ensured that the card is detected by using lspci command and it gives,

01:02.0 Ethernet controller: Sundance Technology Inc / IC Plus Corp IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (rev 31)

But still the interface is not shown in the interface list. So I assumed that the drivers are not installed in the system and tried to install them from the CD that they have provided. When I try to make the source file it gives out and error saying

gcc -D__KERNEL__ -DMODULE -O -Wall -Wstrict-prototypes -I/usr/include -DUSE_IO_OPS -D_COMPAT_WITH_OLD_KERNEL -c -o sundance_main.o sundance_main.c sundance_main.c:192:26: fatal error: linux/module.h: No such file or directory #include <linux/module.h> ^ compilation terminated.

I've also found that similar issues have been occurred previous also but its disappointing to see them unanswered. If anyone can help me with solving this issue i'd be really grateful.

2 Answers 2

2

This network card is ancient and the sundance driver is no longer supported in EL7. The drivers given by the network card vendor are for a much older version of the kernel and are unlikely to work on modern systems. Just go get a $10 gigabit NIC, before you have spent much more than $10 in labor costs trying to make this work.

2
  • Also can u recommend me a commonly used NIC which will work on this system?
    – BAdhi
    Apr 12, 2015 at 17:28
  • @BAdhi Something like this would do. For a modern system with PCI Express slots, try this instead. You could find them cheaper in India, but not after adding the costs of shipping it... Nov 29, 2015 at 23:47
0

To add a driver module supported in vanilla kernel to CentOS 7, you will need to do add the missing sources to the CentOS kernel tree and compile the module you want by doing the following:

  1. Install prerequisites for building kernel by using the following commands:

    yum group install "Development Tools"

    yum install kernel-headers kernel-devel gcc ncurses-devel rsync bc

  2. Download your running kernel sources from http://vault.centos.org/. In this example we'll download sources for 3.10.0-229.20.1.el7.x86_64 kernel by using:

    wget http://vault.centos.org/7.1.1503/centosplus/Source/SPackages/kernel-plus-3.10.0-229.20.1.el7.centos.plus.src.rpm

  3. After the rpm file is downloaded (to your home or to temporary directory) extract the contents by using:

    rpm2cpio kernel-plus-3.10.0-229.20.1.el7.centos.plus.src.rpm | cpio -idmv

  4. Finally, the archive with actual kernel sources should appear in the current directory. Extract it with a command:

    tar xJvf linux-3.10.0-229.20.1.el7.tar.xz

  5. Now you need to add the missing files from the kernel sources to your /usr/src/kernels. We'll use rsync to recursively copy files from the extracted kernel to your system without overwriting:

    rsync -r --ignore-existing --include=* linux-3.10.0-229.20.1.el7/ /usr/src/kernels/3.10.0-229.20.1.el7.x86_64

  6. Now go into your kernel directory /usr/src/kernels/3.10.0-229.20.1.el7.x86_64 and select missing modules, which you want to add to your system by running:

    make menuconfig

For Sundance Technology Inc / IC Plus Corp IC Plus IP100A Ethernet card go to

Device Drivers -> Network device support -> Ethernet driver support -> D-Link devices

and select "M" next to "Sundance Alta support".

For other drivers you can use search by pressing "/" key.

  1. After saving the kernel configuration build the module(s) you had selected by running:

    make prepare

    make modules_prepare

    make M=module/subdirectory/in/the/kernel/tree

For Sundance card the command is:

make M=drivers/net/ethernet/dlink

and copy the resulted *.ko file(s) to your /lib/modules/extra directory

For Sundance card the command is:

cp drivers/net/ethernet/dlink/sundance.ko /lib/modules/extra

Alternatively you can build the whole kernel and then just install missing modules automatically by using:

make
make modules_install

(this may take many hours, though, so I'd recommend compiling only modules you need - it only takes a couple of minutes to add a module this way)

5
  • 1
    This is a lot of work to keep using an 11 year old slow NIC which can be replaced with a reasonably modern gigabit NIC for very cheap, almost anywhere in the world. Nov 28, 2015 at 21:14
  • It took me just 15 minutes to do all that (from the moment I decided to get that old NIC working out of pure curiosity). I spent like 10 times more time on writing the post with actual instructions, compiled from different sources I used in process like: wiki.centos.org howtoforge.com cyberciti.biz
    – Anubioz
    Nov 29, 2015 at 23:28
  • Also, I agree with you that 11 year old NIC is not worth the work, therefore I "generalized" my answer, so it can be applied to any possible hardware, not only that particular card.
    – Anubioz
    Nov 29, 2015 at 23:32
  • @MichaelHampton, since OP asked this question, he had a reson for this, i think. And this answer actually answers it, so taking into account amount of work taken by Anubioz, it doesn't deserve downvoting, to say the least. Are you defending your own answer, by any chance?
    – arrowd
    Dec 1, 2015 at 8:43
  • @arrowd What are you talking about? I did not downvote this answer. Dec 1, 2015 at 8:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .