Igb drivers



  • Hello everyone,

    I just got in a new server for a pfsense install. It's very modern hardware (new Xeon supermicro server).

    The primary issue is that it has a quad GigE Intel PRO/1000 ET NIC 82576. It should use the igb drivers, and is supported/included in FreeBSD 7.2. The card is not working, and the only thing i can see at all is a PCI NIC in the dmesg that doesnt find drivers.

    Anyone have any suggestions? Unfortunately this is not a good candidate for 2.0 as it will be the main firewall for a rather large office.

    As far as I can tell, the igb drivers are either not there, or just not working properly.

    -Mike


  • Rebel Alliance Developer Netgate

    I don't know that igb was built into the 1.2.3 kernel, and I don't think the module was built either.

    If you want to try the igb driver from another 7.2 install, you can try one I copied up to my site. You can download it like so:

    # fetch -o /boot/kernel/if_igb.ko http://pingle.org/files/if_igb.ko
    

    You can then load it like so:

    # kldload if_igb
    

    It may automatically load at boot, if it doesn't, you may need to add it to loader.conf, like this:

    if_igb_load="YES"
    

    You'll probably also want to add igb to the vlan arrays in /etc/inc/globals.inc



  • That is about where I left off last night. Thanks for the link though! I was going to dig it out of a livecd.

    Unfortunately when i tried to load the kernel module it said it was already there. Specifically it says:

    modules_register: module pci/igb already already exists!
    Module pci/igb failed to register: 17

    I'm going to pop in a live 7.2 cd in a few minutes when it finishes burning to see if the adapter works with it. I'll report back shortly.



  • Oh what fun.

    The onboard CDrom drive wont boot a 7.2 or 8.0 disk, so I plugged in a USB CDrom and booted them up. The FreeBSD 8.0 disk auto-detects the NIC and the 7.2 does not, which is quite unfortunate. Is it reasonable to rip the igb drivers out of the pfSense kernel and load the 8.0 drivers with kldload? Or is there an 8.0 version of 1.2.3 still (I'm fairly sure there was at least at one point)? If so, is it stable and where can i get it?

    What is the best way to edit the kernel w/ pfsense? I know that you removed the sysinstall utility…


  • Rebel Alliance Developer Netgate

    No, there is no 1.2.3 version based on FreeBSD 8 (nor was there ever…) there were far too many changes for 8 to make that feasible.

    If FreeBSD 8 sees your card, pfSense 2.0 should. If not, we may just need to add igb to the kernel config if it's not there already.

    You can't mix and match modules between 7.x and 8.x, so that wouldn't work either.



  • Thanks for the reply again Jim,

    It appears that the igb drivers in 7.2 don't work for the quad version of the NIC for some reason. The igb drivers on 8.0 do work. Intel offers the drivers on their site which in theory should work. I'll get around to that in a few hours to see if they'll install/work, but I think that there are igb drivers already there in the pfSense build, just they dont appear to work for my card. I suspect I will not be able to load the drivers though since the igb drivers are built into the kernel and I'm not sure how to edit the kernel in pfSense directly.



  • Pretty much all drivers now have a table of IDs of devices they recognise. Its quite possible your quad port card came out too recently for its IDs to be in the table of the igb driver in pfSense 1.2.3.

    If you provide the output of the shell command```

    pciconf -l


  • Rebel Alliance Developer Netgate

    There are some test builds of 1.2.3 against FreeBSD 7.3 (or what will be 7.3), which may do the job for you. Not sure anyone has done a recent one though.

    You can always try a custom build:
    http://devwiki.pfsense.org/DevelopersBootStrapAndDevIso



  • Rather than continue messing with this and trying to get the Intel Quad ET NIC to work with the 7.2 kernel, I called iXsystems and asked if they would swap me for an older chipset that either uses the em drivers or definitely works with the igb drivers in 7.2. They were great, very understanding and even apologetic that they used that card when they knew (sort of) that i was doing a pfSense build. A couple of their engineers called, listened to my concern (mostly that if I have to hack the kernel I cant just reinstall pfSense super quickly like I otherwise could) and then they offered to test their PT based quad NIC they had in stock with 7.2 to make sure it works by default and then overnight it assuming it does (to swap). It's nice to get competent people and great customer service… made me even more appreciative that I decided to purchase the massively overkill firewall from them.



  • If you can provide the output from # pciconf -l that I requested earlier it could prove useful for diagnosing possible future problems with this card.



  • pciconf -l printout here:

    http://pastebin.org/116670

    Sorry for the delay, been quite busy and this firewall needs a crapload of configuring so I can do the install.



  • pheleven: Thanks for the pciconf output. The four NICs are these devices:

    none13@pci0:9:0:0:      class=0x020000 card=0xa02b8086 chip=0x10e88086 rev=0x01 hdr=0x00
    none14@pci0:9:0:1:      class=0x020000 card=0xa02b8086 chip=0x10e88086 rev=0x01 hdr=0x00
    none15@pci0:8:0:0:      class=0x020000 card=0xa02b8086 chip=0x10e88086 rev=0x01 hdr=0x00
    none16@pci0:8:0:1:      class=0x020000 card=0xa02b8086 chip=0x10e88086 rev=0x01 hdr=0x00

    The device id 0x10e8 (upper half of what pciconf lists as the chip value) is identified in the FreeBSD 8.0 sources as E1000_DEV_ID_82576_QUAD_COPPER in source file e1000/e1000_hw.h which is referenced in e1000/if_igb.c in a table of IDs for supported devices. This entry is missing from the equivalent table in the FreeBSD 7.2 sources.

    The FreeBSD 7.2 table includes these 82576 devices: E1000_DEV_ID_82576, E1000_DEV_ID_82576_FIBER,  E1000_DEV_ID_82576_SERDES

    The FreeBSD 8.0 table includes these 82576 devices: E1000_DEV_ID_82576, E1000_DEV_ID_82576_NS,  E1000_DEV_ID_82576_FIBER,  E1000_DEV_ID_82576_SERDES, E1000_DEV_ID_82576_SERDES_QUAD, E1000_DEV_ID_82576_QUAD_COPPER


Log in to reply