Embedded module TQMa8XxS - YOCTO Linux BSP documentation
Work in Progress
SSH connection on STKa8XxS
Please keep in mind that the following instructions focus on simplicity, not on security.
For the sake of simplicity password authentification can be used for SSH.
Setup Yocto build environment
The OpenSSH sftp server is not installed into the image by default, add the following to your local.conf to install it.
IMAGE_INSTALL_append = “openssh-sftp-server”
Setup on Target
To setup a password for the default user root, execute the command passwd root and set your password.
Modify SSH configuration
Uncomment the following options in /etc/ssh/sshd_config to allow that the user root can authenticate with a password on the STKa8XxS.
PermitRootLogin yes PasswordAuthentication yes
Setup Qt Creator with Yocto build environment
Building Yocto SDK
Building the toolchain requires a Yocto build environment configured for meta-tq or ci-meta-tq The setup of the build environment is described on the corresponding Yocto quickstart of the module.
The meta-qt5 Yocto layer has to be added to the Yocto build environment when using meta-tq
After the Yocto build environment the SDK can be built by the following command:
bitbake meta-toolchain-qt5
Building meta-toolchain-qt5 may take several hours, depending on your hardware configuration
Installing Yocto SDK
After building meta-toolchain-qt5 the SDK file is located in the following path of the build directory tmp/deploy/sdk/fsl-imx-wayland-glibc-x86_64-meta-toolchain-qt5-aarch64-toolchain-4.14-sumo.sh
Execute the *sh file to install the SDK, the default path is set to /opt/fsl-imx-wayland/4.14-sumo
Set Up Qt Creator
Download Qt Opensource 5.10.1
After downloading make the Qt installer file executable and run the Qt installer. Follow the installation wizard instructions.
The next step is to add the environment setup of the Yocto SDK to the first line (above the shebang) of the file qtcreator.sh script.
If the install location has not been changed the qtcreator.sh is located in ~/Qt5.10.1/Tools/QtCreator/bin/qtcreator.sh
source /opt/fsl-imx-wayland/4.14-sumo/environment-setup-aarch64-poky-linux
Run Qt Creator
change to the directory where the qtcreator.sh file is located and execute the following command:
sudo sh qtcreator.sh
If qtcreator.sh returns source: not found, before sudo sh qtcreator.sh, enter sudo dpkg-reconfigure dash and choose no.
Configure Qt creator
Setup SSH connection
- Go to Tools > Options > Devices
- Click Add > Generic Linux Device > Start Wizard
- Change the name to “STKa8Xx” and set up the connection.
Click Test to test the network connection of the target device.
Add compiler
- Go to Tools > Options > Build & Run> click Compilers
- Click Add and select GCC
- Change Name to TQMa8XxS
- Set Compiler path to /opt/fsl-imx-wayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/aarch64-poky-linux/aarch64-poky-linux-g++
- Set the following values for ABI from the dropdwon menus:
processor architecture | operating system | OS flavor | binary format | system architecture |
---|---|---|---|---|
arm | linux | generic | elf | 64bit |
Add new Cross Compiled Qt Version
- Click Qt Versions on the Build & Run panel
- Click Add
- Locate the qmake file in /opt/fsl-imx-wayland/4.14-sumo/sysroots/x86_64-pokysdk-linux/usr/bin/qt5/qmake
If the qmake file has been auto-detected by Qt Creator qmake has not to be added manually.
Add new Kit
- Click on Kits in the Build & Run panel
- Click Add and set the following:
Name STKa8Xx
Device Type Generic Linux Device
Device STKaXx (default for Generic Linux)
Sysroot /opt/fsl-wayland/4.14-sumo/sysroots/aarch64-poky-linux
Compiler STKa8XxS
Qt version Qt 5.10.1
Hello World Application
- Open File menu and click New Project
- Select Qt Console Application
- Specify the location for the project and name it hello_world
- Select the Kit STKa8Xx
- Edit main.cpp
#include <QCoreApplication> #include <iostream> #include <stdlib.h> using namespace std; int main(int argc, char *argv[]) { QCoreApplication a(argc,argv); cout<<"Hello World"<<endl; return a.exec(); }
Starterkit Interfaces and Functions
CAN
CAN configuration
DIP switch S4 is used to configure the CAN interfaces CAN0 and CAN1.
Function | S4-1-1 | S4-2 |
---|---|---|
CAN-Bus not terminated | OFF | OFF |
not defined (illegal state) | OFF | ON |
not defined (illegal state) | ON | OFF |
CAN-Bus terminated with 120 Ohm | ON | ON |
CAN Loopback
Loopback Test CAN Interface
CAN0 -> CAN1
candump can0& cansend can1 5A1#11.2233.44556677.88
CAN1 -> CAN0
candump can1& cansend can0 5A1#11.2233.44556677.88
“}}
Ethernet
U-Boot
In U-Boot eth0 is configured as default interface. The IP configuration can be done statically or by a DHCP server in the network.
IP configuration via DHCP
For a configuration via a DHCP server, use the dhcp
command in U-Boot.
Static IP configuration For a static IP configuration the following, U-Boot environment variables must be set:
setenv ipaddr <ipaddr> (e.g.: setenv ipaddr 192.168.100.111) setenv netmask <netmask> (e.g.: setenv netmask 255.255.255.0)
Linux
Both Ethernet interfaces are activated and configured by systemd-network. The configuration files for the interfaces are located in /lib/systemd/network/ these configuration files can be altered to customize the default interface configuration. A documentation of the configuration files can be found here.
For a temporary static configuration the ip command can be used, below some useful ip commands are listed:
Activate a specific interface
e.g. eth0
ip link set eth0 up
Disable a specific interace
e.g. eth0
ip link set eth0 down
Show ip address for a specific interface
e.g. eth0
ip addr show eth0
Show statistic for a specific interface
e.g. eth0
ip -s link show eth0
Set ip address for a specific interface
e.g. eth0
ip addr add 192.168.1.100/24 dev eth0
Show statistic of all interfaces
ip -s link
Set default gateway for a specific interfaces
e.g. set gateway ip 192.168.1.1 for eth0
ip route add default via 192.168.1.1 dev eth0
If a DHCP server is available in the network environment the ip configuration can be received from it. To do so execute the udhcpc
command, by default eth0 is used.
To configure another interface via dhcp the parameter -i
followed by the interface name e.g. eth1 must be given.
e.g. eth1
udhcpc -i eth1
GPU
Run GPU benchmark with connected display and loaded device tree in fullscreen mode:
glmark2-es2-wayland --fullscreen
I2C
An overview of the onboard i2c devices is available here
U-Boot
Select i2c bus device
i2c dev 0
Show all devices connected to the i2c bus currently selected:
i2c probe
Linux
Detect all devices connected to a i2c bus:
i2cdetect 16
LVDS
TQ offers an optional LVDS Display kit for the . Each Display can be used on its own by using the corresponding device tree. To allow reusage, the support for each display is separated in a dtsi fragment.
To bring up the display the U-Boot environment has to be adapted accordingly.
- Interrupt boot process in U-boot
- Set U-Boot environment variable fdt_file with the command
setenv fdt_file - Save the envrionment by executing the
saveenv'' command
RTC
To set the hardware clock to the actual time and date use the following commands:
date -s [YYYY.]MM.DD-hh:mm[:ss] hwclock -w
Temperature Sensors
USB
With lsusb
you can see all connected usb devices. To mount a partition of an usb stick you can excute mount /dev/<partition> <mount dir>
(e.g. mount /dev/sdb1 /mnt)
. This will mount the first partition of sdb to /mnt. To unmount the device execute umount <mount dir>
(e.g. umount /mnt
).
TQ-Systems GmbH provides the Board Support Packages (BSP) free of charge. The software included in the shipment has been configured individually for the starter kits. The software is only intended to evaluate the module. The use of the Board Support Packages (BSP) is only allowed within the scope of functionality described by TQ-Systems GmbH. TQ-Systems GmbH does not accept any liability for all further changes of the Board Support Package and for any damage resulting from its use.