This problem was not being solved by all the normal methods because the e1000e driver kept failing during boot up.
Machine is running Ubuntu 9.04, fully updated.
The Device on this machine (from lspci command) showed:
Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller
The output from
showed us that the driver was aborting during boot up
with a "NVM Checksum" error
Because the Driver was failing, it would not assign a MAC or IP address.
The Interface worked in Windows Vista because Vista does not check the NVM Checksum.
We knew the interface worked...but the NVM (EEPROM) had corrupted data. No other Linux with an earlier Kernel had ever been loaded on this machine. Current Kernel is 2.6.28-11-generic.
We downloaded the latest driver file from Intel: e1000e-1.0.2.5.tar.gz
to the user's desktop then moved it to /usr/local/src.
Code:
cd ~/Desktop
sudo mv e1000e-1.0.2.5.tar.gz /usr/local/src
Extracted it and changed to the src directory inside the new drive directory (e1000e-1.0.2.5).
Code:
sudo tar zvh e1000e-1.0.2.5.tar.gz
cd e100e-1.0.2.5/src
We followed the readme file and did the "sudo make install" removed the old driver (sudo rmmod e100e), and loaded the new one (modprobe e1001e). Rebooted the machine...and and.....
Nothing, the same error in the Dmesg list.
I decided it was time to hack somethng, but what?
THE WORK-AROUND:
I found a file in the /usr/local/src/e1000e-1.0.2.5/src directory called netdev.c
I opened it with
Code:
sudo gedit netdev.c
and searched (CRTL F in gedit) for "NVM Checksum".
Once I found where NVM Checksum was I deleted two lines of code and saved the file. The code looked like this when i found it:
Code:
if (i == 2) {
e_err("The NVM Checksum Is Not Valid\n");
err = -EIO;
goto err_eeprom;
}
I changed to code by removing two lines and add "break;in their place:
Code:
if (i == 2) {
e_err("The NVM Checksum Is Not Valid\n");
break;
}
Saved the file then ran make clean and make install:
Code:
sudo make clean
sudo make install
Then we changed to the /etc directory and created modprobe.conf
Code:
cd /etc
sudo nano modprobe.conf
once in nano we added this line:
then used CTRL X to exit, Y to save and ENTER
Next:
Removed the old module and installed the new one:
Code:
sudo rmmod e1000e
sudo modprobe e1000e
The ethernet came up and was working. we checked the HWaddr (MAC) with ifconfig -a and it was the same as windows had seen.
It was working, however after a reboot, it did not work and a new error showed up in the dmesg output.
......I had read some about the error we saw, but decided the do the rmmod and modeprobe again and the ethernet came up and worked.
LAST ITEM
At this point we decided it was time just to write a script and have it run during boot up. Basically removing the module and reinserting it.
(I know it's not clean, but it is working)
Created a script:
Code:
cd /etc/init.d
sudo nano eth_start
and added the following to it.
Code:
#!/bin/bash
rmmod e1000e && modprobe e1000e
CTRL X to exit, Y to save and ENTER.
Back at the prompt we added it to the bootup
Code:
sudo update-rc.d eth_start
sudo chmod +x /etc/init.d/eth_start
Now every time the machine boots up, the module is unloaded and reloaded...but the main point is that the ethernet is working, at least in our case.
This did not really cause us any more problems, since the error with the NVM Checksum seemed to have come this way on the new Motherboard.
A very strange problem.. I guess we could have redone the checksum and such, but that would have taken more time and best left to the real experts of Linux.
We could not find much about the model(82573L) but we did see that many people were hard at work fixing the bugs since they started in the 2.6.27-rc1 Kernel. Their work and notes helped us understand the issue much better...
Kudos the the SourceForge Group e1000 and to Intel Engineers for getting involved.
http://sourceforge.net/projects/e1000/support
Please PM me or leave a message here if you see any errors or omission
in this post...it was a long couple of days on this one and I am sure it was a unique problem since this motherboard has never seen Linux before 9.04.
Bookmarks