一次Linux驅動公升級的問題記錄

2021-10-10 00:10:19 字數 977 閱讀 7830

在linux開機時驅動的載入過程中總結過驅動的載入方式,會涉及到initramfs檔案中的驅動,因此在驅動公升級的時候要考慮到initramfs檔案中的驅動是否也對應的公升級到對用的版本,這是本文想記錄的乙個點。

linux開機時先去載入initramfs檔案中的驅動,具體的流程如下圖所示。

因此我們需要注意的是在系統中公升級完驅動後,要保證initramfs中的驅動進行更新。檢查initramfs檔案中是否包含我們要公升級的驅動,如果不存在公升級的驅動,則無需更新initramfs檔案,檢查命令為lsinitrd initramfs-***.img | grep module;

以i40e驅動為例,加入我們採用make&make install的方式在當前的環境上編譯公升級驅動時,i40e驅動的makefile檔案自動會為我們執行dracut --force命令去同時更新initramfs檔案使i40e驅動更新。

(1)將i40e驅動拷貝到/lib/modules/$(uname -r)/kernel/drivers/net/ethernet/intel/i40e資料夾下,替換系統原有的i40e.ko.xz檔案;(公升級系統原有的驅動)

(2)執行depmod –a重新生成模組依賴關係;

(3)執行modinfo i40e檢視相關資訊是否與當前替換的版本資訊一致;

(4)如果當前環境下可以成功執行rmmod i40e解除安裝當前環境下的驅動,則執行modprobe i40e載入驅動即可生效,無需重啟;

(5)執行dracut --force命令重新生成initramfs檔案(該檔案中包含有老版本的i40e驅動,如果不進行更新則重啟後依然後載入老版本的驅動);

(6)如果無法解除安裝當前環境下的i40e驅動,則重啟後生效;

一次奇葩Hama問題記錄

對hama進行改進,引用了乙個類a a繼承了執行緒類 當該類實現如下時,graphjobrunner 中 override public final void setup bsppeerpeer throws ioexception,syncexception,interruptedexceptio...

一次線上oom問題記錄

某天早上發現服務無法正常訪問,於是展開問題排查。1。首先檢視日誌,發現有oom日誌存在。這時候看到oom,犯了想當然的錯誤,認為是記憶體不足,堆記憶體空間已經用完。於是檢視 發現某個模組中有如下 誰寫的,站出來,我保證不打你。當時盲目的認為就是使用這個執行緒池的問題 關於此執行緒池的弊端不再贅述 於...

一次線上FullGC問題記錄

標題採自 英雄聯盟 瑞文 斷劍重鑄之日,騎士歸來之時!前兩天早上在擠地鐵的時候看到小組群裡,主管發了好多訊息,開啟來一看,說是xx專案自從22號發版後,每天晚上就瘋狂full gc,讓我們查一下什麼原因,嘻嘻嘻,一開始聽到,心裡竊喜,為什麼呢。因為自己以前對jvm也有些了解,不過都只是紙上談兵罷了。...