RK35xx定制 Ubuntu18 根文件系统

这篇具有很好参考价值的文章主要介绍了RK35xx定制 Ubuntu18 根文件系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、为什么定制?

二、定制步骤

1.准备工作

2.下载 Ubuntu base

3.进入rootfs的目录:

4.更新软件

5.安装系统软件

6.基础系统改造

7.添加产品定制内容


前言

  这里记录定制产品RK3568,RK3588,文件系统rootfs的过程。文件系统制作比较麻烦,有很多的安装包,还有很多驱动,但是很影响系统的性能和产品外观体验。

这里总结一下制作ubuntu 18.04文件系统的方法,使用ubuntu官网提供的base系统,制作自己的rootfs系统。

一、为什么定制?

RK3568,RK3588的SDK里面,ubuntu,debian 文件系统都是厂商提供好的,内置的内容可能不适合产品需要,我们可以自己定制文件系统,灵活满足产品界面和性能的差异。

二、定制步骤

1.准备工作

安装 qemu, 在 Linux PC 主机上安装模拟器:

sudo apt-get install qemu-user-static

2.下载 Ubuntu base


RK3568  Ubuntu 根文件系统是基于 Ubuntu base 18.04 来创建的。20,22的都可以。

用户可以到 ubuntu  官网 下载,选择下载 uubuntu-base-18.04.5-base-arm64.tar.gz。

Ubuntu Base 18.04.5 LTS (Bionic Beaver)CD images for Ubuntu Base 18.04.5 LTS (Bionic Beaver)http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/

这是官网界面,有很多格式,这里选择 arm64,与RK3568 CPU一致,其他的

i386, amd64 是 X86 PC​​​​​a

RK35xx定制 Ubuntu18 根文件系统,0-linux基础,1-嵌入式系统,Ubuntu,linux,arm开发

 

mkdir  ub18
cd    ub18
mkdir  ub18-rootfs

wget http://cdimage.ubuntu.com/ubuntu-base/releases/18.04/release/ubuntu-base-18.04.5-base-amd64.tar.gz

ls .
ubuntu-base-18.04-base-arm64.tar.gz ub18-rootfs

sudo tar -xpf ubuntu-base-18.04-base-arm64.tar.gz -C ub18-rootfs

这里一定要在普通用户下用sudo,对这个ub18-rootfs文件系统里面的内容进行保护,防止随便更改


$ sudo  cp /usr/bin/qemu-aarch64-static   ub18-rootfs/usr/bin
$ sudo  cp -b /etc/resolv.conf    ub18-rootfs/etc/
在这里我们要注意的是我们针对arm64的qemu-user-static,需要文件是qemu-aarch64-static

resolv.conf 是复制PC的DNS的地址文件,方便上网

3.进入rootfs的目录:

直接进入ub18-rootfs是不能用的,不能上网也不能安装,需要按这个方法:

写一个简单的mount-rootfs.sh脚本mount及unmount

#!/bin/bash
# 

#这几个目录都是链接;
function mnt() {
    echo "MOUNTING"
    sudo mount -t proc /proc ${2}proc
    sudo mount -t sysfs /sys ${2}sys
    sudo mount -o bind /dev ${2}dev
    sudo mount -o bind /dev/pts ${2}dev/pts		
    sudo chroot ${2}
}

function umnt() {
    echo "UNMOUNTING"
    sudo umount ${2}proc
    sudo umount ${2}sys
    sudo umount ${2}dev/pts
    sudo umount ${2}dev

}

#使用参数要 -m;
#参数$2 要带 rootf目录/
if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
    mnt $1 $2


#使用参数 -u 是退出mount;
elif [ "$1" == "-u" ] && [ -n "$2" ];
then
    umnt $1 $2
else

#不带参数,显示帮助提示;
    echo ""
    echo "Either 1'st, 2'nd or both parameters were missing"
    echo ""
    echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
    echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
    echo ""
    echo "For example: ch-mount -m /media/sdcard/"
    echo ""
    echo 1st parameter : ${1}
    echo 2nd parameter : ${2}
fi

进入rootfs:这个至少执行一次,使目录mount成功

sudo  mount-rootfs.sh  -m  ub18-rootfs

或者

sudo   chroot  ub18-rootfs

4.更新软件

使用下面的源:也可以找科大,网易的;注意是ubuntu-ports 目录

华为源:
sudo wget -O /etc/apt/sources.list https://repo.huaweicloud.com/repository/conf/Ubuntu-Ports-bionic.list

清华源;

自己手工替换下面的内容到 /etc/apt/sources.list

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse

deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse

# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse

5.安装系统软件

下面的软件是必须的

sudo  apt-get install dialog language-pack-en-base  rsyslog

sudo  apt-get install tzdata
#网络功能
sudo apt-get install ssh net-tools ethtool ifupdown network-manager  apt-utils

#网络功能
sudo apt-get install wireless-tools htop

下面是可选的

sudo apt-get install git build-essential gcc g++
#GUI界面
sudo apt-get install lxde 
sudo apt-get install xfce4
sudo apt-get install ubuntu-desktop
sudo apt-get install xubuntu

下面是 不同的桌面环境,ubuntu桌面有5种不同风格的版本,我们ARM嵌入式比较适合xubuntu,lubuntu;系统精简,性能有限。大家根据不同的需求定制自己的界面。

具体详细参考  Ubuntu、kubuntu、xUbuntu、lubuntu等版本区别及界面样式

6 安装各种桌面(可选)

按需ubuntu各种桌面环境,通过systemd选择开机启动的登录管理器来登录对应的桌面。

安装Lubuntu的定制LXDE

sudo apt-get install lubuntu-desktop

安装xfce桌面环境

xfce 是一款轻量级桌面.其登录管理器为xdm,需要先安装xdn。

apt-get install -y xdm

安装Xubuntu桌面环境

apt-get install -y --no-install-recommends xubuntu-desktop

RK35xx定制 Ubuntu18 根文件系统,0-linux基础,1-嵌入式系统,Ubuntu,linux,arm开发

 

7.基础系统改造

添加用户
# useradd -s '/bin/bash' -m -G adm,sudo test
# passwd test

# passwd root


设置主机名
# echo 'ub18.ROS' > /etc/hostname
设置自动更新DNS
# apt-get install resolvconf

添加主机入口到/etc/hosts:
echo “127.0.0.1   localhost”   >>/etc/hosts


可选:启动serial console登录
我们可以创建/etc/init/ttyS0.conf文件,并写入如下的内容:

start on stopped rc or RUNLEVEL=[12345]
stop on runlevel [!12345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102
在host中可以同如下的命令来登录:
$ sudo start ttyS0

可选:配置串口调试服务
sudo cp etc/init/tty1.conf   UB18/etc/init/ttyS2.conf
sudo vi  UB18/etc/init/ttyS2.conf
sudo vi  UB18/etc/rc.local  加上start ttyS2

可选:以太网配置;设置固定MAC
sudo vi etc/network/interfaces
添加:
auto eth0                                  
iface eth0 inet dhcp hwaddress ether 7e:8d:a5:3a:ce:9e
 

8.添加产品定制内容

不同产品有不同的驱动,还有一些企业demo文件,这里单独处理一个用户分区,

sudo mkdir      ub18/oem

sudo mount    ub18/dev/nvme0  /oem

cp   -rf  demo   ub18/oem/

cp   -rf  gpu-driver  ub18/oem/driver

添加自启动

在/etc/profile 添加自启动脚本

./runAPP.sh &

./runAPP.sh内容如下:

#!bin/bash

#runAPP.sh 启动客户定制程序

/home/user/runDemo &

退出rootfs

root@user:/# exit  

9.系统打包成rootfs

user@user:~$ ./mount-rootfs.sh -u ub18-rootfs

#使用dd指令制作空的固件容器ub18-fs-rom.img 6G
#count=6000 这里是镜像大小,你根据自己需要修改,不用这么大
$ dd if=/dev/zero of=ub18-fs-rom.img bs=1M count=6000
$ sudo  mkfs.ext4  ub18-fs-rom.img

#将arm64文件系统内容制作到ub18-fs-rom.img
$ mkdir  ub18-fs-ok

$ sudo mount ub18-fs-rom.img  ub18-fs-ok/
$ sudo cp -rfp ub18-rootfs/*  ub18-fs-ok/
$ sudo umount ub18-fs-ok/

$ e2fsck -p -f ub18-fs-rom.img
$ resize2fs -M ub18-fs-rom.img

系统制作完成,可以使用 RKDevTool_Release,进行分区烧写了,直接替换原有的rootfs。

RK35xx定制 Ubuntu18 根文件系统,0-linux基础,1-嵌入式系统,Ubuntu,linux,arm开发

也可以在系统编译时打包,替换SDK目录下的ubuntu/ubuntu-rootfs.img 文件。

用编译命令./build.sh  直接打包一键刷机。

10.自动测试脚本

进行系统运行测试

这里让机器运行10000次,测试bug,记录日志

在/etc/profile 添加自启动脚本

./runTEST.sh &

./runTEST.sh内容如下:

#!bin/bash

echo “test running bug”

sleep 40

#//创建/etc/stop 就停止测试

if [ !-f  /etc/stop ];then

        echo "reboot"

         reboot

else

        echo "stop reboot"

fi

11.错误处理

1 apt无法安装,需要按照mount-rootfs脚本运行一次

总结

这里用RK3568进行了举例,制作rootfs的方法,可以极大节省时间,定制的软件系统极其灵活。

其他的产品,RK3588,RK3288方法类似。

参考页面:

创建 Ubuntu 根文件系统 — Firefly Wiki

【原创】从Ubuntu-base构建ubunturootfs系统(以x86_64和arm为例)-爱码网文章来源地址https://www.toymoban.com/news/detail-619473.html

到了这里,关于RK35xx定制 Ubuntu18 根文件系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于RK3588的嵌入式linux系统开发(二)——uboot源码移植及编译

            由于官方的SDK占用空间较大(大约20GB左右),需要联系相关供应商提供,且官方的SDK通过各种脚本文件进行集成编译,难以理解系统开发的详细过程。本章介绍直接从官方Github网站下载源码进行移植,进行uboot移植及编译,具体内容如下所述: 1.进入官方的github网

    2024年01月16日
    浏览(61)
  • 基于RK3588的嵌入式linux系统开发(五)——uboot优化修改(按任意按键停止autoboot)

            我们通常情况下,芯片进入uboot后,会根据设置的bootdelay时间进行倒数计数。这时候在终端按任意键,即可退出autoboot,进入uboot的命令行模式。         官方提供的uboot源码中,为了防止调试串口干扰导致不能进入系统,使用“Ctrl+c”的组合键来退出autoboot。本

    2024年02月10日
    浏览(58)
  • 基于RK3588的嵌入式linux系统开发(一)——开发环境的搭建(SDK解压与本地初始化)

    1、拷贝rk3588的linux-sdk压缩包到工作目录,如下所示: 图1 拷贝rk3588的sdk到工作目录 2、进入sdk目录进行MD5码的计算,并对比md5sum.txt文件内的值,确保压缩包未被修改。 图2 MD5码计算与匹配 3、安装p7zip-full工具,并解压rk3588的sdk压缩包,如下图所示: sudo apt-get install p7zip-full

    2023年04月12日
    浏览(51)
  • 基于 RK3588 构建 Ubuntu 22.04 根文件系统

    以下内容在 Rockchip 的 Linux SDK 目录下完成,请先解压 Linux SDK。 1.1 下载 Ubuntu Base Ubuntu-Base 是Ubuntu官方构建的ubuntu最小文件系统,基础包大小通常只有几十兆,可以很方便的个性化定制嵌入式环境。使用北京外国语大学镜像站加速下载,注意选择根据开发板架构选择arm64或其他

    2024年02月13日
    浏览(118)
  • 基于讯为RK3588平台搭建Ubuntu20.04.5根文件系统

    在搭建系统之前,需要详细阅读讯为公司提供的一些资料(虽然他们家资料一直都做的不完善),搭建好用于开发的Ubuntu虚拟机环境,熟练使用一些常用工具如烧录系统的工具RKDevTool、传输文件的工具FileZilla、远程连接工具MobaXterm等等。当然,本章只针对根文件系统,uboot、

    2024年02月02日
    浏览(39)
  • 瑞芯微RK3588J安装linux的ubuntu系统/刷机全步骤

    1.通过https://wiki.t-firefly.com/zh_CN/Core-3588J/index.html进入ITX3588J开发板说明书,在“升级固件”中选择“使用USB线缆升级固件”。  2.按照要求下载压缩包。 3.在开发板说明书目录最下端“资料下载”处下载“Ubuntu固件”。 4.使用 Type-C 数据线一端连接主机,一端连接开发板。电源

    2024年02月12日
    浏览(46)
  • Linux系统 Ubuntu18.04安装的详细教程(提供18.04ubuntu镜像)

    镜像文件下载: 链接:https://pan.baidu.com/s/12bEdRBwO1YbLt23QKnrSrA 提取码:h7as 关于全名、用户名区别可先看第四部分 处理器和内核数量,根据需要配置就行。我是8核16线程,配置2,2。小白学习的话,配置低一点没关系。如果你只是为了学一些基础命令,配置成1,1应该也没问题

    2024年02月01日
    浏览(89)
  • Linux嵌入式学习之Ubuntu入门(二)磁盘文件介绍及分区、格式化等

    Linux嵌入式学习之Ubuntu入门(一)基本命令、软件安装、文件结构、编辑器介绍 Linux嵌入式学习之Ubuntu入门(二)磁盘文件介绍及分区、格式化等 Linux嵌入式学习之Ubuntu入门(三)用户、用户组及文件权限 Linux嵌入式学习之Ubuntu入门(四)Makefile Linux嵌入式学习之Ubuntu入门(五

    2023年04月11日
    浏览(70)
  • 基于ubuntu-base构建根文件系统并移植到RK3568开发板

    前言 一、使用ubuntu-base构建根文件系统 1、到ubuntu官网获取 ubuntu-base-18.04.5-base-arm64.tar.gz 2、将获取的文件拷贝到ubuntu虚拟机,新建目录,并解压。 3、安装qemu-user-static 4、设置软件源 5、配置DNS 6、挂载ubuntu-base文件系统 7、安装必要软件 8、安装桌面环境 9、修改root用户密码

    2024年02月01日
    浏览(42)
  • Qt5.9 Ubuntu18.04-64位交叉编译目标机为Ubuntu18.04-arm-32位基于RK3288

    文章目录 一、需要准备的材料 二、操作步骤 1.更新软件源 2.安装环境依赖 3.搭建交叉编译环境 4.编译QT 5.安装Qt creator 6.配置Qt kit 三.测试 前言 本文使用VMware虚拟机作为Ubuntu系统载体,采用Ubuntu18.04-64位镜像作为QT编译环境,采用RK3288搭载Ubuntu18.04-arm-32作为QT执行环境。 ① 交

    2024年02月17日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包