linux6.5内核编译,详解在centos6.5上编译linux内核

安装centos系统;

系统镜像下载地址http://mirrors.163.com/centos/6.5/isos/i386/

下载的是32为的centos6.5;

从linux kernel官网https://www.kernel.org/ 上下载linux内核源码;

我下载的版本是longterm: 2.6.32.61;

解压源码文件压缩包后,进入内核文件夹;

make menuconfig 出现错误 提示没有ncurses库;

yum search ncurses 搜索一下ncurse库:

ncurses.i686 : Ncurses support utilities

ncurses-devel.i686 : Development files for the ncurses library

ncurses-libs.i686 : Ncurses libraries

ncurses-static.i686 : Static libraries for the ncurses library

ncurses-base.i686 : Descriptions of common terminals

ncurses-term.i686 : Terminal descriptions

ocaml-curses.i686 : OCaml bindings for ncurses

然后yum install ncurses-devel.i686

make menuconfig 成功

然后开始编译

make -j4  //开四个线程编译

出现/home/linux/linux-2.6.32.61/usr/include/asm/ptrace.h:5: included file 'linux/linkage.h' is not exported 错误

解决方法:编辑linux-2.6.32.61/arch/x86/include/asm/ptrace.h,注释掉以下三行:

#include

extern asmregparm long syscall_trace_enter(struct pt_regs *); (146行处)

extern asmregparm void syscall_trace_leave(struct pt_regs *);

注意此处是c语言的头文件,注释方法为/*......*/。

增加以下两行:

extern long syscall_trace_enter(struct pt_regs *);

extern void syscall_trace_leave(struct pt_regs *);

通过修改syscall_trace_enter和syscall_trace_leave函数的类型而解决问题。

然后重新make -j4

make modules

make modules_install

make install

再修改/boot/grub/menu.lst

default=1

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.32.61)

root (hd0,0)

kernel /vmlinuz-2.6.32.61 ro root=UUID=eda1d174-c336-4bed-89a3-270e8473fc70 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

initrd /initramfs-2.6.32.61.img

title CentOS (2.6.32-431.el6.i686)

root (hd0,0)

kernel /vmlinuz-2.6.32-431.el6.i686 ro root=UUID=eda1d174-c336-4bed-89a3-270e8473fc70 rd_NO_LUKS rd_NO_LVM LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet

initrd /initramfs-2.6.32-431.el6.i686.img

通过default的值选择启动的内核,现在defaut=1,选择的内核是2.6.32-431;

而卧们最新编译并安装的内核是2.6.32.61,所以修改defaut=0;

选择最新编译的内核2.6.32.61作为启动项。

最后重新启动系统,就进入了刚才编译安装的内核版本为2.6.32.61的系统。

未完待续。。。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值