编译EulerOS/openEuler 内核方法,以修改pagesize 64K为例

举报
阿奇@汪汪队 发表于 2020/03/19 21:21:32 2020/03/19
【摘要】 编译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

1584623944645368.png

同时下载kernel源码包kernel-source-4.19.36-vhulk1907.1.0.h434.eulerosv2r8.aarch64.rpm,里面是发布的内核源码。

1584623957683376.png

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

要检查刚安装的内核是不是系统优先启动的,如果不是要设置成优先启动。一般来说是默认启动,新安装的内核信息会放在第一个:

1584623973827409.png

可以强行启动内核的序号,如修改:set default=“0”【注意:测试完成要改回原样】

1584624006753559.png

 

3.  重新OS,注意时间可能有点长,内核需要重新分配页,第二次就好了。

4.  系统启动后,检查getconf PAGESIZE,如果是65536表示修改OK。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。