Date: Sun, 27 Jan 2013 08:48:52 -0600 From: dweimer <dweimer@dweimer.net> To: Shane Ambler <FreeBSD@shaneware.biz> Cc: FreeBSD Questions <freebsd-questions@freebsd.org> Subject: Re: Locking USB Serial Device to Specific Com port Message-ID: <0fd00d9caad3787f4cd0e443e5931340@dweimer.net> In-Reply-To: <51045B48.40202@ShaneWare.Biz> References: <762f51b7c30dd5c920788336b3eb4fa5@dweimer.net> <51045B48.40202@ShaneWare.Biz>
next in thread | previous in thread | raw e-mail | index | archive | help
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 The devices have switch at this point, all info from usbconfig, dmesg, looks identical, these two lines from the sysctl -a | grep "uplcom" output is all that changed, the hubaddr=1 and hubaddr=3 have switched, however the man devd.conf has a variable list, to use, and doesn't seem to have an option to match agains that hubaddr variable. Variable Description bus Device name of parent bus. cdev Device node path if one is created by the devfs(5) filesys- tem. cisproduct CIS-product. cisvendor CIS-vendor. class Device class. device Device ID. devclass Device Class (USB) devsubclass Device Sub-class (USB) device-name Name of attached/detached device. endpoints Endpoint count (USB) function Card functions. interface Interface ID (USB) intclass Interface Class (USB) intprotocol Interface Protocol (USB) intsubclass Interface Sub-class (USB) manufacturer Manufacturer ID (pccard). mode Peripheral mode (USB) notify Match the value of the ``notify'' variable. parent Parent device port Hub port number (USB) product Product ID (pccard/USB). release Hardware revision (USB) sernum Serial Number (USB). slot Card slot. subvendor Sub-vendor ID. subdevice Sub-device ID. subsystem Matches a subsystem of a system, see below. system Matches a system type, see below. type Type of notification, see below. vendor Vendor ID. But the action line above does give me an idea though, I should be able to write a script to run at startup to find the line, and create the link to the device. The only one I care about is the UPS monitor, as the other is only occasionally used, and I can easily check which com port its on before connecting to it. -- 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?0fd00d9caad3787f4cd0e443e5931340>