Backport igb driver

iti-asi

Member
Jul 14, 2009
52
0
6
València
www.iti.upv.es
Hello PVE team!

Very recently, our Blade 6048 got a few new blades. We've discovered that the hardware differs a bit from those we already had, and one of the differences appears to be a different network card.

Old blade model:
08:00.0 Ethernet controller: Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper) (rev 01)

New blade model:
1f:00.1 Ethernet controller: Intel Corporation 82575EB Gigabit Network Connection (rev 02)

This model uses the "igb" driver, and works as expected in Debian lenny 2.6.26 and PVE kernel 2.6.32. However, the cards are undetected with PVE kernels 2.6.18 and 2.6.24.

We've done a quick test involving fetching the latest igb driver from Intel (igb 2.1.9, http://sourceforge.net/projects/e1000/files/igb stable/2.1.9/igb-2.1.9.tar.gz/download ) and compile them against pve-headers. They appear to work flawlessly in 2.6.24 and 2.6.18.

I've found that the igb driver is already backported in the Proxmox kernels (http://forum.proxmox.com/threads/1107-new-proxmox-ve-Installation-network-down) and would be very grateful if they could be backported again for both 2.6.24 and 2.6.18. I'll be happy to test from the pvetest repo.
 
as you already compiled them, the issue is resolved for you?
 
Hi Tom,
as you already compiled them, the issue is resolved for you?

Well, the module will be overwritten on the next PVE kernel update, and I'll have to do the process manually every time there's an ABI bump. Besides, I assume more people will end up getting this same hardware and will find Proxmox VE does not work for them (unless they use 2.6.32).

In short, I see a lot of advantages in refreshing the backport, given the driver was (apparently) already updated in the past.

Thanks for considering,
Jordi
 
Hi again,

With no intention to harass or annoy, it would be helpful if the proxmox team can indicate if this will be considered for the next kernel release, because if it's not going to I'll have to hack my own solution, be it a package that diverts the old module in favour of the new one, or even do a igb-source package that is compatible with module-assistant. All of these are worse solutions than having the fix included in the PVE kernel, though. Thanks in advance for the info!
 
we have tons of todo´s and we put priorities to tasks.

at the end, the development have to be paid by someone, so if you want to be sure that the core developers consider your wishes you need to pay them. otherwise you need to wait.
 
we have tons of todo´s and we put priorities to tasks.

at the end, the development have to be paid by someone, so if you want to be sure that the core developers consider your wishes you need to pay them. otherwise you need to wait.

Tom, dont' get me wrong, I fully understand that and have no problems accepting it. I'm not sure how many people are paid for working on PVE, but I think your patience and care when replying to most threads on the forum is really admirable.

I'll see what we do in our systems to make sure the updated module doesn't get overwritten by PVE updates, or try to produce the patch against the pve kernel so it's easier for you to apply it. This last option is currently unavailable due to the ftp server being unresponsive: ftp://pve.proxmox.com/sources/ . Thanks for the heads up.
 
Last edited by a moderator:
we have tons of todo´s and we put priorities to tasks.

at the end, the development have to be paid by someone, so if you want to be sure that the core developers consider your wishes you need to pay them. otherwise you need to wait.

Tom, would this help?

The following patch adds an igb target to the 2.6.18 (current preferred PVE kernel) build system, similar to the AoE target. It currently depends on igb release 2.1.9, available at <http://downloads.sourceforge.net/project/e1000/igb%20stable/2.1.9/igb-2.1.9.tar.gz?use_mirror=ovh>.

Tested here, works as expected (once I managed to install the gazillion build-deps in the container used for testing).

Code:
clustest02:~# diff -Nuar pve-kernel-2.6.18_2010-02-04/Makefile pve-kernel-2.6.18_2010-02-04.new/Makefile 
--- pve-kernel-2.6.18_2010-02-04/Makefile    2010-02-04 08:22:38.000000000 +0100
+++ pve-kernel-2.6.18_2010-02-04.new/Makefile    2010-03-15 14:49:01.000000000 +0100
@@ -45,6 +45,9 @@
 OCFS2DIR=ocfs2-1.4.4
 OCFS2SRC=${OCFS2DIR}.tar.gz
 
+IGBDIR=igb-2.1.9
+IGBSRC=${IGBDIR}.tar.gz
+
 KVMDIR=kvm-src
 KVMPACKAGE=pve-qemu-kvm-${KERNEL_VER}
 QEMUVER=0.9.1
@@ -108,7 +111,7 @@
     dpkg-deb --build data ${DST_DEB}
     -lintian ${DST_DEB}
 
-data: .compile_mark ${KERNEL_CFG} kvm-modules.tar iscsi-scst.ko scst-modules.tar aoe.ko drbd.ko ocfs2-modules.tar 
+data: .compile_mark ${KERNEL_CFG} kvm-modules.tar iscsi-scst.ko scst-modules.tar aoe.ko igb.ko drbd.ko ocfs2-modules.tar 
     rm -rf data tmp; mkdir -p tmp/lib/modules/${KVNAME}
     mkdir tmp/boot
     install -m 644 ${KERNEL_CFG} tmp/boot/config-${KVNAME}
@@ -123,6 +126,8 @@
     install -m 644 -D drbd.ko tmp/lib/modules/${KVNAME}/kernel/drivers/block/drbd/drbd.ko
     # install latest aoe driver
     install -m 644 aoe.ko tmp/lib/modules/${KVNAME}/kernel/drivers/block/aoe/aoe.ko
+    # install latest igb driver
+    install -m 644 igb.ko tmp/lib/modules/${KVNAME}/kernel/drivers/net/igb/igb.ko
     # install scst modules
     install -m 644 -D iscsi-scst.ko tmp/lib/modules/${KVNAME}/extra/scst/iscsi-scst.ko
     tar xf scst-modules.tar -C tmp/lib/modules/${KVNAME}/extra/scst
@@ -187,6 +192,15 @@
     cd ${AOEDIR}; make KVER=${KVNAME}
     cp ${AOEDIR}/linux/drivers/block/aoe/aoe.ko aoe.ko
 
+igb.ko igb: .compile_mark ${IGBSRC}
+    # igb driver updates
+    rm -rf ${IGBDIR} igb.ko
+    tar xf ${IGBSRC}
+    mkdir -p /lib/modules/${KVNAME}
+    ln -sf ${TOP}/${KERNEL_SRC} /lib/modules/${KVNAME}/build
+    cd ${IGBDIR}/src; make BUILD_KERNEL=${KVNAME}
+    cp ${IGBDIR}/src/igb.ko igb.ko
+
 drbd.ko drbd: .compile_mark ${DRBDSRC}
     rm -rf ${DRBDDIR} drbd.ko
     tar xf ${DRBDSRC}
@@ -286,5 +300,5 @@
     rm -rf rh-kvm rh-kernel-src ${KERNEL_SRC}.org kvm-src.org
 
 clean:
-    rm -rf *~ ${KERNEL_SRC} data tmp busybox.tar busybox ${BUSYBOXDIR} initrd.img-${KVNAME} .compile_mark .pc pci.ids *.deb kvm-modules.tar ${KVMPACKAGE}_* kvm-src proxmox-ve/data ${SCSTDIR} scst-src scst-modules.tar ${ISCSIDIR} iscsi-scst.ko ${AOEDIR} aoe.ko tmp-headers ${DRBDDIR} drbd.ko ${KERNEL_CFG} ${OCFS2DIR} ocfs2-modules.tar applyrhpatch.log.tmp
+    rm -rf *~ ${KERNEL_SRC} data tmp busybox.tar busybox ${BUSYBOXDIR} initrd.img-${KVNAME} .compile_mark .pc pci.ids *.deb kvm-modules.tar ${KVMPACKAGE}_* kvm-src proxmox-ve/data ${SCSTDIR} scst-src scst-modules.tar ${ISCSIDIR} iscsi-scst.ko ${AOEDIR} aoe.ko ${IGBDIR} igb.ko tmp-headers ${DRBDDIR} drbd.ko ${KERNEL_CFG} ${OCFS2DIR} ocfs2-modules.tar applyrhpatch.log.tmp
File and patch attached.

If a 2.6.24 patch is wanted, I can work on that too.
 

Attachments

  • Makefile.txt
    11.9 KB · Views: 0
  • Makefile.diff.txt
    2.5 KB · Views: 0
The following patch adds an igb target to the 2.6.18 (current preferred PVE kernel) build system

The idea of the 2.6.18 kernel is to use an more or less unmodified RHEL kernel - I guess RH will add patches for the igb driver sooner or later.

If a 2.6.24 patch is wanted, I can work on that too.

I will take a look at this next time I compile a new 2.6.24 kernel.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!