在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)+添加系统调用相关推荐

  1. linux 为什么编译内核,Linux内核编译与安装

    导读 Linux内核是一个用C语言写成的,符合POSIX标准的类Unix操作系统,内核是操作系统中最基本的一部分,提供了众多应用程序访问计算机硬件的机制.Linux内核的一大特点就是采用了整体式结构, ...

  2. 增大Linux的socket最大连接数(针对select,要编译内核)

    最近接的项目是模拟多个socket 客户端与服务器进行通信.由于Linux 系统的限制,在linux/include/linux/posix_types.h文件中有如下的宏定义: #undef __F ...

  3. linux添加windows字体文件夹里,如何把Windows下的字体添加到Linux中

    如何把Windows下的字体添加到Linux中 Linux(Fedora/Ubuntu/CentOS)的字体实在不尽如人意,而且在网页及文档显示时很多字无法显示出来,特别多的空白和乱码,其实,我们可以 ...

  4. linux4.9编译内核,Linux 4.9内核那些激动人心的功能

    推广 | 令人窒息的奖品等你―2016最权威的全球开发者调研 [51CTO.com快译]Linux 4.9-rc1版本已于近日发布,这标志着4.9内核合并窗口宣告结束.正因为如此,本文盘点了Linux ...

  5. csky linux 编译内核,linux内核编译(八)

    转: linux内核编译 # # Please see Documentation/ide.txt for help/info on IDE drives # # CONFIG_BLK_DEV_IDE ...

  6. Linux 系统调用(二)——使用内核模块添加系统调用(无需编译内核)

    本文将介绍Linux使用内核模块添加系统调用的方法(无需编译内核),思路就是修改映射在内存中的系统调用表,把一个空闲的系统调用表项指向自己写的模块中的函数,如果是已使用的表项,甚至可以实现系统调用劫持 ...

  7. linux 编译3g驱动_linux重新编译内核

    1.内容简介 linux内核简介 linux内核版本号 linux为什么重新编译内核 linux内核编译模式 linux内核功能划分 linux内核编译步骤 2linux内核简介 内核,是一个操作系统 ...

  8. linux装nvidia驱动没有图形界面,[转]Fedora 13下安装Nvidia显卡驱动的方法/Linux无法进入X Windows 图形界面的解决方法...

    再试一试这个方法:[转自]http://www.myexception.cn/image/505352.html VirtualBox3.1.2安装Fedora12后无法启动图形界面问题 Virtua ...

  9. linux fedora安装教程,Fedora 13正式版安装图文教程

    Fedora过去一直被当作Linux老手的最佳发行版,Fedora Project Leader Paul W.Frields说,Fedora 13将与以往不同,这次的版本对用户来讲会更新更友好!Fe ...

最新文章

  1. 【Ubuntu入门到精通系列讲解】系统信息相关命令
  2. 数据库密码加密 使用的是 druid加密
  3. SpringBoot 定制化原理
  4. kibana操作elasticsearch:多字段查询(multi_match)
  5. python中单下划线_foo与双下划线_Python中单下划线和双下划线
  6. Xilinx FPGA GTX的DRP速率配置详解
  7. 灰度调节_网关实现灰度发布
  8. CSS从大图中抠取小图完整教程(background-position应用) (转)
  9. C#中跨线程操作控件
  10. 自学python书籍怎么选-学习Python可以看书籍学习吗?老男孩Python入门课程
  11. 阿里云ddns解决动态IP问题
  12. 动软代码生成器生成数据库文档 (转载)
  13. c primer plus 第6版 中文版pdf_内功实力再精进 试驾上汽大通V80 PLUS城市版
  14. 南京大学计算机学院飞跃手册,2014南京大学物理学院飞跃手册.pdf
  15. java队列和栈 共同_java 栈和队列的模拟--java
  16. 不良事件总结怎么写_年度不良事件总结
  17. python3 append的用法_python中append的用法
  18. Taro 3 正式版发布!京东推出开放式跨端跨框架方案,这些React、Nerv、Vue、jQuey都能支持上了!...
  19. 阿里天池大数据竞赛(一)用ODPS提取特征
  20. 解决win10笔记本睡眠后无法唤醒甚至自动关机的问题

热门文章

  1. OJ1037: 四则运算
  2. OJ1024: 计算字母序号
  3. matlab在常微分方程的应用,MATLAB在常微分方程上应用.ppt
  4. java 并行_在使用Java并行流之前要三思而后行
  5. Keyboarding(信息学奥赛一本通-T1452)
  6. 查找二叉树(信息学奥赛一本通-T1367)
  7. 三连击(升级版)(洛谷-P1618)
  8. 信息学奥赛C++语言:推销产品
  9. flink sql udf jar包_编写Hive的UDF(查询平台数据同时向mysql添加数据)
  10. java junit 怎么写_使用JUnit测试java代码