【OpenEuler系列 01】重新编译openEuler内核,修改内核PAGESIZE大小为4K

该文详细介绍了如何配置openeuler软件源,清理yum缓存,安装必要依赖,下载内核源码并修改内核参数以将PAGESIZE设置为4K。接着,文章描述了编译内核,安装,更新grub启动列表,设置默认启动内核以及重启后的验证步骤。

一、配置openeuler源

1、执行如下命令, 下载新的openEulerOS.repo到/etc/yum.repos.d/目录下.

for aarch64 :

wget -O /etc/yum.repos.d/openEulerOS.repo https://repo.huaweicloud.com/repository/conf/openeuler_aarch64.repo
2、执行yum clean all清除原有yum缓存。
3、执行yum makecache生成新的缓存。
4、添加基本OS依赖
yum install -y gcc gcc-c++ make cmake unzip zlib-devel libffi-devel openssl-devel pciutils net-tools sqlite-devel lapack-devel openblas-devel gcc-gfortran ncurses-devel bison m4 flex bc

二、重新编译openeuler内核

1、下载当前版本的内核源码
yum install -y kernel-source.aarch64
2、开始修改内核参数
cd /usr/src/linux-4.19.90-2212.4.0.0183.oe1.aarch64/
make menuconfig
3、修改内核PAGESIZE大小为4K。
3.1 选择“Kernel Features”。

3.2 按“Enter”键进入下一级菜单,选择“Page size(64KB)”。

3.3 按“Enter”键进入选择,按“Space”键选择4KB。

3.4 按两次“exit”保存并退出。

4、开始编译
make -j 64
5、安装
make modules_install
make install
6、更新grub启动列表
grub2-mkconfig -o /boot/efi/EFI/openEuler/grub.cfg
7、修改默认内核启动项。
cat /etc/grub2-efi.cfg  | grep openEuler


其中“openEuler (4.19.90) 20.03 (LTS-SP3)”为新安装内核版本。

grub2-set-default "openEuler (4.19.90) 20.03 (LTS-SP3)"
8、重启系统。
reboot
9、重启后查看PAGESIZE
getconf PAGESIZE

结果符合预期

[root@localhost ~]#
[root@localhost ~]# getconf PAGESIZE
4096
[root@localhost ~]#
为了编译适用于 RK3576 芯片的 Linux 内核,可以参考以下步骤进行操作: ### 准备工作 1. **获取源代码** - 首先需要从 Rockchip 官方仓库或其他可信来源获取适用于 RK3576 的 Linux 内核源码。通常情况下,可以从 GitHub 上找到对应的仓库。 2. **安装必要的依赖项** - 在开始编译之前,确保开发环境中已经安装了必要的工具链和库文件。这包括但不限于 `gcc`, `make`, `libncurses-dev`(用于配置菜单界面),以及交叉编译所需的工具链(如 `aarch64-linux-gnu-gcc`)等。 ### 编译过程 1. **设置交叉编译环境** - 如果是在 x86 架构的主机上编译 ARM64 架构的目标内核,则需要设置交叉编译环境。可以通过安装相应的交叉编译工具链来实现,例如通过包管理器安装 `gcc-aarch64-linux-gnu`。 2. **配置内核选项** - 进入内核源码目录后,使用 `make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig` 命令加载默认配置。如果有特定需求,可以通过 `make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- menuconfig` 进一步调整内核配置选项。 3. **编译内核** - 使用 `make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j$(nproc)` 命令开始编译内核。此命令会利用所有可用的核心并行编译,加快编译速度。 4. **编译设备树** - 对于特定的硬件平台,还需要编译对应的设备树文件。可以通过执行 `make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- dtbs` 来完成这一任务。 5. **打包内核镜像** - 编译完成后,可以使用 `mkbootimg` 工具将编译好的内核与 ramdisk 等组件打包成一个完整的启动镜像。例如: ```bash mkbootimg --kernel arch/arm64/boot/Image --ramdisk initrd.img --cmdline "console=ttyS0,115200n8" --base 0x00000000 --pagesize 2048 --dt device_tree_blob.dtb -o boot.img ``` 其中 `--cmdline` 参数指定了传递给内核的命令行参数,`--base` 指定了内存基地址,`--pagesize` 表示页面大小,`--dt` 后跟的是设备树二进制文件路径[^2]。 ### 注意事项 - 在整个过程中,需要注意目标架构的选择是否正确,以及交叉编译工具链是否匹配目标平台。 - 如果遇到错误信息,比如 `make: *** [kernel.img] Error 127`,这可能是由于缺少某些依赖项或路径配置不正确导致的。此时应检查相关工具是否已正确安装,并确认 PATH 环境变量是否包含这些工具的路径。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值