Harry's Graffiti

Always Be Coding, Never Be Evil

Intel I217-LM Ethernet on Ubuntu 12.04

If you’re using Intel I217-LM ethernet on Ubuntu 12.04 LTS, you might get trouble says eth0 is not working on Linux kernel 3.2.x

Problem

I used ‘lshw’ and ‘ifconfig’ ensured it is detected on PCI but not in NetworkManager

$ sudo lshw -C network
  *-network
   description: Ethernet interface
   product: Ethernet Connection I217-LM
   vendor: Intel Corporation
   physical id: 19
   bus info: pci@0000:00:19.0
   logical name: eth0
...
$ ifconfig
lo      Link encap:Local Loopback
        inet addr:127.0.0.1  Mask:255.0.0.0
        inet6 addr: ::1/128 Scope:Host
        UP LOOPBACK RUNNING  MTU:16436  Metric:1
        RX packets:223 errors:0 dropped:0 overruns:0 frame:0
        TX packets:223 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:0
        RX bytes:141166 (141.1 KB)  TX bytes:141166 (141.1 KB)
wlan0   Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
        UP BROADCAST MULTICAST  MTU:1500  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Solution

By StackOverflow I found potential cause due to I217 driver available since Linux 3.5.x however my Ubuntu 12.04 still using 3.2.0-29, probably it could be found in linux-backports-modules however I did not go the way.

I followed the hint to Intel e1000e drivers page, get the source then built on my laptop

$ tar zxf e1000e-<x.x.x>.tar.gz
$ cd e1000e-<x.x.x>/src/
$ sudo make install
$ modprobe e1000e
$ ifconfig

Have fun on your eth0