树莓派镜像 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 小时前
linux配置动态ip
linux·运维
segwyang2 小时前
Ubuntu 环境下通过 Apt-get 安装软件
linux·运维·ubuntu
伏虎山真人2 小时前
测试杂文 - linux串口打印
linux·运维·服务器
橙子qyfftf2 小时前
ssh隧道代理访问内网应用
大数据·linux·运维·ssh
rayylee2 小时前
kvm-dmesg:从宿主机窥探虚拟机内核dmesg日志
linux·运维·服务器·驱动开发·后端·安全
努力的小T2 小时前
Linux Docker 部署 Jenkins 详解教程
linux·运维·服务器·docker·云计算·jenkins
dessler4 小时前
云计算&虚拟化-kvm-webvirtmgr搭建
linux·运维·云计算
哎呦喂-ll4 小时前
Linux进阶:软件安装、网络操作、端口、进程等
linux
SuperherRo4 小时前
蓝队技能-应急响应篇&Rookit后门&进程提取&网络发现&隐藏技术&Linux杀毒&OpenArk
linux·windows·rookit·应急响应·蓝队