We have a widget here, basically a "beagleclone" that runs Linux.

When I plug it into an ubuntu host it shows up as:

usb0      Link encap:Ethernet  HWaddr 8a:18:9f:c4:a9:02
inet addr: Bcast: Mask:
          inet6 addr: fe80::8818:9fff:fec4:a902/64 Scope:Link
          RX packets:3 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:626 (626.0 B)  TX bytes:10727 (10.7 KB)

Requires no special setup.

However on a FreeBSD machine I need to do this:

USBDEV=$(shell dmesg | grep '^ugen.*LCD' | sed -E 's/^ugen([0-9]+\.[0-9]+).*/\1/')
# target to make the device show up on freebsd.
        usbconfig -d $(USBDEV) set_config 1
        sleep 5
        ifconfig ue0 inet  up

Basically I need to grep dmesg for "ugen" and the string "LCD", then I need to run:
 usbconfig -d 3.3 set_config 1  # (3.3 comes from dmesg)
 ifconfig ue0 inet  up

Any idea why Linux can do this all automagically but FreeBSD needs manual help?

I even tried putting some stuff into devd.conf, however devd doesn't seem to the right thing if the device is plugged in at boot time. This is because devd only seems to know when a device is plugged in, however it doesn't trigger events when the device has been present since boot.

Any tips on this? We can get around this with some custom rc scripts, but I was just wondering if FreeBSD could make it more plug and play.

freebsd-usb@freebsd.org mailing list
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to