Cannot install 3 quad port nics at the same time

I have problem installing 3 Nics at the same time. Only two cards can be installed.
lspci shows all 12 ports, but dmesg says that the limit is 8 for some reason!?
BTW, I tried several linux distros so this is not linked to specific os.

this is the output

**lspci **

0a:08.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0a:09.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0a:0a.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0a:0b.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0b:08.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0b:09.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0b:0a.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0b:0b.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0c:08.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0c:09.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0c:0a.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)
0c:0b.0 Ethernet controller: VIA Technologies, Inc. VT6120/VT6121/VT6122 Gigabit Ethernet Adapter (rev 11)

In other words, all 12 port are here and the NICs have their drivers installe din 2.6x kernel.

but, ifconfig -a shows only up to eth8 (eth0 is integarted on mobo i use for internet connection).

eth1 Link encap:Ethernet HWaddr xxxxxxxxxxxxx
inet6 addr: xxxxxxx Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:2520 (2.5 KB)
Interrupt:16 Base address:0x9e00

eth2 Link encap:Ethernet HWaddr xxxxxxxxxxxxxx
inet6 addr: xxxxxx Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:247 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:152254 (152.2 KB) TX bytes:3204 (3.2 KB)
Interrupt:17 Base address:0x9c00

eth3 Link encap:Ethernet Hxxxxxxx
inet6 addr: xxxxxxxxxxxScope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:1836 (1.8 KB)
Interrupt:18 Base address:0x9a00

eth4 Link encap:Ethernet HWaddr xxxxxxxxxxx
inet6 addr: xxxxxxxxxxxxxx Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:245 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:151286 (151.2 KB) TX bytes:1836 (1.8 KB)
Interrupt:19 Base address:0x9800

eth5 Link encap:Ethernet HWaddr xxxxxxxxxxx
inet6 addr: xxxxxxxxxxxxxx Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:248 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:152600 (152.6 KB) TX bytes:1836 (1.8 KB)
Interrupt:17 Base address:0x8e00

eth6 Link encap:Ethernet HWaddr xxxxxxxxxxxxx
inet6 addr: fxxxxxxxxxxxx Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:247 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:151978 (151.9 KB) TX bytes:1836 (1.8 KB)
Interrupt:18 Base address:0x8c00

eth7 Link encap:Ethernet HWaddrxxxxxxxxxxxx
inet6 addr: fxxxxxxxxxxxxxxx4 Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:247 errors:0 dropped:0 overruns:0 frame:0
TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:152254 (152.2 KB) TX bytes:2178 (2.1 KB)
Interrupt:19 Base address:0x8a00

eth8 Link encap:Ethernet HWaddr xxxxxxxxxxxxx
inet6 addr: xxxxxxxxxxxxxxx Scope:Link
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:246 errors:0 dropped:0 overruns:0 frame:0
TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:151632 (151.6 KB) TX bytes:1836 (1.8 KB)
Interrupt:16 Base address:0x8800

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:240 (240.0 B) TX bytes:240 (240.0 B)

pan0 Link encap:Ethernet HWaddr 3e:4e:e0:fb:fa:96
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

dmesg

5.598403] VIA Networking Velocity Family Gigabit Ethernet Adapter Driver Ver. 1.14
5.598405] Copyright (c) 2002, 2003 VIA Networking Technologies, Inc.
5.598406] Copyright (c) 2004 Red Hat Inc.
5.598416] via-velocity 0000:0a:08.0: PCI INT A → GSI 16 (level, low) → IRQ 16
5.599409] eth1: VIA Networking Velocity Family Gigabit Ethernet Adapter
5.599411] eth1: Ethernet Address: 00:0C:42:1A:0E:94
5.611441] ohci1394 0000:09:06.0: PCI INT A → GSI 18 (level, low) → IRQ 18
5.613027] via-velocity 0000:0a:09.0: PCI INT A → GSI 17 (level, low) → IRQ 17
5.613885] eth2: VIA Networking Velocity Family Gigabit Ethernet Adapter
5.613887] eth2: Ethernet Address: 00:0C:42:1A:0E:95
5.629031] via-velocity 0000:0a:0a.0: PCI INT A → GSI 18 (level, low) → IRQ 18
5.630241] eth3: VIA Networking Velocity Family Gigabit Ethernet Adapter
5.630244] eth3: Ethernet Address: 00:0C:42:1A:0E:96
5.645025] via-velocity 0000:0a:0b.0: PCI INT A → GSI 19 (level, low) → IRQ 19
5.645946] eth4: VIA Networking Velocity Family Gigabit Ethernet Adapter
5.645948] eth4: Ethernet Address: 00:0C:42:1A:0E:97
5.661019] via-velocity 0000:0b:08.0: PCI INT A → GSI 17 (level, low) → IRQ 17
5.661132] ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[18] MMIO=[fd1ff000-fd1ff7ff] Max Packet=[2048] IR/IT contexts=[4/8]
5.661757] eth5: VIA Networking Velocity Family Gigabit Ethernet Adapter
5.661759] eth5: Ethernet Address: 00:0C:42:1A:0E:A4
5.677019] via-velocity 0000:0b:09.0: PCI INT A → GSI 18 (level, low) → IRQ 18
5.677792] eth6: VIA Networking Velocity Family Gigabit Ethernet Adapter
5.677794] eth6: Ethernet Address: 00:0C:42:1A:0E:A5
5.693017] via-velocity 0000:0b:0a.0: PCI INT A → GSI 19 (level, low) → IRQ 19
5.693792] eth7: VIA Networking Velocity Family Gigabit Ethernet Adapter
5.693793] eth7: Ethernet Address: 00:0C:42:1A:0E:A6
5.709018] via-velocity 0000:0b:0b.0: PCI INT A → GSI 16 (level, low) → IRQ 16
5.709828] eth8: VIA Networking Velocity Family Gigabit Ethernet Adapter
5.709830] eth8: Ethernet Address: 00:0C:42:1A:0E:A7
5.725011] via-velocity 0000:0c:08.0: already found 8 NICs.
5.725017] via-velocity 0000:0c:09.0: already found 8 NICs.
5.725022] via-velocity 0000:0c:0a.0: already found 8 NICs.
5.725026] via-velocity 0000:0c:0b.0: already found 8 NICs.

Why is it giving last 4 lines ?

Thx for any input.

Looks like the driver only supports a max of 8 instances. A read of the source would confirm or refute this.

Later: Ok, here is the part in via-velocity.c:

        /* FIXME: this driver, like almost all other ethernet drivers,
         * can support more than MAX_UNITS.
         */
        if (velocity_nics >= MAX_UNITS) {
                dev_notice(&pdev->dev, "already found %d NICs.
",
                           velocity_nics);
                return -ENODEV;
        }

You would have to recompile via-velocity.c, editing MAX_UNITS in via-velocity.h.

Oh wow, great find. Thank you. I wasn’t thinking this might be driver related, as it was suppose to be intergated with 2.6 kernel and should work fine. Well why 8 instances??

So, i should edit via-velocity.h, and reload the system? I’m not a programmer so i’m not sure how to recompile. :shame:

thx again! rotfl!
btw i posted this on several forums and nobody could even give a hint on this!

Ok, i can’t seem to find via-velocity.h,c or anything like that in ubuntu.

What file should i be looking for? :shame: help

You’ll need to install the kernel source package, I think it’s linux-source on Ubuntu and kernel-source on openSUSE. Then you need to edit via-velocity.h and recompile that kernel module. I don’t have any instructions for you off the top of my head, I would have to search for it myself. Hopefully you should be able to compile just that module and replace the stock via-velocity.ko in /lib/modules. You will also need gcc and make packages installed. Unfortunately you have to do this every time the kernel is updated.

As for why 8, it looks like the driver was written by VIA people and somebody made the assumption that nobody would install more than 8 NICs of this type, for a maximum aggregate bandwidth of 8Gb/s. But you proved them wrong. So I would also file an enhancement request at bugzilla.novell.com (or launchpad for Ubuntu) asking for this limit to be raised in the upstream kernel sources. They will relay the request upstream and hopefully this will be changed in later releases for everybody.

Any chance for a step by step configuration with commands?
I can’t seem to make it work :frowning:

The file you want to modify is velocity_cfg.h. In line 64, change the max units, save and then run the makefile (sh ./makefile) and see what happens.
(Follow the instructions in the .txt files)

I can’t find the file.
I downloaded linux-headers from synaptic package, but
find / -iname “velocity_cfg.h” doesn’t show anything.

there is velocity.h in /usr/src/linux-headers-2.6.28.11-generic/include/config/via/velocity.h

but the file is empty. please advice.

Download the driver from: VIA Drivers Download - VIA Technologies, Inc.
Opensuse 11.x isn’t on the list, but choose the opensuse one.