Set Blackberry QNX® Neutrino® RTH privileged-mode (pos-qn)¶
A rts-buster image can extend Real-Time Hypervisor (RTH) commercial-license to boot QNX® Neutrino® RTOS 7.0.3 (IA 32-bits and 64-bits) ramdisk image.
The RTS Hypervisor supports Blackberry QNX® Neutrino® RTOS 6.5 SP1; 6.6, 7.0.3, 7.1,… (32Bit and 64Bit).
Preconditions for RTH QNX® Neutrino®¶
Blackberry QNX® Neutrino® RTOS 7.0.3 commercially-licensed runtime components:
QNX Development Suite for Windows or Linux hosts that corresponds to the operating system version you are using: QNX® Software Development Platform 6.5.0 Service Pack 1, 6.6 or 7
Note
If you wish to use a different host environment, please inquire for further instructions at: info@real-time-systems.com
RTS Hypervisor Board Support Package that corresponds to the QNX® Neutrino® RTOS version you are using : 6.5 SP1; 6.6, 7.0.3, 7.1,…
Hypervisor binary (
rthx86
)Hypervisor license file (
license.txt
) for QNX® Neutrino®pos-qn
privileged-mode QNX® Neutrino® RTOS 7.1 runtime image(s):QNX® Neutrino® RTOS 7.1
pcrth_096_x86_64.ifs
image stitched with RTH BSP binary blobs into the/boot/rth/pos-qn
foldergrub entries template
/etc/grub.d/44-rth-pos-qn-linux
file.pos-qn
RTH Configuration File (e.g./boot/rth/pos-qn/WindowsEFI_QNX64.txt
or/boot/rth/pos-qn/Linux_QNX64.txt
) to set specific Privileged-mode RTH boot options
booting Debian GNU/Linux LXDE Desktop GPOS w/ QNX® Neutrino® POS¶
Out-of-box installed rts-buster image make generic assumptions about the desired Debian GNU/Linux LXDE desktop default Grub menu.
Select a desired RTH pre-canned GPOS + POS configurations
Advanced options for ECI-R ...
:

Select subsequent grub multiboot configuration
ECI-R (RTS Hypervisor) GPOS GNU/Debian Desktop and POS QNX Neutrino 7.1 [demo-image]

Successfully RTH boot log are displayed

Successfully GPOS kernel boot log are displayed

Enter Login in LXDE Lightdm UI menu
eci-user (passwd=eci-user)
or asroot

using Debian pos-qn package update¶
rts-buster provide the build environment for ECI-R to create and maintain pos-qn
Debian packaging and runtime dependencies.
$ dpkg -c rth-pos-qn_5.4.01.27752_amd64.deb dpkg -c rth-pos-qn_5.4.01.27752_amd64.deb drwxr-xr-x root/root 0 2021-09-21 08:18 ./ drwxr-xr-x root/root 0 2021-09-17 17:09 ./boot/ drwxr-xr-x root/root 0 2021-09-17 17:09 ./boot/rth/ drwxr-xr-x root/root 0 2021-09-17 17:09 ./boot/rth/pos-qn/ -rw-r--r-- root/root 2800 2021-09-21 08:18 ./boot/rth/pos-qn/Linux_QNX64.txt -rw-r--r-- root/root 2641 2021-09-21 08:18 ./boot/rth/pos-qn/WindowsEFI_QNX64.txt -rw-r--r-- root/root 12058344 2021-09-21 08:18 ./boot/rth/pos-qn/pcrth_x86_64.ifs drwxr-xr-x root/root 0 2021-09-21 08:18 ./etc/ drwxr-xr-x root/root 0 2021-09-21 08:18 ./etc/grub.d/ -rwxr-xr-x root/root 1227 2021-09-21 08:18 ./etc/grub.d/44-rth-pos-qn-linux drwxr-xr-x root/root 0 2021-09-21 08:18 ./root/ -rwxr-xr-x root/root 29 2021-09-21 08:18 ./root/hello-rth-pos-qn.sh drwxr-xr-x root/root 0 2021-09-21 08:18 ./usr/ drwxr-xr-x root/root 0 2021-09-21 08:18 ./usr/share/ drwxr-xr-x root/root 0 2021-09-21 08:18 ./usr/share/doc/ drwxr-xr-x root/root 0 2021-09-21 08:18 ./usr/share/doc/rth-pos-qn/ -rw-r--r-- root/root 128 2021-09-21 08:18 ./usr/share/doc/rth-pos-qn/changelog.gz![]()
When Default Debian GNU/Linux LXDE Desktop GPOS is used upgrading your Blackberry QNX® Neutrino® RTOS RTH privileged-mode pos-qn
images can be done as followed :
$ dpkg -i rth-pos-qn_5.4.01.27752_amd64.deb (Reading database ... 51507 files and directories currently installed.) Preparing to unpack rth-pos-qn_5.4.01.27752_amd64.deb ... Unpacking rth-pos-qn (5.4.01.27752) over (5.4.01.27752) ... Setting up rth-pos-qn (5.4.01.27752) ... Generating grub configuration file ... Found linux image: /boot/vmlinuz-5.4.115-intel-pk-standard+ Found initrd image: /boot/initrd.img-5.4.115-intel-pk-standard+ done![]()
Edit pos-qn RTH settings manually¶
Edit your ECI-R template grub entries :
$ vi /etc/grub.d/44-rth-pos-qn-linux ... menuentry "ECI-R (RTS Hypervisor) GPOS GNU/Debian Desktop and POS QNX Neutrino 7.1 [demo-image]" { search --no-floppy --fs-uuid --set=root ae1a66a5-ee9c-4573-9249-dd207ffa6248 multiboot2 /boot/rth/rthx86 module2 /boot/rth/license.txt module2 /boot/rth/pos-qn/Linux_QNX64.txt echo "Loading POS multi-boot QNX Neutrino bootable [RAMFS] images..." module2 /boot/rth/pos-qn/pcrth_x86_64.ifs pcrth_096_x86_64.ifs echo "Loading [ROOTFS] GPOS GNU/Debian Desktop bootable images ..." module2 /vmlinuz vmlinuz.lnk module2 /initrd.img initramfs.lnk } ...
Edit ECI-R template RTH configuration file
/boot/rth/pos-qn/Linux_QNX64.txt
or/boot/rth/pos-qn/WindowsEFI_QNX64.txt
# RTH CONFIG ################################################################################ # System # [/SYSTEM] "IOMMU" = uint32: 0 # set to 1 to restrict device memory access "security_level" = uint32: 0 # set to 1 to restrict API permissions "GPU_resource_partitioning" = uint32: 1 # set to 1 to optimize # CPU resource usage ################################################################################ # OS # [/OS/0] "name" = "GPOS" "boot_priority" = uint32: 2 # start after QNX "virtualized" = uint32: 1 "cores_percent" = uint32: 50 # assign half of the CPUs "trace_partition_number" = uint32: 0 # write log to /SHM/0 [/OS/0/RUNTIME/0] "bootline" = "ro root=LABEL=/ debug=all verbose=all console=tty0 console=ttyS0,115200n8 ip=192.168.2.1:::::vnet0" "image_0" = "vmlinuz.lnk" "image_1" = "initramfs.lnk" [/OS/1] "name" = "QNX Neutrino" "boot_priority" = uint32: 3 # start third "memory_size" = uint64: 0x04000000 # 64 MB "virtual_MMU" = uint32: 1 # set to 0 to disable restricted memory access "restricted_IO" = uint32: 0 # set to 1 to restrict I/O access "L3_cache_1_segments" = bytelist: 4,5,6 "trace_partition_number" = uint32: 1 # write log to /SHM/1 "CPU" = bytelist: 4 # e.g. single CPU: bytelist: 4 [/OS/2/RUNTIME/0] "image_0" = "pcrth_096_x86_64.ifs" [/IRQ] "default" = uint32: 0 # default is GPOS ################################################################################ # PCI # [/PCI] "default" = uint32: 0 # default is GPOS "auto_interrupt_mode" = uint32: 1 # automatically use MSI to avoid conflicts # i225 Device assignment with vendor ID / device ID and MSI Mode [/PCI/0] "OS" = uint32: 1 "vendor_ID" = uint32: 0x8086 "device_ID" = uint32: 0x15f2 "interrupt_mode" = uint32: 2 # i210 Device assignment with vendor ID / device ID and MSI Mode to Yocto linux-rt [/PCI/1] "OS" = uint32: 1 "vendor_ID" = uint32: 0x8086 "device_ID" = uint32: 0x1533 "interrupt_mode" = uint32: 2 # mGBE Device assignment with vendor ID / device ID and MSI Mode (not supoported yet by QNX # [/SHM/0] "name" = "trace_0" "size" = uint64: 0x4000 [/SHM/1] "name" = "trace_1" "size" = uint64: 0x4000
Reboot with
rth -sysreboot && reboot
commands