【RK3399】2.制作ubuntu20.04 roomfs

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

firefly自带的文件系统,由于缺少一些基本功能模块,因此,我们可以自己手动制作一个ubuntu20.04的文件系统。

下载Ubuntu根文件系统

http://cdimage.ubuntu.com/ubuntu-base/releases/

安装虚拟机

apt-get install qemu-user-static

解压

mkdir ubuntu-rootfs
tar -xpf ubuntu-base-20.04.5-base-arm64.tar.gz  -C ubuntu-rootfs

复制一下虚拟机的运行环境

cp -b /etc/resolv.conf ubuntu-rootfs/etc/resolv.conf
cp /usr/bin/qemu-aarch64-static ubuntu-rootfs/usr/bin/

复制官方外设驱动文件

将开发板挂载到虚拟机上,将开发板的/vendor,/system,/lib/firmware,这三个文件夹复制到我们自己的文件系统中。

挂载根文件系统

创建ch-mount.sh文件,写入以下脚本

#!/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
    echo "CHROOT..."
    sudo chroot ${2}
    echo "Success!"
}
function umnt() {
    echo "UNMOUNTING"
    sudo umount ${2}proc
    sudo umount ${2}sys
    sudo umount ${2}dev/pts
    sudo umount ${2}dev
}
if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
    mnt $1 $2
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

把下载好的脚本置于ubuntu-rootfs目录的上一级目录,并修改权限:

chmod a+x ch-mount.sh
./ch-mount.sh -m ubuntu-rootfs/

执行mount动作,注意退出后一定再执行 ./ch-mount.sh -u ubuntu-rootfs/,否则你的本机ubuntu系统会出问题,需要重启才能恢复正常。

拷贝bash依赖库

执行挂载脚本时遇到以下错误,可以拷贝bash动态库。

➜  tools sudo chroot ubuntu-rootfs 
chroot: failed to run command ‘/bin/zsh’: No such file or directory

查看/bin/bash文件所依赖的动态链接库,然后依次拷贝到相应目录。由于我安装了zsh,所以除了拷贝bash动态库外,还需要拷贝zsh动态库。没有安装zsh的可以不用拷贝zsh动态库。

zhongyi@ubuntu:~$ ldd /bin/zsh
        linux-vdso.so.1 (0x00007ffd5c1dc000)
        libcap.so.2 => /lib/x86_64-linux-gnu/libcap.so.2 (0x00007f4b4d9d7000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f4b4d7d3000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f4b4d5a9000)
        libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f4b4d20b000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f4b4ce1a000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f4b4debc000)
zhongyi@ubuntu:~$ ldd /bin/bash
        linux-vdso.so.1 (0x00007ffd8335a000)
        libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f50a4d2a000)
        libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f50a4b26000)
        libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f50a4735000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f50a526e000)
$ mkdir lib64
$ cp /lib64/ld-linux-x86-64.so.2 ./lib64/
$ mkdir ./lib/x86_64-linux-gnu
$ cp /lib/x86_64-linux-gnu/libtinfo.so.5 ./lib/x86_64-linux-gnu/
$ cp /lib/x86_64-linux-gnu/libdl.so.2 ./lib/x86_64-linux-gnu/
$ cp /lib/x86_64-linux-gnu/libc.so.6 ./lib/x86_64-linux-gnu/ 
$ cp /lib/x86_64-linux-gnu/libcap.so.2 ./lib/x86_64-linux-gnu/ 
$ cp /lib/x86_64-linux-gnu/libm.so.6 ./lib/x86_64-linux-gnu/ 
$ cp /lib/x86_64-linux-gnu/libc.so.6 ./lib/x86_64-linux-gnu/ 
$cp /bin/bash ubuntu-rootfs/bin
$cp /bin/zsh ubuntu-rootfs/bin

执行挂载

成功挂载后,会看到自动切换为root用户。

zhongyi@ubuntu:~/tools$ ./ch-mount.sh -m ubuntu-rootfs/
MOUNTING...
CHROOT...
zsh: failed to load module `zsh/zle': /usr/lib/x86_64-linux-gnu/zsh/5.4.2/zsh/zle.so: cannot open shared object file: No such file or directory     
#已经成功挂载
ubuntu# 

安装必要的软件

apt-get update
apt-get -y install  vim nfs-common  sudo ssh net-tools ethtool wireless-tools  xfce4-power-manager xinit  network-manager iputils-ping rsyslog   bash-completion lxtask htop  synaptic  --no-install-recommends

更换源

vim /etc/apt/source.list
#添加中科大源
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe

#添加阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

#添加清华源
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

设置账户名和密码

useradd -s '/bin/bash' -m -G adm,sudo firefly
passwd firefly
passwd root

设置主机名

echo 'ubuntu.firefly' > /etc/hostname

添加主机入口到/etc/hosts

127.0.0.1 localhost 
127.0.0.1 ubuntu.firefly
127.0.1.1 firefly 

添加nameserver

vim /etc/resolvconf/resolv.conf.d/head
#添加nameserver
nameserver 114.114.114.114
nameserver 8.8.8.8

取消挂载

exit
./ch-mount.sh -u ubuntu-rootfs/

创建 mkrootfs.sh文件,写入以下脚本,其中2048取决于你的根文件系统实际大小,比如安装了桌面环境后若大小超过2048M,就改大一点

#!/bin/bash
# 
dd if=/dev/zero of=ubuntu-rootfs.img bs=1M count=2048
sudo  mkfs.ext4  ubuntu-rootfs.img
rm -r rootfs
mkdir  rootfs
sudo mount ubuntu-rootfs.img rootfs/
sudo cp -rfp ubuntu-rootfs/*  rootfs/
sudo umount rootfs/
e2fsck -p -f ubuntu-rootfs.img
resize2fs  -M ubuntu-rootfs.img

执行制作

➜  tools ./mkrootfs.sh
➜  tools ls -al |grep *.img
-rw-rw-r--  1 zhongyi zhongyi 1497706496 Sep 30 21:32 ubuntu-rootfs.img

烧写镜像

sudo upgrade_tool di -rootfs ubuntu-rootfs.img

本文参考

https://blog.csdn.net/Alex_Vinci/article/details/122818828

https://dev.t-firefly.com/thread-12739-1-1.html

https://blog.csdn.net/vcsuanfadaima/article/details/112280308

https://www.csdn.net/tags/OtTaIg1sNTAwNTQtYmxvZwO0O0OO0O0O.html

https://www.cnblogs.com/kay2018/p/10990648.html

https://blog.csdn.net/UbuntuTouch/article/details/83585564

https://blog.csdn.net/Neutionwei/article/details/122669712

https://dev.t-firefly.com/thread-10963-2-1.html文章来源地址https://www.toymoban.com/news/detail-429042.html

到了这里,关于【RK3399】2.制作ubuntu20.04 roomfs的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • arm鲁班猫lubanCat rk3588 ubuntu20.04下源码编译安装qt5.12.5

    ubuntu-18.04上通过源码来编译及安装Qt-5.12库 QT官方线上文档for linux qt源码下载地址 进入下面目录下载 【new_archive/qt/5.12/5.12.5/single/qt-everywhere-src-5.12.5.tar.xz】 将压缩包放到Ubuntu某目录,并进入解压: 初步解压出:qt-everywhere-src-5.12.5.tar 最终得到:qt-everywhere-src-5.12.5 或者【右键】

    2024年04月11日
    浏览(59)
  • 【系统安装】ubuntu20.04启动盘制作,正经教程,小白安装教程,百分百成功安装

    1.所需材料: 64GBU盘(其实8g和16g也可以) 2.制作U盘启动盘 使用windows制作ubuntu 20.04启动盘 1)下载制作工具:Rufus:Rufus - 轻松创建 USB 启动盘 2)插入用来做启动盘的U盘 3)打开Rufus,选择镜像文件,并开始,注意target system选择UEFI 4)写入过程大概会持续4~5分钟 3.启动盘制作

    2024年02月05日
    浏览(58)
  • 【linux】在Ubuntu20.04下录制屏幕为视频,并制作成gif动态图片

    录制屏幕软件 视频转图片软件 图片合成gif动态图片 1)运行命令 2)设置:区域、帧率 选择录制的区域; 设置帧率为10(或者更小,以适合gif即可) 3)选择视频格式为mp4 4)开始录制 点击Start recording开始录制,再次点击结束录制,点击Save recording即可

    2024年02月09日
    浏览(62)
  • Rockchip RK3399 - 移植uboot 2023.04和内核FIT uImage制作

    ---------------------------------------------------------------------------------------------------------------------------- 开发板   :NanoPC-T4开发板 eMMC   :16GB LPDDR3:4GB 显示屏   :15.6 HDMI接口显示屏 u-boot    :2023.04 linux      :6.3 -----------------------------------------------------------------------------------

    2024年02月06日
    浏览(45)
  • Ubuntu18.04 升级Ubuntu20.04

    因项目环境需要,欲将Ubuntu18.04升级至Ubuntu20.04,参考网上其他小伙伴的方法,也遇到了一个问题,特此记录一下,希望能帮助其他有同样问题的小伙伴。 参考:第十五章 Ubuntu18.04LTS升级到20.04LTS 主要的步骤: 在执行“do-release-upgrade”时,遇到“Failed to connect to https://changel

    2024年02月02日
    浏览(58)
  • Ubuntu20.04升级到Ubuntu 22.04

    执行如下命令将Ubuntu升级到最新的版本: 升级完成后,重启系统 重启成功之后,查看系统的当前版本 最新版本应该是20.04.6,如下图所示。 执行如下命令开始升级 一路yes或确认即可,下面是一些过程中的操作。 所有当前 Ubuntu 20.04 的源列表文件将被 Ubuntu 22.04 的 jammy 源列表

    2024年02月17日
    浏览(50)
  • Ubuntu20.04配置

    新创建的用户没有root权限,我们执行以下命令给用户sudo权限 删除用户及用户所有文件(/home/username/路径下的所有文件) 删除用户但保留所有用户文件: 查询系统整体磁盘使用情况: df -h 查询指定目录的磁盘占用情况:默认是当前目录 du -h

    2024年02月04日
    浏览(51)
  • Ubuntu20.04分区方案

    本人电脑是 500G 固态硬盘 + 2T 机械硬盘 ,我只装了Ubuntu一个系统,如果是双系统,可以将500G固态硬盘分成250G+250G两块,分别安装一个系统!!大家可以根据自己电脑硬件配置进行调整 分区名称 选择分区 文件系统类型 空间大小 描述 efi系统分区 逻辑分区 XXX 4G efi是UEFI引导,它

    2024年02月16日
    浏览(55)
  • Ubuntu 20.04桌面美化

    文章目录 前言 1 安装美化软件 1.1 更新软件源 1.2 安装tweak工具 1.3 安装gnome扩展模块 1.4 tweak预配置 2 主题美化 2.1 主题下载 2.2 主题设置 3 图标美化 3.1 图标下载 3.2 图标设置 4 任务栏美化 4.1 安装扩展 4.2 安装插件 总结 最近将开发环境更新到了 Ubuntu 20.04 ,相对于 Ubuntu 18.04 确

    2024年02月08日
    浏览(44)
  • Ubuntu 20.04 桌面美化

    Ubuntu 20.04 在 2020 年 4 月 28 日发布,距今已经快四个月了,我将自己的笔记本升级成 Ubuntu 20.04 操作系统了,Ubuntu 20.04 默认安装完成的桌面比较简单,如下图: 根据我个人的喜好,我会进行一系列的美化和优化,美化过的桌面看着非常漂亮,用着也得心应手。俗话说磨刀不误

    2024年02月04日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包