You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							31 lines
						
					
					
						
							805 B
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							31 lines
						
					
					
						
							805 B
						
					
					
				| #!/bin/false | |
| 
 | |
| for path in $(find /sys/devices -name "$MDEV" 2>/dev/null); do | |
| 	DEVPATH=${path#/sys} | |
| done | |
| 
 | |
| MODALIAS=$(cat /sys${DEVPATH}/modalias 2>/dev/null) | |
| 
 | |
| parse_interface () { | |
| 	printf '%d/%d/%d' $(sed 's/.*dp[0-F]\{2\}//;s/[iscp]\+/ 0x/g') | |
| } | |
| parse_type () { | |
| 	printf '%d/%d/%d' $(sed 's/.*d[0-9]\{4\}//;s/ic.*//;s/[dscp]\+/ 0x/g') | |
| } | |
| parse_product () { | |
| 	sed 's!^usb:\(.*\)dc.*!\1!;s![vpd]!/!g;s!/0\{1,3\}!/!g;s!^/!!;y!ABCDEF!abcdef!' | |
| } | |
| 
 | |
| TYPE=$(echo $MODALIAS | parse_type) | |
| PRODUCT=$(echo $MODALIAS | parse_product) | |
| INTERFACE=$(echo $MODALIAS | parse_interface) | |
| 
 | |
| for var in DEVPATH MODALIAS TYPE PRODUCT INTERFACE; do | |
| 	if [ -z "$(eval "echo \$${var}")" ]; then | |
| 		LOGERROR "Could not set uevent environment variable $var" | |
| 		exit 1 | |
| 	fi | |
| done | |
| 
 | |
| unset path var | |
| unset -f parse_type parse_interface parse_product
 | |
| 
 |