EDA365电子论坛网

标题: 手把手教你在Ubuntu定制文件系统 [打印本页]

作者: 罗罗诺亚    时间: 2022-12-15 20:26
标题: 手把手教你在Ubuntu定制文件系统

为了给客户的测试和开发提供便利,飞凌嵌入式的开发板产品一般都支持多种操作系统,以基于全志T507H处理器设计研发的OKT507-C开发板为例,它支持三种操作系统,分别是:Linux、Android 和 Forlinx Desktop(Ubuntu),这里提到的Forlinx Desktop系统是飞凌嵌入式在Ubuntu base的基础上构建的桌面操作系统,完全兼容Ubuntu18.04,相对传统的Linux系统而言易用性更高。

" \! o) p+ h% b
  x: C. p: k& y! t


6 g6 w3 N7 }. F3 S5 j; N- ?

Forlinx Desktop(Ubuntu)系统基于Ubuntu官方为嵌入式设备制作的操作系统-Lubuntu,该操作系统具备apt-get、ldd等常用的命令,若需要安装软件则直接apt-get在线安装即可,不需进行交叉编译移植等繁琐操作。但是每次重新烧写镜像之后,之前安装的软件就得重新安装,比较繁琐,如果需要批量操作则每块开发板都需要去apt-get安装,这样会大幅增加工作量,很不便于批量化生产。

% k9 J- o. p2 |

能不能把软件一起打包到镜像呢?这样每次烧写完就不用再去apt-get在线安装了。答案当然是肯定的,这就涉及到文件系统的定制了,那么接下来,小编就为大家介绍在Forlinx Desktop(Ubuntu)系统上定制文件系统的操作过程。


( l/ J2 {5 R( R

1. 解压文件系统

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

OKT507-desktop-release/ubuntu

5 J% [) q$ F) p6 e


9 ?; F1 \6 M9 J

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

9 @! v8 U/ B( i- o1 k

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

7 Q1 v6 G' Y5 H$ K" |8 {) O

3. 修改配置

① 将QEMU的qemu-arm-static拷贝到文件系统目录OKT507-linux-ubuntu,如下:

sudo cp /usr/bin/qemu-arm-static usr/bin/


1 x  R! S; d: M8 o* S+ F1 y9 ^, Q: \+ A, V

5 d. e) d9 v4 R; O6 f& \! T

② 拷贝PC主机端的DNS配置,因为待会我们安装程序时要用网络:

sudo cp -b /etc/resolv.conf etc/resolv.conf


& Y, T# m% u# U' x5 {: l


3 G; i8 X6 E% M- n; h/ n1 [
8 H* I9 G! k* b3 c; C6 }3 f# [& @

③ 修改下载源:

sudo vim etc/apt/sources.list


8 P, R% S# X9 \1 k3 a" Q

添加

deb http://ports.ubuntu.com/ubuntu-ports/ xenial main universe deb-src http://ports.ubuntu.com/ubuntu-ports/ xenial main universe


6 S, J& N/ d0 U2 g. r/ I/ c8 Z/ ?6 b

" P! e3 W0 I7 Z1 `6 u. z7 _

! Z" }! y0 _7 b; u2 h2 q% Z/ o8 r3 M! a2 u; v6 v

4. 挂载文件系统

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

① 新建一个脚本文件命名为ch-mount.sh,附代码如下:


7 [( G$ y/ k* i2 B) d" W8 k% ?* N7 ~# R/ h) w" H: J4 I

/ m! i, w0 n( {' N3 c% R, Y3 X: E

② 设置这个shell脚本可执行权限,如下:

sudo chmod 777 ch-mount.sh

③ 挂载文件系统:

执行ch-mount.sh脚本 指定参数-m,挂载成功如下:

sudo ./ch-mount.sh -m ./

% D3 ^  I" s+ ]1 H; O1 U

5. 安装软件

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

① 更新下载源:

apt update

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

如下:

chmod 777 /tmp

② 安装软件:

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


) N/ X, @, J2 C" K. g+ ~% J! ?' D

- n7 R5 ?9 a) v& x8 h. a' P

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

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


/ F4 q8 |& V1 L5 H9 B

# o' a1 p3 u. ?
7 O/ d& G" p9 o  [# F

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


. ^! n5 F3 M/ \5 y8 `' g

6. 打包文件系统

① 完成前面的步骤后,用tar命令将当前文件夹下所有文件压缩,命名为OKT507-linux-ubuntu.tar.gz。如下:

sudo tar -cvzf OKT507-linux-ubuntu.tar.gz ./*


( n) z' B3 b4 l5 x

② 压缩完成后,为文件系统压缩包OKT507-linux-ubuntu.tar.gz赋予权限,如下:

sudo chmod a+w OKT507-linux-ubuntu.tar.gz


+ z3 I3 v3 G9 N: G" r6 @2 h, ~( P


! i4 V5 r4 C4 |8 p
5 }) g. ]+ _  C- z; h, m

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

* r6 S( K1 B: S" ?% Y+ r% F& O( ]

& w7 M% u8 {3 J

4 F) D8 F2 i5 W* I5 a: n3 t

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

8 @* {: ^' E! B2 P2 Q- V

3 O+ ?6 }- w* N2 O5 [, e: Y6 N9 I1 A1 z

7. 测试方法

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

2 p6 d3 V% z5 }


8 h8 M9 `% |" ?4 u8 {. \

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


: [. o+ z4 f( R, u( p: O4 J

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

' N3 V, E- \5 V

作者: hfiwioq    时间: 2022-12-16 09:52
这种开发板用教程,基本上就可以配置完成,Linux在学校实训的时候用过感觉不错




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2