精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux下udev應用

啟揚ARM嵌入式開發 ? 2022-08-28 15:47 ? 次閱讀

udev

udev是一個設備管理工具,并以守護進程的方式運行,它能夠根據內核的uevent管理/dev/下面的設備文件。因為工作在用戶層的緣故,所以能夠很好地接收內核層的消息動態和管理設備文件,比單一的在內核層靜態注冊設備文件方便得多。

接下來我們以啟揚IAC-IMX8MP-Kit開發板中的udev為例,對其進行簡單的了解。

udev一般會有一個配置文件—— udev.conf,如下圖所示:

032e5354-2559-11ed-9ade-dac502259ad0.png

其中,udev_log表示日志等級,顯示可能為err(3),info(6),debug(7);

children_max表示允許同時執行的最大設備數量;

exec_delay表示延遲多少秒之后再執行RUN指令;

event_timeout表示等待設備事件完成的超時秒數,超時后,設備事件將會被終止,默認為180s;

timeout_signal表示超時發出的信號

resolve_names設置systemd-udevd 在何時解析用戶與組的名稱。此時顯示默認值 early 表示在規則的解析階段;顯示late時表示在每個設備事件發生的時候;顯示never時表示不解析(所有設備都歸 root 用戶擁有)。

udev主要根據/etc/udev/rules.d/下面的匹配規則進行指定動作,如下圖所示:

034d1f6e-2559-11ed-9ade-dac502259ad0.png

前面的數字代表著優先級,數字越低表示優先級越高。

這里我們打開automount規則文件,顯示如下圖

03684b7c-2559-11ed-9ade-dac502259ad0.png

其中,SUBSYSTEM如字面意思,是子系統的名稱,這里是塊兒設備所以是block;

ACTION表示事件的行為,add是添加,remove是移除,change是改變;

ENV{key}是環境變量,在一條規則中,最多設置五條環境變量的匹配鍵;

RUN就是所執行的內容,一般以腳本為主;

而這里整體的意思就是,當有一個塊兒設備添加進來,就執行/etc/udev/scripts/mount.sh這個腳本,塊兒設備的卸載包括變更也都是執行這個腳本。

接下來我們再看這個腳本的內容,如下圖

038ff0dc-2559-11ed-9ade-dac502259ad0.png

腳本的內容有點兒長,大致的內容就是通過判斷插入塊兒設備的文件系統類型進行不同的操作,一般都是將其掛載到某一個指定的目錄下。

這里我們將U盤插入,看看udev規則下它會掛載到哪里。

插入U盤顯示如下圖:

03bb0fc4-2559-11ed-9ade-dac502259ad0.png

識別到U盤,并且根據上面腳本的規則,將其掛載到/run/media/sda1下面,如圖所示,表明規則執行成功。

03e09172-2559-11ed-9ade-dac502259ad0.png

通過上面的操作,可以看出我們能夠根據udev規則做一些設備的固定匹配工作,這會為一些需要根據硬件動作做出相應腳本執行的工作帶來的極大的方便。

END

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11230

    瀏覽量

    208932
收藏 人收藏

    評論

    相關推薦

    Linux應用編程的基本概念

    Linux應用編程涉及到在Linux環境開發和運行應用程序的一系列概念。以下是一些涵蓋Linux應用編程的基本概念。
    的頭像 發表于 10-24 17:19 ?184次閱讀

    詳解linux內核的uevent機制

    linux內核中,uevent機制是一種內核和用戶空間通信的機制,用于通知用戶空間應用程序各種硬件更改或其他事件,比如插入或移除硬件設備(如USB驅動器或網絡接口)。uevent表示“用戶空間
    的頭像 發表于 09-29 17:01 ?478次閱讀

    linux的esp-idf顯示超時,是什么原因?

    使用CP2102芯片,官方的自動復位下載電路 win的esp-idf可以自動下載, linux的esp-idf顯示超時,是什么原因嗎?和配置有關嗎? 指令是idf.py -p /dev/ttyUSB0 flash monit
    發表于 06-21 06:08

    linux系統已安裝esp-idf,無法安裝vscode插件要怎么處理?

    deepin/linux系統,使用第三種方式安裝 無法add openocd dev rules EISDIR: illegal operation on a directory
    發表于 06-20 07:39

    使用esp32-s3的USB Serial/JTAG口連接linux時,找不到設備是怎么回事?

    一直以來我使用uart口進行燒寫,在linux和windows上都正常,這兩天嘗試了用USB Serial/JTAG口,我用的是官方開發板進行連接。 其中,不需要任何改動就可以在windows上進
    發表于 06-12 07:22

    虹科干貨 |?多設備協同無憂:Linux環境PCAN固定設備ID/通道分配指南

    在車輛網絡系統和工業自動化等多設備環境中,確保設備識別的一致性對于維護系統穩定性至關重要。虹科PCAN適配器提供了一種解決方案,允許用戶在Linux環境固定設備ID和通道分配,從而不受USB端口
    的頭像 發表于 06-11 15:03 ?427次閱讀
    虹科干貨 |?多設備協同無憂:<b class='flag-5'>Linux</b>環境<b class='flag-5'>下</b>PCAN固定設備ID/通道分配指南

    請問ESP Wroom 32板如何在LInux使用?

    ESP Wroom 32板如何在LInux使用。 我用的系統是統信UOS,如何使用ESP32板,開發Micropython啊 簡單來說就是在ESP32上刷上micropython固件,然后編寫micropython代碼。 在Linu
    發表于 06-05 06:22

    linux查詢進程占用的內存方法有哪些?

    linux查詢進程占用的內存方法
    發表于 04-08 06:03

    Linux環境能使用PSoC Creator 4.3嗎?

    最近碰到一個在Linux系統編譯的要求,PSoC Creator能夠在Linux環境使用嗎?
    發表于 02-18 07:22

    如何使用linuxgdb來調試python程序

    如何使用linuxgdb來調試python程序? 在Linux,可以使用GDB(GNU調試器)來調試Python程序。GDB是一個強大的調試工具,可以幫助開發者診斷和修復程序中的錯
    的頭像 發表于 01-31 10:41 ?2422次閱讀

    求助,請問Linux如何監控USB數據呢?

    Linux之前是通過lsusb查看一些信息,但有時候也需要監控到USB數據,故請教一各位有沒有Linux的USB監控軟件,或者一些監
    發表于 01-24 06:52

    Linux常見的十幾款CPU監控工具

    今天浩道跟大家分享運維工作中,Linux常見的十幾款CPU監控工具,你可能只會用到其中某些,但是個人覺得作為一個資深運維,你要知道有這些工具可以監控CPU。
    的頭像 發表于 01-22 09:19 ?2416次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>下</b>常見的十幾款CPU監控工具

    Linux操作系統中如何按PCIe的復位鍵

    Linux操作系統中,看如何按PCIe的復位鍵
    的頭像 發表于 01-20 09:31 ?1457次閱讀
    <b class='flag-5'>Linux</b>操作系統中如何按<b class='flag-5'>下</b>PCIe的復位鍵

    請問如何在Linux取得NUC980 CPU頻率?

    如何在Linux取得NUC980 CPU頻率?
    發表于 01-17 07:01

    如何查看Linux systemd正在運行的服務

    Linux 系統提供了各種系統服務(如 syslog、cron 等)和網絡服務(如 DNS、SSH 等)。
    的頭像 發表于 12-04 14:47 ?1992次閱讀
    如何查看<b class='flag-5'>Linux</b> systemd<b class='flag-5'>下</b>正在運行的服務