为了给客户的测试和开发提供便利,飞凌嵌入式的开发板产品一般都支持多种操作系统,以基于全志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)系统上定制文件系统的操作过程。

  1. 解压文件系统
    首先,找到OKT507-desktop-release源码的文件系统所在的目录,然后将文件系统压缩包解压,路径如下:

OKT507-desktop-release/ubuntu

解压后,可看到文件系统目录OKT507-linux-ubuntu,进入到此目录后可看到如下文件夹:

  1. 安装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

  1. 修改配置
    ① 将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

  1. 挂载文件系统
    因为我们这里是通过脚本的方式挂载和卸载文件系统,所以需要编写一个脚本挂载和卸载文件系统。

① 新建一个脚本文件命名为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 ./

  1. 安装软件
    前面我们挂载了文件系统,已将文件系统挂载到了QEMU模拟器,接下来就可以安装我们所需要的软件了。

① 更新下载源:

apt update

注意:更新下载源可能会报错,这里需要注意一下,因为tmp文件夹权限不够,chmod为其赋予权限。

如下:

chmod 777 /tmp

② 安装软件:

至此,便可以安装所需软件了,在这里用apt-get安装自己所需软件,根据所需安装。我们这里来安装一个minicom串口测试工具。如下:

③ 安装完成后,exit退出QEMU。

④ 执行ch-mount.sh脚本卸载文件系统,指定参数-u,卸载成功后打印如下:

注意:我们exit退出后,只是退出了QEMU模拟器,并没有卸载文件系统,一定要执行脚本卸载文件系统。

  1. 打包文件系统
    ① 完成前面的步骤后,用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

③ 将刚打包好的压缩包替换到上一级目录下的旧的文件系统压缩包。

④ 重新编译打包后生成新的镜像烧录开发板。

  1. 测试方法
    烧录到板子后,在终端启动minicom,验证下是否安装上。如下:

从上图红框可以看出,通过终端命令启动了minicom,说明我们在QEMU中安装成功了,至此Ubuntu文件系统定制就做完了。

通过这种方法可以个性化的定制属于自己文件系统,安装自己所需软件,也可以根据自己需求将出厂不需要的软件用相同的方式卸载掉,这样既能减少工作量,又利于批量化生产。

以上就是小编为大家带来的在Forlinx Desktop(Ubuntu)系统上定制文件系统的操作过程。想要了解有关OKT507-C开发板更多的功能和详情,可以进入飞凌嵌入式官网查看。

介绍在全志A40i Ubuntu系统上定制文件系统的操作过程相关推荐

  1. Ubuntu系统上为用户授予和删除sudo权限的方法

    本文介绍在Ubuntu系统上为用户授予和删除sudo权限的方法. 背景 用户可以在Ubuntu系统上使用sudo权限执行任何管理任务,在Linux机器上创建新用户时,他们无法执行任何管理任务,直到你将 ...

  2. 全志A40I开发板方案定制开发

    全志A40I开发板方案定制 1.1 概述 A40I开发板集成多媒体解码.液晶驱动.千兆以太网.3G.HDMI.VGA.WIFI.Camera.GPS.功放.加密于一体,支持绝大部分当前流行的视频及图片 ...

  3. ubuntu系统上,对.cu文件进行编译,生成.so或可执行文件

    本文主要介绍在ubuntu系统上,怎样对.cu文件进行编译,生成.so或可执行文件. 一.cuda文件 后缀为.cu的文件,里面主要利用cuda进行高效的并行计算. 二.编译 主要有2种编译方法: 1 ...

  4. 如何在ubuntu系统上安装多个cudn环境(及对应cudnn、pytorch 、torchvision安装方法 )

    如何在ubuntu系统上安装多个cudn环境 第二版本的cuda的安装 cuda的切换设置 对应cudnn的安装 安装pytorch及torchvision 后话 转载请注明出处 在跑模型的时候报错说 ...

  5. 如何安装linux_在Ubuntu系统上如何制作Linux安装U盘

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. 前言 本文主要讲解如何在Ubuntu系统中制作Linux启动 ...

  6. hhvm mysql_Linux_在Ubuntu系统上搭建Nginx+HHVM+MySQL开发环境的教程,貌似最近这个HHVM特别火,其主 - phpStudy...

    在Ubuntu系统上搭建Nginx+HHVM+MySQL开发环境的教程 貌似最近这个HHVM特别火,其主要原因大概要归咎于大的运行效率吧,安装完之后使用探针测试,计算运行的时间都是0.0*的级别,据说 ...

  7. [详细教程] 在现有Ubuntu系统上安装Windows 10 (双系统)

    文章目录 前言 一些说明 1.创建NTFS主分区 [1] 1.1 方法一:Unetbootin (官方不推荐) 1.2 方法二:Tuxboot 1.3 利用gparted启动盘创建新的NTFS分区 2 ...

  8. 如何将usb摄像头连接到虚拟机vmware ubuntu系统上?

    先插上usb摄像头,打开虚拟机 右下角有个圈圈小按钮,点击它,点击连接(断开与主机的连接) 摄像头就会与windows断开,而连接到ubuntu系统上 连上后,就显示成这样 再点击它,能实现断开操作

  9. TeamViewer——Ubuntu系统上的安装和卸载

    1 致谢 感谢网友zhangyuexiang123的帮助, 原文链接如下: https://blog.csdn.net/zhangyuexiang123/article/details/8654804 ...

最新文章

  1. 复习06统计学习方法(Logistic回归与最大熵模型)---图片版
  2. 安卓个人信息界面_LOL手游上架,安卓+IOS安装教程
  3. SpringMVC_4.请求数据
  4. 在网页中给Flash加上超级链接
  5. Java的,与类的初始化顺序
  6. 对于刚开始使用该软件,应该在熟悉基本的markdown语法的基础上,再进行快捷键的使用!...
  7. 『ExtJS』表单(一)常用表单控件及内置验证
  8. 前端:JS/28/CSS DOM动态样式(style对象,style 对象属性与CSS属性的转换),Event DOM,事件对象简介(DOM和IE中的Event对象),实例:点出满天小星星
  9. 将SPS中被FrontPage修改过的页面重置为Ghost Page
  10. C/C++:个人收支系统实现
  11. 【推理引擎】ONNXRuntime 的架构设计
  12. 带你了解ICCV、ECCV、CVPR三大国际会议
  13. Bandizip Archiver for mac(便捷解压缩软件)
  14. python学习需要多久?三个月够吗?
  15. 网页H5实现 美团接单 连接打印机打印客户下单信息
  16. 五分钟讲透开关电源buck降压基本原理
  17. 【OpenCV 例程 300 篇】105. 湍流模糊退化模型
  18. c语言程序打不开如何修复,处理win7中打不开程序修复0xc0000142错误代码的问题
  19. 前端如何防止多次接口请求
  20. python--定义新矩阵、矩阵赋值、改变类型

热门文章

  1. 【思特奇杯·云上蓝桥-算法集训营】第二周
  2. HTML的浮动与定位
  3. 社区消防安全搭上智慧城市快车
  4. 苹果想颠覆广告业,Facebook带头开撕
  5. 游戏策划学习:只狼、黑魂
  6. 人在回路的机器学习:前言
  7. 吸收理想世界能量的气功
  8. 使用yum命令时报错Cannot retrieve metalink for repository epel
  9. 一杯敬明天,一杯敬过往--我的半年总结
  10. 云BI,如何成为了企业的“贴身管家”?