nuc972-rootfs
rootfs准备
本项目是为船制作一个图形化的操作界面,显示发动机等各个参数,芯片采用nuc972。本文介绍如何制作包含QT应用的rootfs
编译QT APP
在Ubuntu中交叉编译QT APP,此APP依赖两个外部库
- libmodubs : 485串口通信
- libqwt : 曲线图
在QMAKE(.Pro)文件中修改对应库的路径为本地路径后在进行编译
添加APP到rootfs
将app移动到rootfs文件夹中的某一位置,这里路径是:
1
rootfs/usr/qt_demo
将依赖的两个库移动到对应的目录,目录如下:
1
rootfs/usr/local/qt/lib
由于rootfs中缺少QtSvg库,所以将qt4.8.5-arm中的libQtSvg也移动到上方的目录,文件如下:
1
2
3qt4.8.5-arm/lib# ls libQtSvg*
libQtSvg.la libQtSvg.so libQtSvg.so.4.8
libQtSvg.prl libQtSvg.so.4 libQtSvg.so.4.8.5考虑到rootfs的大小,我移动时只移动了动态库,最终文件列表如下,可供参考:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52rootfs/usr/local/qt/lib# tree -L 1
.
├── fonts
├── libmodbus.so
├── libmodbus.so.5
├── libmodbus.so.5.1.0
├── libQtCore.la
├── libQtCore.prl
├── libQtCore.so -> libQtCore.so.4.8.5
├── libQtCore.so.4 -> libQtCore.so.4.8.5
├── libQtCore.so.4.8 -> libQtCore.so.4.8.5
├── libQtCore.so.4.8.5
├── libQtGui.la
├── libQtGui.prl
├── libQtGui.so -> libQtGui.so.4.8.5
├── libQtGui.so.4 -> libQtGui.so.4.8.5
├── libQtGui.so.4.8 -> libQtGui.so.4.8.5
├── libQtGui.so.4.8.5
├── libQtNetwork.la
├── libQtNetwork.prl
├── libQtNetwork.so -> libQtNetwork.so.4.8.5
├── libQtNetwork.so.4 -> libQtNetwork.so.4.8.5
├── libQtNetwork.so.4.8 -> libQtNetwork.so.4.8.5
├── libQtNetwork.so.4.8.5
├── libQtSql.la
├── libQtSql.prl
├── libQtSql.so -> libQtSql.so.4.8.5
├── libQtSql.so.4 -> libQtSql.so.4.8.5
├── libQtSql.so.4.8 -> libQtSql.so.4.8.5
├── libQtSql.so.4.8.5
├── libQtSvg.so
├── libQtSvg.so.4
├── libQtSvg.so.4.8
├── libQtSvg.so.4.8.5
├── libQtTest.la
├── libQtTest.prl
├── libQtTest.so -> libQtTest.so.4.8.5
├── libQtTest.so.4 -> libQtTest.so.4.8.5
├── libQtTest.so.4.8 -> libQtTest.so.4.8.5
├── libQtTest.so.4.8.5
├── libQtXml.la
├── libQtXml.prl
├── libQtXml.so -> libQtXml.so.4.8.5
├── libQtXml.so.4 -> libQtXml.so.4.8.5
├── libQtXml.so.4.8 -> libQtXml.so.4.8.5
├── libQtXml.so.4.8.5
├── libqwt.so
├── libqwt.so.6
├── libqwt.so.6.1
├── libqwt.so.6.1.2
├── libstdc++.so.6
└── pkgconfig
创建libts的链接文件
由于运行QT APP需要libts.so.0但是rootfs中没有所以需要我们提前创建:
1 |
|
添加环境变量
修改/rootfs/etc/profile如下:
1 |
|
添加开机启动
在/rootfs/etc/init.d/rcS末尾中添加:
1 |
|
rootfs制作
使用mkyaffs2命令制作rootfs,命令如下:
1 |
|
mkyaffs2的使用方法参考开发板入门教程
nuc972-rootfs
https://carl-5535.github.io/2023/02/07/工作总结/nuc972-rootfs/