Comment 8 for bug 457878

Revision history for this message
Bryan Wu (cooloney) wrote :

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