System with both e100 and e1000 NIC won’t load driver

Home Page Forums Network Management Signal a BUG System with both e100 and e1000 NIC won’t load driver

This topic contains 3 replies, has 0 voices, and was last updated by  HakanL 9 years, 2 months ago.

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #41514

    HakanL
    Member

    I’m using ZS 1.0 beta11 and I have low-end DELL Optiplex GX270 with an onboard e1000 and I added an old Intel 82559 InBusiness 10/100 PCI card. The 82559 card is using the e100 driver.
    My issue is that the e100 card was not detected by ZS. I tried another Linux on this box before and it detected both cards fine. lspci shows the card. dmesg shows a warning saying “Firmware left e100 interrupts enabled; disabling”, but it never loads the driver.
    I can load the driver manually (modprobe e100), but then the if name is eth0 and not ETH01.
    So I messed with this all night and finally I figured out what’s going on!
    The issue is in the S04pciprobe file:


    #!/bin/sh
    echo "Checking for other PCI hardware ..."
    for m in `pcimodules` ; do
    if ! lsmod |cut -f1 -d " " | grep -q $m ; then
    echo "Loading ................................... [$m]"
    modprobe -k $m 2> /dev/null
    fi
    done

    when it goes thru all PCI modules to load it checks if the module is already loaded and skips that one. The issue is with the grep part. If e1000 is loaded and you grep for e100 then you’ll get a hit, and the driver is skipped! My fix is to change this line to this:


    if ! lsmod |cut -f1 -d " " | grep -q -w $m ; then

    which forces it to grep on whole words. It was a little messy to update this file as it resides in the ramdisk (which is loaded from rootfs), so I ended up making a copy of it in initrd and overwrite the file in the rootfs in linuxrc, but that’s just a workaround until the file can be properly patched in the source.

    Well, I hope this gets added to the distribution so I don’t have to redo this in next beta.

    Thanks for an outstanding product though!
    /Hakan

    #47701

    Roop
    Member

    I am under the same situation right now. In my circumstance, I cannot simply get the e100 nics working with the modprobe e100.

    if the e1000 nics are removed, the e100s appear. lspci shows the e100s regardless of weather the extra cards are present or not.

    i have placed the 1GB flash card image onto a hard disk and am booting off that. could you please provide more detailed instructions of how you made your workaround? I don’t know how to edit the binary files you mentioned.

    #47702

    HakanL
    Member

    do you get anything in dmesg when you do the modprobe? Note that modprobe will only load the driver, it probably won’t show up in the UI, etc since the name will be wrong.

    #47703

    atheling
    Member

    To get my patched versions of scripts into the scripts directory I put the following into my “pre-boot” script on the UI:


    for file in /Database/custom/*
    do
    cp ${file} /root/kerbynet.cgi/scripts/
    done

    Then I created the directory /Dabatabase/custom/ and put my updated scripts there.

    In the specific case of you needed to do a modprobe for the e100, you could just do the modprobe in the pre-boot script?

    #47704

    somleac
    Member

    Hi there,

    I got a Dell Optiplex 270 – hardware configuration same like HakanL with the difference of two additional Intel 10/100 cards.
    HakanL explained quite OK what the bug is and it is the same in Release 1.0.beta12. Because I could not manage to modify the binaries on the rootfs I tried atheling’s sugestion and it is working:
    Pre-boot scripts:
    modprobe e100

    That’s it.

    somleac

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.