看板 FreeBSD 關於我們 聯絡資訊
※ 引述《[email protected] (淡)》之銘言: : ※ 引述《[email protected] (我愛 TX)》之銘言: : > 每次插上 USB 隨身碟都要自已下指令才行 : > 是不是可以藉由 script 的方式自動偵測,然後自動mount...?? : 應該是要找 usbd 之類的 daemon 下手 : 試試看把下列加到 /etc/rc.conf : usbd_enable="YES" : 然後參考 usbd.conf(5) : 再依據你的 USB 隨身碟相關資訊(如 device id/name) 來修改 /etc/usbd.conf : 最後,打 /etc/rc.d/usbd start 應該就可以了 : == : 以上是不負責任發言 最近想了一下這個問題,我想用 devd 來作業 我寫了一個簡單的 shell script: automount: ############################################### #!/bin/sh VENDOR=`devinfo -v | grep umass0 | awk -F' ' '{print $3}' | sed -e 's/vendor=//g'` PRIORITY=20 MOUNT_POINT=/media/flashdisk DEVD_CONF=/etc/devd.conf DEV_NODE=/dev/da0s1 # check the existence of mount point if [ -d $MOUNT_POINT ] ; then echo ""; # do nothing else mkdir -p $MOUNT_POINT fi # before modifying the /etc/devd.conf, backup original first! cp $DEVD_CONF $DEVD_CONF.bak cat >> $DEVD_CONF << _EOF attach $PRIORITY { device-name "umass0"; match "vendor" "$VENDOR"; action "sleep 2 ; \\ sh /etc/rc.d/devfs restart ; \\ /sbin/mount_msdosfs -L zh_TW.Big5 -D cp950 $DEV_NODE $MOUNT_POINT" ; }; _EOF # after add devd rules, mount it! /sbin/mount_msdosfs -L zh_TW.Big5 -D cp950 $DEV_NODE $MOUNT_POINT # NOTE: before you mount msdosfs filesystem, you must make sure # you have options MSDOSFS and MSDOSFS_ICONV in your kernel config, # otherwise you have to load kernel module as following: # kldload msdosfs # kldload msdosfs_iconv # restart devd /etc/rc.d/devd restart ################ <END OF AUTOMOUNT> ################################## 本來我是想把它加入 /etc/devd.conf 寫成 attach $PRIORITY { device-name "umass0" ; action "$PATH/TO/automount"; } 但是 priority 我不知道怎麼下比較好,因為 man devd.conf 裡頭有說 如果同樣的情形下, devd 會先去執行數字比較大的 所以我就用以下的方法解決 1. 第一次使用(插入這台電腦)的隨身碟,先下 automount 指令,讓 automount 把設定寫入 /etc/devd.conf,並且自動 mount 上去 2. 之後只要這支隨身碟插上去,就可以自動掛載 BUG: 1. 如果隨身碟的 device node 不是 /dev/da0s1 ,我沒有加入自動判斷的部份 這點就要自行修改 2. 同時很多隨身碟插入,可能只有一隻會正常 mount <-- 這個我就不知道怎麼解決 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.82.16