<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 12pt; color: #000000"><div><br></div><div><br></div><hr id="zwchr" data-marker="__DIVIDER__"><div data-marker="__HEADERS__"><blockquote style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;" data-mce-style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;"><b>From: </b>"Alex Carver" &lt;agcarver+ale@acarver.net&gt;<br><b>To: </b>ale@ale.org<br><b>Sent: </b>Thursday, November 19, 2015 12:42:17 PM<br><b>Subject: </b>Re: [ale] USB port identification<br></blockquote></div><div data-marker="__QUOTED_TEXT__"><blockquote style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;" data-mce-style="border-left: 2px solid #1010FF; margin-left: 5px; padding-left: 5px; color: #000; font-weight: normal; font-style: normal; text-decoration: none; font-family: Helvetica,Arial,sans-serif; font-size: 12pt;">On 2015-11-19 09:23, Chris Fowler wrote:<br>&gt;&gt; From: "Alex Carver" &lt;agcarver+ale@acarver.net&gt;<br>&gt;&gt; To: ale@ale.org<br>&gt;&gt; Sent: Thursday, November 19, 2015 11:51:03 AM<br>&gt;&gt; Subject: Re: [ale] USB port identification<br>&gt; <br>&gt;&gt; /devices/pci0000:00/0000:00:1d.7/usb1/1-4/1-4.5<br>&gt; <br>&gt;&gt; Which would be port five on a hub attached to bus 1, port 4.<br>&gt; <br>&gt; It seems we have a winner. That path never changed. The device # did. At this point I can not remember if I used that in my original script or if I used the device # as shown in lsusb. I'll look into that. I'm pretty sure I can tell udev to send me the above path. I can then grok the values out as required and refer to a table of assignments. <br>&gt; <br>&gt; If vendorId = X and productID = Y and USB Port = Z <br>&gt; then ln -sf real kernel device /dev/us2 <br><br>You only need to feed the last part of the path to udev.:<br><br>KERNELS=="1-1.4.2",NAME="namehere"<br><br>For example, I have two serial adapters on one machine. &nbsp;They sometimes<br>get out of order on boot without udev rules so I have these rules:<br><br>ACTION=="add",KERNEL=="ttyUSB*",SUBSYSTEMS=="usb",KERNELS=="1-1.3.1.4:1.0",SYMLINK+="dymo"<br>ACTION=="add",KERNEL=="ttyUSB*",SUBSYSTEMS=="usb",KERNELS=="1-1.3.1.3:1.0",SYMLINK+="supra"<br><br><br>This ensures the symlinks follow the appropriate physical device (a<br>modem and a printer) no matter how they decide to get loaded. &nbsp;In this<br>case the dymo printer is located at Bus 1, Root 1, Hub Port 3, Hub Port<br>1, Hub Port 4 (it's a raspberry pi with several on-board hub chips)<br><br>The :1.0 is configuration 1, interface 0 (some devices can have more<br>than one for things like full speed versus high speed).<br>_</blockquote><div><br></div><div>The udev doc is so much more confusing then just writing a program to do what I need to do when certain supported devices are plugged in. &nbsp;My device simply calls specific scripts for types of dongles or specific wireless chip</div><div>sets and then that program sets everything up.</div><div><br data-mce-bogus="1"></div><div>If you plug in a USB-&gt;Ser dongle and there is no config that uses than it starts a getty at 9600,n,8,1 on it. &nbsp;A tech could use this and a null-modem back to their Windows laptop to get command line and then configure the device.</div><div><br data-mce-bogus="1"></div><br></div></div></body></html>