# NIC enl832-tx-icnt requires driver compilation

## jvff

Hello,

I have successfully installed Gentoo system with networkless install. Now I need to install my NIC. It is an Encore ENL832-TX-ICNT. It comes with a driver for all operating systems, and it is quite outdated (the encore website only has the same version). I got it to compile with Red Hat 8.0. But to compile with Gentoo I think I need to update the Makefile so it can find the updated kernel source tree. When "make all" is typed, I get an error saying that /lib/modules/2.6.17-gentoo-r7/build doesn't exist. If I create that dir it says "unknown target modules", so I suspect the dir should have a Makefile too. Can someone help me understand what it is trying to do and what I need to do? Thank you,

JVFF

PS: Driver available at: http://www.encore-usa.com/Drivers/ENL832-TX-ICNT_Drivers.zip

----------

## NeddySeagoon

jvff,

Google suggests that your chip is supported by the sundance driver.

Try the following:-

```
modprobe sundance

ifconfig -a
```

if the first command just returns a prompt, the module loaded, in which case the second command should include a new eth interface. eth0 ?

If all it well, 

```
/etc/init.d/net.eth0 start
```

will make it work.

If your luck is holding, add 

```
sundance
```

to a line on its own in /etc/modules.autoload.d/kernel-2.6

and do 

```
rc-update add net.eth0 default
```

to get automatic startup.

If the modprobe returns an errror, post back, we will need to make the module.

----------

## jvff

Thanks for the reply. Module loaded successfull. However it didn't detect my card. Same happened on Red Hat. Only driver compilation detected. Thanks again,

JVFF

----------

## lbrtuk

It's likely that the kernel has changed enough to make the driver incompatible by now.

Really you should be looking for a solution that involves code already in ther kernel. The code is almost certainly there. In the linux world, driver cds are generally useless, even if they have linux drivers on them.

----------

## NeddySeagoon

jvff,

Reading the sources in your link, it clear that that driver is an old version of the Sundance driver in the kernel today. That probably means its the wrong driver for you network, or something is broken/turned off.

Please run 

```
lspci
```

and post the ethernet line, then run 

```
lspci -n
```

and post the corresponding line. You can identify it by the numbers at the left hand end of the line.

----------

## jvff

lspci | grep "thernet":

```
00:0d.0 Ethernet controller: Sundance technology Inc / IC Plus Corp IC Plus IP100A Integrated 10/100 Ethernet MAC + PHY (rev 31)
```

lspci -n | grep 00:0d.0:

```
00:0d.0 0200: 13f0:0200 (rev 31)
```

Thank you for your replies,

JVFF

----------

## NeddySeagoon

jvff,

Do you fancy trying a bit of kernel hacking ?

The kernel sundance driver does not contain your devices PCI ID, so the driver will not identify with the device.

Open the file /usr/src/linux/drivers/net/sundance.c and find this table 

```
static struct pci_device_id sundance_pci_tbl[] = {

        {0x1186, 0x1002, 0x1186, 0x1002, 0, 0, 0},

        {0x1186, 0x1002, 0x1186, 0x1003, 0, 0, 1},

        {0x1186, 0x1002, 0x1186, 0x1012, 0, 0, 2},

        {0x1186, 0x1002, 0x1186, 0x1040, 0, 0, 3},

        {0x1186, 0x1002, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 4},

        {0x13F0, 0x0201, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 5},

        {0,}

};

```

add a new line just before the {0,} which reads

```
 {0x13F0, 0x0200, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 6},
```

so the end bit reads

```
        {0x13F0, 0x0201, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 5},

        {0x13F0, 0x0200, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 6},

        {0,}

};
```

Now the driver matches your device ID. You also need to add your device to the list of names. Find this table

```
static const struct pci_id_info pci_id_tbl[] = {

        {"D-Link DFE-550TX FAST Ethernet Adapter"},

        {"D-Link DFE-550FX 100Mbps Fiber-optics Adapter"},

        {"D-Link DFE-580TX 4 port Server Adapter"},

        {"D-Link DFE-530TXS FAST Ethernet Adapter"},

        {"D-Link DL10050-based FAST Ethernet Adapter"},

        {"Sundance Technology Alta"},

        {NULL,},                        /* 0 terminated list. */

};
```

and add a hew line 

```
{"Sundance Technology IP100A"},
```

just before the 

{NULL,}, so it reads 

```
        {"Sundance Technology Alta"},

        {"Sundance Technology IP100A"},

    {NULL,},                        /* 0 terminated list. */

};
```

Save your changes and make the Sundace kernel module as a module. That may be all it needs to work. It might not be too. If it works - well done, you are a kernel hacker. File a bug at bugs.gentoo.org with a patch attached.

----------

## jvff

Don't mind a little kernel hacking at all  :Smile: . It's very likely I may learn something from doing it. However I don't know how to install the kernel sources on the system I've installed. I have the gentoo system installed from LiveCD dialog text based install, and there are no folders under /usr/src/. Is there a way to get the sources installed without networking? Thank you,

JVFF

----------

## NeddySeagoon

jvff,

You need sneakernet until your network is up.

----------

## jvff

Hi again,

Sorry for delay. I screwed up the kernel accidentally, so I had to reinstall RedHat 8.0 two times, compile the modile, make a new partition, install LiveCD networkless, and finally sneakernet through the two distros until I could emerge gentoo-sources, eselect and dhcpcd. 50 reboots later I recompiled the kernel (with the sundance.c hacked) and it detected my NIC. Pinging didn't work, neither did dhcpcd. But after "ping 192.168.1.1 -r -R -v -f" it worked (don't know why, but it did). So then I successfully emerged links (no sneakernet), and I am posting know the result. What I need know is to reinstall the system, or upgrade it. Any suggestions on how I can install a new gentoo system using the new module? Does emerge world recompile everything? Also, how do I procced to post a bug (and patch)? Thank you very much for your help,

JVFF

PS: Posting in console is wierd... =S

----------

