写在前面
建议在编译内核之前了解一下内核的目录结构, 这样至少不会被绕晕
下载内核源码
sudo apt search linux-source
![](https://img.haomeiwen.com/i10651191/4467266030f97cf3.png)
下载源码
sudo apt install linux-source-4.15.0
这样就下载了源码包了
会直接放到这个目录下来
![](https://img.haomeiwen.com/i10651191/385057e126a1685d.png)
我直接解压到了自己的用户目录下
解压命令
tar -xvf linux-source-4.15.0.tar.bz2 -C ~
最新版的tar命令可以智能的识别压缩的算法
进入目录之前,做一件事情
sudo chmod 777 -R linux.source-4.15.0
省去后面不必要的权限麻烦
编写自定义函数
进入到 kernel 目录下
![](https://img.haomeiwen.com/i10651191/ae63eccb5d9789d7.png)
执行
vim sys.c
直接按 G 跳到文件末尾, 然后按 O 在最后一行的上一行添加代码, 进入编辑模式
asmlinkage long sys_helloworld(void){
printk( "helloworld!");
return 1;
}
![](https://img.haomeiwen.com/i10651191/ccae95779129ef4a.png)
添加声明
进入到如下目录:
![](https://img.haomeiwen.com/i10651191/1f068515c6265af2.png)
执行如下命令
vim syscalls.h
插入
asmlinkage long sys_helloworld(void);
如图:
![](https://img.haomeiwen.com/i10651191/43e53a217c7c9f21.png)
添加系统调用id
进入到如下目录
![](https://img.haomeiwen.com/i10651191/35792b4b7a28c954.png)
在最后一行插入
![](https://img.haomeiwen.com/i10651191/8cac64176fb609b2.png)
配置内核
先make clean一下
之后再补充
网友评论