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
相關文章
- 修改gradle指令碼,加速spring4.1原始碼編譯構建速度Gradle指令碼Spring原始碼編譯
- Kubernetes原始碼編譯原始碼編譯
- Spring原始碼編譯Spring原始碼編譯
- windows下修改、編譯、構建spring-framework4.1.8.RELEASE原始碼Windows編譯SpringFramework原始碼
- 原始碼編譯Vim 8原始碼編譯
- MongoDB(0)- 原始碼編譯MongoDB原始碼編譯
- XCode 編譯 PAG 原始碼XCode編譯原始碼
- Docker編譯Azerothcore原始碼Docker編譯原始碼
- MacOS X 編譯Android原始碼Mac編譯Android原始碼
- 原始碼編譯 apache2.4原始碼編譯Apache
- WebRTC研究 (一) 編譯原始碼Web編譯原始碼
- 原始碼編譯安裝Redis原始碼編譯Redis
- Android FrameWork 之原始碼編譯AndroidFramework原始碼編譯
- 龍芯原始碼編譯MySQL原始碼編譯MySql
- Swift原始碼專案編譯Swift原始碼編譯
- 針對flume中扇出複用(源exec)原始碼修改,並編譯flume原始碼編譯
- linux核心修改編譯Linux編譯
- 使用dnSpy對無原始碼EXE或DLL進行反編譯並且修改DNS原始碼編譯
- Dubbo原始碼之動態編譯原始碼編譯
- android 反編譯APK取原始碼。Android編譯APK原始碼
- 原始碼編譯安裝的原理原始碼編譯
- 【轉】MySQL原始碼編譯安裝MySql原始碼編譯
- openssl原始碼編譯及配置方法原始碼編譯
- Vue3原始碼分析——編譯模組和編譯器Vue原始碼編譯
- 在使用make編譯時,修改原始檔的註釋內容,是否會重新編譯?編譯
- TiKV 原始碼解析系列 ——Placement Driver原始碼
- 寫Java這麼久,JDK原始碼編譯過沒?編譯JDK原始碼踩坑紀實JavaJDK原始碼編譯
- 在專案中自定義路徑放入element-ui並修改編譯原始碼UI編譯原始碼
- Ubuntu 15.04編譯Android 6.0.1原始碼-Nexus5真機編譯Ubuntu編譯Android原始碼
- dll反編譯(修改引用檔案、修改程式碼)再生成dll編譯
- MySQL5.7.16原始碼編譯安裝MySql原始碼編譯
- 如何順利完成Kubernetes原始碼編譯?原始碼編譯
- 【Visual Leak Detector】原始碼編譯 VLD 庫原始碼編譯
- RocketMQ--原始碼編譯和介紹MQ原始碼編譯
- 阿里雲mysql原始碼編譯安裝阿里MySql原始碼編譯
- 編譯python(cpython)的原始碼及其用途編譯Python原始碼
- nginx原始碼編譯安裝(詳解)Nginx原始碼編譯
- Flink1.9.2原始碼編譯和使用原始碼編譯