[Soekris] problem with net5501 and USB hub
ralph at lr.los-gatos.ca.us
Wed Jul 15 17:41:37 UTC 2009
I think the Soekris 5501's USB port is particularly defective.
I haven't done a careful study of my particular problem, but here are a
few data points. Start with the exact same piece of USB equipment (a
series of Dallas 1-wire temperature sensors, connected to a Dallas
DS2490 USB-to-1-wire adaptor, I have 3 or 4 of those assemblies).
Plug one of the DS2490 into a Windows laptop, using the Maxim/Dallas
demo software to communicate over USB: Completely reliable, works
perfectly out of the box. Multiple DS2490 work too, but I didn't have
to use a USB hub (used multiple USB ports on the laptop).
Plug one of the DS2490 into a desktop machine running OpenBSD 4.5:
Mostly works. Occasionally I get timeouts when reading from USB. Try
to connect multiple DS2490 via a powered USB 2.0 hub (cheapo model):
Reliability goes down, many timeouts, but basic functionality is there.
But if you unplug or add one DS2490, all the others usually get read
errors, which requires a reboot. Seems the USB code in OpenBSD needs to
be tweaked for longer timeouts, and so device add/remove is handled
correctly. The plus side is that software support for the DS2490 in
OpenBSD is great: no user-level software required, the temperature
monitors can be read with a sysctl command. I have been in contact with
the maintainer of 1-wire for OpenBSD, and he admitted that he currently
has no time to fix issues, and that 1-wire support in OpenBSD is
unfinished and has known bugs.
Same hardware configuration, but boot into Linux (Fedora 8, somewhat
older). Install some bizarre user-mode software to connect to 1-wire
sensors via the DS2490. After much configuring and tweaking, it's
capable of reading a single DS2490, but I couldn't figure out how to
configure it for multiple DS2490. Seems the software was quickly hacked
together by some volunteer without any thought about craftsmanship or
quality control, and as soon as it worked for his particular
configuration, he lost interest. Not worth investing effort into as,
as OpenBSD works so much better.
Now take one of the DS2490, and plug it into a Soekris 5501, also
running the same OpenBSD 4.5 that worked OK but not great on a desktop
machine: Utter failure. The OS sees that there is something there, and
tries to communicate with it, but communication fails completely. My
first suspicion is that the USB port on the Soekris is underpowered, so
I add a powered hub, but that doesn't help either.
If I were really interested in figuring out whether the problem with the
Soekris / OpenBSD combination is hardware or software, I would install
Windows XP on the Soekris (the only OS I've found so far to have perfect
USB / 1-wire software support), but that's (a) nearly or completely
impossible, and (b) not worth the effort for a minor side project that's
only of cosmetic important to me.
What do we learn from this: (1) Free software has support and quality
issues. (2) The Soekris 5501 hardware does not act exactly like an
industry-standard x86 machine, but in some areas (particularly clock,
interfaces and power) it's a bit weak. (3) The comfort zone of 5501
hardware is for low-powered network routers and servers, not for
interestingly complex IO requiring unusual software or hardware support.
Within the comfort zone, the Soekris 5501 works great though.
Ralph Becker-Szendy ralph at lr.los-gatos.ca.us (408)395-1435
735 Sunset Ridge Road; Los Gatos, CA 95033
More information about the Soekris-tech