I already added the phylib supporting and ethtool carrier detection in fec.c driver. Here is my git tree containing those patches: http://kernel.ubuntu.com/git?p=roc/ubuntu-lucid.git;a=shortlog;h=refs/heads/fec;pg=0 Please find my kernel package here for testing: http://people.canonical.com/~roc/kernel/fec/ Booting with networking cable plugged in: --- roc@babbage:~$ uname -a Linux babbage 2.6.31-605-imx51 #10~fec+phylib Wed Mar 24 16:19:20 CST 2010 armv7l GNU/Linux roc@babbage:~$ dmesg | grep eth0 eth0: Freescale FEC PHY driver [SMSC LAN8700] (mii_bus:phy_addr=0:00, irq=-1) eth0: no IPv6 routers present roc@babbage:~$ dmesg | tail type=1505 audit(1269420454.019:10): operation="profile_load" pid=527 name=/usr/bin/evince-thumbnailer type=1505 audit(1269420454.109:11): operation="profile_load" pid=540 name=/usr/lib/cups/backend/cups-pdf PHY: 0:00 - Link is Up - 100/Full lp: driver loaded but no devices found ppdev: user-space parallel port driver DMFC high resolution has set, will not change mxc_ipu mxc_ipu: Channel already disabled 9 mxc_ipu mxc_ipu: Channel already uninitialized 9 DMFC high resolution has set, will not change eth0: no IPv6 routers present roc@babbage:~$ ifconfig eth0 Link encap:Ethernet HWaddr 00:04:9f:00:e8:c8 inet addr:192.168.0.102 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::204:9fff:fe00:e8c8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:37 errors:0 dropped:0 overruns:0 frame:0 TX packets:29 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:9868 (9.8 KB) TX bytes:4661 (4.6 KB) Base address:0xe000 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:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:240 (240.0 B) TX bytes:240 (240.0 B) roc@babbage:~$ nm-tool NetworkManager Tool State: connected - Device: eth0 [Auto eth0] ---------------------------------------------------- Type: Wired Driver: fec State: connected Default: yes HW Address: 00:04:9F:00:E8:C8 Capabilities: Carrier Detect: yes Speed: 100 Mb/s Wired Properties Carrier: on IPv4 Settings: Address: 192.168.0.102 Prefix: 24 (255.255.255.0) Gateway: 192.168.0.1 DNS: 202.109.14.5 DNS: 124.74.213.68 ---- Remove the cable: --- roc@babbage:~$ dmesg | tail type=1505 audit(1269420454.109:11): operation="profile_load" pid=540 name=/usr/lib/cups/backend/cups-pdf PHY: 0:00 - Link is Up - 100/Full lp: driver loaded but no devices found ppdev: user-space parallel port driver DMFC high resolution has set, will not change mxc_ipu mxc_ipu: Channel already disabled 9 mxc_ipu mxc_ipu: Channel already uninitialized 9 DMFC high resolution has set, will not change eth0: no IPv6 routers present PHY: 0:00 - Link is Down roc@babbage:~$ ifconfig eth0 Link encap:Ethernet HWaddr 00:04:9f:00:e8:c8 inet6 addr: fe80::204:9fff:fe00:e8c8/64 Scope:Link UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:85 errors:0 dropped:0 overruns:0 frame:0 TX packets:29 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:25848 (25.8 KB) TX bytes:4661 (4.6 KB) Base address:0xe000 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:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:240 (240.0 B) TX bytes:240 (240.0 B) --- Insert cable again: --- roc@babbage:~$ dmesg | tail PHY: 0:00 - Link is Up - 100/Full lp: driver loaded but no devices found ppdev: user-space parallel port driver DMFC high resolution has set, will not change mxc_ipu mxc_ipu: Channel already disabled 9 mxc_ipu mxc_ipu: Channel already uninitialized 9 DMFC high resolution has set, will not change eth0: no IPv6 routers present PHY: 0:00 - Link is Down PHY: 0:00 - Link is Up - 100/Full roc@babbage:~$ ifconfig eth0 Link encap:Ethernet HWaddr 00:04:9f:00:e8:c8 inet addr:192.168.0.102 Bcast:192.168.0.255 Mask:255.255.255.0 inet6 addr: fe80::204:9fff:fe00:e8c8/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:108 errors:0 dropped:0 overruns:0 frame:0 TX packets:56 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:31139 (31.1 KB) TX bytes:8859 (8.8 KB) Base address:0xe000 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:4 errors:0 dropped:0 overruns:0 frame:0 TX packets:4 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:240 (240.0 B) TX bytes:240 (240.0 B) --- We can also see such change in the GUI. -Bryan