雅乐网

计算机技术、学习成长

计算机 » 操作系统 » ubuntu编译内核并添加系统调用(3.12版本)

ubuntu编译内核并添加系统调用(3.12版本)

本文是ubuntu13.10 32位环境下面添加系统调用并编译内核的过程。只针对3.12内核版本,对于其他版本的内核可能修改方式不同。

环境是virtualbox下面的ubuntu13.10 32bit ,雅乐网发现硬盘文件vdi分配20G有点不够,建议大家多分配一点硬盘空间。

一、下载内核

登陆下载,得到文件linux-3.12.38.tar.xz,解压

解压完后得到文件夹linux-3.12.38 进入这个文件夹进行下面的操作。

二、添加一个系统调用

1. 系统调用函数实现:修改kernel/sys.c文件

在这个文件里添加一个函数.

 2. 设置系统调用号:修改arch/x86/syscalls/syscall_32.tbl

在最下面添加一行。注意第一列的调用号不能和已经有的冲突。

 3. 添加系统调用声明到头文件:修改 include/asm-generic/syscalls.h

在最后一行上面添加如下内容

scrn20150306170434

三、编译新内核

1. 安装必要的环境

在执行apt-get install之前,如果之前没有执行update就要先update一次

安装gcc等开发工具

安装ncurses库。这个在配置makeconfig的时候用到了。

 2. 编译内核 使用root用户身份

依次运行下列命令。可以加上-j选项指定多线程加快速度,例如 make -j4 bzImage 。

 四、测试系统调用

创建一个.c文件来测试

还可以使用dmesg -c来查看系统调用函数中printk输出的内容

修改sys.c后 重新编译内核

只需要执行

就可以了。第二次编译会很快。

如果文章对你有帮助,欢迎点赞或打赏(金额不限)。你的打赏将全部用于支付网站服务器费用和提高网站文章质量,谢谢支持。

版权声明:

本文由 原创,商业转载请联系作者获得授权。
非商业转载请注明作者 雅乐网 ,并附带本文链接:
http://www.yalewoo.com/ubuntu_compile_kernel.html

上一篇:

下一篇:

我要评论

验证码*: 3 + 2 =