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è)備文件方便得多。
接下來(lái)我們以啟揚(yáng)IAC-IMX8MP-Kit開(kāi)發(fā)板中的udev為例,對(duì)其進(jìn)行簡(jiǎ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í)越高。
這里我們打開(kāi)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)來(lái),就執(zhí)行/etc/udev/scripts/mount.sh這個(gè)腳本,塊兒設(shè)備的卸載包括變更也都是執(zhí)行這個(gè)腳本。
接下來(lái)我們?cè)倏催@個(gè)腳本的內(nèi)容,如下圖
腳本的內(nèi)容有點(diǎn)兒長(zhǎng),大致的內(nèi)容就是通過(guò)判斷插入塊兒設(shè)備的文件系統(tǒng)類(lèi)型進(jìn)行不同的操作,一般都是將其掛載到某一個(gè)指定的目錄下。
這里我們將U盤(pán)插入,看看udev規(guī)則下它會(huì)掛載到哪里。
插入U(xiǎn)盤(pán)顯示如下圖:
識(shí)別到U盤(pán),并且根據(jù)上面腳本的規(guī)則,將其掛載到/run/media/sda1下面,如圖所示,表明規(guī)則執(zhí)行成功。
通過(guò)上面的操作,可以看出我們能夠根據(jù)udev規(guī)則做一些設(shè)備的固定匹配工作,這會(huì)為一些需要根據(jù)硬件動(dòng)作做出相應(yīng)腳本執(zhí)行的工作帶來(lái)的極大的方便。
END
-
Linux
+關(guān)注
關(guān)注
87文章
11326瀏覽量
209961
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
干貨來(lái)嘍!實(shí)用樹(shù)莓派Linux編譯指南
![干貨來(lái)嘍!實(shí)用樹(shù)莓派<b class='flag-5'>Linux</b>編譯指南](https://file1.elecfans.com/web3/M00/02/EF/wKgZO2dihiSASOeOAAMMNtBFK7E647.png)
RZ T2H PCIe裸機(jī)程序開(kāi)發(fā)和Linux下的配置介紹
![RZ T2H PCIe裸機(jī)程序開(kāi)發(fā)和<b class='flag-5'>Linux</b><b class='flag-5'>下</b>的配置介紹](https://file1.elecfans.com/web3/M00/02/CE/wKgZPGdiPoyAN5oZAAA0knyRCvs055.png)
Linux下如何管理虛擬內(nèi)存 使用虛擬內(nèi)存時(shí)的常見(jiàn)問(wèn)題
Linux應(yīng)用編程的基本概念
詳解linux內(nèi)核的uevent機(jī)制
linux系統(tǒng)已安裝esp-idf,無(wú)法安裝vscode插件要怎么處理?
使用esp32-s3的USB Serial/JTAG口連接linux時(shí),找不到設(shè)備是怎么回事?
虹科干貨 |?多設(shè)備協(xié)同無(wú)憂:Linux環(huán)境下PCAN固定設(shè)備ID/通道分配指南
![虹科干貨 |?多設(shè)備協(xié)同無(wú)憂:<b class='flag-5'>Linux</b>環(huán)境<b class='flag-5'>下</b>PCAN固定設(shè)備ID/通道分配指南](https://file1.elecfans.com/web2/M00/ED/91/wKgaomZn9jyADoptAANnpbY9Xvo928.png)
請(qǐng)問(wèn)ESP Wroom 32板如何在LInux下使用?
Linux環(huán)境下能使用PSoC Creator 4.3嗎?
如何使用linux下gdb來(lái)調(diào)試python程序
求助,請(qǐng)問(wèn)Linux下如何監(jiān)控USB數(shù)據(jù)呢?
Linux下常見(jiàn)的十幾款CPU監(jiān)控工具
![<b class='flag-5'>Linux</b><b class='flag-5'>下</b>常見(jiàn)的十幾款CPU監(jiān)控工具](https://file1.elecfans.com/web2/M00/BD/AE/wKgZomWtwvOALjpqAAAViEhd6YY602.jpg)
評(píng)論