制作RK3568 ubuntu20.04桌面版镜像

news/2024/7/6 1:40:02 标签: ubuntu 20.04, RK3568, 镜像

平台

主控: 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/hostname

exit

关于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.niftyadmin.cn/n/5273646.html

相关文章

西南科技大学数据库实验六(选课系统综合查询)

一、实验目的 视图的使用 二、实验任务 创建数据库及表(提供数据库文件mytables.sql,可以导入,可以拷贝) 1、创建班级表class 2、创建学生表student 3、创建选课表choose 4、创建课程表course 5、创建教师表 teacher 完成以下查询 1、【例6.5】为student表创建view…

henauOJ 1094: 字母统计

题目描述 输入1组字符串&#xff0c;统计每种字母出现的次数。&#xff08;只包含小写字母&#xff0c;且字符串长度不大于1000&#xff09; 输入 长度不大于1000的字符串 输出 按照从a到z的顺序&#xff0c;输出字符出现的次数 #include <stdio.h> #include <s…

Python: 字典操作方法

原文链接&#xff1a;Python: 字典操作方法 语雀 目录 1. 修改值的几种方法 2. 循环字典 3. 筛选字典 4. 字典倒序 5. 字典key value互换 6. 删除元素 7. 添加key 8. 合并两个字典 9. 修改key 1. 修改值的几种方法 方法一&#xff1a;update my_dict { Khan: 4, A…

AWS 知识一:如何在AWS上启动云AD服务器(详细到极致)

前言&#xff1a; 首先这里指的云AD服务器&#xff0c;只是为了让读友更好理解。云AD服务器在AWS中称为目录。AWS一共提供了4种目录类别&#xff0c;下面我将全程使用AWS托管微软AD这种目录类别进行示例。他完全提供了和Microsoft AD的功能&#xff0c;包括NTLM&#xff0c;Ker…

Linux .a .so 整理记录

在Linux系统下&#xff0c; .a 是静态库&#xff0c;是直接把一坨 .o打包起来的一个库&#xff0c;反向也是可以的&#xff0c;有工具可以把.a重新分开成单独的.o&#xff1b; – 生成静态库命令例如&#xff1a;/home/utils/binutils-2.33.1/bin/ar crs libcmod.a …/subadd.…

@KafkaListener 注解配置多个 topic

见如下示例 主要见 KafkaListener 中 topics 属性的配置 其中 ${xxxx.topic1} 为从springBoot 配置文件中读取的属性值 KafkaListener(topics {"${xxxx.topic1}", "${xxxx.topic2}"}, groupId "${xxxx.groupId}",containerFactory "xxx…

Vue3+el-table实现甘特图

Vue3 el-table实现甘特图效果 代码gitee 整体实现效果如下 进度列&#xff0c;可以通过设置天或小时&#xff0c;切换不同列显示类型。 涉及到的问题 1、通过Worker解决js线程堵塞问题 在根据时间动态生成列时&#xff0c;由于开始时间与结束时间跨度过大时&#xff0c;计…

扫描电镜操作的注意点有哪些

扫描电子显微镜&#xff08;SEM&#xff09;是一种高分辨率的显微镜&#xff0c;用于观察微观尺度的表面形貌。在操作SEM时&#xff0c;需要注意一些关键的操作注意点&#xff0c;以确保获得高质量的显微图像和保护仪器的正常运行。以下是一些常见的扫描电子显微镜操作注意点&a…