From eee2296f595537c3026ea393f28d6bfc0947b128 Mon Sep 17 00:00:00 2001 From: Ricardo Martins Date: Fri, 12 Dec 2014 16:13:58 +0000 Subject: [PATCH] filesystem: added script to create unique ttyUSB devices. --- rules/filesystem/fs/sbin/mdev-ttyusb | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100755 rules/filesystem/fs/sbin/mdev-ttyusb diff --git a/rules/filesystem/fs/sbin/mdev-ttyusb b/rules/filesystem/fs/sbin/mdev-ttyusb new file mode 100755 index 0000000..a800dd9 --- /dev/null +++ b/rules/filesystem/fs/sbin/mdev-ttyusb @@ -0,0 +1,43 @@ +#! /bin/sh + +[ "$SUBSYSTEM" -ne "tty" ] && exit 0 +if [ -z "$MAJOR" ] || [ -z "$MINOR" ]; then + exit 0 +fi + +MAJOR_HEX=$(echo $(printf %2x "$MAJOR")) +MINOR_HEX=$(echo $(printf %2x "$MINOR")) + +# env | while read line; do +# logger -t "$0" "$line" +# done + +case "$ACTION" in + add) + dev_root="/sys/$DEVPATH/../../../../" + itf_root="/sys/$DEVPATH/../../../" + vid="$(cat $dev_root/idVendor 2> /dev/null)" + pid="$(cat $dev_root/idProduct 2> /dev/null)" + serial="$(cat $dev_root/serial 2> /dev/null)" + [ -z "$serial" ] && serial='0' + itf="$(cat $itf_root/bInterfaceNumber 2> /dev/null)" + dev_name="${vid}_${pid}_${serial}_${itf}" + dev_file="/dev/uart/$dev_name" + logger -t "$0" "creating device: $dev_file" + mknod "$dev_file" c "$MAJOR" "$MINOR" + ;; + + remove) + removed_major_minor="$MAJOR_HEX:$MINOR_HEX" + + for f in /dev/uart/*; do + file_major_minor="$(stat -c %t:%T "$f")" + #logger -t "$0" "$f | $removed_major_minor | $file_major_minor" + + if [ "$file_major_minor" = "$removed_major_minor" ]; then + logger -t "$0" "removing device: $f" + rm -f "$f" + fi + done + ;; +esac