Hello,
I have a multiservice app with one of the services a standalone UI kiosk that simply plays a video. As opposed to the examples with balenablocks/x11server, my use case is best served by having all media playing from one service.
My current deployment works as expected (video loops forever) until the service is restarted. When the service restarts, the display remains frozen at whatever frame the video was at, and i get the following error from the X11 service:
(EE) xf86OpenConsole: Cannot open virtual console 3 (No such file or directory)
I’m guessing I have to somehow release the display resource that was being used by the service previously, though I’m not sure how to proceed. Any input appreciated
Also any input on potential ways to start debug this would be much appreciated!
If anyone is looking for a solution for something similar, I was able to resolve it by adding /dev/tty3 to the devices section of the x11 service in my docker-compose.yml
Hello,
thanks for sharing the solution for the problem. We’d like to understand the issue better, can you please share the docker-compose file with us?
Thanks and best regards
Harald
Hi @fisehara, sure, please see below.
version: "2.1"
volumes:
data-service:
services:
multimedia-client:
build: ./multimedia-client
devices:
- /dev/tty0
- /dev/tty1
- /dev/tty2
- /dev/tty3
- /dev/fb0
- /dev/snd
app_add:
- SYS_RAWIO
group_add:
- video
volumes:
- "data-service:/data-srv"
labels:
io.balena.features.dbus: "1"
hardware-logic:
build: ./data-service
privileged: true
volumes:
- "data-service:/data-srv"
The difficulty I’ve been facing with this is basically that hardware-logic needs to be privileged and multimedia-client manages media playing on an HDMI-connected display. All resources I find online, balena included, only consider the case of having the HDMI-connected service privileged which is not possible in my case.
@richard-galvez following up on this one, the GH issue has now been closed.
Your fix was correct - for further context, this problem exists when you are not able to run xserver
with privileged: true
, and as you found, you need to add in your specific TTY and other devices in the docker-compose.yml like so:
- /dev/tty0
- /dev/tty1
- /dev/tty2
- /dev/tty3
- /dev/fb0
- /dev/snd```