制作RK3568 ubuntu20.04桌面版镜像

平台

主控: RK3568
编译主机: Ubuntu 20.04 AMD64
目标版本: Ubuntu 20.04

在这里插入图片描述

概述

    RK3568是极具性价比的高能国产“芯“ , 是Rockchip面向与AIOT和工业市场打造的一款高性能、低功耗、功能丰富的国产化应用处理器。采用四核64位Cortex-A55架构,主频高达2.0GHz,集成Rockchip自研NPU, 1TOPS算力,满足轻量级端侧AI计算。并提供简单易用的模型转换工具RKNN-Toolkit,支持Caffe/TensorFlow/TF-Lite/ONNX/PyTorch/Keras/Darknet主流架构模型的一键转换。

    RK3568 官方发布了基于 Android 11 的固件,该固件包含了 Android 11 系统。RK3568 还支持多种 Linux 发行版,包括 Ubuntu、Debian、Raspbian 等。基于Android AOSP开发在经历了多年的技术累计后已经相当成熟.

    Ubuntu 是基于 Linux 的开源操作系统。它是流行的桌面、服务器和云操作系统, 功能强大且灵活,可用于各种设备。
ARM 64 的UBUNTU优势有:

  • 运行于多种嵌入式设备
  • 更高的性能和效率
  • 更好的兼容性
  • 更广泛的应用程序选择

PS: 本文略过RK LINUX SDK的相关开发文档说明, 不包含如UBOOT, KERNEL, RECOVERY等镜像的编译开发, 有需要请自行查阅相关资料.

步骤

制作一个可用于RK3568的UBUNTU镜像基本步骤如下

  1. 安装开发环境和工具
  2. 下载UBUNTU基础镜像包
  3. 修改镜像包
  4. 打包镜像

1. 安装开发环境和工具

qemu-user-static 是一个用于在 x86 主机上运行 ARM 或其他非 x86 操作系统的工具。它是一个静态版本的 QEMU,因此它可以直接从磁盘运行,而无需安装 QEMU 或任何其他软件.

安装它用于在PC主机上运行下载下来的UBUNTU镜像, 方便修改镜像的内容

# PC
sudo apt-get install qemu-user-static
2. 下载UBUNTU基础镜像包

Index of /ubuntu-base/releases
在这里插入图片描述
在这里插入图片描述

本文下载的是ubuntu-base-20.04.1-base-arm64.tar.gz

3. 修改镜像包

3.1 解压基础包, 需注意解压的参数中 p 参数保留权限:

# PC
sudo tar -xvpf ubuntu-base-20.04.1-base-arm64.tar.gz -C ubuntu-rootfs/

3.2 修改网络配置和qemu-aarch64-static

# PC
#为了可以联网更新软件,拷贝本机的dns配置文件到根文件系统
sudo cp -b /etc/resolv.conf ubuntu-rootfs/etc/
#下载的ubuntu-base是aarch64架构的,因此需要拷贝qemu-aarch64-static到ubuntu/usr/bin/
sudo cp /usr/bin/qemu-aarch64-static ubuntu-rootfs/usr/bin/

3.3 替换软件源

ubuntu-rootfs/etc/apt/sources.list

deb http://mirrors.huaweicloud.com/ubuntu-ports/ focal main multiverse restricted universe
deb http://mirrors.huaweicloud.com/ubuntu-ports/ focal-backports main multiverse restricted universe
deb http://mirrors.huaweicloud.com/ubuntu-ports/ focal-proposed main multiverse restricted universe
deb http://mirrors.huaweicloud.com/ubuntu-ports/ focal-security main multiverse restricted universe
deb http://mirrors.huaweicloud.com/ubuntu-ports/ focal-updates main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ focal main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ focal-backports main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ focal-proposed main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ focal-security main multiverse restricted universe
deb-src http://mirrors.huaweicloud.com/ubuntu-ports/ focal-updates main multiverse restricted universe

3.4 进入根文件系统进行操作,开始修改

#PC
sudo chroot ubuntu-rootfs
# QEMU
#更新
apt update
apt upgrade#安装常用工具包
apt-get install net-tools ethtool ifupdown psmisc nfs-common htop vim rsyslog iputils-ping language-pack-en-base sudo
apt-get install network-manager systemd iputils-ping openssh-sftp-server kmod wireless-tools
apt-get install xubuntu-desktop# 修改ROOT 密码
passwd root# 创建 rk3568 账户
useradd -s '/bin/bash' -m -G adm,sudo rk3568
passwd rk3568# 修改主机名
echo "rk3568" > /etc/hostnameexit

关于xubuntu-desktop

  1. 大小在3.5G左右, 安装需要很长时间
  2. 安装过程需要配置键盘之类的,需要手动选择输入
  3. 显示管理选择 LightDM, 选GDM没有图像画面.

PS: LightDM 和 GDM 都是 Linux 系统的显示管理器,负责显示登录界面,并允许用户登录系统。

特性LightDMGDM
大小小巧较大
速度较快较慢
功能简单丰富
可定制一般较好
4. 打包镜像
#PC
# 创建空白的镜像文件
dd if=/dev/zero of=linuxroot.img bs=1M count=6000
mkfs.ext4 linuxroot.img# 挂在镜像文件, 以便写入数据
mkdir rootfs
sudo mount linuxroot.img rootfs/
# 注意 p 参数
sudo cp -rfp ubuntu-rootfs/*  rootfs/
sudo umount rootfs/# 检查和修复 rootfs.img 文件系统
e2fsck -p -f linuxroot.img#resize2fs 命令是调整 ext2、ext3 和 ext4 文件系统大小的有效工具
# *如果碰到启动不进桌面, 可以尝试不要resize2fs*
resize2fs -M linuxroot.img

最终生成的镜像文件:linuxroot.img

参考

Linux RK3399 基于 Firefly RK3399 Board 制作 Ubuntu Desktop 版本
Rockchip RK3399 - 移植ubuntu 20.04.4根文件系统
Create Ubuntu root file system

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/232979.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于车载ESAM(ETC)系统设计(程序+原理图+PCB源文件+硬件资料+元器件清单等)方案

OBE-SAM 安全模块,通过车规 AEC-Q100 Grade1 认证。主要应用于 ETC(不停车收费)系统,内 嵌于车载设备 OBU 中。 OBE-SAM安全模块中保存了车辆相关信息,收费站出入口信息,以及交易记录等等,模块采…

MacBook磁盘清理妙招一:使用清理工具CleanMyMac X4.14.6中文版

笔记本电脑在是我们工作和生活中重要组成部分,磁盘清理是常有的事,而macbook作为其中的代表之一,也越来越受到人们的青睐。然而,如何进行macbook磁盘清理,也是许多人都会遇到的问题,特别是被提示“磁盘已满…

WeChatMsg中文版开源软件 提取导出微信聊天记录为文档-提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存

功能 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 支持导出视频、表情包 导出联系人到CSV 导出视频到HTML 导出表情包到HTML 显示和导出拍一拍等系统消息 说明 :如果出现闪退问题&#…

计算机服务器中了mkp勒索病毒怎么办,mkp勒索病毒解密恢复

在计算机技术飞速发展的今天,越来越多的企业走向了数字化办公模式,极大地方便了企业的生产运营,为企业带来了更高的效率。但网络威胁无处不在,网络威胁手段随着计算机技术的不断发展也在不断增加。近期,云天数据恢复中…

C#拼接JSON

一、业务背景 最近项目需要与U8c对接,实现增删改查,借此机会,梳理一下C#解析Json字符串的问题。 这篇文章,先以新增接口为例。 二、新增接口 查看需要传入的json格式。 拼接json,无非就是{}和[]的来回嵌套。 首先&am…

C++数据结构——二叉搜索树详解

目录 一,关于二叉搜索树 1.1 概念 1.2 基本结构 二,二叉搜索树接口实现 2.1 插入 2.2 查找 2.3 打印 2.4* 删除 三,二叉搜索树接口递归实现 3.1 查找 3.2 插入 3.3 删除 四,二叉搜索树的默认成员函数 五,…

bootstap table表格, 获取当前点击的table元素在该行是第几个

背景 有这样一个需求, table表格中是统计数据, 要求点击每个单元格可实现导出统计的底层数据 数据都是可点击导出的, 思路 获取行bootstap 有个index参数, 所哟要获取当前行第几列, 要获取当前点击的table元素在其所在行中的位置(即第几个)&#xff…

JVM 垃圾回收详解

前言 什么是垃圾? 垃圾是指运行程序中没有任何引用指向的对象,需要被回收。 内存溢出和内存泄漏 内存溢出:经过垃圾回收之后,内存仍旧无法存储新创建的对象,内存不够溢出。 内存泄漏:又叫“存储泄漏”&#xff0…

【docker】修改docker的数据目录

背景 主节点是分配了较少内存和存储的低配机器,因为我们系统的rancher是用docker镜像启动的,而rancher和docker的默认目录都放在/var/lib下面,而这个/var目录目前只分配10G的存储,导致节点存储报警。因此想修改docker的数据目录&…

idea添加外部jar包

在日常开发中在lib包的里面添加了外部的jar,如何将外部的包添加到java类库中,这样项目就可以引用相应的jar包,操作如下: 1.先将需要的jar复制到lib包如下,如下截图,图标前面没有箭头,表示还未添…

正则化实战( Lasso 套索回归,Ridge 岭回归)

Lasso 套索回归 导入包 import numpy as np from sklearn.linear_model import Lasso from sklearn.linear_model import SGDRegressor, LinearRegression原方程的计算结果 # 1. 创建数据集X,y X 2 * np.random.rand(100, 20) w np.random.rand(20, 1) b np.r…

C# 实时存储16进制数据,写入文件格式为Raw

1.示例代码 private void button1_Click(object sender, EventArgs e){byte[] data { 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28 }; //模拟要写入的数组List<byte[]> listBytes new List<byte[]>();listBytes.Add(data); //数组转集合RecData(listBytes);…

租赁系统|租赁小程序开发|北京租赁系统提升行业发展

租赁小程序定制功能是为了满足特定租赁服务的个性化需求而开发的一套功能模块。通过定制化开发&#xff0c;我们能够根据您的业务模式和需求&#xff0c;量身打造出适合您的租赁小程序。无论您是汽车租赁、房屋租赁、设备租赁或其他租赁服务&#xff0c;我们都能够为您提供定制…

财务知识之存货、固定资产、无形资产

存货、固定资产、无形资产在会计中常被称作“资产三兄弟”&#xff0c;原因是他们有很多相似的地方。 一、定义 名称准则定义存货存货&#xff0c;是指企业在日常活动中持有以备出售的产成品或商品、处在生产过程中的在产品、在生产过程或提供劳务过程中耗用的材料和物料等。…

phy 业务测试场景总结

1,光模块 模块类型 (1) 100BASE-X (2) 1000BASE-FX 千兆模块应用场景: a,应用 100BASE-X,1百兆组网使用的光模块。 b,应用 1000BASE-FX,千兆光模块降速率使用和不降速率的使用。 2,电模块 (1) 100M (2) 10/100M自适应 (3) 1000M(1.25G) (4) 10/100/1000M自适应

css的filter全属性介绍

原图&#xff1a; 模糊&#xff08;blur&#xff09; 单位可为px或rem&#xff0c;值越大&#xff0c;越模糊 filter:blur(3px) filter:blur(0.3rem) 亮度(brightness) 值可为数字或百分数&#xff0c;小于1时&#xff0c;亮度更暗&#xff1b;等于1时&#xff0c;无变化&am…

Verilog 字符串

文章目录 字符串简介字符串声明字符串操作输出字符画 字符串简介 一个字符串是由双引号"括起来并包含在一行中的字符序列。 在表达式和赋值语句中&#xff0c;用作操作数的字符串被视为由8bit ASCII码值表示的无符号整数常量。 字符串声明 字符串变量是wire/reg类型的变…

部署LVS的NAT模式

实验准备 #负载调度器# 192.168.116.40 #内网 12.0.0.100 #外网 先添加双网卡 #web服务器# 192.168.116.20 #web1 192.168.116.30 #web2 #nfs共享服务# 192.168.116.10 #nfs systemctl stop firewalld setenforce 0 1.nfs共享文件 1…

gitee(ssh)同步本地

一、什么是码云 gitee Git的”廉价平替” > 服务器在国内&#xff0c;运行不费劲 在国内也形成了一定的规模 git上的一些项目插件等在码云上也可以找得到 二、创建仓库 三、删除仓库 四、仓库与本地同步 > 建立公钥 五、把仓库同步到本地 六、在本地仓库中创建vue项目…

C++设计模式之——命令模式

命令模式 概念创建步骤示例示例一代码实现运行结果 示例二代码实现运行结果 示例三示例代码运行结果 示例四代码实现运行结果 应用场景 概念 命令模式是一种行为型设计模式&#xff0c;它允许将请求封装为一个对象&#xff0c;从而使得可以参数化客户端请求、将请求排队或者记…