Date: Thu, 3 Oct 2019 12:40:47 +0200 From: Hans Petter Selasky <hps@selasky.org> To: "O'Connor, Daniel" <darius@dons.net.au> Cc: Oleksandr Rybalko <ray@ddteam.net>, freebsd-usb@freebsd.org Subject: Re: USB serial ports by serial number Message-ID: <7f1aac2b-8184-e404-014b-543505e4ffab@selasky.org> In-Reply-To: <E84C0C56-0FE1-44C7-855C-ACC374148701@dons.net.au> References: <CC980A9B-8F41-4C2A-A729-2CC690DFDA7E@dons.net.au> <CAJ1Oi8HeyBvn4UYSDAh8gGxj0hPv-vgFZ9ArNX95CTniuQa80g@mail.gmail.com> <40CAFE90-B8F6-4A9B-A6D0-671D2DCEED52@dons.net.au> <1f0a3207-89fd-0ddb-6049-91f114381386@selasky.org> <366762AE-757E-4EB4-9A51-8B513FE7BC42@dons.net.au> <138601da-b6f9-f791-c6ef-ce54a4ae60e6@selasky.org> <E84C0C56-0FE1-44C7-855C-ACC374148701@dons.net.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2019-10-03 10:13, O'Connor, Daniel wrote: > > >> On 3 Oct 2019, at 17:41, Hans Petter Selasky <hps@selasky.org> wrote: >> >> On 2019-10-03 09:37, O'Connor, Daniel wrote: >>>> On 3 Oct 2019, at 17:01, Hans Petter Selasky <hps@selasky.org> wrote: >>>> On 2019-10-03 08:56, O'Connor, Daniel wrote: >>>>> Most of USB-serial devices have "very stable" serial number:) >>>>> more than 50% have S/N "0123456789". >>>> >>>> It is also allowed to have no serial number. >>> Yes, that's why I match sernum to '.+' to skip those. >>>> Maybe some kind of "lstty" would do. >>>> >>>> -l - list all devices >>>> -s - match by serial >>>> -v - match by vendor >>>> -p - match by product >>>> -i - match by interface ID >>>> -t - type [USB/PCI] >>>> >>>> which simply output the tty number you need. Could be an API we could add to libusb. >>> The problem is you can't modify some program to call a new API a lot of the time but it is usually trivial to change which serial port it's configured to use. >> >> You don't need to change any program: >> >> cu /dev/cuaU`lstty -s SERIAL` > > That doesn't work in a lot of cases, eg serial port is in some other configuration file. > > Even in rc.conf it would be tricky since that file is read so often. > How about that we build the cuaX unit number by the location, and have a sysctl for that? unit = 0; while (hubdepth--) { unit *= numports; unit += portno - 1; } unit *= maxifaces; unit += device_get_unit(x); Typically this should fit into a 32-bit integer, but we could also use a 64-bit integer. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?7f1aac2b-8184-e404-014b-543505e4ffab>