树梅派Raspberry Pi OS(Debian)源码交叉编译升级内核参数PAGESIZE
环境:
device: Raspberry Pi 3 Model B Rev 1.2
os: 2024-03-15-raspios-bookworm-arm64 (Debian GNU/Linux 12 bookworm aarch64)
kernel: 6.6.20+rpt-rpi-v8
arch: aarch64
编译机: ubuntu 22.04
1. 查看内核版本
$ uname -r
6.6.20+rpt-rpi-v8
2. 下载Raspberry Pi OS最新linux内核源码
git clone --depth=1 https://github.com/raspberrypi/linux
3. 安装所需前置软件
sudo apt install gcc-aarch64-linux-gnu libncurses5-dev build-essential flex bison bc libssl-dev debhelper
4. 设置交叉编译环境
$ export ARCH=arm64
$ export KERNEL=kernel8
$ export CROSS_COMPILE=aarch64-linux-gnu-
5. 生成配置和修改内核参数
- 生成Raspberry Pi 3配置
$ make bcm2711_defconfig
- 修改内核参数
$ make menuconfig
选择 Kernel Features-->Page size(64KB)
设置为64K
6. 交叉编译linux内核deb
$ make bindeb-pkg -j8
编译完成后得到如下文件
arch/arm64/boot/Image.gz
linux-headers-6.6.22-v8_6.6.22-1_arm64.deb linux-image-6.6.22-v8_6.6.22-1_arm64.deb
linux-libc-dev_6.6.22-1_arm64.deb
linux-upstream_6.6.22-1_arm64.buildinfo
linux-upstream_6.6.22-1_arm64.changes
7. 安装内核deb
$ sudo dpkg --install linux-*.deb
安装完毕后
sudo cp /usr/lib/linux-image-6.6.22-v8/broadcom/* /boot/firmware/
sudo cp /usr/lib/linux-image-6.6.22-v8/overlays/* /boot/firmware/overlays/sudo mv kernel8.img kernel8.img.bak
sudo cp Image.gz /boot/firmware/kernel8.img
8. 重启后验证
$ uname -r
6.6.22-v8$ getconf PAGESIZE
65536
Reference:
https://www.raspberrypi.com/documentation/computers/linux_kernel.html#building