- Ubuntu12.04
- Linux2.6.35
百度:Ubuntu更换内核方法步骤
参考:百度 在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就行了。

本文档详细介绍了在Ubuntu12.04上安装Linux2.6.35内核的步骤,包括下载源代码、安装必备工具、配置编译、解决报错问题以及更新GRUB引导。在编译过程中,作者遇到了三个主要错误,并给出了相应的解决方案,如修改特定函数前缀、调整Makefile等。
6789

被折叠的 条评论
为什么被折叠?



