2010-07-23 20:19:12

by Bob Tracy

[permalink] [raw]
Subject: [BUG] dm9601 driver won't init device properly

I've got one of the inexpensive Davicom DM9601 USB to fast Ethernet
devices, commonly available on eBay for under $10 including shipping.
It works fairly well in a WinXP environment with a MTU of 1000: 1500
and 1492 are confirmed not working, and values between 1000 and 1492
have not been tested at this point.

With Kubuntu (lucid) running 2.6.32-24-generic, the device is correctly
detected (the reported MAC address may not be correct -- I need to check
against the value reported for WinXP), but the driver typically sets it
to 10 Mb, half-duplex mode where the expected mode is 100 Mb, full-duplex.
DHCP fails to assign an address, and I sometimes see transmit timeouts.

Here is the presumed relevant portion of /var/log/syslog ("messages" and
"debug" didn't have anything not also in "syslog"):

Jul 23 13:57:26 no1nozit kernel: [ 1182.700192] usb 5-2: new full speed USB device using uhci_hcd and address 6
Jul 23 13:57:26 no1nozit kernel: [ 1182.884560] usb 5-2: configuration #1 chosen from 1 choice
Jul 23 13:57:26 no1nozit kernel: [ 1182.910095] eth2: register 'dm9601' at usb-0000:00:1d.0-2, Davicom DM9601 USB Ethernet, 04:00:06:04:06:e0
Jul 23 13:57:26 no1nozit NetworkManager: SCPlugin-Ifupdown: devices added (path: /sys/devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/net/eth2, iface: eth2)
Jul 23 13:57:26 no1nozit NetworkManager: SCPlugin-Ifupdown: device added (path: /sys/devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/net/eth2, iface: eth2): no ifupdown configuration found.
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): carrier is OFF
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): new Ethernet device (driver: 'dm9601')
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): exported as /org/freedesktop/NetworkManager/Devices/6
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): now managed
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): device state change: 1 -> 2 (reason 2)
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): bringing up device.
Jul 23 13:57:31 no1nozit kernel: [ 1187.930326] eth2: link down
Jul 23 13:57:31 no1nozit kernel: [ 1187.936850] ADDRCONF(NETDEV_UP): eth2: link is not ready
Jul 23 13:57:31 no1nozit kernel: [ 1187.937189] dm_write_async_callback() failed with -71
Jul 23 13:57:31 no1nozit kernel: [ 1187.938199] dm_write_async_callback() failed with -71
Jul 23 13:57:31 no1nozit kernel: [ 1187.938921] ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
Jul 23 13:57:31 no1nozit kernel: [ 1187.939187] dm_write_async_callback() failed with -71
Jul 23 13:57:31 no1nozit kernel: [ 1187.940191] dm_write_async_callback() failed with -71
Jul 23 13:57:31 no1nozit kernel: [ 1187.941189] dm_write_async_callback() failed with -71
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): preparing device.
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): deactivating device (reason: 2).
Jul 23 13:57:31 no1nozit kernel: [ 1187.942189] dm_write_async_callback() failed with -71
Jul 23 13:57:31 no1nozit kernel: [ 1187.943189] dm_write_async_callback() failed with -71
Jul 23 13:57:31 no1nozit kernel: [ 1187.944188] dm_write_async_callback() failed with -71
Jul 23 13:57:31 no1nozit NetworkManager: Added default wired connection 'Auto eth2' for /sys/devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/net/eth2
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): carrier now ON (device state 2)
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): device state change: 2 -> 3 (reason 40)
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) starting connection 'Auto eth2'
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): device state change: 3 -> 4 (reason 0)
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 1 of 5 (Device Prepare) scheduled...
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 1 of 5 (Device Prepare) started...
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 2 of 5 (Device Configure) scheduled...
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 1 of 5 (Device Prepare) complete.
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 2 of 5 (Device Configure) starting...
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): device state change: 4 -> 5 (reason 0)
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 2 of 5 (Device Configure) successful.
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 3 of 5 (IP Configure Start) scheduled.
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 2 of 5 (Device Configure) complete.
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 3 of 5 (IP Configure Start) started...
Jul 23 13:57:31 no1nozit NetworkManager: <info> (eth2): device state change: 5 -> 7 (reason 0)
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Beginning DHCP transaction (timeout in 45 seconds)
Jul 23 13:57:31 no1nozit NetworkManager: <info> dhclient started with pid 3033
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 4 of 5 (IP6 Configure Get) scheduled...
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 3 of 5 (IP Configure Start) complete.
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 4 of 5 (IP6 Configure Get) started...
Jul 23 13:57:31 no1nozit NetworkManager: <info> Activation (eth2) Stage 4 of 5 (IP6 Configure Get) complete.
Jul 23 13:57:31 no1nozit dhclient: Internet Systems Consortium DHCP Client V3.1.3
Jul 23 13:57:31 no1nozit dhclient: Copyright 2004-2009 Internet Systems Consortium.
Jul 23 13:57:31 no1nozit dhclient: All rights reserved.
Jul 23 13:57:31 no1nozit dhclient: For info, please visit https://www.isc.org/software/dhcp/
Jul 23 13:57:31 no1nozit dhclient:
Jul 23 13:57:31 no1nozit kernel: [ 1187.956195] eth2: link up, 10Mbps, half-duplex, lpa 0xF813
Jul 23 13:57:31 no1nozit NetworkManager: <info> DHCP: device eth2 state changed normal exit -> preinit
Jul 23 13:57:31 no1nozit dhclient: Listening on LPF/eth2/04:00:06:04:06:e0
Jul 23 13:57:31 no1nozit dhclient: Sending on LPF/eth2/04:00:06:04:06:e0
Jul 23 13:57:31 no1nozit dhclient: Sending on Socket/fallback
Jul 23 13:57:33 no1nozit avahi-daemon[922]: Registering new address record for fe80::600:6ff:fe04:6e0 on eth2.*.
Jul 23 13:57:35 no1nozit dhclient: DHCPDISCOVER on eth2 to 255.255.255.255 port 67 interval 3
Jul 23 13:57:38 no1nozit dhclient: DHCPDISCOVER on eth2 to 255.255.255.255 port 67 interval 5
Jul 23 13:57:41 no1nozit kernel: [ 1197.264270] usb 5-2: USB disconnect, address 6
Jul 23 13:57:41 no1nozit kernel: [ 1197.266525] eth2: unregister 'dm9601' usb-0000:00:1d.0-2, Davicom DM9601 USB Ethernet
Jul 23 13:57:41 no1nozit NetworkManager: <info> (eth2): carrier now OFF (device state 7, deferring action for 4 seconds)
Jul 23 13:57:41 no1nozit avahi-daemon[922]: Withdrawing address record for fe80::600:6ff:fe04:6e0 on eth2.
Jul 23 13:57:41 no1nozit dhclient: receive_packet failed on eth2: Network is down

Any assistance getting this adapter working under Linux would be
greatly appreciated. As always, thanks in advance.

--Bob


2010-07-23 20:19:30

by Bob Tracy

[permalink] [raw]
Subject: Re: [BUG] dm9601 driver won't init device properly

On Fri, Jul 23, 2010 at 02:57:36PM -0500, Bob Tracy wrote:
> (...)
> Jul 23 13:57:26 no1nozit kernel: [ 1182.910095] eth2: register 'dm9601' at usb-0000:00:1d.0-2, Davicom DM9601 USB Ethernet, 04:00:06:04:06:e0
> (...)
> ... the reported MAC address may not be correct -- I need to check
> against the value reported for WinXP...

As suspected, the Linux driver is reporting a bogus value. The correct
MAC address is 00:06:06:e0:00:1a. Perhaps this is a useful clue as to
what's going on.

--Bob

2010-07-24 14:44:51

by Valdis Klētnieks

[permalink] [raw]
Subject: Re: [BUG] dm9601 driver won't init device properly

On Fri, 23 Jul 2010 14:57:36 CDT, Bob Tracy said:
> I've got one of the inexpensive Davicom DM9601 USB to fast Ethernet
> devices, commonly available on eBay for under $10 including shipping.
> It works fairly well in a WinXP environment with a MTU of 1000: 1500
> and 1492 are confirmed not working, and values between 1000 and 1492
> have not been tested at this point.

Wow. An "ethernet" card that won't do an MTU of 1500 even under Windows. May I
add this to my gallery of examples I use when people say "no vendor could
*possibly* ship hardware that fscked up"? :)


Attachments:
(No filename) (227.00 B)

2010-07-24 15:48:46

by Chris Fowler

[permalink] [raw]
Subject: Re: [BUG] dm9601 driver won't init device properly

On Sat, 2010-07-24 at 10:44 -0400, [email protected] wrote:
> Wow. An "ethernet" card that won't do an MTU of 1500 even under
> Windows. May I
> add this to my gallery of examples I use when people say "no vendor
> could
> *possibly* ship hardware that fscked up"? :)

A lot of these "cards" are not meant for you and I. They are meant for
casual desktop users that would never put any amount of load on them.

About 6 years ago we needed some PCMCIA modem cards and bought 100 of
them from a vendor for $25/ea. They started failing in the field. When
calling they just could not sync up. Only a reboot could fix the
problem. What we learned was that a combination of heat and other
factors caused them to drift so much the timing was off. We replaced
those in the field with Zoom 3075 at about $65/ea. These modems were
not meant for our solution. They were meant for casual laptop users
that needed to dial an ISP every so often. I was expecting them to work
in a box that would stay up 24x7. They couldn't handle it. I wrote a
perl program that used a TLS-4 simulator and would dial the modem
constantly. The failures were too much. On the Zooms we would average
10 failures per 1000 calls.




2010-07-24 16:43:30

by Bob Tracy

[permalink] [raw]
Subject: Re: [BUG] dm9601 driver won't init device properly

On Sat, Jul 24, 2010 at 10:44:41AM -0400, [email protected] wrote:
> On Fri, 23 Jul 2010 14:57:36 CDT, Bob Tracy said:
> > I've got one of the inexpensive Davicom DM9601 USB to fast Ethernet
> > devices, commonly available on eBay for under $10 including shipping.
> > It works fairly well in a WinXP environment with a MTU of 1000: 1500
> > and 1492 are confirmed not working, and values between 1000 and 1492
> > have not been tested at this point.
>
> Wow. An "ethernet" card that won't do an MTU of 1500 even under Windows. May I
> add this to my gallery of examples I use when people say "no vendor could
> *possibly* ship hardware that fscked up"? :)

You may :-), although I wouldn't assume the Windows driver is blameless.
At 100 Mbit/s, flow-control simply has to work if the device is USB 1.1.
According to the data sheet, there's a total of 16 kB of on-chip SRAM
available for buffering (oddly enough, the documentation indicates the
device *could* support up to 64 kB of SRAM). Gotta shovel out that
stall quickly, and I suspect using a smaller MTU is simply giving an
inefficient driver more time to do that. If I don't get tired of
messing around with this adapter, I may experiment a little to see what
happens when I lock the interface speed at 10 Mbit/s (instead of letting
it auto-sense).

Another respondent said MTU >= 1280 is required for IPv6, so I gave that
a try just to see if the floor could be raised a bit above 1000. For
what it's worth, 1280 works.

--Bob