日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

如何单独编译Linux源代码中的驱动模块,比如NVMe驱动?

發(fā)布時間:2023/12/20 linux 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何单独编译Linux源代码中的驱动模块,比如NVMe驱动? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

的確,在下載了Linux的源代碼之后,Linux的Makefile提供個很完善靈活的編譯方法,比如:make menuconfig 可以讓我們非常方便的編譯一個完整的內(nèi)核。
但是,對于模塊開發(fā)來說我們不需要編譯一個完整的內(nèi)核,而只更改對應(yīng)模塊中的部分代碼。那么本文就一步一步的告訴你該怎么編譯一個驅(qū)動模塊,比如NVMe驅(qū)動(默認你已經(jīng)下載了完整的Linux源代碼)。

  • 確定將要運行你新編譯的模塊的平臺的Linux版本信息
  • uname -r

    筆者的平臺信息是:5.13.0-41-generic
    如果你不確認主機平臺的信息,而隨意使用其它版本的Linux源碼編譯的話,那你在插入模塊的時候會遇到以下錯誤:

    insmod: ERROR: could not insert module nvme.ko: Invalid module format
  • 根據(jù)運行平臺的版本信息,將Linux源代碼的版本切換到相應(yīng)的版本
  • git reset --hard v5.13-rc7
  • 進入到目標模塊目錄中,更改Makefile
  • cd drivers/nvme # 在Makefile的最后添加以下命令 # 如果你是在運行平臺上編譯的,你可以直接用下面這一行,來動態(tài)的找到平臺的Linux版本編譯模塊所需的目錄 # KERNEL_DIR = /lib/modules/`uname -r`/build KERNEL_DIR = /lib/modules/5.13.0-40-generic/build MODULEDIR := $(shell pwd)modules:make -C $(KERNEL_DIR) M=$(MODULEDIR) modules
  • 更改驅(qū)動模塊源代碼
  • # 在模塊進入函數(shù):nvme_init 中隨便加入一句打印 diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index a29b170701fc..a09ea1e5aa7e 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -3317,6 +3317,7 @@ static int __init nvme_init(void)BUILD_BUG_ON(sizeof(struct nvme_create_sq) != 64);BUILD_BUG_ON(sizeof(struct nvme_delete_queue) != 64);BUILD_BUG_ON(IRQ_AFFINITY_MAX_SETS < 2); + printk("This is new test driver");return pci_register_driver(&nvme_driver);}
  • 編譯,等待完成
  • make
  • 安裝
  • insmod host/nvme-core.ko insmod host/nvme.ko

    如果你在插入模塊的時候遇到了這個問題:

    ERROR: could not insert module host/nvme.ko: Unknown symbol in module

    說明是依賴模塊沒有插入,你可以使用以下命令來獲取依賴模塊的名稱,然后先把對應(yīng)模塊插入。

    modinfo xxx.ko | grep depends
  • 查看
  • dmesg

    總結(jié)

    以上是生活随笔為你收集整理的如何单独编译Linux源代码中的驱动模块,比如NVMe驱动?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。