一、本实验实验的器材:
1.正点原子imx6ull的阿尔法开发板v2.2
2.屏幕ALIENTEK 4.3 RGBLCD
二、实验已经移植好的文件:
仓库代码:https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git
1.文件说明
arm-qt.tar.bz2:移植好的qt源码
arm-tslib.tar.bz2:移植好的tslib源码
23_multitouch :驱动代码
tslib-1.21:tslib源码
rootfs:移植好的根文件系统
imx6ull-alientek-emmc.dts:移植好的设备树文件
三、移植tslib:
方法一:
直接使用我移植好的根文件系统rootfs,解压替换自己的根文件,然后将make dtbs`重新编译出imx6ull-alientek-emm.dtb文件复制到自己的tftpboot文件夹里:
1.在自己ubuntu环境下编译23_multitouch文件,【记得更改里面的Makefile文件的交叉编译器路径】
make
cp gt9417.ko 到自己的根文件路径/lib/modules/4.1.15
2.然后连接自己的开发板,使用网络加载根文件和dtb、zimage的方法启动板子
ls /dev/input
cd /iib/modules/4.1.15
depmod
modporbe gt9417.ko
ls /dev/input
查看自己多出来的eventx 是多少号
然后 vi /etc/profile
方法二
第一步:imx6ull-alientek-emm.dts是已经适配4.3寸屏幕的设备树源文件,替换自己linux内核中的设备树文件。然后使用make dtbs
重新编译出imx6ull-alientek-emm.dtb文件,然后复制新的dtb文件到自己的tftpboot文件夹里
cp arch/arm/boot/dts/imx6ull-alientek-emmc.dtb /home/wj/linux/tftpboot/ -f
第二步:将tslib移植 【移植步骤如下】
1.解压tslib文件
2.修改 tslib 源码所属用户:sudo chown wj:wj tslib-1.21 -R 【wj改为自己的ubuntu用户名】
3.安装工具包
sudo apt-get install autoconf
sudo apt-get install automake
sudo apt-get install libtool
4.创建一个新的空白tslib文件用来存放编译后的tslib文件
比如:/home/wj/linux/tool/tslib
5.编译
cd tslib-1.21/
/autogen.sh
/configure --host=arm-linux-gnueabihf --prefix=/home/wj/linux/tool/tslib 【前提交叉工具链已经安装好,未安装参考后面的补充步骤】
make
make install
6.执行完以上操作之后,就会在/home/wj/linux/tool/tslib目录下生成
然后将这里的所有文件复制到自己的根文件下面,比如我的
cd linux/tool/tslib
sudo cp * /home/wj/linux/nfs/rootfs -f
7.在自己ubuntu环境下编译23_multitouch文件,【记得更改里面的Makefile文件的交叉编译器路径】
make
cp gt9417.ko 到自己的根文件路径/lib/modules/4.1.15
8.然后连接自己的开发板,使用网络加载根文件和dtb、zimage的方法启动板子
ls /dev/input
cd /iib/modules/4.1.15
depmod
modporbe gt9417.ko
ls /dev/input
查看自己多出来的eventx 是多少号
然后 vi /etc/profile
然后在运行
ts_test_mt就会在屏幕上出现测试界面
四、移植qt:
1.下载源码
wget https://download.qt.io/archive/qt/5.12/5.12.9/single/qt-everywhere-src-5.12.9.tar.xz
2.解压源码
tar xf qt-everywhere-src-5.12.9.tar.xz
cd qt-everywhere-src-5.12.9/
3.修改qmake.conf 【直接git clone https://gitee.com/QQ1252699831/qt5.12.9-conf.git】
4.修改autoconfigure.sh,【然后将该文件放在qt-everywhere-src-5.12.9目录下面】
5.给权限
chmod +x autoconfigure.sh
6.安装g++
sudo apt-get install g++
7.执行
./autoconfigure.sh
8.编译
make
9.安装
make install
10.移植arm-qt到板子的文件系统
打包:tar -jcf ./arm-qt.tar.bz2 arm-qt
【或者直接使用我仓库里的】
11.然后使用 U 盘拷贝 arm-qt.tar.bz2, 在 USB 接口插上 U 盘
12.挂载 U 盘的目录, sda1 为 U 盘的分区,不要写成 sda!sda 只是设备名
mount /dev/sda1 /mnt
进入 U 盘的挂载目录后,将 arm-qt.tar.bz2 解压到/usr/lib 目录下
tar xf arm-qt.tar.bz2 -C /usr/lib
13.修改/etc/profile
export QT_ROOT=/usr/lib/arm-qt
export QT_QPA_GENERIC_PLUGINS=tslib:/dev/input/event4
export QT_QPA_FONTDIR=/usr/share/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QT_ROOT/plugins
export QT_QPA_PLATFORM=linuxfb:tty=/dev/fb0
export QT_PLUGIN_PATH=$QT_ROOT/plugins
export LD_LIBRARY_PATH=$QT_ROOT/lib:$QT_ROOT/plugins/platforms
export QML2_IMPORT_PATH=$QT_ROOT/qml
export QT_QPA_FB_TSLIB=1
14.激活环境
source /etc/profile
15.运行qt例程
/usr/lib/arm-qt/examples/widgets/animation/animatedtiles/animatedtiles
//运行编译的示例
五、部署qt程序到板子上:
1.首先确保/usr/lib目录下是否存在以下俩个文件
2.在QT Create软件中配置自己的交叉编译工具
方法一:配置 ARM 平台的 Qt Creator Kits
方法二:命令行编译 Qt 工程 【推荐】
3.给linux安装字库
4.部署编译后的qt程序到板子上
自己在根文件系统下面创建一个文件夹,用来存放qt的可执行文件
5.板子上测试qt程序
./test
补充:安装交叉编译器