国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用香橙派學習Linux udev的rules 并實現(xiàn)U盤的自動掛載

這篇具有很好參考價值的文章主要介紹了使用香橙派學習Linux udev的rules 并實現(xiàn)U盤的自動掛載。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

在之前編程首先語音刷抖音的博文里提到過udev,現(xiàn)在回顧一下:

什么是udev?

  • udev是一個設備管理工具,udev以守護進程的形式運行,通過偵聽內(nèi)核發(fā)出來的uevent來管理/dev目錄下的設備文件。udev在用戶空間運行,而不在內(nèi)核空間 運行。它能夠根據(jù)系統(tǒng)中的硬 件設備的狀態(tài)動態(tài)更新設備文件,包括設備文件的創(chuàng)建,刪除等。設備文件通常放在/dev目錄下。使用udev后,在/dev目錄下就只包含系統(tǒng)中真正存在的設備。

?本節(jié)就深入學習以下udev相關的知識,以下是一些參考鏈接:

[Linux 基礎] -- udev 和 rules 使用規(guī)則_udev rules_BestW2Y的博客-CSDN博客

udev概述

在之前多次提到過:Linux中一切皆文件。在早期的 Linux 版本中,/dev 目錄包含了所有可能出現(xiàn)的設備的設備文件。很難想象 Linux 用戶如何在這些大量的設備文件中找到匹配條件的設備文件。現(xiàn)在 udev 只為那些連接到 Linux 操作系統(tǒng)的設備產(chǎn)生設備文件。并且 udev 能通過定義一個 udev 規(guī)則(rule)來產(chǎn)生匹配設備屬性的設備文件,這些設備屬性可以是內(nèi)核設備名稱、總線路徑、廠商名稱、型號、序列號或者磁盤大小等等。

udev 添加/刪除 設備文件的過程

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

udev的規(guī)則(rule)?

規(guī)則文件是 udev 里最重要的部分,默認是存放在 /etc/udev/rule.d/ 下。所有的規(guī)則文件必須以 ".rules" 為后綴名。

下面是一個簡單的規(guī)則:(規(guī)則就是規(guī)則文件里的內(nèi)容)

KERNEL=="sda", NAME="my_root_disk", MODE="0660"

其中:KERNEL 是匹配鍵,NAME 和 MODE 是賦值鍵。這條規(guī)則的意思是:如果有一個設備的內(nèi)核名稱為 sda,則該條件生效,執(zhí)行后面的賦值:在 /dev 下產(chǎn)生一個名為my_root_disk 的設備文件,并把設備 文件的權限設為 0660。?

同時,在語音刷抖音項目中,手機接入香橙派不能識別的解決辦法,也是在udev的rules文件夾下創(chuàng)建規(guī)則文件“ 51-android.rules ”,并寫入以下規(guī)則:

SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", MODE="0666" 

為什么此處的規(guī)則要這么寫?

首先,插入的手機usb設備對應的設備文件在“/dev/bus/usb/001”下:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

可見,這個文件的名字是063(001是系統(tǒng)的)

通過“ udevadm info --attribute-walk --name=/dev/bus/usb/001/設備名字?” 可以看到設備的詳細信息,此處設備名字就寫063

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

其中,就可以找到剛剛規(guī)則中第一句“?SUBSYSTEM=="usb"?”的由來:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

  • 這也是為什么規(guī)則第一句寫上“?SUBSYSTEM=="usb"?”,udev就能知道:這條規(guī)則是針對手機這個設備。
  • 第二句的“ ENV{DEVTYPE}=="usb_device" ”,和第一句一樣,都是匹配鍵:用來設置環(huán)境變量;
  • 最后一句的“ MODE="0666"?”才是賦值鍵,用來賦予權限

所以其實,想要通過規(guī)則來匹配一個設備文件,方法不止一種,我同樣可以用其他的屬性來進行匹配:

比如,在上圖打印的信息中注意到了VID和PID的值,用他們來寫規(guī)則:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

SUBSYSTEM=="usb", ATTR{idProduct}=="ff08", ATTR{idVendor}=="2717", MODE="0666"

那么現(xiàn)在這條規(guī)則實現(xiàn)的效果 和 “之前那條使用環(huán)境變量來匹配的規(guī)則實現(xiàn)的效果” 是一樣的。

為了驗證,我修改 “ /etc/udev/rules.d/ ” 下的 “51-android.rules”:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

然后再次插入手機。并查看“/dev/bus/usb/001”路徑:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

可見,多了一個078

然后調(diào)用“adb devices”:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

可見可以成功臉上,說明用新的規(guī)則確實可以成功匹配到手機的設備文件

udev 規(guī)則的匹配鍵

  • ACTION:事件(uevent)的行為,例如:add(添加設備)、remove(刪除設備)
  • KERNEL:內(nèi)核設備名稱,例如:sda,cdrom
  • DEVPATH:設備的 devpath 路徑?
  • SUBSYSTEM:設備的子系統(tǒng)名稱,例如:sda 的系統(tǒng)為 block
  • BUS:設備在 devpath 里的總線名稱,例如:usb
  • DRIVER:設備在 devpath 的設備驅動名稱,例如:ide-cdrom
  • ID:設備在 devpath 里的識別號
  • SYSFS{filename}:設備的 devpath 路徑下,設備的屬性文件 "filename" 里的內(nèi)容
  • ENV{key}:環(huán)境變量。在一條規(guī)則中,可以設定最多五條環(huán)境變量的 匹配鍵
  • PROGRAM:調(diào)用外部命令
  • RESULT:外部命令 PROGRAM 的返回結果

?

U盤的自動掛載

拿出我的U盤,它同樣有一個USB口,將它接入香橙派:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

然后執(zhí)行“ dmesg ”指令:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

可見,內(nèi)核識別到了這個設備!且顯示是sda4

然后執(zhí)行“sudo mount /dev/sda4 /mnt/” 再 “cd /mnt” 就可以查看U盤中的內(nèi)容:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

(亂碼是因為文件名是中文)

但是這樣很麻煩,每次U盤插入后還要執(zhí)行兩個指令,可以用udev來實現(xiàn)U盤的自動掛載:

首先,執(zhí)行?udevadm info --attribute-walk --name=/dev/sda4 ”來查看U盤的信息:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

在里面可以選取用于匹配U盤的udev規(guī)則,通常使用KERNAL 或 SUBSYSTEM來匹配U盤

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

那么話不多說,直接再次 “ cd /etc/udev/rules.d/ ” 然后 “ sudo vim my_storage.rules

規(guī)則具體為:

ACTION=="add", SUBSYSTEMS=="block", SUBSYSTEM=="block", RUN{program}+="/bin/mkdir
/media/%k" ,RUN{program}+="/usr/bin/systemd-mount --no-block --collect $devnode
/media/%k"
  • ACTION:匹配鍵,匹配添加設備的動作
  • SUBSYSTEMS:匹配鍵,匹配為block(此處也可以是usb)

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

  • SUBSYSTEM:匹配鍵,匹配為block

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

通過這三個匹配鍵,匹配到U盤

  • RUN:運行命令,此處執(zhí)行“?/bin/mkdir ”指令創(chuàng)建一個名為“media“的文件夾,里面有名為“%k” 的文件,%k是sda/sdb的通配符
  • RUN:運行命令,此處執(zhí)行“ /usr/bin/systemd-mount ”指令掛載U盤到“%k”文件夾下

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

實現(xiàn)效果

重新拔插U盤,并“sudo service udev restart”重啟udev后,查看media文件夾:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

可見此時沒有輸入任何命令,就可以訪問U盤的文件了,成功實現(xiàn)了U盤的自動掛載!

另外,可以安裝一個tree指令來查看U盤文件,使用“sudo apt-get install tree”來安裝;

安裝完成后,進入media文件夾后,直接輸入" tree ”,就可以清晰的看到文件結構了:

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

此時拔掉U盤,再次輸入“tree”:?

udev 編程,學習,linux,運維,香橙派,開發(fā)語言,C語言,udev

可見,此時就沒有任何文件了!文章來源地址http://www.zghlxwxcb.cn/news/detail-753907.html

到了這里,關于使用香橙派學習Linux udev的rules 并實現(xiàn)U盤的自動掛載的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 驅動開發(fā)--自動創(chuàng)建節(jié)點udev機制的實現(xiàn)過程分析

    驅動開發(fā)--自動創(chuàng)建節(jié)點udev機制的實現(xiàn)過程分析

    1,mknod:手動創(chuàng)建設備節(jié)點 2,devfs:創(chuàng)建設備節(jié)點的邏輯在內(nèi)核空間,2.5版本后淘汰 3,udev:自動創(chuàng)建設備節(jié)點的機制,邏輯在用戶空間,常用 4,mdev:輕量級的udev機制 1,注冊驅動,register_chrdev()函數(shù) 2,獲取設備信息(設備樹相關文件,目前為指定寄存器地址) 3,創(chuàng)建一

    2024年02月09日
    瀏覽(36)
  • Linux的UDEV機制

    Linux的UDEV機制

    ?手機接入Linux熱拔插相關 a. 把手機接入開發(fā)板 b. 安裝adb工具,在終端輸入adb安裝指令: sudo apt-get install adb c. dmeg能查看到手機接入的信息,但是輸入adb devices會出現(xiàn)提醒 dinsufficient permissions for device: user in plugdev group; are your udev rules wrong? d. 配置文件,以支持USB設備的熱拔插,

    2024年04月22日
    瀏覽(14)
  • Linux + 香橙派 + V4L2 + http 實現(xiàn)遠程監(jiān)控攝像頭在網(wǎng)頁端顯示

    Linux + 香橙派 + V4L2 + http 實現(xiàn)遠程監(jiān)控攝像頭在網(wǎng)頁端顯示

    項目需求,需要做一個基于邊緣端的人臉識別遠程監(jiān)控攝像頭并在網(wǎng)頁前端展示 ,這里采用國產(chǎn)香橙派作為邊緣計算終端,安裝ubuntu系統(tǒng),系統(tǒng)中采用v4l2接口對攝像頭進行獲取,當客戶端通過網(wǎng)頁進行請求時,服務器通過http服務的形式將一幀幀圖像發(fā)送給客戶端,只要一秒

    2024年02月15日
    瀏覽(20)
  • 關于XMind自動安裝到c盤的解決方案

    關于XMind自動安裝到c盤的解決方案

    問題 XMind會默認安裝到c盤,如何更改安裝盤符釋放c盤空間呢? 原理 修改windows系統(tǒng)的默認軟件安裝位置 一般有“ProgramFilesDir”和“ProgramFilesDir(x86)” 解決方案 1、win+r,輸入“regedit”打開注冊表編輯器 2、在注冊表中,找到如下路徑 路徑指引:HKEY_LOCAL_MACHINESOFTWAREMicrosof

    2024年02月04日
    瀏覽(20)
  • 使用Vue + el-form + rules實現(xiàn)圖書信息錄入功能實戰(zhàn)

    使用Vue + el-form + rules實現(xiàn)圖書信息錄入功能實戰(zhàn)

    前言? 上節(jié)回顧 轉眼2023年已經(jīng)過去一半了,我咋記得2022年剛過去呢,有時候在前端打版本的時候我還不小心寫成2022啥啥啥呢,寫完才發(fā)現(xiàn)自己自己寫錯了,應該是2023,真是時光一去不復回,往事只能回味啊。 上一節(jié)為了給圖書錄入功能模塊打基礎,單獨寫了一篇 Vue + Fo

    2024年02月17日
    瀏覽(26)
  • 14 使用Vue + el-form + rules實現(xiàn)圖書信息錄入功能實戰(zhàn)

    14 使用Vue + el-form + rules實現(xiàn)圖書信息錄入功能實戰(zhàn)

    前言? 上節(jié)回顧 轉眼2023年已經(jīng)過去一半了,我咋記得2022年剛過去呢,有時候在前端打版本的時候我還不小心寫成2022啥啥啥呢,寫完才發(fā)現(xiàn)自己自己寫錯了,應該是2023,真是時光一去不復回,往事只能回味啊。 上一節(jié)為了給圖書錄入功能模塊打基礎,單獨寫了一篇 Vue + Fo

    2024年02月16日
    瀏覽(18)
  • Linux掛載exFat格式U盤的方法

    ????????exFat格式支持4G以上的大文件格式,同時支持mac系統(tǒng)、linux系統(tǒng)和windows系統(tǒng),使用exFat格式的U盤(硬盤),方便在多個系統(tǒng)之間拷貝文件。但是在linux版的centOs下拷貝exFat格式文件,需要通過第三方工具實現(xiàn)文件的拷貝。 1、下載fuse-exfat支持軟件: exfat支持是通過

    2023年04月14日
    瀏覽(17)
  • 在linux中掛載NFS共享盤的方法

    在 Linux 中,你可以使用 mount 命令來掛載 NFS(Network File System)共享盤。以下是掛載 NFS 共享盤的一般步驟: 確保已經(jīng)安裝 NFS 客戶端:首先,你需要確保在你的 Linux 系統(tǒng)上已經(jīng)安裝了 NFS 客戶端工具。大多數(shù) Linux 發(fā)行版都默認安裝了這些工具,但是如果你的系統(tǒng)沒有安裝,你

    2024年02月09日
    瀏覽(49)
  • Linux篇 三、香橙派Zero2搭建Qt環(huán)境

    Linux篇 三、香橙派Zero2搭建Qt環(huán)境

    一、香橙派Zero2設置開機連接wifi 二、香橙派Zero2獲取Linux SDK源碼 四、Linux修改用戶名 五、Ubuntu與Linux板卡建立NFS服務 主要講述了移植QT的過程 默認在香橙派篇2中,已經(jīng)成功拉取Linux的SDK源碼的情況下 如果失敗的話,可以直接去官網(wǎng)下載交叉編譯工具 此處路徑和上一篇的源碼

    2023年04月21日
    瀏覽(41)
  • [香橙派]Orange pi zero 3命令行配網(wǎng)方法——建立ssh連接——Ubuntu配置WIFI自動連接

    [香橙派]Orange pi zero 3命令行配網(wǎng)方法——建立ssh連接——Ubuntu配置WIFI自動連接

    ? ? ? ? 前面我們給Orange Pi安裝了Ubuntu系統(tǒng),并通過MobaXterm進行了串口連接,但其實并不方便,在日常開發(fā)中,我們希望能夠使用更方便的ssh連接來進行操作,因此配置網(wǎng)絡是必要的。 ? ? ? ? 本章介紹的方法無需網(wǎng)線、HDMI線等,使用命令行完成,配置完成即可一直使用。

    2024年02月04日
    瀏覽(66)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包