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#tslibcp -ar /usr/local/arm/tslib/lib/* rootfs/usr/libcp -ar /usr/local/arm/tslib/bin/* rootfs/usr/bincp -ar /usr/local/arm/tslib/etc/* rootfs/etccp qt_env.sh rootfs/etc/rc.d/#QT 4.8.5mkdir -p rootfs/opt/forlinx_qt4.8/lib/fontsmkdir -p rootfs/opt/forlinx_qt4.8/bincp -ar /usr/local/freescale/qt4.8.5/lib/libQt* rootfs/opt/forlinx_qt4.8/libcp -ar /usr/local/freescale/qt4.8.5/lib/fonts/* rootfs/opt/forlinx_qt4.8/lib/fontscp -ar /usr/local/freescale/qt4.8.5/demos/embeddeddialogs/embeddeddialogs rootfs/opt/forlinx_qt4.8/bin#cp app.sh rootfs/etc/rc.dcp pack-rootfs.sh rootfs
其中,qt_env.sh根据手册的内容改写(手册设备名有误):
#!/bin/sh##tslibexport TSLIB_TSDEVICE=/dev/input/event1export TSLIB_CONFFILE=/etc/ts.confexport TSLIB_PLUGINDIR=/usr/lib/tsexport POINTERCAL_FILE=/etc/pointercalexport TSLIB_CALIBFILE=/etc/pointercalexport TSLIB_CONSOLEDEVICE=noneexport TSLIB_FBDEVICE=/dev/fb0##qt4.8.5export QTDIR=/opt/forlinx_qt4.8export PATH=$QTDIR/bin:$PATHexport LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATHexport QT_PLUGIN_PATH=$QTDIR/pluginsexport QT_QWS_FONTDIR=$QTDIR/lib/fontsexport QWS_MOUSE_PROTO=tslib:/dev/input/event1export QWS_DISPLAY="linuxfb:mmWidth50:mmHeight130:0"export QWS_SIZE=800x480
手册中的app.sh没用,因为我也不打算移植飞凌的例程。至于打包生成可烧写的文件的方式有两种:
1)在rootfs/目录下用pack_rootfs.sh脚本在本目录生成rootfs.tar.bz2:#!/bin/shmknod dev/console c 5 1mknod dev/null c 1 3mknod dev/tty c 5 0chmod 666 dev/consolechmod 666 dev/nullchmod 666 dev/ttychmod 777 etcchmod 777 tmpif [ -f ./rootfs.tar.bz2 ]; then rm rootfs.tar.bz2fitar -jcvf rootfs.tar.bz2 *
2)用脚本make_rootfs.sh在litb生成的rootfs.ext2.gz基础上于litb/目录下生成rootfs.tar.bz2
#make rootfs.tar.bz2#2017.11.06 by Saviourgunzip rootfs.ext2.gzsudo 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程序了。