Results 1 to 8 of 8
  1. #1
    Untangler TunaMaxx's Avatar
    Join Date
    Apr 2010
    Posts
    41

    Default Intel e1000e NIC doesn't survive reboot?

    Hello,

    I just built a box to test and learn about Untangle. In the build I used an Intel Gigabit CT Desktop Adapter... and yes, I now know that's one of the NIC's that aren't out-of-the-box compatible with Untangle.

    However, I have had success adding the e1000e drivers by following the various hints here at in the forums:


    Everything seems to work as expected, until I reboot the box. At that point, refreshing the interfaces in Untangle shows that one has been removed. However, running the following commands and the NIC becomes available again:

    Code:
    #rmmod e1000e
    #depmod -a
    #insmod /usr/src/linux-headers-2.6.26-1-common-untangle/drivers/net/e1000e/e1000e.ko
    I am assuming that the "disappears on reboot" problem is associated with the following step not 'taking' permanently:

    Code:
    #mkinitramfs -o /boot/initrd.img-2.6.26-1-untangle-686
    Although in my case (on 64bit hardware) I modified it accordingly like I did with the rest of the steps:

    Code:
    #mkinitramfs -o /boot/initrd.img-2.6.26-1-untangle-amd64
    Any suggestions on what I can do to keep this adapter alive after a reboot?
    Last edited by TunaMaxx; 04-08-2010 at 10:57 PM. Reason: Added links to posts now that I can!

  2. #2
    Untangle Ninja sky-knight's Avatar
    Join Date
    Apr 2008
    Location
    Phoenix, AZ
    Posts
    22,631

    Default

    Do a fresh install with 7.2, it has the upgraded driver built in.

    Also, that card shoudln't be using the e1000e, it should be using the igb...
    Rob Sandling, BS:SWE, MCP
    NexgenAppliances.com
    Phone: 866-794-8879 x201
    Email: support@nexgenappliances.com

  3. #3
    Untangle Ninja mrunkel's Avatar
    Join Date
    Jul 2008
    Posts
    3,040

    Default

    Nah, that's the 82574L chip, so it's the e1000e.

    7.3 supports that NIC but not 7.2.

    However, there is no telling what you did and didn't do from the mishmash of posts you followed.

    Are you saying that lsmod shows that the module is already loaded? Does lsmod | grep e1000e output anything?

    Maybe you have both modules in the file system?

    do a "find /usr/src -name e1000e.ko"

    If there are two entries delete the one you don't like, run depmod -a and reboot. That should fix the issue.

    Also, in your list of commands that "fix" the problem the depmod -a doesn't do anything new so there is no point to running it.
    m.


    Big Frickin Disclaimer:
    While I'm pretty sure, I can't guarantee that I know what I'm doing. There might be a better way to do this, and this way might actually suck. Make sure you understand the implications of what you're doing before trying to follow these directions.

    It often helps troubleshooting if you have a good network map. Look here if you want my advice on how to draw one.
    Attention: Support and help on the Untangle Forums is provided by volunteers and community members like yourself.
    If you need Untangle support please call or email support@untangle.com

  4. #4
    Untangler TunaMaxx's Avatar
    Join Date
    Apr 2010
    Posts
    41

    Default

    sky-knight: Oops... my bad. i guess I should have stated up front that I am running a fresh install of 7.2, downloaded yesterday.

    mrunkel: Yes, I have to admit that the posts I worked from were a little varied. However, in the end I basically followed your wiki entry and Intel's ReadMe.txt from the current driver download. However, this is an experiment / get-to-know-Untangle box, so if I have to kill and re-install it's not going to be an issue. In fact, I'll probably do that many times over the next few weeks as I get my feet wet.

    After a cold boot, to answer your questions:

    Code:
    # lsmod | grep e1000e
    e1000e        102180        0
    
    # find /usr/src -name e1000e.ko
    /usr/src/linux-headers-2.6.26.1-common-untangle/drivers/net/e1000e/e1000e.ko
    Configuration > Networking > Interface List says:

    Code:
    External  static  eth0 : connected 1000Mb/s full-duplex      o  x1:x1:x1:x1
    Internal  bridge  nointerface : disconnected unknown unknown o
    Then, without rebooting:

    Code:
    # rmmod e1000e
    # insmod /usr/src/linux-headers-2.6.26-1-common-untangle/drivers/net/e1000e/e1000e.ko
    
    # lsmod | grep e1000e
    e1000e        148140        0
    
    # find /usr/src -name e1000e.ko
    /usr/src/linux-headers-2.6.26.1-common-untangle/drivers/net/e1000e/e1000e.ko
    Configuration > Networking > Interface List says:

    Code:
    External  static  eth0 : connected 1000Mb/s full-duplex      o  x1:x1:x1:x1
    Internal  bridge  eth1 : connected 1000Mb/s full-duplex      o  x2:x2:x2:x2
    Once again though, if I reboot the box it all goes back to square one.

    My limited understanding makes me think there are two e1000e.ko modules due to the before and after size reported by lsmod. However, before and after find lists the same one. Any thoughts?

  5. #5
    Untangle Ninja sky-knight's Avatar
    Join Date
    Apr 2008
    Location
    Phoenix, AZ
    Posts
    22,631

    Default

    the file in /usr/src is going to be the updated module you compiled. The original is in /lib/modules

    Once apon I time I had a script that took a precompiled .ko set I made, e1000, e1000e, and igb and replaced the files in /lib/modules

    It didn't work... and I could never figure out why.
    Rob Sandling, BS:SWE, MCP
    NexgenAppliances.com
    Phone: 866-794-8879 x201
    Email: support@nexgenappliances.com

  6. #6
    Untangle Ninja mrunkel's Avatar
    Join Date
    Jul 2008
    Posts
    3,040

    Default

    Oh yeah duh.

    Run find /lib/modules -name e1000e.ko

    rm that file

    mv your ko file to the same location.

    cd /lib/modules

    depmod-a

    Then you should be all good. I wasn't paying attention earlier sorry.
    m.


    Big Frickin Disclaimer:
    While I'm pretty sure, I can't guarantee that I know what I'm doing. There might be a better way to do this, and this way might actually suck. Make sure you understand the implications of what you're doing before trying to follow these directions.

    It often helps troubleshooting if you have a good network map. Look here if you want my advice on how to draw one.
    Attention: Support and help on the Untangle Forums is provided by volunteers and community members like yourself.
    If you need Untangle support please call or email support@untangle.com

  7. #7
    Untangler TunaMaxx's Avatar
    Join Date
    Apr 2010
    Posts
    41

    Default

    No need to apologize!

    I jumped into the deep end of the pool with both feet knowing full well that I couldn't swim. The fact that you guys were here to save the day so quickly far outweighs a little 'oops' moment.

    Thanks again. I'll go try it out now.

  8. #8
    Untangler TunaMaxx's Avatar
    Join Date
    Apr 2010
    Posts
    41

    Default

    Ok! It only took me a couple of wipe and reinstall cycles, but with the help from you guys and this forum I got the e1000e based Intel NIC to survive reboots! Thanks for the assistance.

    While this may all be simple stuff for the old pro's, it was a little bit cryptic for a an inexperienced Linux user and complete Untangle noob! I thought I'd document my exact steps here in hopes that someone can give it a quick once over to make sure I didn't do anything stupid. Note,this borrows heavily from mrunkel's Wiki entry:

    • Date of install: April 8th, 2010
    • Hardware info: Intel DG45FC Mini-ITX Mobo, Intel E5300 Dual Core CPU, Kingston 2Gb DDR2-800 RAM
    • Intel NIC: Intel CT Gigabit Desktop Adapter


    1. Install Untangle
      In my case, this is on 64bit hardware so I used Untangle 7.2 64bit. The install process in perfectly simple. I don't need to add anything here except that for some reason I had to start Untangle in video safe mode to work with my vid card /display combo.

    2. Configure External Interface
      On the Untangle Client, go to Config > Networking. Should be self explanatory. Close down the Untangle Client.

    3. Enable SSH
      This part is optional, but for me it made things easier because I could copy and paste commands! On the Untangle Terminal, on first launch it will ask to set a password. (I used a different password than for the Untangle Client. I don't know if this is a good idea or not, but it hasn't seemed to have any negative consequencs.) Then it will ask you to verify the password. Finally, now that the Terminal has a password in place, it will ask you to enter it for access.
      Enter the following commands to to rename the file that keeps SSH from being used:
      Code:
      mv /etc/ssh/sshd_not_to_be_run /etc/ssh/sshd_not_to_be_run.bak
      Now, reboot the Untangle box to actually enable SSH access. There is probably an easier way, but this is sure fire.

    4. SSH Into Untangle
      So go to your favorite computer and SSH into your Untangle box as the root user. Use the IP address you configured in step 3, "Configure External Interface" :
      Code:
      ssh root@192.168.123.45
      Enter the Terminal password you created for step 2, "Enable SSH"

    5. Enable Apt Sources
      Code:
      vim /etc/apt/sources.list.d/dev.list
      The vim editor is a little odd if you're not used to it. Just hit the letter "a" key to enable editing mode, and then type or cut and paste:
      Code:
      deb http://ftp.us.debian.org/debian lenny main contrib non-free
      Next, press the "esc" (Escape) key to get out of edit mode. Type "ZZ" (two captial Z characters) to save and close the file.

    6. Update the available packages
      Code:
      apt-get update
    7. Install required packages
      Code:
      apt-get --yes install untangle-development-build
      Since I am using the 64bit version of Untangle, I'll install the 64bit specific stuff. 32bit version users should install, obviously, the 32bit version.
      64bit:
      Code:
      apt-get --yes install linux-headers-2.6.26-1-untangle-amd64
      32bit:
      Code:
      apt-get --yes install linux-headers-2.6.26-1-untangle-486 linux-headers-2.6.26-1-untangle-686
    8. Disable Apt Sources
      Code:
      rm /etc/apt/sources.list.d/dev.list
      At this point, Your Untangle box is configured to able to make the Intel e1000e driver. The instructions for this are from the driver's ReadMe.txt file.

    9. Install Intel driver
      I'm sure there is an easier way, but I had the driver on CD, so mount the CD-ROM, copy the file and un-tar it

      Code:
      mount /cdrom
      cp /media/cdrom/e1000e-1.1.2.1a.tar.gz ~/e1000e-1.1.2.1a.tar.gz
      cd ~
      tar zxf e1000e-1.1.2.1a.tar.gz
      Now we are going to make the drive from source. Change to the src directory, and do a make install:

      Code:
      cd e1000e-1.1.2.1a/src
      make install
      There may be an error at the end, but it is related to creating the man page entry:

      make -C /lib/modules/2.6.26-1-untangle-amd64/build SUBDIRS=/root/e1000e-1.1.2.1a/src modules
      make[1]: Entering directory `/usr/src/linux-headers-2.6.26-1-untangle-amd64'
      CC [M] /root/e1000e-1.1.2.1a/src/netdev.o
      CC [M] /root/e1000e-1.1.2.1a/src/ethtool.o
      CC [M] /root/e1000e-1.1.2.1a/src/param.o
      CC [M] /root/e1000e-1.1.2.1a/src/e1000_82571.o
      CC [M] /root/e1000e-1.1.2.1a/src/e1000_ich8lan.o
      CC [M] /root/e1000e-1.1.2.1a/src/e1000_80003es2lan.o
      CC [M] /root/e1000e-1.1.2.1a/src/e1000_mac.o
      CC [M] /root/e1000e-1.1.2.1a/src/e1000_nvm.o
      CC [M] /root/e1000e-1.1.2.1a/src/e1000_phy.o
      CC [M] /root/e1000e-1.1.2.1a/src/e1000_manage.o
      CC [M] /root/e1000e-1.1.2.1a/src/kcompat.o
      LD [M] /root/e1000e-1.1.2.1a/src/e1000e.o
      Building modules, stage 2.
      MODPOST 1 modules
      CC /root/e1000e-1.1.2.1a/src/e1000e.mod.o
      LD [M] /root/e1000e-1.1.2.1a/src/e1000e.ko
      make[1]: Leaving directory `/usr/src/linux-headers-2.6.26-1-untangle-amd64'
      gzip -c ../e1000e.7 > e1000e.7.gz
      # remove all old versions of the driver
      find /lib/modules/2.6.26-1-untangle-amd64 -name e1000e.ko -exec rm -f {} \; || true
      find /lib/modules/2.6.26-1-untangle-amd64 -name e1000e.ko.gz -exec rm -f {} \; || true
      install -D -m 644 e1000e.ko /lib/modules/2.6.26-1-untangle-amd64/kernel/drivers/net/e1000e/e1000e.ko
      /sbin/depmod -a || true
      install -D -m 644 e1000e.7.gz /usr/share/man/man7/e1000e.7.gz
      man -c -P'cat > /dev/null' e1000e || true
      man:
      cannot write to /var/cache/man/cat7/e1000e.7.gz in catman mode
      e1000e.
    10. Do some voodoo
      OK, not really voodoo, but to honest I don't know what the following steps do... but they are required.

      Code:
      rmmod e1000e
      modprobe e1000e
      depmod -a
    11. Add changes to initrd

      64bit:
      Code:
      mkinitramfs -o /boot/initrd.img-2.6.26-1-untangle-amd64
      32bit:
      Code:
      mkinitramfs -o /boot/initrd.img-2.6.26-1-untangle-686
      Congrats! You're all done.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

SEO by vBSEO 3.6.0 PL2