欢迎扫码关注微信公众号:柒零玖嵌入式,更多嵌入式软硬件相关分享!
之前,我们设计了imx6ul板卡,硬件设计参考:https://blog.csdn.net/fengyuwuzu0519/article/details/79133851。之后在上面进行了uboot的相关分析,现在移植QT5.6.0到这块板卡上来,其他imx6ul同样适用。
链接:https://pan.baidu.com/s/11H1zw21_kAutOfuQPuFBmg 密码:9000
链接:https://pan.baidu.com/s/1hiDQEDYWCq8FQYirw9yedg 密码:gvd7
git clone https://github.com/kergoth/tslib.git(sudo apt-get install autoconf automake libtool)
- busybox:busybox-1.22.1.tar.bz2
1、mkdir -p /opt/FriendlyARM/toolchain
2、cp arm-conrtexa9-linux-gnueabihf-4.9.3-20160512.tar.xz /opt/FriendlyARM/toolchain
3、cd /opt/FriendlyARM/toolchain
4、tar -xf arm-conrtexa9-linux-gnueabihf-4.9.3-20160512.tar.xz
5、设置/etc/environment
6、source /etc/environment
7、arm-linux-gcc -v
1、git clone https://github.com/kergoth/tslib.git
2、./autogen.sh
3、./configure --prefix=/opt/tslib --host=arm-linux --cache-file=arm-linux.cache CC=arm-linux-gcc CXX=arm-linux-g++
4、make
5、make install
tslib安装在/opt/tslib目录下:
1、tar -xf qt-everywhere-opensource-src-5.6.0.tar.gz
2、cd qt-everywhere-opensource-src-5.6.0
3、vi qtbase/mkspecs/linux-arm-gnueabi-g++/qmake.conf
(可关注最上方二维码公众号“柒零玖嵌入式”,回复:QT5.6。获取最新的qmake.conf文件内容)
4、./configure -v -prefix /opt/qt-5.6.0 -release \
-opensource -no-accessibility \
-make libs -xplatform linux-arm-gnueabi-g++ -optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-zlib \
-tslib \
-no-opengl \
-no-sse2 \
-no-openssl \
-no-nis \
-no-cups \
-no-glib \
-no-pkg-config \
-no-separate-debug-info\
-I /opt/tslib/include -L /opt/tslib/lib
5、make -j81、解压
tar jxvf busybox-1.22.1.tar.bz2
2、配置
make menuconfig
Busybox Settings ->
general configuration ->
[*] don't use /usr
build options->
cross comliler prefix = arm-linux-
installtion options->
busybox installation prefix = /work/rootfs
3、编译&安装
mkdir -p /work/my_rootfs
make
make install
cd /work/my_rootfs
ls
编译安装完毕之后,我们的文件系统就生成在 /work/my_roofs 目录下了
4、创建 /etc/inittab
mkdir -p /work/my_rootfs/etc
vi /work/my_rootfs/etc/inittab
# /etc/inittab
# 启动脚本/etc/init.d/rcS
::sysinit:/etc/init.d/rcS
# 启动 shell
::askfirst:-/bin/sh
# 重启关机前 卸载文件系统
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
5、创建 /etc/init.d/rcS
mkdir -p /work/my_rootfs/etc/init.d
vi /work/my_rootfs/etc/init.d/rcS
# 这是一个脚本文件,用/bin/sh解析
#!/bin/sh
# 挂载文件系统
mount -a
# 使用内存文件系统
mkdir /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
# 设置IP
#/sbin/ifconfig eth0 192.168.1.17 #nfs不需要
# 挂载 /etc/fstab 中的文件系统
mount -a
exec /etc/rc.local
6、创建rc.local
vi /work/my_rootfs/etc/rc.local
#!/bin/sh
. /etc/profile //注意.后边有个空格!
7、创建/etc/fstab
vi /work/my_rootfs/etc/fstab
# device mount-point type options dump fsck order
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
8、构建 /dev 目录
mkdir -p /work/my_rootfs/dev
cd /work/my_rootfs/dev
sudo mknod console c 5 1
sudo mknod null c 1 3
9、创建其它目录
mkdir proc mnt tmp sys root usr lib
10、拷贝Lib
cp /opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/lib/*so* /work/my_rootfs/lib -d
11、拷贝QT5.6和TSLIB到文件系统目录
cp /opt/qt-5.6.0 /work/my_roofs/usr/local -r
cp /opt/tslib /work/my_roofs/usr/local -r
vi profile 加入:
#!/bin/sh
export T_ROOT=/usr/local/tslib13、发布网络文件系统
vi /etc/hosts加入:192.168.1.17 /work/my_rootfs
vi /etc/exports加入:/work/my_rootfs *(rw,sync,no_root_squash)
1、设置uboot参数从网络文件系统启动
2、启动内核
3、测试tslib,并校准屏幕
4、测试QT历程
简单的例子:链接:https://pan.baidu.com/s/15PVtuk4NxJ0wOym_NFGF0A 密码:g0wn
5、测试结果:
6、最终文件系统下载,包含QT和TSLIB
(可关注最上方个人公众号“柒零玖嵌入式”交流学习,回复:imx6ul文件系统。获取最新的文件系统内容)
疑问和交流学习,请扫描关注个人微信公众号“柒零玖嵌入式”仅交流学习之用。