吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

buildroot對/dev的四種處理方式

嵌入式小生 ? 來源:嵌入式小生 ? 作者:嵌入式小生 ? 2022-11-01 09:13 ? 次閱讀

Linux系統(tǒng)中,/dev目錄中包含了特殊的文件(即設(shè)備文件),正是由于這些設(shè)備文件的存在,才允許用戶空間的應(yīng)用程序訪問由Linux內(nèi)核管理的硬件設(shè)備。如果沒有這些設(shè)備文件,即使Linux內(nèi)核正確識別了硬件設(shè)備,用戶空間的應(yīng)用程序也無法使用它們。

所以,位于/dev目錄下的設(shè)備文件是用戶空間程序與硬件設(shè)備進(jìn)行交流的中間媒介。

buildroot對/dev的四種處理方式

在buildroot中,提供了四種方式來處理/dev目錄,他們位于System configuration選項下的/dev management選項中:

e95cf184-597d-11ed-a3b6-dac502259ad0.png

(1)第一種方式是Static using device table

這是 Linux處理設(shè)備文件的傳統(tǒng)方法。使用這種方法,設(shè)備文件會被持久存儲在根文件系統(tǒng)中(即重新啟動后它們?nèi)匀淮嬖冢⑶以谙到y(tǒng)添加或者移除硬件設(shè)備時,不能自動創(chuàng)建和刪除這些設(shè)備文件。因此,Buildroot 使用了設(shè)備表來創(chuàng)建一組標(biāo)準(zhǔn)的設(shè)備文件,默認(rèn)設(shè)備表存儲在Buildroot源代碼的system/device_table_dev.txt文件中。文件中內(nèi)容按照:


格式進(jìn)行設(shè)備文件定義。

name : 要創(chuàng)建或修改的文件的路徑。

type :是文件的類型。f: 常規(guī)文件、d: 目錄、r: 遞歸目錄、c: 字符設(shè)備文件、b: 塊設(shè)備文件、p: 命名管道。

mode :通常的權(quán)限設(shè)置(僅允許使用數(shù)值)。

uid 和 gid 是要在此文件上設(shè)置的 UID 和 GID;可以是數(shù)值或者實際名稱。

major 和 minor 這里用于設(shè)備文件,其他文件需設(shè)置為“-”。

start,inc 和 count 適用于要創(chuàng)建一批文件的情況,實則為一個循環(huán),從start開始,以inc為單位遞增計數(shù)器,直至達(dá)到count。

Buildroot在生成最終的根文件系統(tǒng)鏡像時才會處理這個設(shè)備表文件,因此設(shè)備文件在output/target 目錄中是不可見的。BR2_ROOTFS_STATIC_DEVICE_TABLE選項用于更改Buildroot默認(rèn)使用的設(shè)備表,或者添加其他設(shè)備表,以便Buildroot在構(gòu)建過程中可以創(chuàng)建其他設(shè)備文件。因此,如果使用此方法,并且系統(tǒng)中缺少設(shè)備文件,則可以創(chuàng)建一個包含其他設(shè)備文件描述的board///device_table_dev.txt 文件,然后將 BR2_ROOTFS_STATIC_DEVICE_TABLE設(shè)置為system/device_table_dev.txt board///device_table_dev.txt。

(2)第二種方式是Dynamic using devtmpfs only

devtmpfs是Linux內(nèi)核中的一個虛擬文件系統(tǒng),在內(nèi)核 2.6.32 中引入(如果使用較舊的內(nèi)核,則無法使用此選項)。在掛載到/dev 后,此虛擬文件系統(tǒng)將在系統(tǒng)添加或者移除硬件設(shè)備時自動顯示或者讓設(shè)備文件消失。

devtmpfs文件系統(tǒng)在重新啟動后并不會持久,因為它是由內(nèi)核動態(tài)填充的。

使用devtmpfs時需要啟用以下內(nèi)核配置選項:CONFIG_DEVTMPFS 和 CONFIG_DEVTMPFS_MOUNT。

(3)第三種方式是Dynamic using devtmpfs+mdev

該方法同樣依賴于 devtmpfs 虛擬文件系統(tǒng)(因此同樣需要在內(nèi)核配置中啟用 CONFIG_DEVTMPFS 和 CONFIG_DEVTMPFS_MOUNT),但添加了 mdev 用戶空間程序。mdev是 BusyBox 里面的一個重要組成程序,每次添加或移除設(shè)備時,內(nèi)核都會調(diào)用mdev。

我們可以使用/etc/mdev.conf配置文件配置mdev,例如給設(shè)備文件設(shè)置特定的權(quán)限或所有權(quán)、在設(shè)備出現(xiàn)或消失時調(diào)用腳本或應(yīng)用程序等等。允許用戶空間對設(shè)備添加和刪除事件做出反應(yīng)。例如:當(dāng)設(shè)備出現(xiàn)在系統(tǒng)上時,mdev 可用于自動加載內(nèi)核模塊。如果設(shè)備需要固件,則 mdev 也很重要,因為它會負(fù)責(zé)將固件內(nèi)容推送到內(nèi)核。

mdev是udev的輕量級實現(xiàn)(功能較少)

(4)第四種方式是Dynamic using devtmpfs+eudev

此方法同樣依賴于devtmpfs虛擬文件系統(tǒng),但添加了eudev用戶空間守護(hù)程序。eudev 是后臺運(yùn)行的守護(hù)程序,當(dāng)系統(tǒng)添加或者移除設(shè)備時,內(nèi)核將會調(diào)用eudev。

與 mdev 相比,它是重量級的解決方案,但是具有更高的靈活性。eudev是udev 的獨(dú)立版本,udev 是大多數(shù)桌面 Linux 發(fā)行版中使用的原始用戶空間守護(hù)程序,現(xiàn)已歸入Systemd中。

總結(jié)

在本文中,描述了buildroot對/dev的四種處理方式,在實際使用中,可以按照以下規(guī)則進(jìn)行選擇:

如果在設(shè)備添加或移除時不通知用戶空間,則選擇Dynamic using devtmpfs only方式。(Busybox、systemV和OpenRC三種初始化系統(tǒng)都支持)

如果在設(shè)備添加或移除時需要通知用戶空間或者需要固件,則選擇Dynamic using devtmpfs+mdev方式。(Busybox、systemV和OpenRC三種初始化系統(tǒng)都支持)

如果選擇systemd作為初始化系統(tǒng),則/dev 管理將由 systemd 提供的udev程序執(zhí)行。(僅支持systemd初始化系統(tǒng))

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 硬件
    +關(guān)注

    關(guān)注

    11

    文章

    3381

    瀏覽量

    66451
  • 應(yīng)用程序
    +關(guān)注

    關(guān)注

    38

    文章

    3292

    瀏覽量

    57917
  • Buildroot
    +關(guān)注

    關(guān)注

    1

    文章

    48

    瀏覽量

    1418

原文標(biāo)題:buildroot使用筆記-02 | /dev的四種管理機(jī)制

文章出處:【微信號:嵌入式小生,微信公眾號:嵌入式小生】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    大數(shù)據(jù)的四種思維方式

    大數(shù)據(jù)所帶來的四種思維方式的轉(zhuǎn)變
    發(fā)表于 08-12 11:37

    淺析SQL的四種連接方式

    SQL的四種連接-左外連接、右外連接、內(nèi)連接、全連接
    發(fā)表于 03-20 11:18

    無線充電的四種方式及比較

    無線充電的起因無線充電的“歷史”無線充電的四種方式及比較無線充電系統(tǒng)的元件和開發(fā)工具推薦
    發(fā)表于 01-27 07:06

    獨(dú)立鍵盤的四種使用方式程序分享

    藍(lán)橋杯單片機(jī)組簡易問題與代碼(5)今日問題:獨(dú)立鍵盤的四種使用方式程序僅供參考,鼓勵大家獨(dú)立完成#include #define uint unsigned int#define uchar
    發(fā)表于 01-12 06:54

    無線充電技術(shù)的四種方式及其原理和應(yīng)用介紹

    本文介紹了無線充電技術(shù)的應(yīng)用范圍及其電磁感應(yīng)方式四種充電方式的詳細(xì)介紹。
    發(fā)表于 10-12 16:16 ?27次下載
    無線充電技術(shù)的<b class='flag-5'>四種</b><b class='flag-5'>方式</b>及其原理和應(yīng)用介紹

    無線充電技術(shù)(四種主要方式)原理與應(yīng)用實例圖文詳解.

    無線充電技術(shù)(四種主要方式)原理與應(yīng)用實例圖文詳解.(電源技術(shù)版面費(fèi))-無線充電技術(shù)(四種主要方式)原理與應(yīng)用實例圖文詳解. ? ? ? ? ?
    發(fā)表于 09-22 18:27 ?146次下載
    無線充電技術(shù)(<b class='flag-5'>四種</b>主要<b class='flag-5'>方式</b>)原理與應(yīng)用實例圖文詳解.

    基礎(chǔ)知識:變頻器的四種控制方式

    圍繞變頻器的四種控制方式即V/f恒定控制、轉(zhuǎn)差頻率控制、矢量控制、直接轉(zhuǎn)矩控制展開介紹。
    發(fā)表于 03-11 11:20 ?1.3w次閱讀
    基礎(chǔ)知識:變頻器的<b class='flag-5'>四種</b>控制<b class='flag-5'>方式</b>

    線纜敷設(shè)的四種方式與注意事項

    目前線纜敷設(shè)一般有四種方式:直埋電纜敷設(shè)、排管電纜敷設(shè)、電纜溝或隧道內(nèi)電纜敷設(shè)、橋架電纜敷設(shè)。針對這四種敷設(shè)方式的施工要求總結(jié)如下。
    的頭像 發(fā)表于 07-18 12:03 ?1w次閱讀

    PCB電鍍中異常處理方式

    個人收集的一些異常處理方式
    發(fā)表于 08-11 15:01 ?0次下載

    buildroot對/dev四種處理方式

    在Linux系統(tǒng)中,/dev目錄中包含了特殊的文件(即設(shè)備文件),正是由于這些設(shè)備文件的存在,才允許用戶空間的應(yīng)用程序訪問由Linux內(nèi)核管理的硬件設(shè)備。
    的頭像 發(fā)表于 11-01 09:09 ?1338次閱讀

    四種方式實現(xiàn)led點(diǎn)亮

    四種方式實現(xiàn)led點(diǎn)亮
    發(fā)表于 01-04 14:31 ?4次下載

    淺析測力傳感器的兩處理方式

    淺析測力傳感器的兩處理方式
    的頭像 發(fā)表于 12-20 17:31 ?1036次閱讀
    淺析測力傳感器的兩<b class='flag-5'>種</b><b class='flag-5'>處理方式</b>

    設(shè)備管理通道控制四種方式

    設(shè)備管理的主要任務(wù)之一是控制設(shè)備和內(nèi)存或處理機(jī)之間的數(shù)據(jù)傳送,外圍設(shè)備和內(nèi)存之間的輸入/輸出控制方式四種,下面分別介紹。
    發(fā)表于 12-08 14:05 ?1276次閱讀
    設(shè)備管理通道控制<b class='flag-5'>四種</b><b class='flag-5'>方式</b>

    模數(shù)轉(zhuǎn)換器結(jié)束信號的四種處理方式

    模數(shù)轉(zhuǎn)換器結(jié)束信號的四種處理方式? 模數(shù)轉(zhuǎn)換器(ADC)是將模擬信號轉(zhuǎn)換為數(shù)字信號的設(shè)備。在ADC操作過程中,結(jié)束信號非常重要,它指示了模數(shù)轉(zhuǎn)換器已經(jīng)完成轉(zhuǎn)換并準(zhǔn)備好輸出數(shù)據(jù)。下面將詳細(xì)介紹四種
    的頭像 發(fā)表于 02-03 16:41 ?896次閱讀

    元器件的包裝方式及常見的四種方式

    四種元件包裝方式在實際生產(chǎn)和使用中廣泛應(yīng)用,不同的包裝方式適用于不同類型和規(guī)格的元件,并且可以根據(jù)具體要求進(jìn)行定制化的包裝設(shè)計。不同的包裝方式也可以影響元件的存儲、運(yùn)輸和使用,選擇適合
    的頭像 發(fā)表于 06-27 12:58 ?1831次閱讀
    金龙博彩| 新金润娱乐城| 通州区| 百家乐官网庄家怎样赚钱| 定24山尺寸深浅土色| 百家乐任你博娱乐网| 大发888casino| 百家乐官网学院教学视频| 百家乐官网一邱大师打法| 百家乐桌德州扑克桌| 大发888真人娱乐场网址官网| 百家乐官网赢钱战略| 真人百家乐官网的玩法技巧和规则| 百家乐官网好多假网站| 百家乐官网娱乐网官网网| 曼哈顿百家乐娱乐城| 88娱乐城备用网址| 百家乐官网赌博娱乐| 百家乐平台在线| 大发娱乐城开户| 百家乐官网赌场大全| 香格里拉县| 南宁百家乐官网的玩法技巧和规则| 专业的百家乐玩家| 特克斯县| 免费百家乐官网追号软件| 大发888娱乐城哪个好| 保险百家乐官网怎么玩| 免费下百家乐赌博软件| 名仕国际棋牌官方网| 百家乐官网娱乐网真人娱乐网| 葡京百家乐的玩法技巧和规则 | 电子百家乐官网作假| 威尼斯人娱乐城活动lm0| 赌场百家乐台| 长岭县| 太阳城百家乐出千技术| 城固县| 百家乐网上投注系统| 鄂托克旗| 百家乐娱乐软件|