How to detect multi screen with eglfs? - qt

OS: Ubuntu 18
Qt: 5.15.1 GCC x64
I tried
qDebug()<<"screens"<<QGuiApplication::screens();
xcb which shows:
screens (QScreen(0x55ab206fba50, name="HDMI-0"), QScreen(0x55ab206fba90, name="DVI-D-0"))
but on eglfs which shows:
screens (QScreen(0x55c07f8308f0, name=""))
backend used eglfs_x11 cannot detect the second screen, so I tired eglfs_kms_egldevice, then the app even cannot enter the main function and give
Could not open DRM (NV) device

As far as i know, eglfs does not support multiple displays
here i find something that might help:
https://forum.qt.io/topic/88111/imx6-multi-screen-use-eglfs
you might wanna try wayland

Related

VSCode: Arduino Board Configuration offers no boards to select

After I used VSCode (current version 1.61.0) and the Arduino IDE (1.8.13 / 1.8.16 - WIndows installer version) for about a year on two Windows 10 devices both devices stopped showing available Arduino / ESP8266 board types yesterday.
The Arduino board configuration only shows one item "Selected Board:" with an empty drop down.
The Arduino IDE on both devices still works (Tools - Boards show the familiar collection of boards)
My settings (searched for Arduino) are
{
"arduino.path": "C:\\Program Files (x86)\\Arduino"
}
on both devices - I have not changed this since the setup about a year ago and the Arduino IDE is still there und my c-drive.
What else can I check or what settings might lead to an empty board selector?
Its a bug in v0.4.6 of vscode arduino extention. Roll back to v0.4.5 and before, Works fine.
Same problem here. I think its a bug in the vscode extension. My workaround is to manually set the Bord type in the .vscode/arduino.json file. Simply add the
"board": "arduino:avr:uno", line to your json and it will work.
{
"port": "COM5",
"board": "arduino:avr:uno",
"sketch": "example.ino"
}
First you need to install the board you need from:
View / Command Palette / Arduino: Board Manager
Then you can select your board from:
View / Command Palette / Arduino: Board Configuration

HCI_UART on NRF52840, attaching the device on a Yocto based Linux SBC errors out saying "Can't init device hci0: Cannot assign requested address (99)"

I am trying to Interface a BLE module based on Nordic's nrf52840 to a Yocto based SBC, to which all the BlueZ related packages have been added.
I have flashed Zephyr's sample hci_uart program onto the module. The module seems to run perfectly on my Linux PC (BlueZ version 5.48), whereas on the SBC(BlueZ version 5.54) it fails to get inited. Here's the error that comes when I use
root#rb-imx6:~# hciconfig hci0 up
root#rb-imx6:~# Can't init device hci0: Cannot assign requested address (99)
Can anyone please help me out on this?
Thanks in advance.
The error of assigning an address is caused by missing Linux kernel configuration options:
CONFIG_CRYPTO_USER
CONFIG_CRYPTO_USER_API
CONFIG_CRYPTO_USER_API_AEAD
CONFIG_CRYPTO_USER_API_HASH
CONFIG_CRYPTO_AES
CONFIG_CRYPTO_CCM
CONFIG_CRYPTO_AEAD
CONFIG_CRYPTO_CMAC
This is likely to happen with a self-built Buildroot or Yocto Embedded Linux system. If you run into this error, you should enable above options and recompile the kernel.
See the BlueZ requirements here: https://git.kernel.org/pub/scm/bluetooth/bluez.git/tree/README#n64
To see detailed debug output from BlueZ, run it with -d option:
bluetoothd -d

OpenGL ES Framebuffer size format is invalid

After I upgraded my Embedded Qt 5.9.8 Application to Qt version 5.12.8 I got the warning "Setting framebuffer size is only available with DRM atomic API".
The application run on a i.MX6 Solo System On Module (OS Yocto Warrior Linux, Kernel 4.19).
I fixed this warning by setting the environment variable QT_QPA_EGLFS_KMS_ATOMIC.
Then I got "Framebuffer size format is invalid".
How can I set the Framebuffer size format?
I tried to solve it with QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT.
But I still get the warning.

Rpi4 Qt5 Qml drmModeGetResources failed error

I have been created a build with Buildroot. Also did it everthing on this comment -> https://www.raspberrypi.org/forums/viewtopic.php?t=263418#p1614833
Did my research, and dozens of trials, and I get nothing.
My config is:
Rpi4-64, QT5-Qml, Mesa v3d-vc4, opengl es 2.0
When I try to run my qt qml application on this build, I'm getting this error:
QStandardPaths: wrong permission on runtime directory /usr/bin/, 7755 instead of 7700
drmModeGetResources failed (Operation not supported)
no screens available, assuming 24 -bit color
Cannot create window: no screens available.
Summary : I need to run my qt5 qml application on Rpi 4 with hw accelerated.
I found the solution.
I think the Rpi4 with eglfs using default card for card0, and this is not work. Need to force using card1 for eglfs.
Create a file "eglfs.json" with the following content:
{ "device": "/dev/dri/card1" }
export QT_QPA_EGLFS_KMS_CONFIG=/wherever/is/the/file/eglfs.json
and run your qt app!
Also my qt5 qml program is not showing fonts or text on rpi4 buildroot system. Coping /usr/share/fonts/your_program_fonts worked for me.

Opencl clGetPlatformIDs error -1001

I am trying to run some OpenCL programs.
I have a NVidia graphics card (GeForce 6600).
But , when I execute my program and I get a error :
Unable to get platforms -1001
My OS is ArchLinux and I already install the following packages (
from pacman ):
1. libcl
2. opencl-headers
3. opencl-nvidia-304xx
4. lib32-opencl-nvidia-304xx
How to fix this problem in my environment?
or what necessary packages need to install?
thanks.
OpenCL-error -1001 "CL_PLATFORM_NOT_FOUND_KHR" doesn't necessarily mean you don't have any OpenCL-capable device. This means, that cl_khr_icd-extention have a trouble to load the proper vendor driver.
Try to run your OpenCL-program(s) as root. Or try to use clIcdGetPlatformIDsKHR.
If you not running X11, you need to create device files manually or by script

Resources