Ubuntu安装Linux2.6.35内核编译
作者:互联网
- 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就行了。
标签:x86,vdso,make,sudo,35,内核,Ubuntu,Linux2.6,arch 来源: https://blog.csdn.net/chenhangx/article/details/106736809