手动部署QtSylixOS的方法

1. 适用范围

本文档介绍了QtSylixOS相关库文件和应用程序手动部署的方法。

实际开发过程中,有些板卡无网络功能,此时需要手动对QtSylixOS的库文件和应用程序进行部署。

本文介绍的是通过U盘或SD卡将QtSylixOS部署到以Nand Flash为根文件系统的设备中。

2. QtSylixOS需要部署的文件

QtSylixOS部署的文件都位于Qt安装路径的"Qt\qtcreator-3.4.0\SylixOS\sdk"中,如图 2.1所示。

图 2.1 QtSylixOS安装目录下的sdk文件夹

以armv7架构的处理器为例,其使用的sdk版本为armv7-sylixos-qt-4.8.7。如图 2.2所示,在"Qt\qtcreator-3.4.0\SylixOS\sdk\fs"目录下有需要部署的文件。

图 2.2需要部署的fs目录

fs目录对应目标板卡上的"/"目录,所以fs目录下的apps,etc,qt分别与目标板卡上的"/apps","/etc","/qt"目录对应。

3. 部署步骤

3.1 拷贝fs目录

首先将U盘或SD卡接入PC,拷贝fs目录至U盘或SD中。

3.2 拷贝Base库

应用程序运行时会依赖Base工程中如表 3.1所示的文件。

表 3.1 Base工程需要拷贝的库文件

名称 路径
libcextern.so Base/libcextern/Release/strip/libcextern.so
env Base/libsylixos/Release/strip/env
libvpmpdm.so Base/libsylixos/Release/strip/libvpmpdm.so
xinput.ko Base/libsylixos/Release/strip/xinput.ko
xsiipc.ko Base/libsylixos/Release/strip/xsiipc.ko

在fs同目录下建立base文件夹,将以上文件拷贝至base文件夹中。

以上两步结束后,U盘或SD卡目录下应该有如图 3.1所示的两个文件夹。

图 3.1拷贝结束后的目录

3.3 创建自动拷贝脚本

在fs目录同一层级中,创建copy.sh脚本文件,并在copy.sh中键入如程序清单 4.1所示的内容。

3.4 目标板卡挂载U盘或SD卡

将U盘或SD卡接入目标板卡,SylixOS会自动做挂载。

3.5 执行拷贝脚本

进入挂载后的U盘或SD卡目录,一般为/media/sdcardX(X为0…n)或/media/udiskX(X为0…n),使用shfile copy.sh命令执行拷贝脚本。

4. 拷贝脚本内容

程序清单 4.1拷贝脚本

mkdir /apps
mkdir /apps/mousecalibration
cp –rf fs/apps/mousecalibration/mousecalibration /apps/mousecalibration/.
mkdir /etc
cp –rf fs/etc/fs_init.sh /etc/fs_init.sh
cp –rf fs/etc/fs_no_symlink_init.sh /etc/fs_no_symlink_init.sh
cp –rf fs/etc/pointercal /etc/pointercal
cp –rf fs/etc/qtcp_4.8.7.sh /etc/qtcp_4.8.7.sh
cp –rf fs/etc/qtenv.sh /etc/qtenv.sh
cp –rf fs/etc/qtln_4.8.7.sh /etc/qtln_4.8.7.sh
cp –rf fs/etc/startup.sh /etc/startup.sh
mkdir /qt
mkdir /qt/lib
mkdir /qt/lib/fonts
cp –rf fs/qt/lib/fonts/DejaVuSans.ttf /qt/lib/fonts/DejaVuSans.ttf
cp –rf fs/qt/lib/libQt3Support.so.4.8.7 /qt/lib/libQt3Support.so.4.8.7
cp –rf fs/qt/lib/libQtCLucene.so.4.8.7 /qt/lib/libQtCLucene.so.4.8.7
cp –rf fs/qt/lib/libQtCore.so.4.8.7 /qt/lib/libQtCore.so.4.8.7
cp –rf fs/qt/lib/libQtDeclarative.so.4.8.7 /qt/lib/libQtDeclarative.so.4.8.7
cp –rf fs/qt/lib/libQtDesigner.so.4.8.7 /qt/lib/libQtDesigner.so.4.8.7
cp –rf fs/qt/lib/libQtDesignerComponents.so.4.8.7 /qt/lib/.
cp –rf fs/qt/lib/libQtGui.so.4.8.7 /qt/lib/libQtGui.so.4.8.7
cp –rf fs/qt/lib/libQtHelp.so.4.8.7 /qt/lib/libQtHelp.so.4.8.7
cp –rf fs/qt/lib/libQtMultimedia.so.4.8.7 /qt/lib/libQtMultimedia.so.4.8.7
cp –rf fs/qt/lib/libQtNetwork.so.4.8.7 /qt/lib/libQtNetwork.so.4.8.7
cp –rf fs/qt/lib/libQtScript.so.4.8.7 /qt/lib/libQtScript.so.4.8.7
cp –rf fs/qt/lib/libQtScriptTools.so.4.8.7 /qt/lib/libQtScriptTools.so.4.8.7
cp –rf fs/qt/lib/libQtSerialPort.so.1.0.0 /qt/lib/libQtSerialPort.so.1.0.0
cp –rf fs/qt/lib/libQtSql.so.4.8.7 /qt/lib/libQtSql.so.4.8.7
cp –rf fs/qt/lib/libQtSvg.so.4.8.7 /qt/lib/libQtSvg.so.4.8.7
cp –rf fs/qt/lib/libQtTest.so.4.8.7 /qt/lib/libQtTest.so.4.8.7
cp –rf fs/qt/lib/libQtWebKit.so.4.9.4 /qt/lib/libQtWebKit.so.4.9.4
cp –rf fs/qt/lib/libQtXml.so.4.8.7 /qt/lib/libQtXml.so.4.8.7
cp –rf fs/qt/lib/libQtXmlPatterns.so.4.8.7 /qt/lib/libQtXmlPatterns.so.4.8.7
cp –rf fs/qt/lib/libqwt.so.6.1.2 /qt/lib/libqwt.so.6.1.2
cp –rf base/libvpmpdm.so /lib/libvpmpdm.so
mkdir /lib/modules/
mkdir /usr/bin
cp –rf base/xinput.ko /lib/modules/xinput.ko
cp –rf base/xsiipc.ko /lib/modules/xsiipc.ko
cp –rf base/env /usr/bin/env
cp –rf base/libcextern.so /lib/libcextern.so
mkdir /qt/plugins/
mkdir /qt/plugins/accessible
cp –rf fs/qt/plugins/accessible/libqtaccessiblecompatwidgets.so /qt/plugins/accessible/.
cp –rf fs/qt/plugins/accessible/libqtaccessiblewidgets.so /qt/plugins/accessible/.
mkdir /qt/plugins/bearer
cp –rf fs/qt/plugins/accessible/libqgenericbearer.so /qt/plugins/bearer/.
mkdir /qt/plugins/designer
cp –rf fs/qt/plugins/accessible/libcontainerextension.so /qt/plugins/designer/.
cp –rf fs/qt/plugins/accessible/libcustomwidgetplugin.so /qt/plugins/designer/.
cp –rf fs/qt/plugins/accessible/libqdeclarativeview.so /qt/plugins/designer/.
cp –rf fs/qt/plugins/accessible/libqt3supportwidgets.so /qt/plugins/designer/.
cp –rf fs/qt/plugins/accessible/libqwebview.so /qt/plugins/designer/.
cp –rf fs/qt/plugins/accessible/libtaskmenuextension.so /qt/plugins/designer/.
cp –rf fs/qt/plugins/accessible/libworldtimeclockplugin.so /qt/plugins/designer/.
mkdir /qt/plugins/iconengines
cp –rf fs/qt/plugins/iconengines/libqsvgicon.so /qt/plugins/iconengines/.
mkdir /qt/plugins/imageformats
cp –rf fs/qt/plugins/imageformats/libqgif.so /qt/plugins/libqgif/.
cp –rf fs/qt/plugins/imageformats/libqico.so /qt/plugins/libqico/.
cp –rf fs/qt/plugins/imageformats/libqjpeg.so /qt/plugins/libqjpeg/.
cp –rf fs/qt/plugins/imageformats/libqmng.so /qt/plugins/libqmng/.
cp –rf fs/qt/plugins/imageformats/libqsvg.so /qt/plugins/libqsvg/.
cp –rf fs/qt/plugins/imageformats/libqtga.so /qt/plugins/libqtga/.
cp –rf fs/qt/plugins/imageformats/libqtiff.so /qt/plugins/libqtiff/.
mkdir /qt/plugins/qmltooling
cp –rf fs/qt/plugins/qmltooling/libqmldbg_inspector.so /qt/plugins/qmltooling/.
cp –rf fs/qt/plugins/qmltooling/libqmldbg_tcp.so /qt/plugins/qmltooling/.
mkdir /qt/qml/
mkdir /qt/qml/Qt/
mkdir /qt/qml/Qt/labs/
mkdir /qt/qml/Qt/labs/folderlistmodel
cp –rf fs/qt/qml/Qt/labs/folderlistmodel/libqmlfolderlistmodelplugin.so /qt/qml/Qt/labs/folderlistmodel/.
cp –rf fs/qt/qml/Qt/labs/folderlistmodel/qmldir /qt/qml/Qt/labs/folderlistmodel/.
mkdir /qt/qml/Qt/labs/gestures
cp –rf fs/qt/qml/Qt/labs/gestures/libqmlgesturesplugin.so /qt/qml/Qt/labs/gestures/.
cp –rf fs/qt/qml/Qt/labs/gestures/qmldir /qt/qml/Qt/labs/gestures/.
mkdir /qt/qml/Qt/labs/particles
cp –rf fs/qt/qml/Qt/labs/particles/libqmlparticlesplugin.so /qt/qml/Qt/labs/particles/.
cp –rf fs/qt/qml/Qt/labs/particles/qmldir /qt/qml/Qt/labs/particles/.
mkdir /qt/qml/QtWebKit/
cp –rf fs/qt/qml/QtWebKit/libqmlwebkitplugin.so /qt/qml/QtWebKit/.
cp –rf fs/qt/qml/QtWebKit/qmldir /qt/qml/QtWebKit/.
时间: 2024-10-10 13:43:16

手动部署QtSylixOS的方法的相关文章

012在Tomcat下如何手动部署Web应用

实例说明 通过对Tomcat目录的了解可知,webapps文件夹是存放工程包的位置.本实例主要介绍如何手动部署Web应用. 关键技术 这种context片段提供了一种便利的方法来部署Web应用,不需要编辑server.xml,除非想改变默认的部署特性,在安装一个新的Web应用时不需要重新启动Tomcat. 设计过程 复制war文件或者web应用文件夹包括(包括Web下的所有内容)到$CATALINA_BASE/webapps目录下. 为Web服务建立一个只包含context内容的XML片段文件,

在Ubuntu使用 Let's Encrypt 证书部署 HTTPS的方法

获取软件包: $ sudo apt-get update $ sudo apt-get install software-properties-common $ sudo add-apt-repository ppa:certbot/certbot $ sudo apt-get update $ sudo apt-get install python-certbot-apache 自动安装与部署证书: $ sudo certbot --apache 它会自动安装插件,然后你需要输入邮箱来用于证书

Tomcat部署Web应用方法总结

Tomcat部署Web应用方法总结在Tomcat中部署Java Web应用程序有两种方式:静态部署和动态部署. 在下文中$CATALINA_HOME 指的是Tomcat根目录. 一.静态部署静态部署指的是我们在服务器启动之前部署我们的程序,只有当服务器启动之后,我们的Web应用程序才能访问. 以下3种方式都可以部署:(以maintain项目为例说明,maintain目录假设是F:/maintain) 1.利用Tomcat自动部署将maintain目录拷贝到$CATALINA_HOME/webap

java web 手动部署项目步骤

java Web 手动部署项目步骤 1 在tomcat下面的webapps下面建立需要部署的文件夹(eg:demo);2 在demo下建立 WEB-INF WETA-INF src 文件夹;3 在src下建立新的servlet.java文件4 在WEB-INF下面建立classes和web.xml文件 5通过命令“javac -d 目录地址 文件名” 编译servlet,前提是必须把tomcat目录下的lib里面的servlet-api.jar拷贝到当前的servlet源文件目录下. 在配置环境

手动部署第三方构件至私服

-------------------siwuxie095 手动部署第三方构件至私服 1.某些构件(如:Oracle 的 JDBC 驱动)由于许可证 或 版权 的因素,无法公开地放在公共仓库中 此外,还有大量的小型开源项目,它们没有把自己的构件分发到 中央仓库中,也没有维护自己的仓库,因此也无法从公共仓库获 得 这时,用户就需要将这类构件下载到本地,再上传到私服中 2.可以将第三方构件上传到 Nexus 私服的宿主仓库 3rd party 3.具体应用:将 Oracle 的 JDBC 驱动部署到

Magento后台手动修改订单状态方法

订单详细内容页手动修改订单状态方法: 打开此文件:app\design\adminhtml\default\default\template\sales\order\view\history.phtml 34行位置为如下原本内容: <?php foreach ($this->getStatuses() as $_code=>$_label): ?> 修改为: <?php foreach (Mage::getSingleton('sales/order_config')->

openstack手动部署简单记录

1,关于网络规划部分,之前写的都好好的了,浏览器TM的崩溃了,我写几天的笔记 记录全给我丢了,我TM的多心疼啊! 大致说了关于openstack手动安装关于网络规划的问题 第一种legacy networking architecture  design :controller(跑单网卡management) + N computerNodes(跑2块网management+虚机实例隧道口卡) 第二种 openstack networking (neutron) architecture des

linux中手动释放缓存的方法

linux中手动释放缓存的方法  Linux释放内存的相关知识介绍: 在Linux系统下,我们一般不需要去释放内存,因为系统已经将内存管理的很好.但是凡事也有例外,有的时候内存会被缓存占用掉,导致系统使用SWAP空 间影响性能,例如当你在linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching.,此时就需 要执行释放内存(清理缓存)的操作了. Linux系统的缓存机制是相当先进的,他会针对dentry(用于VFS,加速文件路径名到inode的

SDWebImage手动清除缓存的方法

1.找到SDImageCache类 2.添加如下方法: [objc] view plaincopyprint? - (float)checkTmpSize { float totalSize = 0; NSDirectoryEnumerator *fileEnumerator = [[NSFileManager defaultManager] enumeratorAtPath:diskCachePath]; for (NSString *fileName in fileEnumerator) {