umass to /dev/da* mapping

Mike Clarke jmc-freebsd2 at
Wed Dec 7 12:51:52 UTC 2011

On Wednesday 07 December 2011, Zane C. B-H. wrote:

> Why are you using a custom Perl script for this instead of the built
> in tools for this?
> Below is how I have it setup on my system...
> In /etc/devfs.rules...
> [localrules=10]
> add path 'da*s*' mode 0660 group 5001

Because devfs only relates to boot time and I want to deal with usb 
sticks inserted while the system is running. The allocation of device 
numbers is dynamic and depends on what other umass devices are already 
connected. Normally my internal memory card reader is allocated da[0-3] 
at boot time and the memory stick will appear as da4 when subsequently 
inserted but if it's already plugged in when the system boots then it 
appears as da0 and the card reader is da[1-4]. If I insert an extra 
memory stick it will be allocated the next available device number. I 
don't want the user to have to hunt around to determine which device to 
mount so my script takes the umass device number supplied by devd and 
determines the relevant da* device then it sets the permission to 660 
for that device and creates a link, /dev/usbstick, pointing to it. All 
the user then has to do is mount /dev/usbstick on his mount point.

Following the earlier tip from Polytropon I now have a working script 
which does exactly what I need.

Mike Clarke

More information about the freebsd-questions mailing list