44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | #! /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 |