编译EulerOS/openEuler 内核方法,以修改pagesize 64K为例
【摘要】 编译EulerOS/openEuler 内核方法,以修改pagesize 64K为例
步骤说明:
Pagesize是内核参数,需要修改内核重新编译,然后运行新内核即可。
利用getconf PAGESIZE可以查看当前系统页大小,4096为4K,65536为64K。华为鲲鹏云虚拟机用的是EulerOS,默认页大小是4K,其他操作系统有可能默认就是64K,修改之前要确认好。
[root@test ~]#getconf PAGESIZE
4096
(1) 修改内核参数编译内核
1. 这里采用Euler编译环境方式,先下载Euler_compile_env.tar.gz。外部联系华为技术支持提供。内部推荐在CMC上对应版本下载,wget会很慢。
这里以EulerOS Server V200R008C00B380 版本为例:
https://cmc-szv.clouddragon.huawei.com/cmcversion/index/componentVersionView?deltaId=14525855
同时下载kernel源码包kernel-source-4.19.36-vhulk1907.1.0.h434.eulerosv2r8.aarch64.rpm,里面是发布的内核源码。
2. 解压编译环境
tar -xzvf Euler_compile_env.tar.gz
解压完成以后,进入Euler_compile_env目录,新建myComp目录。将内核源码包kernel-source-4.19.36-vhulk1907.1.0.h434.eulerosv2r8.aarch64.rpm放到此目录解压。
[root@test ~]#cd Euler_compile_env
[root@test ~]#mkdir myComp
[root@test ~]#cp your/rpm/path/kernel-source-4.19.36-vhulk1907.1.0.h434.eulerosv2r8.aarch64.rpm myComp
[root@test ~]#cd myComp
[root@test ~]#rpm2cpio kernel-source-4.19.36-vhulk1907.1.0.h434.eulerosv2r8.aarch64.rpm | cpio –divm
3. 进入chroot环境(必须使用root账户)
[root@test ~]# cd Euler_compile_env/
[root@test Euler_compile_env]# sh chroot.sh
4. 进入内核源码树
test:/ # cd myComp/usr/src/kernels/linux-4.19.36-vhulk1907.1.0.h434.eulerosv2r8.aarch64/
5. 拷贝配置文件
cp /lib/modules/4.19.36-vhulk1907.1.0.h430.eulerosv2r8.aarch64/build/Makefile .
cp /lib/modules/4.19.36-vhulk1907.1.0.h430.eulerosv2r8.aarch64/build/.config .
6. 修改.config
修改.config文件的CONFIG_MODULE_SIG_KEY选项为:CONFIG_MODULE_SIG_KEY="certs/signing_key.pem"
7. 修改pagesize为64K,执行make menuconfig,弹出图形化面板,选择Kernel Features-->Page size(64KB)设置为64K。
8. 并发编译内核rpm, 并发线程数可根据环境的cpu核数指定
make rpm-pkg –j8
9. 编译成功,在编译环境目录搜索rpm即可找到新编译的内核。
10. 如果获取不到配套的内核编译环境,使用一个最近的编译环境也是可以的,将内核补丁仓下载到编译环境中直接编译pkg即可。
(2) 设置新内核启动
1. 安装上面编译的内核rpm包,命令:rpm -ivh XXXX.rpm
2. 修改启动项选项
vi /boot/efi/EFI/euleros/grub.cfg
要检查刚安装的内核是不是系统优先启动的,如果不是要设置成优先启动。一般来说是默认启动,新安装的内核信息会放在第一个:
可以强行启动内核的序号,如修改:set default=“0”【注意:测试完成要改回原样】
3. 重新OS,注意时间可能有点长,内核需要重新分配页,第二次就好了。
4. 系统启动后,检查getconf PAGESIZE,如果是65536表示修改OK。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
作者其他文章
leedy2020/06/01 08:36:201楼编辑删除举报
In file included from ./include/linux/gfp.h:6:0,
from ./include/linux/mm.h:11,
from arch/arm64/kernel/asm-offsets.c:23:
./include/linux/mmzone.h:1093:2: error: #error Allocator MAX_ORDER exceeds SECTION_SIZE
#error Allocator MAX_ORDER exceeds SECTION_SIZE
^~~~~
leedy2020/06/01 12:40:12编辑删除举报
leedy2020/06/10 09:49:32编辑删除举报
leedy2020/06/10 09:52:21编辑删除举报
yd_2960172442023/03/23 09:03:46编辑删除举报
yd_2115722172023/06/27 14:02:49编辑删除举报
小鲲鹏2020/07/18 01:12:402楼编辑删除举报
yd_2115722172023/06/27 14:03:033楼编辑删除举报