香橙派--关于jammy-xfce-arm64.f12a43b3e629442a073a7236bf9166ce.tar.lz4的rootfs定制与镜像制作

使用 x64 的 Ubuntu22.04 电脑编译

  1. Linux SDK,即 orangepi-build,支持在安装有 Ubuntu 22.04 的电脑上运行,所以下载 orangepi-build 前,请首先确保自己电脑已安装的 Ubuntu 版本是 Ubuntu22.04。查看电脑已安装的 Ubuntu 版本的命令如下所示,如果 Release 字段显示的不是 22.04,说明当前使用的 Ubuntu 版本不符合要求,请更换系统后再进行下面的操作。

    复制代码
      lsb_release -a

    得到如下输出

    复制代码
     No LSB modules are available.
     Distributor ID:
     Ubuntu
     Description:
     Ubuntu 22.04 LTS
     Release:
     Codename:
     22.04
     jammy
  2. 如果电脑安装的是 Windows 系统,没有安装有 Ubuntu 22.04 的电脑,可以考虑使用 VirtualBox 或者 VMware 来在 Windows 系统中安装一个 Ubuntu 22.04 虚拟机。但是请注意,不要在 WSL 虚拟机上编译 orangepi-build,因为 orangepi-build 没有在WSL 虚拟机中测试过,所以无法确保能正常在 WSL 中使用 orangepi-build。

  3. Ubuntu 22.04 amd64 版本的安装镜像下载地址为:

    复制代码
     https://mirrors.tuna.tsinghua.edu.cn/ubuntu-releases/22.04/ubuntu-22.04.3-desktop-amd64.iso

    或者

    复制代码
     https://repo.huaweicloud.com/ubuntu-releases/22.04/ubuntu-22.04.3-desktop-amd64.iso
  4. 在电脑中或者虚拟机中安装完 Ubuntu 22.04 后,请先设置 Ubuntu 22.04 的软件源为清华源,不然后面安装软件的时候很容易由于网络原因而出错

    a. 替换清华源的方法参考这个网页的说明即可

    复制代码
     https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/

    b.注意 Ubuntu 版本需要切换到 22.04

    c.需要替换的/etc/apt/sources.list 文件的内容为

    复制代码
     sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak

    再执行

    复制代码
     sudo vim /etc/apt/sources.list

    然后按照下面修改:

    复制代码
     # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
     deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
     # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
     deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
     # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
     deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
     # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
     deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
     # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
     # 预发布软件源,不建议启用
     # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
     # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

    d.替换完后需要更新下包信息,并确保没有报错

    复制代码
     sudo apt update

    e.另外,由于内核和 U-boot 等源码都是存放在 GitHub 上的,所以编译镜像的时候请确保电脑能正常从 GitHub 下载代码,这点是非常重要的。

从 github 下载 orangepi-build

linux sdk 其实指的就是 orangepi-build 这套代码,orangepi-build 是基于 armbian build 编译系统修改而来的,使用 orangepi-build 可以编译出多个版本的 linux 镜像。

首先下载 orangepi-build 的代码,命令如下所示:

复制代码
sudo apt-get update
sudo apt-get install -y git
git clone https://github.com/orangepi-xunlong/orangepi-build.git -b next

注意,Orange Pi 5 开发板是需要下载 orangepi-build 的 next 分支源码的,上面的 git clone 命令需要指定 orangepi-build 源码的分支为 next。

编译 ,运行 build.sh 脚本,记得加 sudo 权限

复制代码
 sudo ./build.sh

按照提示一步一步把所有的都编译完即可。

定制rootf

rootfs压缩包在

复制代码
orangepi-build/external/cache/rootfs/jammy-xfce-arm64.f12a43b3e629442a073a7236bf9166ce.tar.lz4

解压根文件系统

复制代码
cd external/cache/rootfs/
mkdir rootfs
sudo tar -I lz4 -pxf  jammy-xfce-arm64.f12a43b3e629442a073a7236bf9166ce.tar.lz4 -C rootfs

挂载rootfs

复制代码
sudo chroot rootfs

然后在这个虚拟机里面进行一系列操作就可以了

可以参考我这个博客:

复制代码
https://blog.csdn.net/weixin_43269994/article/details/135201633?spm=1001.2014.3001.5502

操作完后执行:

复制代码
sudo umount rootfs

然后执行:

复制代码
cd rootfs

然后执行

复制代码
sudo tar -I lz4 -pcf   ../jammy-xfce-arm64.f12a43b3e629442a073a7236bf9166ce.tar.lz4 *

至此,定制完成

回到主目录执行build.sh即可

相关推荐
go_bai29 分钟前
Linux--进程池
linux·c++·经验分享·笔记·学习方法
QT 小鲜肉32 分钟前
【QT/C++】Qt网络编程进阶:UDP通信和HTTP请求的基本原理和实际应用(超详细)
c语言·网络·c++·笔记·qt·http·udp
轻舟客丶1 小时前
ORA-03113的解决方案
数据库·经验分享·笔记·oracle
老虎06271 小时前
黑马点评学习笔记07(缓存工具封装)
笔记·学习·缓存
大邳草民1 小时前
深入理解 Python 的“左闭右开”设计哲学
开发语言·笔记·python
im_AMBER2 小时前
React 12
前端·javascript·笔记·学习·react.js·前端框架
清钟沁桐2 小时前
mlir 编译器学习笔记之四 -- 调度
笔记·学习·mlir
lijun_xiao20092 小时前
elasticsearch学习笔记-02
笔记·学习·elasticsearch
wdfk_prog3 小时前
[Linux]学习笔记系列 -- [kernel][time]timer
linux·笔记·学习
Wilber的技术分享3 小时前
【大模型实战笔记 6】Prompt Engineering 提示词工程
人工智能·笔记·llm·prompt·大语言模型·提示词工程