devd automatic conversion of umass[0-9] to da[0-9]

Julian Stacey jhs at berklix.org
Wed May 6 16:07:45 UTC 2009


Hi folks,
Config below works for a number of memory sticks simultaneously;
But if one already has a dvd burner plugged in, 
then it fails as devd sees (in case of a first memory stick) a new umass1. 
Although /dev/da0* get created, devd tries to access non existant da1*.  
Any ideas how to improve this ? ( Using 7.1-RELEASE )
--------------


attach 1000 {	#	"JHS: Brown"
	device-name		"umass[0-9]+" ;
	match	"vendor"	"0x0000" ;	# Manufacturer didnt register ?
	match	"product"	"0x7777" ;
	match	"devclass"	"0x00" ;
	match	"devsubclass"	"0x00" ;
	match	"release"	"0x0101" ;
	match	"intclass"	"0x08" ;
	match	"intsubclass"	"0x06" ;
	action	"touch /tmp/devd-debug/usb_brown"	;
	action	"sleep 4; \
	 rm -f /devusb/brown /devusb/brown.ufs /devusb/brown.bde ; \
	 ln -s /dev/`echo $device-name|sed -e s/umass/da/`	\
		/devusb/brown ; \
	 ln -s /dev/`echo $device-name|sed -e s/umass/da/`d	\
		/devusb/brown.ufs ; \
	 ln -s /dev/`echo $device-name|sed -e s/umass/da/`d.bde \
		/devusb/brown.bde ; \
	 gbde attach /dev/da`echo $device-name|sed -e s/umass//`d \
		-p `cat /home/pass/.words/gbde/mine`; \
	 fsck -y -t ufs /devusb/brown.bde ; \
	 mount -t ufs -o noatime /devusb/brown.bde /usb/brown.ufs" ;
	};
detach 1000 {	#	"JHS: Brown"
	# device-name		"umass[0-9]+" ;
	match	"vendor"	"0x0000" ;
	match	"product"	"0x7777" ;
	match	"devclass"	"0x00" ;
	match	"devsubclass"	"0x00" ;
	match	"release"	"0x0101" ;
	match	"intclass"	"0x08" ;
	match	"intsubclass"	"0x06" ;
	# match	"sernum"	"B55E32FD" ; # not on detach.
	action	"gbde detach /dev/`echo $device-name|sed -e s/umass/da/`d; \
	 rm -f /devusb/brown /devusb/brown.ufs /devusb/brown.bde" ;
	# Assume you have manually unmounted before detach.
	};

Cheers,
Julian
--
Julian Stacey: BSDUnixLinux C Prog Admin SysEng Consult Munich www.berklix.com
  Mail plain ASCII text.  HTML & Base64 text are spam. www.asciiribbon.org


More information about the freebsd-usb mailing list