-
Ubuntu下开发Linux内核模块
Linux内核源码头文件位置
/usr/src/linux-headers-$(LINUX_KERNEL)其中的LINUX_KERNEL是Linux内核版本号,使用
uname -r获得Makefile
obj-m := test.o
CURRENT_PATH := $(shell pwd)
LINUX_KERNEL := $(shell uname -r)
LINUX_KERNEL_PATH := /usr/src/linux-headers-$(LINUX_KERNEL)
all:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) modules
clean:
make -C $(LINUX_KERNEL_PATH) M=$(CURRENT_PATH) clean更新包含文件的目录
在远程端安装C/C++等全套插件(不安装的话没有相应的选项)
按
Ctrl+Shift+P打开命令输入
C/C++
然后在输入框里粘贴地址
/usr/src/linux-headers-<uname -r的输出>/include/**和/usr/src/linux-headers-<uname -r的输出>/arch/x86/include/
- 重启设置之后
**可能会消失
- 重启设置之后
然后即可找到printk等函数的定义
但是还是有报错
代码文件
|
编译结果
insmod安装模块,rmmod移除模块insmod需要sudo- 安装的是
.ko文件
- 使用
dmesg查看系统输出