On Saturday 11 August 2012 09:57 AM, David Smith wrote: > I can confirm this bug in Wheezy. I believe laptop-mode-tools may be > enabling excessive power management on the ethernet adapter which has > some icky side-effects of not detecting when the cable is physically > plugged/unplugged. > > I had laptop-mode in Debian Lenny, and it didn't have this problem. > Now that I upgraded to Wheezy, I'm experiencing this problem. I > didn't use Squeeze. > I am not convinced this is a laptop-mode-tools bug. On my freshly booted box (with kernel 3.4), I get these error message. Aug 11 14:52:22 champaran kernel: [ 29.929273] e1000e 0000:00:19.0: eth0: Error reading PHY register Aug 11 14:52:22 champaran kernel: [ 30.724107] e1000e 0000:00:19.0: eth0: Error reading PHY register Aug 11 14:52:23 champaran kernel: [ 31.519012] e1000e 0000:00:19.0: eth0: Error reading PHY register Aug 11 14:52:24 champaran kernel: [ 32.314118] e1000e 0000:00:19.0: eth0: Error reading PHY register Aug 11 14:52:24 champaran kernel: [ 32.666749] e1000e 0000:00:19.0: eth0: Hardware Error Aug 11 14:52:24 champaran kernel: [ 32.666749] e1000e 0000:00:19.0: eth0: Hardware Error Aug 11 14:52:25 champaran kernel: [ 33.222707] e1000e 0000:00:19.0: eth0: Hardware Error Aug 11 14:52:25 champaran kernel: [ 33.222707] e1000e 0000:00:19.0: eth0: Hardware Error In my opinion, there are bugs with this hardware/driver. > I fixed the bug by removing only the laptop-mode-tools package, > although I'm sure it probably has a negative impact on my battery life. laptop-mode-tools could just be the tool able to uncover this bug. Looking at the code, this above mentioned error seems to be triggered during a device reset: /** * e1000e_reset - bring the hardware into a known good state * * This function boots the hardware and enables some settings that * require a configuration cycle of the hardware - those cannot be * set/changed during runtime. After reset the device needs to be * properly configured for Rx, Tx etc. */ void e1000e_reset(struct e1000_adapter *adapter) { struct e1000_mac_info *mac = &adapter->hw.mac; struct e1000_fc_info *fc = &adapter->hw.fc; struct e1000_hw *hw = &adapter->hw; ............ ew32(WUC, 0); if (mac->ops.init_hw(hw)) e_err("Hardware Error\n"); .................. For this actual issue reported in this bug, I haven't been able to reproduce it. And regarding Ben's comment about autoneg, I will check with the previous author of laptop-mode-tools on why it was added. If not needed, it'll be knocked off in the next release. -- Ritesh Raj Sarraf | http://people.debian.org/~rrs Debian - The Universal Operating System
Attachment:
signature.asc
Description: OpenPGP digital signature