nvme driver 源码修改、编译

在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

你可能感兴趣的:(nvme driver 源码修改、编译)