用mdev使U盤中的指令碼自動執行

2021-07-07 07:49:37 字數 993 閱讀 2832

這並不是什麼先進技術,mdev、udev是linux已經使用多年的熱插拔通知方案,但我想說的是,作為乙個初學者,想實現自己的想法並不是那麼容易。其實我寫指令碼已不是一次兩次了,但每次寫指令碼都要費很長時間,總結原因有幾點:

1、指令碼不像編譯語言,沒有編譯器幫你在執行前發現語法層的錯誤,只能執行時發現。

2、指令碼除錯不方便,基本只能靠echo列印得知變數的值或者程式執行到哪,雖然有可以在開頭加-xv自動列印每一步的情況,但指令碼一大或者變數複雜的話,列印的資訊太多,也不好定位。關鍵是有些情況系就是列印不出資訊,這就真沒轍了。

3、背景知識需要太多,而且沒有像ansi c庫函式一樣的全面介紹命令的書(至少我還沒找到),加上有很多命令用法複雜,引數變化多樣,命令命名不規範,不好猜,使得初學者處處碰壁,雖然man可以告訴我們很多資訊,但是必須是知道有這個命令的前提下,如果壓根就不知道有這個命令,man實在沒什麼用。尤其是該死的正規表示式,規則複雜還經常用,簡直是初學者的天敵。還有那/proc裡的東西,我就想知道那本書裡將它?!

4、訊息封鎖。google上不去,要麼翻牆,還沒有穩定、免費的翻牆法,baidu又不爭氣,找到的文章基本千篇一律。zf遮蔽google簡直就是阻礙科學發展!

我就為實現乙個像windows中的autorun一樣的功能,花了3天的時間,於是決心寫此文記錄。

mdev我就不多介紹了,網上有的是。讓它執行乙個指令碼的方法也很簡單,傳統的做法是在/etc/mdev.conf中新增如下語句:

sd[a-z][0-9]0:6 0660*/etc/automount.sh

這裡的*可以換成@,表示只有插上u盤時執行/etc/automount.sh,當然,這樣就需要配合$,表示解除安裝u盤時執行什麼指令碼。這都不重要,關鍵是/etc/automount.sh的寫法。

剩下的事你也應該知道了,在u盤裡放乙個myscript檔案,裡面寫著你要執行的指令碼,注意新增可執行許可權。當你插上u盤時就會自動執行你的指令碼了。

這裡還有一些不足,就是拔出u盤時總是umount失敗,但我始終找不到原因,還請過路的大神指教,在此先謝過。

嵌入式Linux用mdev實現U盤自動掛載

原帖 在arm嵌入式linux下,要讓u盤自動掛載,可以用到mdev方式實現 mdev是busybox中的乙個udev管理程式的乙個精簡版,它可以實現裝置節點的自動建立和裝置的自動掛載 下面是實現的步驟 1 確認busybox做的根檔案系統如下選項有選中 linuxsystem utilities ...

mdev實現U盤或SD卡的自動掛載

mdev是busybox中的乙個udev管理程式的乙個精簡版,他也可以實現裝置節點的自動建立和裝置的自動掛載,只 是在實現的過程中有點差異,在發生熱插拔時間的時候,mdev是被hotplug直接呼叫,這時mdev通過環境變數中的 action 和 devpath,來確定此次熱插拔事件的動作以及影響了...

mdev實現U盤或SD卡的自動掛載

曹忠明,華清遠見嵌入式學院 講師。前面我們說了udev實現u盤或sd卡的自動掛載,在這裡我們再說一下怎樣用mdev實現這個功能。mdev是busybox中的乙個udev管理程式的乙個精簡版,他也可以實現裝置節點的自動建立和裝置的自動掛載,只是在實現的過程中有點差異,在發生熱插拔時間的時候,mdev是...