FAQs¶
How to Develop Qt Programs and Display Them via HDMI¶
The overall process is divided into two steps:
Cross-compile Qt programs
Set up the Qt runtime environment and run the program
Cross-compile¶
Taking a cross-compilation host with the system as Ubuntu18.04
as an example, the steps are as follows:
Obtain Resources¶
Clone this git repository using git clone.
Create and name a file called se-build-server.yml
with the following content:
version: "3.3"
services:
se-build-server:
image: huangzhenming/se-build-server:V1.0
container_name: sophon_build
privileged: true
network_mode: host
restart: always
volumes:
- /data/your_working_dir:/workspace
- /data/toolchains/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu:/toolchains
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
command: ["/bin/ping", "localhost"]
user: linaro
working_dir: /workspace
environment:
- "PATH=$PATH:/toolchains/bin"
Download the necessary cross-compilation tools: gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu
Installation of the docker
and docker compose
tools varies from platform to platform, so please search for the relevant publicly available information on the Internet to install them, and we will not describe them here
Run docker (the runtime will automatically download the image from docker Hub, and the time required depends on the network speed, ensure a stable internet connection):
docker-compose -f se-build-server.yml up -d
After running, it will automatically create /data/your_working_dir
and /data/toolchains/
folders on your system, you can also modify the yml
file to create folders in other paths.
Copy and extract the git
package and the cross-compilation toolchain to the specified path:
cp -r path/to/sophon-qt/qt-lib/qtbase-5.14.tgz /data/your_working_dir
cp -r path/to/sophon-qt/qt-example/SophUI/* /data/your_working_dir
cd /data/your_working_dir/ && tar xvf qtbase-5.14.tgz
cp -r path/to/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.7z /data/toolchains/
cd /data/toolchains/ && 7z x gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu.7z
Cross-compile (using the
SophUI
source code as an example):enter docker:
docker ps -a # Get the docker image and container information. The image name should have `huangzhenming` in it. docker exec -it container_id /bin/bash # enter docker
Perform the compilation(In docker):
cd /workspace ./install/bin/qmake SophUI.pro -spec linux-aarch64-gnu-g++ CONFIG+=qtquickcompiler make
After compilation, the SophUI
executable is generated, which can be executed directly on the device.
Run the Qt program¶
By following the above steps, you can get the executable file SophUI
, which can be copied to the 1684 device by means of scp
.
Before running, you need to write a script to set the environment variables as follows:
#!/bin/sh
export QTDIR=/usr/lib/aarch64-linux-gnu
export QT_QPA_FONTDIR=$QTDIR/fonts
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/qt5/plugins/
export LD_LIBRARY_PATH=/system/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM=linuxfb:fb=/dev/fl2000-0
export QWS_MOUSE_PROTO=/dev/input/event3
./SophUI
After that, give the script permission to run, and execute it with the HDMI monitor plugged in.
Note that if the 1684 is running on a Debian
system, you will need to import the Qt libraries and other files separately, otherwise you will get an error, which is not the case with Ubuntu systems.
Import it from the PC via scp
and execute it on the 1684 device:
scp PC@IP:/path/to/qtbase-5.14/lib/* /usr/lib/aarch64-linux-gnu/
mkdir -p /usr/lib/aarch64-linux-gnu/qt5
scp PC@IP:/path/to/qtbase-5.14/plugins/ /usr/lib/aarch64-linux-gnu/qt5/
If the Qt program also contains fonts, you also need to download the font files here, and then copy them to the /usr/lib/aarch64-linux-gnu/font
directory on the 1684 device. For example: /usr/lib/aarch64-linux-gnu/fonts/wqy-microhei.ttc
.
IP configuration of the ethernet interface¶
The shell is marked with “1”, which is close to the network port of the RS232/RS485 interface, corresponding to the system
eth0
network interface, set to DHCP mode.The shell is marked with “2”, which is close to the Ethernet port of the HDMI interface, corresponding to the system
eth1
network interface, set to static address mode:192.168.150.1/24
.
What is the default username and password of the system?¶
Username:
linaro
Password:
linaro
Switch superuser:
sudo -s
What should I do if the startup is abnormal and the cycle restarts?¶
It may be that the power supply current is not enough, please use a power supply with a voltage of 12V and a current of more than 5A.