linux下hotplug_uevent機制(熱插拔機制)__linux

來源:互聯網
上載者:User

回過頭看看我們以前寫的驅動程式

隨便看一個


為什麼要建立類   為什麼要在類下面建立裝置呢

為了讓mdev根據這些資訊來建立裝置節點

我們來看看device_create憑什麼可以讓mdev建立裝置節點


然後進入這個device_create_vargs


然後我們會看見關鍵性函數 device_register


然後進入device_add

同樣是進入關鍵函數

kobjece_uevent這個函數


進入這個函數

一步一步進入

然後同樣找到關鍵函數


這裡將action_string這個指標指向"add"


然後在


先為環境變數分配一個緩衝區


然後設定環境變數

環境變數是什麼東西

在你的開發板上輸入env


這些都是環境變數

這個環境變數是我們shell程式,就是根據我們輸入來執行程式的那個shell程式的環境變數

ps看看


就是這個的環境變數

每一個應用程式都有環境變數


如果這個變數有資料的話  call_usermodehelper

這個是幹啥呢

調用應用程式,這個應用程式是什麼,比如mdev 假設argv[0]=uevent_helper=mdev

調用使用者模式的helper,就是建立一個進程,傳入傳輸,環境變數,這個應用程式會根據這個環境變數建立裝置節點


我們來列印,看看這個是不是等於mdev

修改代碼如下



然後重新編譯核心燒寫

然後我們insmod一個驅動

輸出資訊如下(由於現在沒網,只能截wds的圖)

然後就會得到

他會根據這些資訊建立裝置節點

接著分析 busybox mdev_main()



如果他不是mdev -s   mdev -s是什麼意思呢。

就是它掃描,我們一開始啟動的時候

我們cat  /etc/init.d/rcS



這裡就有mdev -s


掃描這個/sys這個目錄,產生這個目錄 當系統啟動的時候  根據這個裡面的資訊來建立裝置

我們不是這個這一項


獲得環境變數

action = add


我們這裡是OP_add

所以進入下面這個make_device


這個函數裡面我們看主要的


在這裡建立裝置節點

我們看node_name是怎麼建立的




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.