Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Jan 2013 10:14:57 -0600
From:      dweimer <dweimer@dweimer.net>
To:        Warren Block <wblock@wonkity.com>
Cc:        FreeBSD Questions <freebsd-questions@freebsd.org>, Shane Ambler <FreeBSD@shaneware.biz>
Subject:   Re: Locking USB Serial Device to Specific Com port
Message-ID:  <92bd9c547b6d1b36daa9da4030ad2172@dweimer.net>
In-Reply-To: <alpine.BSF.2.00.1301270825480.6993@wonkity.com>
References:  <762f51b7c30dd5c920788336b3eb4fa5@dweimer.net> <51045B48.40202@ShaneWare.Biz> <0fd00d9caad3787f4cd0e443e5931340@dweimer.net> <alpine.BSF.2.00.1301270825480.6993@wonkity.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2013-01-27 09:29, Warren Block wrote:
> On Sun, 27 Jan 2013, dweimer wrote:
>
>> On 2013-01-26 16:40, Shane Ambler wrote:
>>> On 27/01/2013 08:15, dweimer wrote:
>>>
>>>> I would like to lock down the USB serial port adapter used on the 
>>>> UPS to
>>>> /dev/cuaU0, to make sure the UPS is always monitored and I will 
>>>> get a
>>>> clean shutdown in event of a power failure.
>>>> I believe that this requires setting a hint line of some sort in 
>>>> the
>>>> /boot/loader.conf file, but I am having trouble tracking down what 
>>>> this
>>>> should be, or maybe I am on the wrong track.  Here is the current
>>>> information from the adpapters, the UPS adapter was connected at 
>>>> boot,
>>>> is on /dev/cuaU0, the other one was plugged in after boot, and is 
>>>> on
>>>> /dev/cuaU1.
>>> start with man devd.conf
>>> You can add your own devd files in /usr/local/etc/devd/
>>> Something along the lines of -
>>> attach 200 {
>>> device-name "cuaU[0-9]+";
>>> match "vendor" "0x067b";
>>> match "product" "0x2303";
>>> action "sleep 2; cd /dev; ln -s ${device-name} upsmonitor";
>>> };
>>> use usbconfig to get info. I am thinking with the similarity of the 
>>> two
>>> you may need to rely on bus and hubaddr or devaddr to keep each 
>>> device
>>> identified by usb port location.
>>
>> OK, so I was looking in the wrong direction, which might explain why 
>> my searching wasn't finding anything.
>>
>> However I might still be out of luck, after doing some checking, and 
>> a reboot the only difference I can find is below.
>>
>> dev.uplcom.0.%location: bus=1 hubaddr=1 port=0 devaddr=2 interface=0
>> dev.uplcom.1.%location: bus=1 hubaddr=3 port=0 devaddr=3 interface=0
>
> usbconfig may be able to get the device serial number, although they
> may not be unique.  Jamming useful scripts inside an action can be
> complicated. It may be easier to just trigger an external script.

That's just it, can't get usbconfig to give me anything different 
between the two, they don't appear to have a serial number set on them.

# usbconfig -d ugen0.2 dump_device_desc
ugen0.2: <USB-Serial Controller Prolific Technology Inc.> at usbus0, 
cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

   bLength = 0x0012
   bDescriptorType = 0x0001
   bcdUSB = 0x0110
   bDeviceClass = 0x0000
   bDeviceSubClass = 0x0000
   bDeviceProtocol = 0x0000
   bMaxPacketSize0 = 0x0040
   idVendor = 0x067b
   idProduct = 0x2303
   bcdDevice = 0x0300
   iManufacturer = 0x0001  <Prolific Technology Inc.>
   iProduct = 0x0002  <USB-Serial Controller>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001

# usbconfig -d ugen0.3 dump_device_desc
ugen0.3: <USB-Serial Controller Prolific Technology Inc.> at usbus0, 
cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON

   bLength = 0x0012
   bDescriptorType = 0x0001
   bcdUSB = 0x0110
   bDeviceClass = 0x0000
   bDeviceSubClass = 0x0000
   bDeviceProtocol = 0x0000
   bMaxPacketSize0 = 0x0040
   idVendor = 0x067b
   idProduct = 0x2303
   bcdDevice = 0x0300
   iManufacturer = 0x0001  <Prolific Technology Inc.>
   iProduct = 0x0002  <USB-Serial Controller>
   iSerialNumber = 0x0000  <no string>
   bNumConfigurations = 0x0001


-- 
Thanks,
    Dean E. Weimer
    http://www.dweimer.net/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?92bd9c547b6d1b36daa9da4030ad2172>