树莓派镜像 DIY 制作

  1. 安装交叉编译环境

    需要一个 Ubunut18.04 的64位的主机 或者直接在树莓派系统上进行编译;

    复制代码
    apt-get update
    apt-get install -y bc build-essential gcc-aarch64-linux-gnu git unzip
  2. 获取树莓派内核源码

    bash 复制代码
    # 下载成功后,在当前目录下有一个 linux 的文件夹
    git clone --depth=1 https://github.com/raspberrypi/linux --branch rpi-6.6.y

    获取树莓派官方 img 文件

    bash 复制代码
    wget https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-10-28/2024-10-22-raspios-bookworm-arm64-lite.img.xz

    解压 2024-10-22-raspios-bookworm-arm64-lite.img.xz

    bash 复制代码
    # 安装解压工具
    sudo apt-get install xz-utils
    # 解压
    xz --decompress --stdout 2024-10-22-raspios-bookworm-arm64-lite.img.xz > 2024-10-22-raspios-bookworm-arm64-lite.img
  3. 编译内核

    bash 复制代码
    # 进入到内核源码
    cd linux
    # 生成配置
    make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- bcm2712_defconfig
    # 配置内核
    make menuconfig
    # 编译内核
    make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu-   -j8
  4. 查看 2024-10-22-raspios-bookworm-arm64-lite.img

    bash 复制代码
    # fdisk -l 2024-10-22-raspios-bookworm-arm64-lite.img
    Disk 2024-10-22-raspios-bookworm-arm64-lite.img: 2.67 GiB, 2864709632 bytes, 5595136 sectors
    Units: sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disklabel type: dos
    Disk identifier: 0x385cce61
    
    Device                                      Boot   Start     End Sectors  Size Id Type
    2024-10-22-raspios-bookworm-arm64-lite.img1         8192 1056767 1048576  512M  c W95 FAT32 (LBA)
    2024-10-22-raspios-bookworm-arm64-lite.img2      1056768 5595135 4538368  2.2G 83 Linux
  5. 挂在镜像分区到文件系统

    bash 复制代码
    # 根分区
    # offset: 541065216 = 512*1056768	  sector size:512 bytes     起始地址:1056768
    mount -o loop,offset=541065216 2024-10-22-raspios-bookworm-arm64-lite.img /mnt
    # 启动分区
    # offset: 4194304 = 512*8192,sizelimit:536870912 = 512*1048576
    mount -o loop,offset=4194304,sizelimit=536870912  2024-10-22-raspios-bookworm-arm64-lite.img /mnt/boot
  6. 安装内核, 将编译好的内核以及设备树复制到系统中

    bash 复制代码
    cp linux/arch/arm64/boot/Image /mnt/boot/kernel8.img
    cp linux/arch/arm64/boot/dts/broadcom/bcm2712-rpi-5-b.dtb /mnt/boot
  7. 安装内核模块

    bash 复制代码
    make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu INSTALL_MOD_PATH=/mnt modules_install
  8. 调整config.txt

    bash 复制代码
    vim /mnt/boot/config.txt
    
    # 在最后加上 kernel=kernel8.img
  9. 卸载分区

    bash 复制代码
    umount /mnt/boot && umount /mnt
  10. 结束

    可以将 2024-10-22-raspios-bookworm-arm64-lite.img 镜像通过 Raspberry Pi Imager 烧录工具制作系统启动的 SD 卡。

相关推荐
宇宙第一小趴菜1 分钟前
08 修改自己的Centos的软件源
linux·运维·centos
bug攻城狮2 分钟前
彻底禁用 CentOS 7.9 中 vi/vim 的滴滴声
linux·运维·服务器·centos·vim
XMYX-039 分钟前
Linux 物理机如何区分 SSD 与 HDD ——以 DELL PERC H730 Mini 为例
linux·运维
轻松Ai享生活41 分钟前
5 天学习 Linux Kernel 主要原理 | Day 3:内存管理与Swap机制
linux
轻松Ai享生活42 分钟前
QAT 与 GPU 在SHA-1 运算中的优劣
linux
行思理1 小时前
linux 安全与防护,全方向讲解
linux·安全·github
tan180°2 小时前
Boost搜索引擎 查找并去重(3)
linux·c++·后端·搜索引擎
yongui478342 小时前
CentOS系统如何查看当前内存容量
linux·运维·centos
xzq_java2 小时前
CentOS操作系统虚拟机安装以及连接工具下载和远程连接工具远程连接
linux·运维·centos
逐梦吧!旅行者3 小时前
Linux之环境变量(内容由浅入深,层层递进)
linux·运维