首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

树莓派CM4(三): 定制自己的树莓派镜像

编程知识
2024年08月16日 16:19

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 !!! 其它随意,转载请注明出处

From:https://www.cnblogs.com/zhijun1996/p/18363031
本文地址: http://www.shuzixingkong.net/article/1166
0评论
提交 加载更多评论
其他文章 CRC算法原理、推导及实现
CRC, Cyclic Redundancy Check, 循环冗余校验 1. 基本原理 CRC的本质是除法,把待检验的数据当作一个很大(很长)的被除数,两边选定一个除数(有的文献叫poly),最后得到的余数就是CRC的校验值。 判定方法: 将消息和校验和分开。计算消息的校验和(在附加W个零后),并
WPF 怎么把checkbox改成开关样式
先看一下效果吧: isChecked = false 的时候的效果 isChecked = true 的时候的效果 然后我们来实现一下这个效果吧 第一步:创建一个空的wpf项目; 第二步:在项目里面添加一个checkbox <Grid> <CheckBox HorizontalAl
WPF 怎么把checkbox改成开关样式 WPF 怎么把checkbox改成开关样式 WPF 怎么把checkbox改成开关样式
games101 作业4及作业5 详解光线追踪框架
games101 作业4及作业5 详解光线追踪框架 作业4 代码分析 作业四的代码整体比较简单 主要流程就是 通过鼠标事件 获取四个控制点的坐标 然后绘制贝塞尔曲线的内容就由我们来完成 理论分析 贝塞尔曲线的理论就是给定一组控制点 然后不断的在控制点之间进行插值 再在得到的新的插值点之间进行插值 具
games101 作业4及作业5 详解光线追踪框架 games101 作业4及作业5 详解光线追踪框架 games101 作业4及作业5 详解光线追踪框架
.NET8 Blazor 从入门到精通:(二)组件
目录Blazor 组件基础路由导航参数组件参数路由参数生命周期事件状态更改组件事件 Blazor 组件 基础 新建一个项目命名为 MyComponents ,项目模板的交互类型选 Auto ,其它保持默认选项: 客户端组件 (Auto/WebAssembly): 最终解决方案里面会有两个项目:服务器
.NET8 Blazor 从入门到精通:(二)组件 .NET8 Blazor 从入门到精通:(二)组件 .NET8 Blazor 从入门到精通:(二)组件
unity游戏源码和教程:智能分析话语的三维唯美世界
unity游戏源码和教程:智能分析话语的三维唯美世界。 这个游戏的源码(含教程文档)我放到了夸克网盘https://pan.quark.cn/s/618fb9459029 话语分析是有用的,假如游戏中,你是队长,带着NPC队友张三和李四,路上遇到蛇,你可以说“张三打蛇,李四保护张三。”这就需要先分析
unity游戏源码和教程:智能分析话语的三维唯美世界 unity游戏源码和教程:智能分析话语的三维唯美世界 unity游戏源码和教程:智能分析话语的三维唯美世界
Unity FPSSample Demo研究
1.前言 Unity FpsSample Demo大约是2018发布,用于官方演示MLAPI(NetCode前身)+DOTS的一个FPS多人对战Demo。 Demo下载地址(需要安装Git LFS) :https://github.com/Unity-Technologies/FPSSample 下
Unity FPSSample Demo研究 Unity FPSSample Demo研究 Unity FPSSample Demo研究
10W数据导入该如何与库中数据去重?
使用的是PostgreSQL 在做大数据量(十万级)导入时,某些字段和数据库表里数据(千万级)重复的需要排除掉,把表数据查询出来用程序的方式判断去重效率很低,于是考虑用临时表。 先把新数据插入到临时表里,临时表结构和原始表一致。 用SQL的方式把不重复的数据DataA查询出来。 把DataA插入到原
获取Windows个性化中自带的聚焦图片
想要保存登录屏幕(锁屏界面)的背景图片,可以通过以下脚本一键获取: @echo off setlocal enabledelayedexpansion :: Windows Spotlight 锁屏图片资源地址 set "sourcePath=%localappdata%\Packages