udev
udev是一個(gè)設(shè)備管理工具,并以守護(hù)進(jìn)程的方式運(yùn)行,它能夠根據(jù)內(nèi)核的uevent管理/dev/下面的設(shè)備文件。因?yàn)楣ぷ髟谟脩魧拥木壒剩阅軌蚝芎玫亟邮諆?nèi)核層的消息動(dòng)態(tài)和管理設(shè)備文件,比單一的在內(nèi)核層靜態(tài)注冊(cè)設(shè)備文件方便得多。
接下來我們以啟揚(yáng)IAC-IMX8MP-Kit開發(fā)板中的udev為例,對(duì)其進(jìn)行簡單的了解。
udev一般會(huì)有一個(gè)配置文件—— udev.conf,如下圖所示:
其中,udev_log表示日志等級(jí),顯示可能為err(3),info(6),debug(7);
children_max表示允許同時(shí)執(zhí)行的最大設(shè)備數(shù)量;
exec_delay表示延遲多少秒之后再執(zhí)行RUN指令;
event_timeout表示等待設(shè)備事件完成的超時(shí)秒數(shù),超時(shí)后,設(shè)備事件將會(huì)被終止,默認(rèn)為180s;
timeout_signal表示超時(shí)發(fā)出的信號(hào);
resolve_names設(shè)置systemd-udevd 在何時(shí)解析用戶與組的名稱。此時(shí)顯示默認(rèn)值 early 表示在規(guī)則的解析階段;顯示late時(shí)表示在每個(gè)設(shè)備事件發(fā)生的時(shí)候;顯示never時(shí)表示不解析(所有設(shè)備都?xì)w root 用戶擁有)。
udev主要根據(jù)/etc/udev/rules.d/下面的匹配規(guī)則進(jìn)行指定動(dòng)作,如下圖所示:
前面的數(shù)字代表著優(yōu)先級(jí),數(shù)字越低表示優(yōu)先級(jí)越高。
這里我們打開automount規(guī)則文件,顯示如下圖
其中,SUBSYSTEM如字面意思,是子系統(tǒng)的名稱,這里是塊兒設(shè)備所以是block;
ACTION表示事件的行為,add是添加,remove是移除,change是改變;
ENV{key}是環(huán)境變量,在一條規(guī)則中,最多設(shè)置五條環(huán)境變量的匹配鍵;
RUN就是所執(zhí)行的內(nèi)容,一般以腳本為主;
而這里整體的意思就是,當(dāng)有一個(gè)塊兒設(shè)備添加進(jìn)來,就執(zhí)行/etc/udev/scripts/mount.sh這個(gè)腳本,塊兒設(shè)備的卸載包括變更也都是執(zhí)行這個(gè)腳本。
接下來我們?cè)倏催@個(gè)腳本的內(nèi)容,如下圖
腳本的內(nèi)容有點(diǎn)兒長,大致的內(nèi)容就是通過判斷插入塊兒設(shè)備的文件系統(tǒng)類型進(jìn)行不同的操作,一般都是將其掛載到某一個(gè)指定的目錄下。
這里我們將U盤插入,看看udev規(guī)則下它會(huì)掛載到哪里。
插入U(xiǎn)盤顯示如下圖:
識(shí)別到U盤,并且根據(jù)上面腳本的規(guī)則,將其掛載到/run/media/sda1下面,如圖所示,表明規(guī)則執(zhí)行成功。
通過上面的操作,可以看出我們能夠根據(jù)udev規(guī)則做一些設(shè)備的固定匹配工作,這會(huì)為一些需要根據(jù)硬件動(dòng)作做出相應(yīng)腳本執(zhí)行的工作帶來的極大的方便。
END
-
Linux
+關(guān)注
關(guān)注
87文章
11212瀏覽量
208723
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論