预先准备:请将AM335X的BSP更新到PD16.2.0及以上,I.MX6/I.MX6UL的BSP更新到PD16.1.0及以上,

                  编译和安装好SDK包

怎样用yocto生成SDK,以及SDK使用方法 / yocto how to build SDK and how to use them

以下操作均使用普通用户执行, 不要使用root用户

QT安装

根据下表

Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.

The table is being loaded. Please wait for a bit ...

平台BSP下载最新的meta-phytec tagyoctokernelBootloaderQT
AM65xALPHA4
  •  

3.1 Dunfelllinux-phytec-ti BSP-Yocto-TISDK-AM65xx-ALPHA4uboot-phytec BSP-Yocto-TISDK-AM65xx-ALPHA4
AM57xPD18.1.0
  •  
BSP-Yocto-TISDK-AM57xx-PD18.1.02.2 Mortylinux-phytec-ti v4.9.41-phy1uboot-phytec v2017.01-phy15.7
AM57xPD18.2.0
  •  
BSP-Yocto-TISDK-AM57xx-PD18.2.02.2 Mortylinux-phytec-ti v4.9.41-phy4uboot-phytec v2017.01-phy45.7
AM57xPD19.1.1
  •  
BSP-Yocto-TISDK-AM57xx-PD19.1.12.6 Thudlinux-phytec-ti BSP-Yocto-TISDK-AM57xx-PD19.1.1uboot-phytec BSP-Yocto-TISDK-AM57xx-PD19.1.1
AM57xPD20.1.2
  •  
BSP-Yocto-TISDK-AM57xx-PD20.1.22.6 Thudlinux-phytec-ti BSP-Yocto-TISDK-AM57xx-PD20.1.2uboot-phytec BSP-Yocto-TISDK-AM57xx-PD20.1.25.11
AM335xPD16.2.0
  •  
2.1.2-phy12.1 Krogothlinux-ti v4.4.19-phy2barebox v2016.07.0-phy35.6
AM335xPD17.1.3
  •  
2.2.4-phy42.2 Mortylinux-ti v4.4.141-phy2barebox v2017.06.1-phy45.7
AM335xPD17.2.0
  •  
2.3.2-phy22.3 Pyrolinux-mainline v4.9.47-phy2
5.8
AM335xPD17.2.1
  •  
2.3.3-phy12.3 Pyrolinux-mainline v4.9.47-phy2barebox v2017.10.0-phy25.8
AM335xPD17.2.2
  •  
2.3.3-phy22.3 Pyrolinux-mainline v4.9.98-phy1barebox v2017.10.0-phy35.8
AM335xPD19.1.0
  •  
2.5.2-phy22.5 Sumolinux-mainline v4.14.78-phy4barebox v2018.11.0-phy25.10
AM335xPD19.1.1
  •  
2.5.3-phy72.5 Sumolinux-mainline v4.14.78-phy6barebox v2018.11.0-phy35.10
i.MX6

Mira HTML5 v1.0

  •  
2.2.1-phy1
linux-mainline v4.1.36-phy3barebox v2016.11.0-phy4
i.MX6PD15.3.0
  •  
1.8.1-phy61.8 Fidolinux-mainline v4.1.18-phy4barebox v2015.11.0-phy4
i.MX6PD15.3.1
  •  
1.8.1-phy6-fix11.8 Fidolinux-mainline v4.1.18-phy5barebox v2015.11.0-phy4
i.MX6PD16.1.0
  •  
2.1.2-phy42.1 Krogothlinux-mainline v4.1.36-phy3barebox v2016.11.0-phy75.6
i.MX6PD16.1.1
  •  
2.1.3-phy52.1 Krogothlinux-mainline v4.1.46-phy2barebox v2016.11.0-phy75.6
i.MX6PD16.1.2
  •  
2.1.3-phy82.1 Krogothlinux-mainline v4.1.46-phy4barebox v2016.11.0-phy85.6
i.MX6PD18.1.0
  •  
2.4.3-phy42.4 Rockolinux-mainline v4.14.39-phy4barebox v2017.12.0-phy35.9
i.MX6PD18.1.1
  •  
2.4.4-phy22.4 Rockolinux-mainline v4.14.78-phy2barebox v2017.12.0-phy35.9
i.MX6PD18.1.2
  •  
2.4.4-phy62.4 Rockolinux-mainline v4.14.134-phy2barebox v2017.12.0-phy65.9
i.MX6PD20.1.0
  •  
2.7.4-phy22.7 Warriorlinux-mainline v4.19.100-phy3barebox v2019.11.0-phy25.12
i.MX6PD21.1.0
  •  
3.3.3-phy23.3 Hardknottlinux-mainline v5.10.48-phy2barebox v2021.04.0-phy45.15
i.MX6ulPD17.2.0
  •  
2.2.2-phy52.2 Mortylinux-mainline v4.12.4-phy4barebox v2017.04.0-phy35.7
i.MX6ulPD17.1.2
  •  
2.2.2-phy32.2 Morty

linux-imx v4.1.15-phy3

barebox v2017.04.0-phy35.7
i.MX6ulPD19.1.0
  •  
2.5.3-phy62.5 Sumo

linux-mainline v4.14.93-phy3

barebox v2019.01.0-phy35.10
i.MX6ulPD19.1.1
  •  
2.5.3-phy162.5 Sumolinux-mainline v4.14.184-phy1barebox v2019.01.0-phy75.10
i.MX6ulPD19.1.2
  •  
2.5.3-phy192.5 Sumolinux-mainline v4.14.213-phy1barebox v2019.01.0-phy95.10
i.MX6ulPD21.1.0
  •  
3.1.5-phy13.1 Dunfelllinux-mainline v5.4.91-phy1barebox v2020.09.0-phy35.14
i.MX6ulPD22.1.1
  •  
BSP-Yocto-Ampliphy-i.MX6UL-PD22.1.14.0 Kirkstonelinux-mainline v5.15.102-phy1barebox v2022.02.0-phy15.15
i.MX7PD18.1.1
  •  
v2.2.3-phy3
linux-phytec-fsl v4.9.11

i.MX7PD18.2.0
  •  
v2.2.3-phy52.2 Mortylinux-phytec-fsl v4.9.11-phy3u-boot v2017.03-phy25.8
i.MX7PD19.1.0
  •  
v2.5-phy22.6 Thudlinux-phytec-fsl v4.14.78u-boot v2018.03
i.MX8MPD19.1.0
  •  
2.5.3-phy122.5 Sumolinux-imx v4.14.98-phy4u-boot-imx v2018.03-phy45.10
i.MX8MMPD20.1.0
  •  
2.7.1-phy22.7 Warriorlinux-imx v4.19.35_1.1.0-phy4u-boot-imx v2019.04_1.1.0-phy55.12
i.MX8MMPD22.1.1
  •  
BSP-Yocto-NXP-i.MX8MM-PD22.1.13.3 Hardknottlinux-imx v5.10.72_2.2.0-phy17u-boot-imx v2021.04_2.2.0-phy135.15
i.MX8MPALPHA2
  •  

3.0 Zeuslinux-imx v5.4.70_2.3.0-phy5u-boot-imx v2020.04_2.3.0-phy3
i.MX8MPPD21.1.0
  •  
3.0.4-phy123.0 Zeuslinux-imx v5.4.70_2.3.2-phy3u-boot-imx v2020.04_2.3.2-phy35.15
i.MX8MPPD21.1.1
  •  
v3.0.4-phy153.0 Zeuslinux-imx v5.4.70_2.3.2-phy5u-boot-imx v2020.04_2.3.2-phy35.15
i.MX8MPPD21.1.3
  •  
BSP-Yocto-FSL-i.MX8MP-PD21.1.33.0 Zeuslinux-imx v5.4.70_2.3.2-phy12u-boot-imx v2020.04_2.3.2-phy105.15
i.MX8MPPD22.1.0
  •  
BSP-Yocto-NXP-i.MX8MP-PD22.1.03.3 
Hardknott
linux-imx v5.10.72_2.2.0-phy9u-boot-imx v2021.04_2.2.0-phy75.15
i.MX8MPPD22.1.1
  •  
BSP-Yocto-NXP-i.MX8MP-PD22.1.13.3 Hardknottlinux-imx v5.10.72_2.2.0-phy17u-boot-imx v2021.04_2.2.0-phy135.15
STM32MP1PD20.1.0
  •  
2.6.3-phy42.6 Thudlinux-stm32mp v4.19.94u-boot v2018.115.11
RK3288PD17.1.1
  •  
2.2.1-phy32.2 Mortylinux-mainline v4.9.18-phy1

barebox v2016.07.0-phy5

u-boot-spl v2016.01-phy3

5.7
RK3288PD17.1.3
  •  
2.2.4-phy62.2 Mortylinux-mainline v4.9.98-phy2

barebox v2016.07.0-phy5

u-boot-spl v2016.01-phy3

5.7
RK3288PD-ALPHA2
  •  
2.1.1-phy12.1 Krogothlinux-mainline v4.4.16-phy2

barebox v2016.07.0-phy2

u-boot-spl v2016.01-phy2


点击以上表格中的qt版本中的链接,可下载qt的安装包。

2、设置可执行权限

sudo chmod +x qt‐opensource‐linux‐x64‐5.6.2.run 

3、在Qt安装包的目录下,运行Qt安装包

./qt‐opensource‐linux‐x64‐5.6.2.run

4、操作步骤3之后,会打开Qt的安装窗口

Qt的安装目录选择:/opt/Qt/



Qt环境配置

1、安装完成之后,创建Qt Creator的符号链接

sudo ln ‐s /opt/Qt/Tools/QtCreator/bin/qtcreator.sh /usr/bin/qtcreator.sh

2、导入SDK环境到qtcreator.sh中,

sudo vi /opt/Qt/Tools/QtCreator/bin/qtcreator.sh

在qtcreator.sh中增加下面一行

. /opt/phytec‐yogurt/<YOURCONTROLLER>‐PD<YOURPDNR>/environment‐setup‐<YOURARCHITECTURE>‐vfp‐neon‐phytec‐linux‐gnueabi


在. 和绝对路径之间有一个空格


3、创建Qt工程文件夹

mkdir ‐p /opt/prj_workspace/Qt/

4、在命令行中打开qt creator

/usr/bin/qtcreator.sh

5、在菜单栏中选择Tools --> Options --> Devices -->Add --> Generic Linux Device增加linux设备:

Name: ARM
IP: 192.168.3.11
Username: root
Keep the password empty 

注意IP应改为对应板子的IP地址 。

6、设置工程目录和编译目录,选择Tools --> Options --> Build & Run --> General

Projects Directory --> Directory: /opt/prj_workspace/Qt
Build and Run --> Default build directory field:../build/%{CurrentProject:Name}


7、选择Tools --> Options --> Build & Run --> Qt Versions,

      新建Qt Versions点Add 按钮

Name: ARM_QT
qmake Location: /opt/phytec‐yogurt/<YOURCONTROLLER>‐PD<YOURPDNR>/sysroots/x86_64‐yogurtsdk‐linux/usr/bin/qt5/qmake

 

8、选择Tools --> Options --> Build & Run -->Compilers,点击ADD选择GCC

Name: ARM‐GCC  
Compiler Path: /opt/phytec‐yogurt/<YOURCONTROLLER>‐PD<YOURPDNR>/sysroots/x86_64‐yogurtsdk‐linux/usr/bin//arm-phytec-linux-gnueabi/arm-phytec-linux-gnueabi-gcc

9、选择Tools --> Options --> Build & Run →Debuggers,点击ADD

Name: ARM‐GDB
Path: /opt/phytec‐yogurt/<YOURCONTROLLER>‐PD<YOURPDNR>/sysroots/x86_64‐yogurtsdk‐linux/usr/bin//arm-phytec-linux-gnueabi/arm-phytec-linux-gnueabi-gdb

10、选择Tools --> Options --> Build & Run →Kits,点击ADD

Name: ARM
Device Type: Generic Linux Device
Sysroot: /opt/phytec‐yogurt/<YOURCONTROLLER>‐PD<YOURPDNR>/sysroots/<YOURARCHITECTURE>‐vfp‐neon‐phytec‐linux‐gnueabi
Compiler: ARM_GCC
Debugger: ARM_GDB
Qt version: ARM_QT
Qt mkspec: linux‐oe‐g++

11、选择Tools --> Options --> Debugger →GDB

 在Addition Startup Commands输入下列命令:

set auto‐load safe‐path /
handle SIGILL nostop


12、点击Apply,然后点击OK关闭配置窗口。现在已经完成所有的配置,可以使用这个Kit来交叉编译qt工程。



使用qt交叉编译新建工程

1、操作之前通过串口关闭phytec-qtdemo.service

systemctl stop phytec-qtdemo.service

2、在命令行中输入以下命令打开Qt Creator

   /usr/bin/qtcreator.sh &


3、新建qt工程,在Kit Selection选择ARM

4、qt工程编写完成后,点击左边绿色三角形按钮可以编译和运行程序在开发板上。


   

如果需要在开发板上运行和调试qt程序, 需先将开发板上的qtdemo程序先关闭

systemctl stop phytec-qtdemo.service

调试Qt程序

1、修改工程的.pro文件,在.pro文件中增加以下两行

target.path = /home/root/
INSTALLS += target

target.path为开发板的qt编译后文件的目录

2、点击左边的灰色按钮将Qt的编译配置从Relese改为Debug模式

3、确保开发板和linux主机能互ping通,点击左边的调试按钮进入调试模式


  • No labels