1. 镜像下载

  • 使用树莓派最新的镜像Raspberry Pi OS Lite,内核版本6.6
  • 下载链接

https://downloads.raspberrypi.com/raspios_lite_arm64/images/raspios_lite_arm64-2024-07-04/2024-07-04-raspios-bookworm-arm64-lite.img.xz

2. 挂载镜像到ubuntu

  • 上一步下载的树莓派镜像

    jun@ubuntu:$ ls
    2024-07-04-raspios-bookworm-arm64-lite.img
  • 查看第一个未使用的回环设备

    jun@ubuntu:$ losetup -f
    /dev/loop0
  • 将树莓派镜像关联到回环设备

    jun@ubuntu:$ sudo losetup /dev/loop0 2024-07-04-raspios-bookworm-arm64-lite.img
    [sudo] password for jun:
  • 查看分区,检测到两个区,其中较小的是系统分区,较大的是根文件系统

    jun@ubuntu:$ sudo kpartx -av /dev/loop0
    add map loop0p1 (253:0): 0 1048576 linear 7:0 8192
    add map loop0p2 (253:1): 0 4481024 linear 7:0 1056768
  • 创建系统分区挂载目录

    jun@ubuntu:$ mkdir boot
  • 创建根文件系统挂载目录

    jun@ubuntu:$ mkdir rootfs
  • 挂载系统分区

    jun@ubuntu:$ sudo mount /dev/mapper/loop0p1 ./boot/
  • 挂载根文件系统

    jun@ubuntu:$ sudo mount /dev/mapper/loop0p2 ./rootfs/
  • 查看系统分区

    jun@ubuntu:ig210$ ls ./boot/
    bcm2710-rpi-2-b.dtb bcm2710-rpi-zero-2-w.dtb bcm2711-rpi-cm4s.dtb bootcode.bin fixup4db.dat fixup_x.dat kernel8.img start4.elf start_x.elf
    bcm2710-rpi-3-b.dtb bcm2711-rpi-400.dtb bcm2712d0-rpi-5-b.dtb cmdline.txt fixup4x.dat initramfs_2712 LICENCE.broadcom start4x.elf
    bcm2710-rpi-3-b-plus.dtb bcm2711-rpi-4-b.dtb bcm2712-rpi-5-b.dtb config.txt fixup_cd.dat initramfs8 overlays start_cd.elf
    bcm2710-rpi-cm3.dtb bcm2711-rpi-cm4.dtb bcm2712-rpi-cm5-cm4io.dtb fixup4cd.dat fixup.dat issue.txt start4cd.elf start_db.elf
    bcm2710-rpi-zero-2.dtb bcm2711-rpi-cm4-io.dtb bcm2712-rpi-cm5-cm5io.dtb fixup4.dat fixup_db.dat kernel_2712.img start4db.elf start.elf
  • 查看根文件系统

    jun@ubuntu:ig210$ ls ./rootfs/
    bin boot dev etc home lib lost+found media mnt opt proc root run sbin srv sys tmp usr var

3. 自定义系统配置

3.1 使能调试串口

  • 修改系统分区下的config.txt
    $ cd boot/
    boot$ sudo vi config.txt
  • config.txt的末尾添加如下内容
    enable_uart=1

3.2 设置用户名密码

  • 设置用户名为jun,密码为9

  • 在一台已经进入终端的树莓派中执行如下命令,获取密码的密文,如下表示设置密码为9

    root@jun:/home/jun# echo 9 | openssl passwd -6 -stdin
    $6$tSX0UC/bRp.tzUvf$gqnju1u.BPjPLz1659xUok2GHViNBdcW7D4o4g4tf9xlbVFn4SU2EaV3/0Q02yquTkluWdZBi8sKrB0n3vtaC/
  • 将用户名和密文拼接

    jun:$6$tSX0UC/bRp.tzUvf$gqnju1u.BPjPLz1659xUok2GHViNBdcW7D4o4g4tf9xlbVFn4SU2EaV3/0Q02yquTkluWdZBi8sKrB0n3vtaC/
  • 将上一步得到的拼接字符串写入到boot分区的userconf.txt文件中

3.3 设置主机名

  • 修改根文件系统下的hostname,修改主机名为jun

    sudo vi rootfs/etc/hostname

  • 修改根文件系统下的hosts文件,将127.0.1.1对应的主机名也修改为jun

3.4 开启SSH

  • boot分区中创建一个空文件SSH即可

    boot$ sudo touch SSH

3.5 使能IIC

  • 修改boot/config.txt,取消dtparam=i2c_arm=on的注释,添加dtparam=i2c_vc=on

  • 修改rootfs/etc/modules,在其中添加一行i2c-dev

    jun@ubuntu:$ sudo vi rootfs/etc/modules

3.6 使能SPI

  • 修改boot/config.txt,取消#dtparam=spi=on的注释,如果没有这一项,添加之

3.7 使能所有的串口

  • 修改boot/config.txt,添加如下内容

    deoverlay=uart0,txd0_pin=14,rxd0_pin=15
    dtoverlay=uart2,txd2_pin=0,rxd2_pin=1
    dtoverlay=uart3,txd3_pin=4,rxd3_pin=5
    dtoverlay=uart4,txd4_pin=8,rxd4_pin=9
    dtoverlay=uart5,txd5_pin_12,rxd5_pin=13

3.8 添加Logo

  • 在用户登录时显示Logo
  • 使用figlet这个工具可以生成点线图

  • rootfs/etc/profile文件末尾添加echo指令,打印点线图Logo
    jun@ubuntu:rootfs$ sudo vi etc/profile
    echo -e "\033[0;32m
    _____ _____ ____ _____
    |_ _| | ____| / ___| |_ _|
    | | | _| \___ \ | |
    | | | |___ ___) | | |
    |_| |_____| |____/ |_| \033[0m\n"

4. 取消挂载镜像

jun@ubuntu:$ ls
2024-07-04-raspios-bookworm-arm64-lite.img boot rootfs
jun@ubuntu:$ sudo umount ./boot
jun@ubuntu:$ sudo umount ./rootfs
jun@ubuntu:$ sudo losetup -d /dev/loop0

5. 镜像烧录

6. 写在最后

禁止转载到CSDN !!! 其它随意,转载请注明出处

树莓派CM4(三): 定制自己的树莓派镜像的更多相关文章

  1. [原创]树莓派CM4配置GPIO复用为i2c

    1.简介 项目中需要控制各种外设的电源,正常应该是通过GPIO进行控制,但是树莓派CM4的GPIO管脚有限,因此需要使用i2c扩展IO 查阅CM4-datesheet发现GPIO22和GPIO23可以 ...

  2. 树莓派 Learning 002 必备的操作 --- 08 实现PC端 远程登入 树莓派 --- 法1 远程登入树莓派的命令行状态

    树莓派 必备的操作 - 实现PC端 远程登入 树莓派 - 法1 远程登入树莓派的命令行状态 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 ...

  3. Docker 基本概念(三)-生命周期详解(镜像、容器、仓库)

    Docker三大组件:镜像.容器.仓库.  一.镜像 1 从仓库获取镜像 #一.从仓库获取镜像,帮助命令:docker pull -help 命令:docker pull [选项] [docker R ...

  4. 【树莓派】在vscode中连接树莓派并编写代码

    在树莓派里编写代码的话会比较麻烦因此可以在vscode中通过ssh连接树莓派并且编辑代码 参考: vscode通过ssh连接树莓派实现远程开发 VSCODE 远程开发树莓派 使用vscode打造pyt ...

  5. 第三篇——第二部分——第三文 配置SQL Server镜像——域环境

    原文:第三篇--第二部分--第三文 配置SQL Server镜像--域环境 原文出处:http://blog.csdn.net/dba_huangzj/article/details/28904503 ...

  6. 树莓派3B+(三)

    上一篇中,我们配置好了基本的raspbain系统,接下来我们可以用xrdp或者vnc在Windows上远程连接树莓派. 一.安装xrdp xrdp和vnc是两种常见的远程桌面协议,可以进行可视化界面远 ...

  7. 【树莓派】【网摘】树莓派与XBMC及Kodi、LibreELEC插件(三)

    之前的相关文章参考: [树莓派]树莓派与XBMC及Kodi.LibreELEC插件(一) [树莓派]树莓派与XBMC及Kodi.LibreELEC插件(二) [树莓派]树莓派与XBMC及Kodi.Li ...

  8. 玩转树莓派《三》——Scratch

    今天大姨妈折磨了一整个白天,稍微好点,现在打开实验楼,看到有个朋友回答了关于ubuntu上面操作SQL 的时候到处数据到txt文件,被批评没有思考问题,或许吧,虽然那个权限我现在想起确实是可读可写的, ...

  9. 树莓派CM4 wifi频繁断开连接

    CM4核心板上自带的wifi模块连接上华为/小米的路由器5G热点以后,会频繁断开连接,断开连接前使用 iw dev 查看wifi信息如下: phy#0 Unnamed/non-netdev inter ...

  10. 树莓派项目(三) 数字识别树莓派3+python3.5+opencv3.3+tensorflow1.7+keras

    https://blog.csdn.net/weixin_40707450/article/details/80290705

随机推荐

  1. 【读论文】CM-Gen: A Neural Framework for Chinese Metaphor Generation with Explicit Context Modelling

    为了更好的阅读体验,请点击这里 由于发不出论文,所以找点冷门方向做一做.从汉语比喻开始. 读完这篇论文之后我觉得 COLING 这方向我上我也行(ε=ε=ε=┏(゜ロ゜;)┛ 题目:CM-Gen: A ...

  2. LLM推理 - Nvidia TensorRT-LLM 与 Triton Inference Server

    1. LLM部署-TensorRT-LLM与Triton 随着LLM越来越热门,LLM的推理服务也得到越来越多的关注与探索.在推理框架方面,tensorrt-llm是非常主流的开源框架,在Nvidia ...

  3. selenium无头浏览器

    from selenium.webdriver import Edge # 在这里导入浏览器设置相关的类 from selenium.webdriver.edge.options import Opt ...

  4. 抓取豆瓣电影TOP250标题-年份-评分-评分人数

    import csv import re import requests headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; ...

  5. 嵌入式ARM端测试手册——全志T3+Logos FPGA评估板(下)

    前 言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu18.04.4 64bit 虚拟机:VMwa ...

  6. [UG 二次开发 python ] 截图,并用 opencv 显示出来

    需要 numpy,cv2 截图,去除背景,只显示主要部分 # nx: threaded from typing import Dict import NXOpen import numpy as np ...

  7. .NET CORE 部署提示 An error occurred while starting the application.

    错误提示: 解决方法 检查一下nuget引用包 是否更新了版本,如果升级或者降级了版本,需要将新的dll文件更新一下

  8. Nuxt框架中内置组件详解及使用指南(一)

    title: Nuxt框架中内置组件详解及使用指南(一) date: 2024/7/6 updated: 2024/7/6 author: cmdragon excerpt: 本文详细介绍了Nuxt框 ...

  9. Java反射与Fastjson的危险反序列化

    Preface 在前文中,我们介绍了 Java 的基础语法和特性和 fastjson 的基础用法,本文我们将深入学习fastjson的危险反序列化以及预期相关的 Java 概念. 什么是Java反射? ...

  10. Basic_pentesting_1靶机渗透流程

    Basic_pentesting_1 Description This is a small boot2root VM I created for my university's cyber secu ...