linux開機時驅動的載入流程

2021-10-07 03:43:19 字數 1100 閱讀 6468

linux開機載入驅動時,涉及到了initramfs檔案中包含的驅動以及硬碟中包含的驅動兩個部分;而系統啟動後手動載入驅動時只會用到硬碟中的驅動庫,與initramfs無關。首先介紹下initramfs檔案生成的原理及流程,然後在介紹下開機載入的流程及本地驗證步驟。

一、 initramfs檔案生成原理

1、 映象安裝時生成initramfs檔案

在安裝映象時,會去掃瞄所安裝的伺服器中在位的裝置,系統會將掃瞄到的裝置的驅動以及預設常用的一些驅動包含在initramfs檔案中;解壓initramfs檔案後生成的目錄檔案如下所示:

(解壓initramfs檔案的命令:

/usr/lib/dracut/skipcpio initramfs.***.img | zcat | cpio -ivd)

initramfs中包含的驅動ko檔案在目錄lib/modules/下,具體包含的ko可依次檢視。

注意:安裝映象的時候先生成initramfs檔案,然後才會去執行post指令碼,如果想在post指令碼中去更改驅動或者一些依賴關係的話,無法寫入initramfs檔案中。

2、 主動更新構建initramfs檔案

當我們想去更改模組的依賴關係,或者替換掉原有的ko,如果此時原有的ko已經存在於initramfs中,那麼如果單純的替換掉ko依然不會生效,需要使用dracut –force命令重新構建initramfs檔案,使其寫入到initramfs檔案中。(具體原有後續介紹)

二、 開機載入驅動的流程

linux系統開機後,首先載入initramfs檔案中包含的驅動程式,如果相應的裝置對應的驅動不在initramfs檔案包含範圍內,那麼會去硬碟中儲存的驅動庫中去尋找匹配的驅動進行載入;硬碟中驅動庫的位置即為:/lib/modules/「uname -r」/;所以相應的驅動只要在硬碟的驅動庫或者initramfs中至少存在乙個就可以正常載入,一旦在initramfs中載入成功,無論硬碟中的驅動庫中存在的驅動版本是否相同都不會重新去載入。

linux 下開機自動載入驅動模組

呼呼,好久不見 前一段時間開發了乙個linux下的pci資料採集板卡的驅動,在驅動除錯時,一直使用insmod 動態的載入驅動模組 ko檔案 現在驅動基本開發結束,要提交給客戶,使用insmod載入時,對客戶來說不太好,比較麻煩,所以不能採用這種方法。由於 剛開始做驅動,還不知道如何在linux啟動...

Linux檢視系統開機時間

如下所示last reboot可以看到linux系統歷史啟動的時間。重啟一下作業系統後,然後 如果只需要檢視最後一次linux系統啟動的時間 root db server last reboot head 1 reboot system boot 2.6.9 42.elsmp thu may 29 ...

Linux檢視系統開機時間

1 who 命令檢視 who b 檢視最後一次系統啟動的時間。who r 檢視當前系統執行時間 如下所示last reboot可以看到linux系統歷史啟動的時間。重啟一下作業系統後,然後 如果只需要檢視最後一次linux系統啟動的時間 root db server last reboot head...