> On 3 Oct 2019, at 16:12, Oleksandr Rybalko <r...@ddteam.net> wrote:
> Looks like you are lucky guy :)
> Most of USB-serial devices have "very stable" serial number :)
> more than 50% have S/N "0123456789".

These are either FTDI (or possibly clones..) or a Micropython board so I guess 
avoiding CH341s is paying off :)

> So, sometime you change will do it's job.

Yes, it should be possible but of course not if the manufacturer has really 
cheaped out :(

> IMO, better to track hub/port.

No reason you couldn't do that (either instead or as well) with some very basic 
script modifications.

Perhaps I should have made /dev/usbserialbysn and put symlinks in that.

> Thanks.
> 
> 
> чт, 3 жовт. 2019 о 05:56 O'Connor, Daniel <dar...@dons.net.au> пише:
> Hi,
> I have several USB serial ports on a machine and I don't want to rely on 
> attach order to get various programs to talk to the correct serial port.
> 
> I wrote the following devd script and shell script to create symlinks from 
> cu.${sernum}/tty.${sernum} to the real device nodes.
> 
> I post it here in the hope other people find it useful.
> 
> [maarsytest 2:49] ~> cat /usr/local/etc/devd/usbserialsn.conf
> attach 100 {
>         device-name             ".*";
>         match "ttyname"         ".+";
>         match "ugen"            ".+";
>         match "sernum"          ".+";
>         action "/usr/local/libexec/usbserialsn attach $device-name $sernum 
> $ttyname";
> };
> 
> detach 100 {
>         device-name             ".*";
>         action "/usr/local/libexec/usbserialsn detach $device-name";
> };
> [maarsytest 2:49] ~> cat /usr/local/libexec/usbserialsn
> #!/bin/sh
> 
> if [ $# -lt 2 ]; then
>   echo "Bad usage"
>   exit 1
> fi
> 
> mode=$1
> devname=$2
> sernum=$3
> ttyname=$4
> 
> case "$mode" in
>   attach)
>     if [ $# -ne 4 ]; then
>       echo "Bad usage"
>       exit 1
>     fi
>     ln -sf cua${ttyname} /dev/cu.${sernum}
>     ln -sf tty${ttyname} /dev/tty.${sernum}
>     echo ${sernum} >/var/run/usbserialsn.${devname}
>     ;;
> 
>   detach)
>     if [ $# -ne 2 ]; then
>       echo "Bad usage"
>       exit 1
>     fi
>     if [ ! -e /var/run/usbserialsn.${devname} ]; then
>       exit 0
>     fi
>     sernum=$(cat /var/run/usbserialsn.${devname})
>     rm -f /dev/cu.${sernum} /dev/tty.${sernum} /var/run/usbserialsn.${devname}
>     ;;
> 
>   *)
>     echo "Unknown mode"
>     exit 1
>     ;;
> esac
> 
> It would be a lot simpler if devd reported the same things on detach as it 
> does on attach but I am not sure how difficult that would be to achieve 
> (presumably it would require caching them).
> 
> --
> Daniel O'Connor
> "The nice thing about standards is that there
> are so many of them to choose from."
>  -- Andrew Tanenbaum
> 
> 
> _______________________________________________
> freebsd-usb@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-usb
> To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"
> 
> 
> -- 
> WBW
> -------
> Rybalko Aleksandr <r...@ddteam.net>
> 

--
Daniel O'Connor
"The nice thing about standards is that there
are so many of them to choose from."
 -- Andrew Tanenbaum


_______________________________________________
freebsd-usb@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "freebsd-usb-unsubscr...@freebsd.org"

Reply via email to