linux 2.6 添加系统调用,在Fedora 13里编译内核(linux-2.6.36)+添加系统调用
在Fedora 13里编译内核(linux-2.6.36)+添加系统调用
首先说明:我系统本来内核是2.6.33版本,我编译的是2.6.36版本
第一步:下载内核源代码。我下载的是linux-2.6.36。然后解压到/usr/src下。
第二步:修改三个文件。因为是最新的2.6.36版本,很多文件名有细微差别。
1、在arch/x86/kernel/syscall_table_32.S中添加:.long sys_mysyscall(当然也可以在syscall_table_64.S中修改
但是在2.6.27版本里不能在entry.S中改)
2、在arch/x86/include/asm/unistd_32.h中添加:#define __NR_mysyscall 341(这个和上面一样,它同时有unistd.h )
unistd_32.h , unistd_64.h三个文件)
3、在/kernel/sys.c中添加该系统调用实现的功能:
asmlinkage int sys_mycall(int argc){
return argc;
}
第三步:准备工作做好后,就可以开始编译过程了。
1.进入内核文件下
cd linux-2.6.36
2.配置
make mrproper
make config
make menuconfig
make xconfig
make oldconfig
四选一,我编译的时候选的oldconfig, 内核配置还是比较麻烦的,www.linuxidc.com自己又不是太懂, 就直接使用旧配置。
3.编译。2.6.36已经是非常高的版本了,所以执行make all,就相当于:make dep(建立相依的属性关系),make clean
(将旧的资料去除掉),make bzImage(开始编译核心),make modules(开始编译模块)
make all
make dep。
make clear。
make bzImage。然后就是开始漫长的编译过程了,最后终于生成bzImage。所在文件的路径会有提示,如我的是
linux-2.6.36/arch/x86/boot/bzImage。
make modules
4.安装模块。安装模块到/lib/modules/,以后程序运行时从这个目录加载模块。
make modules_install
5.安装内核。把make all 生成的vmlinuz和System.map复制到/boot目录下同时修改grub /boot/grub/menu.lst.
修改menu.lst是自动完成的哦!!不用手动修改。
make install
6:重启,进入新内核,写测试程序。
linux 2.6 添加系统调用,在Fedora 13里编译内核(linux-2.6.36)+添加系统调用相关推荐
- linux 为什么编译内核,Linux内核编译与安装
导读 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统,内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.Linux内核的一大特点就是采用了整体式结构, ...
- 增大Linux的socket最大连接数(针对select,要编译内核)
最近接的项目是模拟多个socket 客户端与服务器进行通信.由于Linux 系统的限制,在linux/include/linux/posix_types.h文件中有如下的宏定义: #undef __F ...
- linux添加windows字体文件夹里,如何把Windows下的字体添加到Linux中
如何把Windows下的字体添加到Linux中 Linux(Fedora/Ubuntu/CentOS)的字体实在不尽如人意,而且在网页及文档显示时很多字无法显示出来,特别多的空白和乱码,其实,我们可以 ...
- linux4.9编译内核,Linux 4.9内核那些激动人心的功能
推广 | 令人窒息的奖品等你―2016最权威的全球开发者调研 [51CTO.com快译]Linux 4.9-rc1版本已于近日发布,这标志着4.9内核合并窗口宣告结束.正因为如此,本文盘点了Linux ...
- csky linux 编译内核,linux内核编译(八)
转: linux内核编译 # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE ...
- Linux 系统调用(二)——使用内核模块添加系统调用(无需编译内核)
本文将介绍Linux使用内核模块添加系统调用的方法(无需编译内核),思路就是修改映射在内存中的系统调用表,把一个空闲的系统调用表项指向自己写的模块中的函数,如果是已使用的表项,甚至可以实现系统调用劫持 ...
- linux 编译3g驱动_linux重新编译内核
1.内容简介 linux内核简介 linux内核版本号 linux为什么重新编译内核 linux内核编译模式 linux内核功能划分 linux内核编译步骤 2linux内核简介 内核,是一个操作系统 ...
- linux装nvidia驱动没有图形界面,[转]Fedora 13下安装Nvidia显卡驱动的方法/Linux无法进入X Windows 图形界面的解决方法...
再试一试这个方法:[转自]http://www.myexception.cn/image/505352.html VirtualBox3.1.2安装Fedora12后无法启动图形界面问题 Virtua ...
- linux fedora安装教程,Fedora 13正式版安装图文教程
Fedora过去一直被当作Linux老手的最佳发行版,Fedora Project Leader Paul W.Frields说,Fedora 13将与以往不同,这次的版本对用户来讲会更新更友好!Fe ...
最新文章
- 【Ubuntu入门到精通系列讲解】系统信息相关命令
- 数据库密码加密 使用的是 druid加密
- SpringBoot 定制化原理
- kibana操作elasticsearch:多字段查询(multi_match)
- python中单下划线_foo与双下划线_Python中单下划线和双下划线
- Xilinx FPGA GTX的DRP速率配置详解
- 灰度调节_网关实现灰度发布
- CSS从大图中抠取小图完整教程(background-position应用) (转)
- C#中跨线程操作控件
- 自学python书籍怎么选-学习Python可以看书籍学习吗?老男孩Python入门课程
- 阿里云ddns解决动态IP问题
- 动软代码生成器生成数据库文档 (转载)
- c primer plus 第6版 中文版pdf_内功实力再精进 试驾上汽大通V80 PLUS城市版
- 南京大学计算机学院飞跃手册,2014南京大学物理学院飞跃手册.pdf
- java队列和栈 共同_java 栈和队列的模拟--java
- 不良事件总结怎么写_年度不良事件总结
- python3 append的用法_python中append的用法
- Taro 3 正式版发布!京东推出开放式跨端跨框架方案,这些React、Nerv、Vue、jQuey都能支持上了!...
- 阿里天池大数据竞赛(一)用ODPS提取特征
- 解决win10笔记本睡眠后无法唤醒甚至自动关机的问题
热门文章
- OJ1037: 四则运算
- OJ1024: 计算字母序号
- matlab在常微分方程的应用,MATLAB在常微分方程上应用.ppt
- java 并行_在使用Java并行流之前要三思而后行
- Keyboarding(信息学奥赛一本通-T1452)
- 查找二叉树(信息学奥赛一本通-T1367)
- 三连击(升级版)(洛谷-P1618)
- 信息学奥赛C++语言:推销产品
- flink sql udf jar包_编写Hive的UDF(查询平台数据同时向mysql添加数据)
- java junit 怎么写_使用JUnit测试java代码