nvme driver 原始碼修改、編譯

weixin_34413357發表於2018-04-11

在linux中有時候需要用到自己修改過的nvme driver,我的linux環境是centos

1、查詢centos版本

  uname -r
  3.10.0-327.el7.x86_64

2、搜尋centos的src.rpm包,解壓

   rpm -i https://buildlogs.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/kernel-3.10.0-327.el7.src.rpm

3、找到linux核心原始碼

   /root/rpmbuild/SOURCES/linux-3.10.0-327.el7.tar.xz

4、編譯nvme driver

在原始碼目錄中找到nvme-core.c nvme-scsi.c nvme.h三個檔案,拷貝到單獨的資料夾內。增加一個makefile

ifneq ($(KERNELRELEASE),)
        nvme_driver-objs:= nvme-core.o nvme-scsi.o
        obj-m := nvme_driver.o
else
  PWD := $(shell pwd)
  KVER ?= $(shell uname -r)
  KDIR := /lib/modules/$(KVER)/build

all:
    $(MAKE) -C $(KDIR) M=$(PWD)

clean:
    rm -fr *.o *.mod.c *.ko .tmp_versions
endif

5、insmod driver

modprobe -r nvme
insmod nvme-driver.ko

替換掉原來的nvme driver

相關文章