系统相关
首页 > 系统相关> > Ubuntu安装Linux2.6.35内核编译

Ubuntu安装Linux2.6.35内核编译

作者:互联网

参考:百度 在ubuntu安装Linux2.6.35内核
https://www.linuxidc.com/Linux/2011-08/40124.htm
http://www.mamicode.com/info-detail-2101399.html
https://blog.csdn.net/xin_yu_xin/article/details/42184899

第一步:下载解压内核源代码linux-2.6.35.tar.gz

sudo tar -xvf linux-2.6.35.tar.xz -C /usr/src/
cd /usr/src

第二步:
安装编译内核时需要的工具(sudo apt install)

sudo apt-get install build-essential kernel-package libncurses5-dev

第三步:配置编译源码
切换至root用户 sudo su

make menuconfig
make

报错及解决方案

报错1内核函数错误

size expression for do_hypervisor_callback does not evaluate to a constant
/tmp/ccINj1Ii.s: Assembler messages:
/tmp/ccINj1Ii.s: Error: .size expression for do_hypervisor_callback does not evaluate to a constant
make[2]: *** [arch/x86/kernel/entry_64.o] 错误 1
make[1]: *** [arch/x86/kernel] 错误 2
make: *** [arch/x86] 错误 2


解决方式

vi arch/x86/kernel/entry_64.S

END(do_hypervisor_callback)改为END(xen_do_hypervisor_callback)
在这里插入图片描述
修改,在do前面加上xen_(wq保存退出再make)


报错2

CC arch/x86/vdso/vgetcpu.o
CC arch/x86/vdso/vvar.o
VDSO arch/x86/vdso/vdso.so.dbg
gcc: 错误: elf_x86_64:没有那个文件或目录
make[2]: *** [arch/x86/vdso/vdso.so.dbg] 错误 1
make[1]: *** [arch/x86/vdso] 错误 2
make: *** [arch/x86] 错误 2
在这里插入图片描述
解决方式
vi arch/x86/vdso/Makefile
进去:set nu显示行号 找对应行

1  修改28行,将-m elf_x86_64 修改为-m64;
2  修改72行,将-m elf_i386 修改为-m32

报错3

duplicate member ‘page’

解决方式

这个错排完就能正常make了


第四步:执行sudo make modules_install install,这部应该是可以直接编译和安装模块,就不需要先make modules(编译内核)再make modules_install(安装内核)了。
第五步:执行sudo make install安装内核;
第六步:配置grub引导。
执行命令sudo gedit /etc/default/grub,配置/etc/default/grub文件在文件中添加GRUB_TIMEOUT_STYLE=menu,GRUB_HIDDEN_TIMEOUT=0改为大于0的数即可,执行命令update-grub;执行完这一步基本上就完成了内核的编译和安装,重启ubuntu就行了。

在这里插入图片描述

标签:x86,vdso,make,sudo,35,内核,Ubuntu,Linux2.6,arch
来源: https://blog.csdn.net/chenhangx/article/details/106736809