[uClinux-dev] 2.4.31-uc0 dhcpcd-new not reconfiguring on network loss/restoral?

Aaron Manning aamanning at dsc.com
Tue Jan 17 15:26:22 EST 2006


G'day everyone.

Having a problem with dhcpcd-new on the 2.4.31-uc0 kernel running on 5272.
Initially I startup my board with ethernet connected, and in my startup
script,
I run: dhcpcd-new -p -a eth0 &
At this point, my router is correctly giving me my IP and everything is
setup great on my system... comms working properly. (1 hour lease time setup
on my router)

/> ps
  PID PORT STAT  SIZE SHARED %CPU COMMAND
    1      S     154K     0K 17.2 /bin/init
    2      S       0K     0K  2.0 keventd
    3      R       0K     0K  0.4 ksoftirqd_CPU0
    4      S       0K     0K  0.0 kswapd
    5      S       0K     0K  0.0 bdflush
    6      S       0K     0K  0.0 kupdated
   13      S      28K     0K  1.0 dhcpcd -p -a eth0
   14   S0 R      28K     0K  2.7 /bin/sh
   15      S      18K     0K  1.2 /bin/inetd
/> ifconfig
eth0      Link encap:Ethernet  HWaddr 00:03:4F:FF:02:0C
          inet addr:192.168.8.104  Bcast:192.168.8.255  Mask:255.255.255.0
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:5 dropped:0 overruns:0 carrier:5
          collisions:0 txqueuelen:1000
          RX bytes:1038 (1.0 KiB)  TX bytes:2420 (2.3 KiB)
          Base address:0x840

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  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:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

/> route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use
Iface
192.168.8.0     *               255.255.255.0   U     0      0        0 eth0
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
default         192.168.8.1     0.0.0.0         UG    0      0        0 eth0
/>

I disconnected my ethernet cable to the board and left to go hit a meeting.
I was gone for ~1.5 hours and when I came back, I seen my console output
continuously outputting the following:

/> Spurious interrupt 1
eth0: config: auto-negotiation on, 100FDX, 100HDX, 10FDX, 10HDX.
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out.
Ring data dump: cur_tx 7f6100, dirty_tx 7f6100 cur_rx: 7f6000
 tx: 16 buffers
  007f6100: 0000 024e 00000000
  007f6108: 0000 024e 00000000
  007f6110: 0000 024e 00000000
  007f6118: 0000 024e 00000000
  007f6120: 0000 024e 00000000
  007f6128: 0000 024e 00000000
  007f6130: 0000 024e 00000000
  007f6138: 0000 024e 00000000
  007f6140: 0000 024e 00000000
  007f6148: 0000 024e 00000000
  007f6150: 0000 024e 00000000
  007f6158: 0000 024e 00000000
  007f6160: 0000 024e 00000000
  007f6168: 0000 024e 00000000
  007f6170: 0000 024e 00000000
  007f6178: 2000 024e 00000000
 rx: 32 buffers
  007f6000: 8000 015a 007f5000
  007f6008: 8000 015a 007f5800
  007f6010: 8000 015a 007f4000
  007f6018: 8000 0040 007f4800
  007f6020: 8000 0040 007f3000
  007f6028: 8000 0040 007f3800
  007f6030: 8000 0040 007f2000
  007f6038: 8000 0040 007f2800
  007f6040: 8000 0066 007f1000
  007f6048: 8000 0066 007f1800
  007f6050: 8000 dfd7 007f0000
  007f6058: 8000 fffe 007f0800
  007f6060: 8000 dbff 007ef000
  007f6068: 8000 cf7f 007ef800
  007f6070: 8000 f6fd 007ee000
  007f6078: 8000 f32d 007ee800
  007f6080: 8000 d7ff 007ed000
  007f6088: 8000 f7f2 007ed800
  007f6090: 8000 973c 007ec000
  007f6098: 8000 f3ed 007ec800
  007f60a0: 8000 2e7a 007eb000
  007f60a8: 8000 6bfe 007eb800
  007f60b0: 8000 e7df 007ea000
  007f60b8: 8000 e637 007ea800
  007f60c0: 8000 fedf 007e9000
  007f60c8: 8000 bffb 007e9800
  007f60d0: 8000 ef76 007e8000
  007f60d8: 8000 fd6f 007e8800
  007f60e0: 8000 f5fd 007e7000
  007f60e8: 8000 7f5f 007e7800
  007f60f0: 8000 effd 007e6000
  007f60f8: a000 fffe 007e6800
NETDEV WATCHDOG: eth0: transmit timed out
eth0: transmit timed out.
Ring data dump: cur_tx 7f6100, dirty_tx 7f6100 cur_rx: 7f6000
 tx: 16 buffers
  007f6100: 0000 024e 00000000
  007f6108: 0000 024e 00000000
  007f6110: 0000 024e 00000000
  007f6118: 0000 024e 00000000
  007f6120: 0000 024e 00000000
  007f6128: 0000 024e 00000000
  007f6130: 0000 024e 00000000
  007f6138: 0000 024e 00000000
  007f6140: 0000 024e 00000000
  007f6148: 0000 024e 00000000
  007f6150: 0000 024e 00000000
  007f6158: 0000 024e 00000000
  007f6160: 0000 024e 00000000
  007f6168: 0000 024e 00000000
  007f6170: 0000 024e 00000000
  007f6178: 2000 024e 00000000
 rx: 32 buffers
  007f6000: 8000 015a 007f5000
  007f6008: 8000 015a 007f5800
  007f6010: 8000 015a 007f4000
  007f6018: 8000 0040 007f4800
  007f6020: 8000 0040 007f3000
  007f6028: 8000 0040 007f3800
  007f6030: 8000 0040 007f2000
  007f6038: 8000 0040 007f2800
  007f6040: 8000 0066 007f1000
  007f6048: 8000 0066 007f1800
  007f6050: 8000 dfd7 007f0000
  007f6058: 8000 fffe 007f0800
  007f6060: 8000 dbff 007ef000
  007f6068: 8000 cf7f 007ef800
  007f6070: 8000 f6fd 007ee000
  007f6078: 8000 f32d 007ee800
  007f6080: 8000 d7ff 007ed000
  007f6088: 8000 f7f2 007ed800
  007f6090: 8000 973c 007ec000
  007f6098: 8000 f3ed 007ec800
  007f60a0: 8000 2e7a 007eb000
  007f60a8: 8000 6bfe 007eb800
  007f60b0: 8000 e7df 007ea000
  007f60b8: 8000 e637 007ea800
  007f60c0: 8000 fedf 007e9000
  007f60c8: 8000 bffb 007e9800
  007f60d0: 8000 ef76 007e8000
  007f60d8: 8000 fd6f 007e8800
  007f60e0: 8000 f5fd 007e7000
  007f60e8: 8000 7f5f 007e7800
  007f60f0: 8000 effd 007e6000
  007f60f8: a000 fffe 007e6800

It just sits there and repeatedly prints this out... I reconnected the
network cable to the board and tried to ping, nothing (didn't think it would
work, my lease time expired). But when I reconnected the ethernet cable I
didn't see dhcpcd report it reconfigured... so I ran ifconfig to see what
was going on:

ifconfig
eth0      Link encap:Ethernet  HWaddr 00:03:4F:FF:02:0C
          UP BROADCAST NOTRAILERS RUNNING  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:277 dropped:0 overruns:0 carrier:231
          collisions:0 txqueuelen:1000
          RX bytes:1102 (1.0 KiB)  TX bytes:135760 (132.5 KiB)
          Base address:0x840

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  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:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

/> NETDEV WATCHDOG: eth0: transmit timed out

No ip address or anything. So I ran PS to make sure that dhcpcd was still
running:

ps
  PID PORT STAT  SIZE SHARED %CPU COMMAND
    1      S     154K     0K  0.0 /bin/init
    2      S       0K     0K  0.0 keventd
    3      R       0K     0K  1.2 ksoftirqd_CPU0
    4      S       0K     0K  0.0 kswapd
    5      S       0K     0K  0.0 bdflush
    6      S       0K     0K  0.0 kupdated
   13      S      26K     0K  0.0 dhcpcd -p -a eth0
   14   S0 R      50K     0K  0.0 /bin/sh
   15      S      18K     0K  0.0 /bin/inetd
/> NETDEV WATCHDOG: eth0: transmit timed out

Yep he's still there... Shouldn't the dhcpcd client detect the ethernet
loss/restoral
and reconfigure itself accordingly? Or do I manually need to poll the link
status 
and restart client manually? 

Any help or suggestion for test would be greatly appreciated.

Aaron Manning

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.uclinux.org/pipermail/uclinux-dev/attachments/20060117/1d7e8383/attachment.html>


More information about the uClinux-dev mailing list