文章目录
开发板是飞凌的i.mx6
配置WSL2环境
首先是WSL2
哪些是WSL2?WSL2是WSL中体系结构的新版本,它修改Linux发行版与Windows交互的形式。WSL2的主要目标是增强文件系统性能并降低系统调用的完全兼容性。每位Linux发行版都可以作为WSL1或WSL2发行版运行,并可随时进行切换。WSL2是底层体系结构的主要功能,它使用虚拟化技术和Linux内核来实现其新功能。安装WSL2
我就不班门弄斧了,安装过程详见谷歌官方给的教程吧
适用于Linux的Windows子系统安装手册(Windows10)
下边几个步骤不全,直接官方抄过来的,详尽的还是请看官方这个主要是给我自己记录用
步骤1-启用适用于Linux的Windows子系统
须要先启用“适用于Linux的Windows子系统”可选功能,之后就能在Windows上安装Linux分发。
以管理员身分打开PowerShell并运行:
PowerShell
复制
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
建议如今转入步骤#2,更新到WSL2,但若果只想安装WSL1,如今可以重新启动计算机,之后继续执行步骤6-安装所选的Linux发行版。若要更新到WSL2,请等待重新启动计算机,之后继续执行下一步。
步骤2-检测运行WSL2的要求
若要更新到WSL2,须要运行Windows10。
对于x64系统:版本1903或更高版本,采用内部版本18362或更高版本。
对于ARM64系统:版本2004或更高版本,采用内部版本19041或更高版本。
高于18362的版本不支持WSL2。使用WindowsUpdate助手更新Windows版本。
若要检测Windows版本及内部版本号,选择Windows徽标键+R,之后键入“winver”,选择“确定”。(或则在Windows命令提示符下输入ver命令)。更新到“设置”菜单中的最新Windows版本。
步骤3-启用虚拟机功能
安装WSL2之前,必须启用“虚拟机平台”可选功能。
以管理员身分打开PowerShell并运行:
PowerShell
复制
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重新启动计算机,以完成WSL安装并更新到WSL2。
步骤6-安装所选的Linux分发
安装终端MobaXterm
MobaXterm这个终端利器有多强就不用我多说了,自己百度就可以了,下载的话官网比较慢,找个第三方网站下个汉化版就行马哥linux,都一样用
小方法
对于使用wsl,会发觉这个不存在可视化的界面,全部都是命令来执行,为了便捷文件和windows的互通,可以在网路中添加wsl2的位置
windows10的linux子系统(windowssubsystemforlinux)WSL文件位置以我的系统为例,WSL的root目录对应windows的:
C:UsersXXXXXXXAppDataLocalPackagesCanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgscLocalStaterootfs
其中AppData文件夹默认是隐藏的,但你可以在路径里输入AppData进去。但实际上谷歌为我们提供了一个默认的变量可以直接指向WSL的目录linux端口映射,wsl$你可以在运行(win+R)或资源管理器的路径里直接输入
\wsl$
步入Ubuntu的目录
安装配置交叉编译器&QT交叉编译器安装
我这儿使用的fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0版本的交叉编译器
把我们的交叉编译器的安装包放在wsl2可以找到而且打开的地方,我是新建了一个work文件夹,之后直接复制到了文件夹中(注意:在从Windows系统中复制到wsl中时,可能会没有权限,所以要现今wsl中linux系统的交叉开发的含义是什么?,给新建的文件夹work一下最高的权限linux系统的交叉开发的含义是什么?,sudochmod777/work,这样以后就不会提醒权限问题了)
在Linux里,我们也是要先更改安装工具的权限
chmod 777 fsl fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0.sh
之后执行交叉编译工具,直接执行脚本安装交叉编译工具,连续敲下两次回车键确认,再输入用户密码即可。本次安装的目录为脚本所指定的默认安装的目录,前面的内核编译环境的交叉编译都是按这个安装目录去操作,所以建议默认安装到/opt/fsl-imx-x11/4.1.15-2.1.0这个默认目录。
./fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0.sh
命令行会提示:
EntertargetdirectoryforSDK(default:/opt/fsl-imx-x11/4.1.15-2.1.0)
连续两次按下回车键,程序将会手动安装交叉编译器以及相关的SDK
设置环境变量
. /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
我用到的交叉编译器为arm-poky-linux-gnueabi-gcc,每次使用前设置环境变量,之后检测版本
arm-poky-linux-gnueabi-gcc -v
正常情况下会复印出gcc的版本信息:
gcc version 5.3.0 (GCC)
这样算是环境变量符合我们的须要
QT安装
qt的安装方式跟前面差不多,倘若不想用wsl的,可以用虚拟机,装一个ubuntu,进行可视化的操作,这样操作的话就跟下边的步骤有很大的区别了,想看的可以参考一下这篇文章
Linux胎教版Qt5.6.2安装环境搭建(和出现错误的解决)
说回去此次的过程,先更改该文件的权限
下边为qtopensourcelinuxx645.5.1.run添加可执行权限,再执行安装。
chmod 777 qt-opensource-linux-x64-5.6.2.run
sudo ./qt-opensource-linux-x64-5.6.2.run
安装过程就不多说了,会弹出来一个安装的界面,跟windows没啥区别
安装目录建议在
/opt/Qt5.6.2
安装make
假如make以后提示
这么须要再安装一个make
执行指令
sudo apt-get install make
注意
由于现今的wsl还没有图形化界面,所以也没办法运行qt。这一步骤的qt安装,虽然对于本次的操作是没有哪些用的,由于上面安装的fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-4.1.15-2.1.0上面是包含了qt的相关的sdk。所以早已有了qt编译的运行环境,不须要去在额外的调用qt或则其他的操作。直接使用集成好的命令qmake就可以了。
检测QT编译环境:
qmake -v
QMakeversion3.0
UsingQtversion5.6.2in/opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib
更改QT配置文件:
sudo nano /opt/fsl-imx-x11/4.1.15-2.1.0/sysroots/cortexa9hf-neon-poky-linux-gnueabi/usr/lib/qt5/mkspecs/linux-oe-g++/qmake.conf
删掉
include(../oe-device-extra.pri)
Qt工程编译
这儿我就直接拿一个在window环境下编撰好的qt定时器程序过来进行验证。
这个qt定时器如何写,教程还没写,待续…
也是先复制到我们的wsl目录下
第一步删掉.pro.user
在我们的终端中可以听到
有那么一个文件,后缀为.pro.user,这个文件要进行删掉,避免出现错误
rm ./Qt_Time.pro.user
最好呢把其他的无关文件也都删掉,包括Windows环境下编译生成的Makefile文件,我最后留的文件如下所示
第二步qmake生成Makefile
qmake
可以看见生成了我们须要的Makefile
第三步make
make
大功告成,我们的可执行文件早已生成了,这么接出来就是发送到板子上运行了
注意
运行qmake和make命令前,一定要先运行我们的环境
. /opt/fsl-imx-x11/4.1.15-2.1.0/environment-setup-cortexa9hf-neon-poky-linux-gnueabi
测试运行scp网路发送
发送文件其实是直接通过网路啦
scp Qt_Time root@192.168.0.232:/tmp
发送成功
执行这个命令,就可以完成把Qt_time这个可执行文件发送到IP地址为192.168.0.232的用户root的tmp文件夹下
ssh登陆
如今早已发送到了板子里,这么ssh登陆运行就可以了
ssh root@192.168.0.232
打开tmp文件夹
可以看见我们昨晚发送过来的文件
运行
执行
./Qt_Time
这时侯在我们的开发板上是没有反应的,都会报错,
要先执行这个句子
export DISPLAY=:0.0
之后再运行
这时侯可以听到我们的开发板,早已开始运行我们的QT程序了。
注意
在Linux/Unix类操作系统上,DISPLAY拿来设置将图形显示到何处.直接登录图形界面或则登录命令行界面后使用startx启动图形,DISPLAY环境变量将手动设置为:0:0,此时可以打开终端,输出图形程序的名称(例如xclock)来启动程序,图形将显示在本地窗口上,在终端上输入printenv查看当前环境变量,输出结果中有如下内容:
DISPLAY=:0.0