介绍在全志A40i Ubuntu系统上定制文件系统的操作过程
为了给客户的测试和开发提供便利,飞凌嵌入式的开发板产品一般都支持多种操作系统,以基于全志T507H处理器设计研发的OKT507-C开发板为例,它支持三种操作系统,分别是:Linux、Android 和 Forlinx Desktop(Ubuntu),这里提到的Forlinx Desktop系统是飞凌嵌入式在Ubuntu base的基础上构建的桌面操作系统,完全兼容Ubuntu18.04,相对传统的Linux系统而言易用性更高。
Forlinx Desktop(Ubuntu)系统基于Ubuntu官方为嵌入式设备制作的操作系统-Lubuntu,该操作系统具备apt-get、ldd等常用的命令,若需要安装软件则直接apt-get在线安装即可,不需进行交叉编译移植等繁琐操作。但是每次重新烧写镜像之后,之前安装的软件就得重新安装,比较繁琐,如果需要批量操作则每块开发板都需要去apt-get安装,这样会大幅增加工作量,很不便于批量化生产。
能不能把软件一起打包到镜像呢?这样每次烧写完就不用再去apt-get在线安装了。答案当然是肯定的,这就涉及到文件系统的定制了,那么接下来,小编就为大家介绍在Forlinx Desktop(Ubuntu)系统上定制文件系统的操作过程。
- 解压文件系统
首先,找到OKT507-desktop-release源码的文件系统所在的目录,然后将文件系统压缩包解压,路径如下:
OKT507-desktop-release/ubuntu
解压后,可看到文件系统目录OKT507-linux-ubuntu,进入到此目录后可看到如下文件夹:
- 安装QEMU
这里简单介绍下QEMU,它是一个小巧的模拟器,可以模拟很多硬件如ARM、x86、AMD64/Intel64等。QEMU用途广泛,比如Xen、Android模拟器等都是基于QEMU的。下面我们开始在虚拟机进行安装QEMU,如下:
① 更新下载源:
sudo apt-get update
②执行命令安装:
sudo apt-get install qemu-aarch64-static
sudo apt-get install qemu-user-static
- 修改配置
① 将QEMU的qemu-arm-static拷贝到文件系统目录OKT507-linux-ubuntu,如下:
sudo cp /usr/bin/qemu-arm-static usr/bin/
② 拷贝PC主机端的DNS配置,因为待会我们安装程序时要用网络:
sudo cp -b /etc/resolv.conf etc/resolv.conf
③ 修改下载源:
sudo vim etc/apt/sources.list
添加
deb http://ports.ubuntu.com/ubuntu-ports/ xenial main universe
deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main universe
- 挂载文件系统
因为我们这里是通过脚本的方式挂载和卸载文件系统,所以需要编写一个脚本挂载和卸载文件系统。
① 新建一个脚本文件命名为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 chroot ${2}
}
function umnt() {
echo “UNMOUNTING”
sudo umount ${2}proc
sudo umount${2}sys
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
② 设置这个shell脚本可执行权限,如下:
sudo chmod 777 ch-mount.sh
③ 挂载文件系统:
执行ch-mount.sh脚本 指定参数-m,挂载成功如下:
sudo ./ch-mount.sh -m ./
- 安装软件
前面我们挂载了文件系统,已将文件系统挂载到了QEMU模拟器,接下来就可以安装我们所需要的软件了。
① 更新下载源:
apt update
注意:更新下载源可能会报错,这里需要注意一下,因为tmp文件夹权限不够,chmod为其赋予权限。
如下:
chmod 777 /tmp
② 安装软件:
至此,便可以安装所需软件了,在这里用apt-get安装自己所需软件,根据所需安装。我们这里来安装一个minicom串口测试工具。如下:
③ 安装完成后,exit退出QEMU。
④ 执行ch-mount.sh脚本卸载文件系统,指定参数-u,卸载成功后打印如下:
注意:我们exit退出后,只是退出了QEMU模拟器,并没有卸载文件系统,一定要执行脚本卸载文件系统。
- 打包文件系统
① 完成前面的步骤后,用tar命令将当前文件夹下所有文件压缩,命名为OKT507-linux-ubuntu.tar.gz。如下:
sudo tar -cvzf OKT507-linux-ubuntu.tar.gz ./*
② 压缩完成后,为文件系统压缩包OKT507-linux-ubuntu.tar.gz赋予权限,如下:
sudo chmod a+w OKT507-linux-ubuntu.tar.gz
③ 将刚打包好的压缩包替换到上一级目录下的旧的文件系统压缩包。
④ 重新编译打包后生成新的镜像烧录开发板。
- 测试方法
烧录到板子后,在终端启动minicom,验证下是否安装上。如下:
从上图红框可以看出,通过终端命令启动了minicom,说明我们在QEMU中安装成功了,至此Ubuntu文件系统定制就做完了。
通过这种方法可以个性化的定制属于自己文件系统,安装自己所需软件,也可以根据自己需求将出厂不需要的软件用相同的方式卸载掉,这样既能减少工作量,又利于批量化生产。
以上就是小编为大家带来的在Forlinx Desktop(Ubuntu)系统上定制文件系统的操作过程。想要了解有关OKT507-C开发板更多的功能和详情,可以进入飞凌嵌入式官网查看。
介绍在全志A40i Ubuntu系统上定制文件系统的操作过程相关推荐
- Ubuntu系统上为用户授予和删除sudo权限的方法
本文介绍在Ubuntu系统上为用户授予和删除sudo权限的方法. 背景 用户可以在Ubuntu系统上使用sudo权限执行任何管理任务,在Linux机器上创建新用户时,他们无法执行任何管理任务,直到你将 ...
- 全志A40I开发板方案定制开发
全志A40I开发板方案定制 1.1 概述 A40I开发板集成多媒体解码.液晶驱动.千兆以太网.3G.HDMI.VGA.WIFI.Camera.GPS.功放.加密于一体,支持绝大部分当前流行的视频及图片 ...
- ubuntu系统上,对.cu文件进行编译,生成.so或可执行文件
本文主要介绍在ubuntu系统上,怎样对.cu文件进行编译,生成.so或可执行文件. 一.cuda文件 后缀为.cu的文件,里面主要利用cuda进行高效的并行计算. 二.编译 主要有2种编译方法: 1 ...
- 如何在ubuntu系统上安装多个cudn环境(及对应cudnn、pytorch 、torchvision安装方法 )
如何在ubuntu系统上安装多个cudn环境 第二版本的cuda的安装 cuda的切换设置 对应cudnn的安装 安装pytorch及torchvision 后话 转载请注明出处 在跑模型的时候报错说 ...
- 如何安装linux_在Ubuntu系统上如何制作Linux安装U盘
请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解如何在Ubuntu系统中制作Linux启动 ...
- hhvm mysql_Linux_在Ubuntu系统上搭建Nginx+HHVM+MySQL开发环境的教程,貌似最近这个HHVM特别火,其主 - phpStudy...
在Ubuntu系统上搭建Nginx+HHVM+MySQL开发环境的教程 貌似最近这个HHVM特别火,其主要原因大概要归咎于大的运行效率吧,安装完之后使用探针测试,计算运行的时间都是0.0*的级别,据说 ...
- [详细教程] 在现有Ubuntu系统上安装Windows 10 (双系统)
文章目录 前言 一些说明 1.创建NTFS主分区 [1] 1.1 方法一:Unetbootin (官方不推荐) 1.2 方法二:Tuxboot 1.3 利用gparted启动盘创建新的NTFS分区 2 ...
- 如何将usb摄像头连接到虚拟机vmware ubuntu系统上?
先插上usb摄像头,打开虚拟机 右下角有个圈圈小按钮,点击它,点击连接(断开与主机的连接) 摄像头就会与windows断开,而连接到ubuntu系统上 连上后,就显示成这样 再点击它,能实现断开操作
- TeamViewer——Ubuntu系统上的安装和卸载
1 致谢 感谢网友zhangyuexiang123的帮助, 原文链接如下: https://blog.csdn.net/zhangyuexiang123/article/details/8654804 ...
最新文章
- 复习06统计学习方法(Logistic回归与最大熵模型)---图片版
- 安卓个人信息界面_LOL手游上架,安卓+IOS安装教程
- SpringMVC_4.请求数据
- 在网页中给Flash加上超级链接
- Java的,与类的初始化顺序
- 对于刚开始使用该软件,应该在熟悉基本的markdown语法的基础上,再进行快捷键的使用!...
- 『ExtJS』表单(一)常用表单控件及内置验证
- 前端:JS/28/CSS DOM动态样式(style对象,style 对象属性与CSS属性的转换),Event DOM,事件对象简介(DOM和IE中的Event对象),实例:点出满天小星星
- 将SPS中被FrontPage修改过的页面重置为Ghost Page
- C/C++:个人收支系统实现
- 【推理引擎】ONNXRuntime 的架构设计
- 带你了解ICCV、ECCV、CVPR三大国际会议
- Bandizip Archiver for mac(便捷解压缩软件)
- python学习需要多久?三个月够吗?
- 网页H5实现 美团接单 连接打印机打印客户下单信息
- 五分钟讲透开关电源buck降压基本原理
- 【OpenCV 例程 300 篇】105. 湍流模糊退化模型
- c语言程序打不开如何修复,处理win7中打不开程序修复0xc0000142错误代码的问题
- 前端如何防止多次接口请求
- python--定义新矩阵、矩阵赋值、改变类型