Welcome 微信登录

首页 / 操作系统 / Linux / 在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 mrpropermake configmake menuconfigmake xconfigmake 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 modules4.安装模块。安装模块到/lib/modules/,以后程序运行时从这个目录加载模块。make modules_install5.安装内核。把make all 生成的vmlinuz和System.map复制到/boot目录下同时修改grub /boot/grub/menu.lst.修改menu.lst是自动完成的哦!!不用手动修改。make install6:重启,进入新内核,写测试程序。Ubuntu 10.10中最大最小化关闭按钮位置的改变Ubuntu 10.10 搭建 red5phone相关资讯      Fedora 13 
  • Fedora 13将于6月24日停止更新  (06/14/2011 16:41:06)
  • Fedora 13 下Google Earth 无法启  (04/10/2011 14:41:44)
  • Fedora 13上SSH访问远程机器太慢问  (03/10/2011 07:03:22)
  • Fedora 13/14 为DELL 1395安装无线  (05/01/2011 22:10:24)
  • Fedora 13下建立 omap3530 开发环  (03/12/2011 07:09:59)
  • Fedora 13 + VirtualBox 3.2 安装  (12/01/2010 14:42:00)
本文评论 查看全部评论 (0)
表情: 姓名: 字数