树莓派镜像 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 卡。

相关推荐
AGI学习社11 分钟前
2024中国排名前十AI大模型进展、应用案例与发展趋势
linux·服务器·人工智能·华为·llama
H.2032 分钟前
centos7执行yum操作时报错Could not retrieve mirrorlist http://mirrorlist.centos.org解决
linux·centos
9毫米的幻想1 小时前
【Linux系统】—— 编译器 gcc/g++ 的使用
linux·运维·服务器·c语言·c++
helloliyh1 小时前
Windows和Linux系统安装东方通
linux·运维·windows
van叶~3 小时前
Linux探秘坊-------4.进度条小程序
linux·运维·小程序
秋风&萧瑟3 小时前
【数据结构】顺序队列与链式队列
linux·数据结构·windows
我科绝伦(Huanhuan Zhou)3 小时前
Linux 系统服务开机自启动指导手册
java·linux·服务器
hunter2062065 小时前
ubuntu终端当一段时间内没有程序运行时,自动关闭终端。
linux·chrome·ubuntu
代码讲故事7 小时前
从Windows通过XRDP远程访问和控制银河麒麟ukey v10服务器,以及多次连接后黑屏的问题
linux·运维·服务器·windows·远程连接·远程桌面·xrdp
qq_243050799 小时前
irpas:互联网路由协议攻击套件!全参数详细教程!Kali Linux入门教程!黑客渗透测试!
linux·网络·web安全·网络安全·黑客·渗透测试·系统安全