Provisioning: Separate QNX710 and QNX800 qemu configs

QNX qemu configs separated. QNX710 and QNX800 require different set of
dependency libraries and there's an extra image creation bug on QNX800
that needs workaround too.
QNX800 toolchain updated.

Task-number: QTBUG-131708
Pick-to: 6.8
Change-Id: I3bc5c8bb63abbb729d03fcf3afb2f7881bcdd270
Reviewed-by: Simo Fält <simo.falt@qt.io>
(cherry picked from commit 4791054b10)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Marianne Yrjänä
2025-01-16 16:00:02 +02:00
committed by Qt Cherry-pick Bot
parent 7228be7f72
commit a47c2b4ec7
25 changed files with 306 additions and 7 deletions

View File

@@ -15,6 +15,7 @@ Configurations:
'QT_CMAKE_DIR=/opt/cmake-3.30.5/bin',
'QNX_TEST_ENV=LD_LIBRARY_PATH={{.Env.QNX_QEMU_LD_LIBRARY_PATH}} QSG_RHI_BACKEND=software QT_QPA_PLATFORM=offscreen QTEST_ENVIRONMENT=ci',
'NON_QTBASE_TARGET_CMAKE_ARGS= -DQT_PROTOBUF_WELL_KNOWN_TYPES_PROTO_DIR=/usr/local/include',
'QNX_QEMU={{.Env.QNX_710_QEMU}}',
]
-
Id: 'qnx-710-arm64-on-linux'

View File

@@ -26,12 +26,12 @@ DownloadAndExtract () {
aarch64le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake"
armv7le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake"
x8664_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake"
QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/"
QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/710/"
targetFolder="/opt/"
folderName="qnx710"
targetPath="$targetFolder$folderName"
qemuTargetPath="$HOME/QNX"
qemuTargetPath="$HOME/QNX710"
qemuIpAddress="172.31.1.10"
export qemuNetwork="172.31.1.1"
qemuSSHuser="root"
@@ -81,7 +81,7 @@ fi
# Set env variables
SetEnvVar "QNX_710" "$targetPath"
SetEnvVar "QNX_QEMU" "$qemuTargetPath"
SetEnvVar "QNX_710_QEMU" "$qemuTargetPath"
SetEnvVar "QNX_QEMU_IPADDR" "$qemuIpAddress"
SetEnvVar "QNX_QEMU_SSH" "$qemuSSHurl"
SetEnvVar "QNX_QEMU_LD_LIBRARY_PATH" "$qemuLDpath"

View File

@@ -26,12 +26,12 @@ DownloadAndExtract () {
aarch64le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-aarch64le.cmake"
armv7le_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-armv7le.cmake"
x8664_toolchain="${BASH_SOURCE%/*}/../shared/cmake_toolchain_files/qnx-toolchain-x8664.cmake"
QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/"
QNX_qemu_bld_files_dir="${BASH_SOURCE%/*}/qnx_qemu_build_files/800/"
targetFolder="/opt/"
folderName="qnx800"
targetPath="$targetFolder$folderName"
qemuTargetPath="$HOME/QNX"
qemuTargetPath="$HOME/QNX800"
qemuIpAddress="172.31.1.10"
export qemuNetwork="172.31.1.1"
qemuSSHuser="root"
@@ -43,9 +43,9 @@ if [ ! -d "$targetFolder" ]; then
fi
# QNX SDP
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-linux-20240510.tar.xz"
sourceFile="http://ci-files01-hki.ci.qt.io/input/qnx/qnx800-windows-linux-20240930.tar.xz"
targetFile="qnx800.tar.xz"
sha1="93245a5bc11b88563328f0763573942fd25b5e18"
sha1="a86d6e001e4ad46f50ed430fb85e8230e730751b"
DownloadAndExtract "$sourceFile" "$sha1" "$targetFile" "$targetFolder"
sudo cp "$aarch64le_toolchain" "$targetPath"
@@ -81,5 +81,11 @@ fi
# Set env variables
SetEnvVar "QNX_800" "$targetPath"
SetEnvVar "QNX_800_QEMU" "$qemuTargetPath"
# These are common defines with QNX710
SetEnvVar "QNX_QEMU_IPADDR" "$qemuIpAddress"
SetEnvVar "QNX_QEMU_SSH" "$qemuSSHurl"
SetEnvVar "QNX_QEMU_LD_LIBRARY_PATH" "$qemuLDpath"
echo "QNX SDP = 8.0.0" >> ~/versions.txt

View File

@@ -0,0 +1,19 @@
# Need to add all testserver names statically
# as current Docker uses Multicast DNS (mDNS) (avahi)
# Which does not work with QNX qemu
172.31.1.1 apache2 apache2.test-net.qt.local
172.31.1.1 squid squid.test-net.qt.local
172.31.1.1 vsftpd vsftpd.test-net.qt.local
172.31.1.1 ftp-proxy ftp-proxy.test-net.qt.local
172.31.1.1 danted danted.test-net.qt.local
172.31.1.1 cyrus cyrus.test-net.qt.local
172.31.1.1 echo echo.test-net.qt.local
172.31.1.1 iptables iptables.test-net.qt.local
# For network test server which is still used on some test
# like networkselftest for local dns resolution
172.31.1.1 qt-test-server
# QtCoap testservers
172.31.1.1 californium californium.test-net.qt.local
172.31.1.1 freecoap freecoap.test-net.qt.local

View File

@@ -0,0 +1,2 @@
search test-net.qt.local
nameserver 172.31.1.1

View File

@@ -0,0 +1,46 @@
#!/bin/bash
function brief()
{
echo "--nfs=[<mount>|no]"
}
function help()
{
brief
cat <<EOF
If yes, the given nfs share "<mount>" will be mounted at <mount>
The default is no.
EOF
}
function validate() {
exit 0
}
function configure()
{
if [ "$OPT_NFS_QT" != no ]; then
cat >output/option_files/post_start.opt_nfs <<EOF
echo "---> Starting NFS"
STARTU_P(fs_nfs3_t,__FS_NFS3_ID__) fs-nfs3 -t 172.31.1.1:$OPT_NFS_QT $OPT_NFS_QT
EOF
fi
exit 0
}
case "$1" in
brief)
brief;;
help)
help;;
validate)
validate;;
configure)
configure;;
default)
echo no;;
esac

View File

@@ -0,0 +1,88 @@
OPT_ABLELOCK='no'
DEF_OPT_ABLELOCK='no'
OPT_ARCH='x86_64'
DEF_OPT_ARCH='x86_64'
OPT_ASLR='yes'
DEF_OPT_ASLR='yes'
OPT_CERTICOM='no'
DEF_OPT_CERTICOM='no'
OPT_CRYPTODEV='no'
DEF_OPT_CRYPTODEV='no'
OPT_DATA_INODES='3000'
DEF_OPT_DATA_INODES='3000'
OPT_DATA_SIZE='512'
DEF_OPT_DATA_SIZE='60'
OPT_EXTRA_DIRS='none'
DEF_OPT_EXTRA_DIRS='none'
OPT_GRAPHICS='no'
DEF_OPT_GRAPHICS='no'
OPT_GUEST='none'
DEF_OPT_GUEST='none'
OPT_HOSTNAME='qnx_QEMU_CI'
DEF_OPT_HOSTNAME='noname'
OPT_IP='172.31.1.69'
DEF_OPT_IP='dhcp'
OPT_MACADDR='52:54:00:f1:c4:92'
DEF_OPT_MACADDR='generate'
OPT_NFS='no'
DEF_OPT_NFS='no'
OPT_NFS_QT='/home/qt/work'
DEF_OPT_NFS_QT='/home/qt/work'
OPT_PATHTRUST='no'
DEF_OPT_PATHTRUST='no'
OPT_PERL='no'
DEF_OPT_PERL='no'
OPT_POLICY='none'
DEF_OPT_POLICY='none'
OPT_PYTHON='no'
DEF_OPT_PYTHON='no'
OPT_QAUDIT='no'
DEF_OPT_QAUDIT='no'
OPT_QFIM='no'
DEF_OPT_QFIM='no'
OPT_QTD='no'
DEF_OPT_QTD='no'
OPT_QVM='no'
DEF_OPT_QVM='no'
OPT_REPOS='$QNX_STAGE_nto:$QNX_TARGET'
DEF_OPT_REPOS='$QNX_STAGE_nto:$QNX_TARGET'
OPT_ROOT='no'
DEF_OPT_ROOT='no'
OPT_SAFE='no'
DEF_OPT_SAFE='no'
OPT_SECPOL='no'
DEF_OPT_SECPOL='no'
OPT_SECURE_DATA='no'
DEF_OPT_SECURE_DATA='no'
OPT_SECURE_PROCFS='yes'
DEF_OPT_SECURE_PROCFS='yes'
OPT_SLM='no'
DEF_OPT_SLM='no'
OPT_SSHD_PREGEN='yes'
DEF_OPT_SSHD_PREGEN='yes'
OPT_SSH_IDENT='prompt'
DEF_OPT_SSH_IDENT='prompt'
OPT_SYS_INODES='1000'
DEF_OPT_SYS_INODES='1000'
OPT_SYS_SIZE='20'
DEF_OPT_SYS_SIZE='20'
OPT_TCG='no'
DEF_OPT_TCG='no'
OPT_TELNET='no'
DEF_OPT_TELNET='no'
OPT_TOMCRYPT='no'
DEF_OPT_TOMCRYPT='no'
OPT_TOYBOX='no'
DEF_OPT_TOYBOX='no'
OPT_TYPE='qemu'
DEF_OPT_TYPE='qemu'
OPT_TZ='UTC0'
DEF_OPT_TZ='UTC0'
OPT_UNION='yes'
DEF_OPT_UNION='yes'
OPT_USB='no'
DEF_OPT_USB='no'
OPT_VALGRIND='no'
DEF_OPT_VALGRIND='no'
OPT_ZONEINFO='no'
DEF_OPT_ZONEINFO='no'

View File

@@ -0,0 +1,25 @@
# local/snippets/data_files.custom
# Placeholder for local list of files to add to data partition
home/root/.ssh/environment = {
TERM=qansi
PATH=__IFS_PATH__:/system/xbin:.
#LD_LIBRARY_PATH=__PROC_LIB__:/home/qt/work/install/target/lib
#QSG_RHI_BACKEND=software
#QT_QPA_PLATFORM=offscreen
}
[uid=0 gid=0 dperms=755 type=dir] var/share
var/share/zoneinfo=usr/share/zoneinfo
[uid=0 gid=0 dperms=755 type=dir] var/share/fonts
var/etc/fontconfig/fonts.conf=etc/fontconfig/fonts.conf
var/share/fonts=usr/share/fonts
var/etc/hosts=local/misc_files/etc/hosts
var/etc/resolv.conf=local/misc_files/etc/resolv.conf
var/etc/nsswitch.conf=etc/nsswitch.conf
[uid=0 gid=0 dperms=755 type=dir] var/etc/ssl/certs
var/share/ca-certificates=local/misc_files/ca-certificates
var/etc/ssl/certs=local/misc_files/etc/ssl/certs

View File

@@ -0,0 +1,12 @@
# Add root HOME env variable
procmgr_symlink /data/home/root/ /home/root
HOME=/home/root
# Needed for timezone related tests
TZ=Europe/Oslo
procmgr_symlink /data/var/share /usr/share
procmgr_symlink /data/var/share/zoneinfo/Europe/Oslo /data/var/etc/localtime
# fontconfig
#procmgr_symlink /data/var/etc/fontconfig/fonts.conf /etc/fontconfig/fonts.conf
#procmgr_symlink /data/var/share/fonts /usr/share/fonts

View File

@@ -0,0 +1,3 @@
root:x:0:0:Superuser:/data/home/root:/bin/sh
sshd:x:15:6:sshd:/data/var/chroot/sshd:/bin/false
qnxuser:x:__QNXUSER_UID__:__QNXUSER_GID__:User9:/data/home/qnxuser:/bin/sh

View File

@@ -0,0 +1,29 @@
# local/snippets/post_start.custom
# Commands executed from post_startup.sh. Executed at the end of system startup whether slm is in use
# or not
#
# To allow resource managers to be run properly with and without security policies, command lines
# should be written in one of the following forms:
#
# START(resmgr_t) resmgr DROPROOT(resmgr_uid)
# STARTU(resmgr_t, resmgr_uid) resmgr
# Where resmgr_t is the security type name (arbitrary but usually the name of the resmgr with _t appended),
# and resmgr_uid is the id to use for both uid and gid. DROPROOT is used only in cases where the
# resource manager supports a -U option for switching to non-root.
echo "---> Starting Filesystem event manager (fsevmgr)"
STARTU_P(fsevmg_t,__FSEVMG_ID__) fsevmgr -d -F __DEVB_ID__ -N __DEVB_ID__
echo "---> Remove large fonts"
rm -rf /data/var/share/fonts/NotoSansCJK*
rm -rf /data/var/share/fonts/NotoSansMonoCJK*
echo "---> Create fontconfig cache"
fc-cache &
echo "---> Restart ssh daemon"
slay sshd
/system/xbin/sshd -f /system/data/etc/ssh/sshd_config
# Add default route so QNX knows where to send
# requests for unknown network
echo "---> Add default route"
route add default 172.31.1.1

View File

@@ -0,0 +1,2 @@
root::1475759054:0:0
qnxuser:@S@f0J4xZibUbKllVqPMzetauCHLRi+9C8wTsxYXE5r7Pfhda5FI7zkObEmKogy01pAX5f/1niG2S2eLXbLs3xoww==@YjBmOTQwNzZiNzYwMzY3N2RkMGQ1NTZmNzA5MDFhMWY=:1476890273:0:0

View File

@@ -0,0 +1,65 @@
# local/snippets/system_files.custom
# Placeholder for local list of files to add to system partition
[perms=444] data/etc/ssh/sshd_config={
HostKey /data/var/ssh/ssh_host_rsa_key
HostKey /data/var/ssh/ssh_host_ed25519_key
AuthorizedKeysFile .ssh/authorized_keys
PermitUserEnvironment yes
AuthenticationMethods none
PermitEmptyPasswords yes
PermitRootLogin yes
PidFile none
Subsystem sftp /system/xbin/sftp-server
}
# libraries Qt requires
lib/libicuuc.so.67=usr/lib/libicuuc.so.67
lib/libicudata.so.67=usr/lib/libicudata.so.67
lib/libicui18n.so.67=usr/lib/libicui18n.so.67
lib/libGLESv2.so.1=usr/lib/libGLESv2.so.1
lib/libEGL.so.1=usr/lib/libEGL.so.1
lib/libz.so.2=usr/lib/libz.so.2
lib/libzstd.so.1=usr/lib/libzstd.so.1
lib/libxml2.so.2=usr/lib/libxml2.so.2
lib/libfreetype.so.24=usr/lib/libfreetype.so.24
lib/libbz2.so.1=usr/lib/libbz2.so.1
lib/liblzma.so.5=usr/lib/liblzma.so.5
lib/libdbus-1.so=usr/lib//libdbus-1.so
lib/libdbus-1.so.22=usr/lib//libdbus-1.so.22
lib/libbacktrace.so.1=lib/libbacktrace.so.1
lib/libm.so.3=lib/libm.so.3
#############################################
### Image support
#############################################
etc/system/config/img.conf=etc/system/config/img.conf
lib/libpng16.so.16=usr/lib/libpng16.so.16
lib/libjpeg.so.9=lib/libjpeg.so.9
lib/libimg.so.1=lib/libimg.so.1
lib/dll/img_codec_bmp.so=lib/dll/img_codec_bmp.so
lib/dll/img_codec_gif.so=lib/dll/img_codec_gif.so
lib/dll/img_codec_jpg.so=lib/dll/img_codec_jpg.so
lib/dll/img_codec_png.so=lib/dll/img_codec_png.so
lib/dll/img_codec_sgi.so=lib/dll/img_codec_sgi.so
lib/dll/img_codec_tga.so=lib/dll/img_codec_tga.so
lib/dll/img_codec_tif.so=lib/dll/img_codec_tif.so
# for inotify
xbin/fsevmgr=sbin/fsevmgr
##############################################
### Sreen support
##############################################
lib/libscreen.so.1=usr/lib/libscreen.so.1
# for fontconfig
lib/libfontconfig.so.1=usr/lib/libfontconfig.so.1
xbin/fc-cache=bin/fc-cache
xbin/fc-match=local/misc_files/fc-match
# network
lib/libssl.so=usr/lib/libssl.so
xbin/nslookup=usr/bin/nslookup
xbin/unbound=sbin/unbound
xbin/curl=usr/bin/curl

View File

@@ -0,0 +1 @@
#define __FSEVMG_ID__ 50