ltib每次执行后会在其目录下生成rootfs目录,并以其为基础生成rootfs.ext2.gz文件,而litb自带的QT库又太老,所以想到按照飞凌的《OKMX6X-S2-Qt4.8.5移植手册-V1.1-2016-08-18.pdf》进行QT库的移植,在飞凌的ubuntu虚拟机里libts和QT都已经解压并放到对应的目录了,所以剩下的工作就是把相应的文件和脚本放到rootfs/目录并生成新的根文件系统。(注意手册有多处空格笔误,以及目录名前后矛盾——qt4.8.5/和forlinx_qt4.8/)。自己写了个脚本qt_rootfs.sh,用来把QT相关的库文件放到rootfs目录:

#config tslib and QT4.8.5 in rootfs
#by Saviour 2017.12.11
#tslib
cp -ar /usr/local/arm/tslib/lib/* rootfs/usr/lib
cp -ar /usr/local/arm/tslib/bin/* rootfs/usr/bin
cp -ar /usr/local/arm/tslib/etc/* rootfs/etc
cp qt_env.sh rootfs/etc/rc.d/
#QT 4.8.5
mkdir -p rootfs/opt/forlinx_qt4.8/lib/fonts
mkdir -p rootfs/opt/forlinx_qt4.8/bin
cp -ar /usr/local/freescale/qt4.8.5/lib/libQt* rootfs/opt/forlinx_qt4.8/lib
cp -ar /usr/local/freescale/qt4.8.5/lib/fonts/* rootfs/opt/forlinx_qt4.8/lib/fonts
cp -ar /usr/local/freescale/qt4.8.5/demos/embeddeddialogs/embeddeddialogs rootfs/opt/forlinx_qt4.8/bin
#cp app.sh rootfs/etc/rc.d
cp pack-rootfs.sh rootfs

其中,qt_env.sh根据手册的内容改写(手册设备名有误):

#!/bin/sh
##tslib
export TSLIB_TSDEVICE=/dev/input/event1
export TSLIB_CONFFILE=/etc/ts.conf
export TSLIB_PLUGINDIR=/usr/lib/ts
export POINTERCAL_FILE=/etc/pointercal
export TSLIB_CALIBFILE=/etc/pointercal
export TSLIB_CONSOLEDEVICE=none
export TSLIB_FBDEVICE=/dev/fb0
##qt4.8.5
export QTDIR=/opt/forlinx_qt4.8
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$QTDIR/plugins
export QT_QWS_FONTDIR=$QTDIR/lib/fonts
export QWS_MOUSE_PROTO=tslib:/dev/input/event1
export QWS_DISPLAY="linuxfb:mmWidth50:mmHeight130:0"
export QWS_SIZE=800x480

手册中的app.sh没用,因为我也不打算移植飞凌的例程。至于打包生成可烧写的文件的方式有两种:

1)在rootfs/目录下用pack_rootfs.sh脚本在本目录生成rootfs.tar.bz2:

#!/bin/sh
mknod dev/console c 5 1
mknod dev/null c 1 3
mknod dev/tty c 5 0
chmod 666 dev/console
chmod 666 dev/null
chmod 666 dev/tty
chmod 777 etc
chmod 777 tmp
if [ -f ./rootfs.tar.bz2 ]; then
rm rootfs.tar.bz2
fi
tar -jcvf rootfs.tar.bz2 *

2)用脚本make_rootfs.sh在litb生成的rootfs.ext2.gz基础上于litb/目录下生成rootfs.tar.bz2

#make rootfs.tar.bz2
#2017.11.06 by Saviour
gunzip rootfs.ext2.gz
sudo mount -o loop -t ext2 rootfs.ext2 tool/
cd tool/
sudo tar -jcvf ../rootfs.tar.bz2 *
cd ..
sudo umount tool

开机之后到/etc/rc.d/执行source qt_env.sh就可以运行QT程序了。

OKMX6Q在ltib生成的rootfs基础上制作带QT库的根文件系统的更多相关文章

  1. 【JavaEE】SSH+Spring Security基础上配置AOP+log4j

    Spring Oauth2大多数情况下还是用不到的,主要使用的还是Spring+SpringMVC+Hibernate,有时候加上SpringSecurity,因此,本文及以后的文章的example中 ...

  2. Swift基础之OC文件调用Swift代码(在上次的基础上写的)

    前两天刚写过Swift调用OC,今天在原来的基础上,实现OC调用Swift. 首先,创建一个OneSwiftFile.swift文件,创建一个继承于NSObject的类(这个地方你可以自己选择继承的父 ...

  3. SpringBoot系列——Spring-Data-JPA(究极进化版) 自动生成单表基础增、删、改、查接口

    前言 我们在之前的实现了springboot与data-jpa的增.删.改.查简单使用(请戳:SpringBoot系列——Spring-Data-JPA),并实现了升级版(请戳:SpringBoot系 ...

  4. 如何基于Winform开发框架或混合框架基础上进行项目的快速开发

    在开发项目的时候,我们为了提高速度和质量,往往不是白手起家,需要基于一定的基础上进行项目的快速开发,这样可以利用整个框架的生态基础模块,以及成熟统一的开发方式,可以极大提高我们开发的效率.本篇随笔就是 ...

  5. python实现决策树C4.5算法(在ID3基础上改进)

    一.概论 C4.5主要是在ID3的基础上改进,ID3选择(属性)树节点是选择信息增益值最大的属性作为节点.而C4.5引入了新概念"信息增益率",C4.5是选择信息增益率最大的属性作 ...

  6. 在Bootstrap开发框架基础上增加WebApi+Vue&Element的前端

    基于Metronic的Bootstrap开发框架是我们稍早一点的框架产品,界面部分采用较新的Bootstrap技术,框架后台数据库支持Oracle.SqlServer.MySql.PostgreSQL ...

  7. .net在当前日期的基础上加一天

    比如今天是:2015-11-10 18:57:01,在这个基础上加一天,那么就是2015-11-11 18:57:01,代码如下: DateTime now_dt = DateTime.Now; ). ...

  8. 在cocos code ide的基础上构建自己的lua开发调试环境

    对于一种语言,其所谓开发调试环境, 大体有以下两方面的内容: 1.开发, 即代码编写, 主要是代码提示.补齐, 更高级一点的如变量名颜色等. 2.调试, 主要是运行状态下断点.查看变量.堆栈等. 现在 ...

  9. Android 工程在4.0基础上混淆

    Android现在对安全方面要求比较高了,我今天要做的对apk进行混淆,用所有的第三方工具都不能反编译,作者的知识产权得到保障了,是不是碉堡了. 一,首先说明我这是在4.0基础上进行的. 先看看pro ...

随机推荐

  1. C程序设计语言(第二版)--- 习题选

    1. 解: 2. 解: 3. (分析的好有条理啊!) 4. 解:

  2. Python day 6(3) Python 函数式编程1

    一:函数式编程概念 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的 ...

  3. [Java] 在 jar 文件中读取 resources 目录下的文件

    注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...

  4. tensorflow核心概念和原理介绍

    关于 TensorFlow TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库. 节点(Nodes)在图中表示数学操作,图中的线(edges)则表示 ...

  5. iOS学习——UIAlertController详解

    在开发中,弹出提示框是必不可少的.这两天项目中统一对已经被iOS API废弃的UIAlertView和UIActionSheet进行替换,我们知道,UIAlertView和UIActionSheet都 ...

  6. webpack基础打包安装分享

    一.创建webpack-first文件夹作为站点,创建app文件夹存放js原始模块(main.js 和 Greeter.js) 创建 public文件夹存放index.html和打包后的bundle. ...

  7. 升级node与npm

    升级node 原文地址:https://lierabbit.cn/articles/3 一.安装 n 工具,这个工具的名称很短,方便输入 npm install -g n 二.升级node至长期版或者 ...

  8. python * 的区别

    >>> ['Spam']*5 ['Spam', 'Spam', 'Spam', 'Spam', 'Spam'] >>> ['Spam'*5] ['SpamSpamS ...

  9. JavaScript基础知识(概念、常量和变量)

    1.JavaScript概念 JavaScript是脚本语言; 编写之后,可以直接运行(缺失了编译的过程) 2.JavaScript发展 LiveScript    =>    JavaScri ...

  10. 强化学习 - Q-learning Sarsa 和 DQN 的理解

    本文用于基本入门理解. 强化学习的基本理论 : R, S, A 这些就不说了. 先设想两个场景:  一. 1个 5x5 的 格子图, 里面有一个目标点,  2个死亡点二. 一个迷宫,   一个出发点, ...