Touch display plugin installation issues - X server does not start

Hello,

I am new to Volumio, trying to get the Touch Display Plugin working with the original 7" touch display.
I am using a Rasperry Pi 3B and a HiFiBerry DAC+ Pro.
My Volumio version is 2.861, the Touch Display Plugin version is 1.2.2.
I am using the German localization for the Volumio web GUI.

As the installation of the plugin aborted unsuccessfully when performed from the web GUI, I enabled ssh and tried to figure out what went wrong. (Side note: Trying to unistall the plugin from the web GUI also failed.)

I found the install.sh script in the folder /data/plugins/miscellanea/touch_display/ which seemed not to have run successfully. So I executed it manually with “bash ./install.sh” from the command line.
However, the two commands that create the files /opt/volumiokiosk.sh and /lib/systemd/system/volumio-kiosk.service did not have sufficient privileges albeit prefixed with “sudo”. (I think this is because the output redirection with “>” has a higher “priority” than the sudo command, should be crosschecked…)

Thus, I modified the script locally so that it creates the two files mentioned in /tmp/ and moves them with “sudo” to the desired places as a workaround. Finally, the script ran without error messages and the files were created.
However, after rebooting the X server did not start. Looking into the journal I found out that the volumio-kiosk.service did not start because of

Failed at step EXEC spawning /usr/bin/startx: No such file or directory

I tried to find the correct location of startx but “which startx” did not return anything.
With the help of https://packages.debian.org/file:startx I found out that I would need to install the package “xinit”.

After doing this I tried to start the service “volumio-kiosk” by invoking “systemctl start volumio-kiosk”.
But still the X server did not start. Looking into the journal I have now:

volumio startx[8144]: xauth: file /home/volumio/.Xauthority does not exist
volumio startx[8144]: xinit: unable to run server “/usr/bin/X”: No such file or directory
volumio startx[8144]: Use the – option, or make sure that /usr/bin is in your path and
volumio startx[8144]: that “/usr/bin/X” is a program or a link to the right type of server
volumio startx[8144]: for your display. Possible server names include:
volumio startx[8144]: Xorg Common X server for most displays
volumio startx[8144]: Xvfb Virtual frame buffer
volumio startx[8144]: Xfake kdrive-based virtual frame buffer
volumio startx[8144]: Xnest X server nested in a window on another X server
volumio startx[8144]: Xephyr kdrive-based nested X server
volumio startx[8144]: Xvnc X server accessed over VNC’s RFB protocol
volumio startx[8144]: Xdmx Distributed Multi-head X server

(The entry “allowed_users=anybody” in /etc/X11/Xwrapper.config is present.)

Does anyone have any idea?

Thank you for any replies!

Regards,

-oli-

PS: I used the search function on this page and did not find any current posts regarding my issues, only older issues (like needing to configure the keyboard etc.).
PPS: In principle the screen is working, I can see a console login prompt (text mode) on it when Volumio finished booting.

Short update:
It seemed that for some reason the install.sh script did not run so smooth as I thought originally.
So I manually installed the packages xorg, openbox and xserver-xorg-legacy.
After trying to start the X server / volumio-kiosk with “systemctl start volumio-kiosk” it get the following error messages when looking at systemctl status volumio-kiosk:

â—Ź volumio-kiosk.service - Volumio Kiosk
   Loaded: loaded (/lib/systemd/system/volumio-kiosk.service; disabled)
   Active: inactive (dead)

Jan 03 10:44:29 volumio startx[1312]: to make sure that you have the latest version.
Jan 03 10:44:29 volumio startx[1312]: Markers: (--) probed, (**) from config file, (==) default setting,
Jan 03 10:44:29 volumio startx[1312]: (++) from command line, (!!) notice, (II) informational,
Jan 03 10:44:29 volumio startx[1312]: (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
Jan 03 10:44:29 volumio startx[1312]: (==) Log file: "/var/log/Xorg.0.log", Time: Sun Jan  3 10:44:29 2021
Jan 03 10:44:29 volumio startx[1312]: (==) Using config directory: "/etc/X11/xorg.conf.d"
Jan 03 10:44:29 volumio startx[1312]: (==) Using system config directory "/usr/share/X11/xorg.conf.d"
Jan 03 10:44:29 volumio startx[1312]: modprobe: FATAL: Module g2d_23 not found.
Jan 03 10:44:31 volumio startx[1312]: xinit: connection to X server lost
Jan 03 10:44:31 volumio startx[1312]: waiting for X server to shut down (II) Server terminated successfully (0). Closing log file.

For completeness here the content of /var/log/Xorg.0.log:

X.Org X Server 1.18.4
Release Date: 2016-07-19
[    44.717] X Protocol Version 11, Revision 0
[    44.717] Build Operating System: Linux 4.4.26-v7+ armv7l Raspbian
[    44.717] Current Operating System: Linux volumio 4.19.118-v7+ #1311 SMP Mon Apr 27 14:21:24 BST 2020 armv7l
[    44.717] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 bcm2708_fb.fbwidth=800 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.
mem_size=0x40000000  splash quiet plymouth.ignore-serial-consoles dwc_otg.fiq_enable=1 dwc_otg.fiq_fsm_enable=1 dwc_otg.fiq_fsm_mask=0xF dwc_otg.nak_holdoff=1 console=t
tyS0,115200 kgdboc=ttyS0,115200 console=tty1 imgpart=/dev/mmcblk0p2 imgfile=/volumio_current.sqsh elevator=noop rootwait bootdelay=5 logo.nologo vt.global_cursor_defaul
t=0 loglevel=0 snd-bcm2835.enable_compat_alsa=1 snd_bcm2835.enable_headphones=1
[    44.717] Build Date: 11 November 2016  11:59:59AM
[    44.717] xorg-server 2:1.18.4-2+rpi1 (https://www.debian.org/support) 
[    44.717] Current version of pixman: 0.32.6
[    44.717]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    44.717] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    44.717] (==) Log file: "/var/log/Xorg.0.log", Time: Sun Jan  3 10:44:29 2021
[    44.722] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    44.722] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    44.727] (==) No Layout section.  Using the first Screen section.
[    44.727] (==) No screen section available. Using defaults.
[    44.727] (**) |-->Screen "Default Screen Section" (0)
[    44.727] (**) |   |-->Monitor "<default monitor>"
[    44.732] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
[    44.732] (**) |   |-->Device "Allwinner A10/A13 FBDEV"
[    44.732] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[    44.733] (==) Automatically adding devices
[    44.733] (==) Automatically enabling devices
[    44.733] (==) Automatically adding GPU devices
[    44.739] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    44.740] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    44.740]    Entry deleted from font path.
[    44.743] (==) FontPath set to:
        /usr/share/fonts/X11/misc,
        /usr/share/fonts/X11/100dpi/:unscaled,
        /usr/share/fonts/X11/75dpi/:unscaled,
        /usr/share/fonts/X11/Type1,
        /usr/share/fonts/X11/100dpi,
        /usr/share/fonts/X11/75dpi,
        built-ins
[    44.743] (==) ModulePath set to "/usr/lib/xorg/modules"
[    44.743] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    44.743] (II) Loader magic: 0x6a6f20
[    44.743] (II) Module ABI versions:
[    44.743]    X.Org ANSI C Emulation: 0.4
[    44.743]    X.Org Video Driver: 20.0
[    44.743]    X.Org XInput driver : 22.1
[    44.743]    X.Org Server Extension : 9.0
[    44.745] (--) using VT number 2

[    44.745] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    44.745] (II) no primary bus or device found
[    44.746] (II) LoadModule: "glx"
[    44.750] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    44.806] (II) Module glx: vendor="X.Org Foundation"
[    44.806]    compiled for 1.18.4, module version = 1.0.0
[    44.806]    ABI class: X.Org Server Extension, version 9.0
[    44.806] (==) AIGLX enabled
[    44.806] (II) LoadModule: "fbturbo"
[    44.807] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so
[    44.811] (II) Module fbturbo: vendor="X.Org Foundation"
[    44.811]    compiled for 1.18.4, module version = 0.5.1
[    44.812]    Module class: X.Org Video Driver
[    44.812]    ABI class: X.Org Video Driver, version 20.0
[    44.812] (II) FBTURBO: driver for framebuffer: fbturbo
[    44.815] (WW) Falling back to old probe method for fbturbo
[    44.816] (II) Loading sub module "fbdevhw"
[    44.816] (II) LoadModule: "fbdevhw"
[    44.816] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    44.819] (II) Module fbdevhw: vendor="X.Org Foundation"
[    44.819]    compiled for 1.18.4, module version = 0.0.2
[    44.819]    ABI class: X.Org Video Driver, version 20.0
[    44.819] (II) FBTURBO(0): using /dev/fb0
[    44.819] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    44.819] (II) FBTURBO(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
[    44.819] (==) FBTURBO(0): Depth 24, (==) framebuffer bpp 32
[    44.819] (==) FBTURBO(0): RGB weight 888
[    44.819] (==) FBTURBO(0): Default visual is TrueColor
[    44.819] (==) FBTURBO(0): Using gamma correction (1.0, 1.0, 1.0)
[    44.819] (II) FBTURBO(0): hardware: BCM2708 FB (video memory: 1500kB)
[    44.819] (**) FBTURBO(0): Option "fbdev" "/dev/fb0"
[    44.819] (**) FBTURBO(0): Option "SwapbuffersWait" "true"
[    44.819] (II) FBTURBO(0): processor: Unknown
[    44.819] (II) FBTURBO(0): checking modes against framebuffer device...
[    44.819] (II) FBTURBO(0): checking modes against monitor...
[    44.820] (--) FBTURBO(0): Virtual size is 800x480 (pitch 800)
[    44.820] (**) FBTURBO(0):  Built-in mode "current"
[    44.820] (==) FBTURBO(0): DPI set to (96, 96)
[    44.820] (II) Loading sub module "fb"
[    44.820] (II) LoadModule: "fb"
[    44.820] (II) Loading /usr/lib/xorg/modules/libfb.so
[    44.826] (II) Module fb: vendor="X.Org Foundation"
[    44.826]    compiled for 1.18.4, module version = 1.0.0
[    44.826]    ABI class: X.Org ANSI C Emulation, version 0.4
[    44.826] (==) Depth 24 pixmap format is 32 bpp
[    44.846] (II) FBTURBO(0): using backing store heuristics
[    44.853] (II) FBTURBO(0): can't load 'g2d_23' kernel module
[    44.853] (II) FBTURBO(0): failed to enable the use of sunxi display controller
[    44.853] (II) FBTURBO(0): No sunxi-g2d hardware detected (check /dev/disp and /dev/g2d)
[    44.853] (II) FBTURBO(0): G2D hardware acceleration can't be enabled
[    44.853] (II) FBTURBO(0): enabled fbdev copyarea acceleration
[    44.853] (==) FBTURBO(0): Backing store enabled
[    44.862] (==) FBTURBO(0): DPMS enabled
[    44.862] (II) FBTURBO(0): failed to enable hardware cursor
[    44.862] (II) FBTURBO(0): no 3D acceleration because the driver has been compiled without libUMP
[    44.862] (II) FBTURBO(0): if this is wrong and needs to be fixed, please check ./configure log
[    44.864] (==) RandR enabled
[    44.895] (II) SELinux: Disabled on system
[    44.904] (II) AIGLX: Screen 0 is not DRI2 capable
[    44.904] (EE) AIGLX: reverting to software rendering
[    46.406] (II) AIGLX: enabled GLX_MESA_copy_sub_buffer
[    46.408] (II) AIGLX: Loaded and initialized swrast
[    46.408] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    46.655] (II) config/udev: Adding input device FT5406 memory based driver (/dev/input/event0)
[    46.655] (**) FT5406 memory based driver: Applying InputClass "libinput touchscreen catchall"
[    46.655] (**) FT5406 memory based driver: Applying InputClass "Touch rotation"
[    46.655] (II) LoadModule: "libinput"
[    46.655] (II) Loading /usr/lib/xorg/modules/input/libinput_drv.so
[    46.686] (II) Module libinput: vendor="X.Org Foundation"
[    46.687]    compiled for 1.18.4, module version = 0.20.0
[    46.687]    Module class: X.Org XInput Driver
[    46.687]    ABI class: X.Org XInput driver, version 22.1
[    46.687] (II) Using input driver 'libinput' for 'FT5406 memory based driver'
[    46.687] (**) FT5406 memory based driver: always reports core events
[    46.687] (**) Option "Device" "/dev/input/event0"
[    46.687] (**) Option "_source" "server/udev"
[    46.688] (II) input device 'FT5406 memory based driver', /dev/input/event0 is tagged by udev as: Touchscreen
[    46.688] (II) input device 'FT5406 memory based driver', /dev/input/event0 is a touch device
[    46.740] (**) Option "config_info" "udev:/sys/devices/virtual/input/input0/event0"
[    46.740] (II) XINPUT: Adding extended input device "FT5406 memory based driver" (type: TOUCHSCREEN, id 6)
[    46.740] (**) Option "AccelerationScheme" "none"
[    46.740] (**) FT5406 memory based driver: (accel) selected scheme none/0
[    46.740] (**) FT5406 memory based driver: (accel) acceleration factor: 2.000
[    46.740] (**) FT5406 memory based driver: (accel) acceleration threshold: 4
[    46.741] (II) input device 'FT5406 memory based driver', /dev/input/event0 is tagged by udev as: Touchscreen
[    46.741] (II) input device 'FT5406 memory based driver', /dev/input/event0 is a touch device
[    46.742] (II) config/udev: Adding input device FT5406 memory based driver (/dev/input/mouse0)
[    46.742] (II) No input driver specified, ignoring this device.
[    46.742] (II) This device may have been added with another device file.
[    47.382] (II) UnloadModule: "libinput"
[    47.403] (II) Server terminated successfully (0). Closing log file.

Any ideas?

Regards,
-oli-

Hi!
Honestly, the best is to remove the plugin and reinstall it… Be patient, it takes long time.
It works as this, for sure…

1 Like

I had no time to check the logs you provided. But I have seen the installation of the plugin fail because the the download of some of the required packages failed - I think mostly due to network / dns problems. It can be laborious to find out in what state the installation is after that. So, before we invest too much time into investigating what has messed up I would suggest to start with a fresh Volumio installation. If you should decide to take that route watch the logs while the plugin installs and watch for possible download errors.

1 Like

Thanks for the reply!
How can I uninstall the plugin manually?

Try

rm -Rf /data/plugins/miscellanea/touch*

If you can’t uninstall through the UI, you might try to run uninstall.sh from /data/plugins/miscellanea/touch_display using sudo. But as mentioned before I would recommend to start with a new Volumio system, especially if you already have several things to “repair” the plugin installation by manually installing packages.

1 Like

Just to add: That would not remove the additional software packages that have been installed during the plugin installation process.

Just for future reference the last plugin installation log is available at /tmp/installog - so if something fails, that would the first place to look for clues. :slight_smile:

1 Like

Thank you very much for the hints.
I started with a fresh Volumio installation, this time using a wired LAN connection.
After initial setup wizard (and enabling SSH) I installed the Touch Screen plugin from the web UI and watched /tmp/installog with tail -f. All went smooth, I had no error messages. After enabling the plugin it now works! =) =)

Regards,
-oli-

1 Like

Many thanks, for your feedback!

Just for future reference, in case anyone else stumbles across this thread like I did:

I ran into the same issue enabling the touch plugin on a clean install. I ended up fixing the install issue with a simple sudo dpkg --configure -a via SSH and reinstalling the plugin, this at least fixed the install port.

Second (and perhaps unnecessary for others) is that X failed to start, which I confirmed by running systemctl status -l volumio-kiosk.service. This reported the following:



â—Ź volumio-kiosk.service - Volumio Kiosk
   Loaded: loaded (/lib/systemd/system/volumio-kiosk.service; disabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2024-03-03 14:58:40 CET; 9min ago
  Process: 1077 ExecStart=/usr/bin/startx /etc/X11/Xsession /opt/volumiokiosk.sh -- -nocursor (code=exited, status=1/FAILURE)
 Main PID: 1077 (code=exited, status=1/FAILURE)

Mar 03 14:57:34 volumio systemd[1]: Started Volumio Kiosk.
Mar 03 14:57:34 volumio startx[1077]: /usr/lib/xorg/Xorg.wrap: Only console users are allowed to run the X server
Mar 03 14:58:40 volumio startx[1077]: xinit: giving up
Mar 03 14:58:40 volumio startx[1077]: xinit: unable to connect to X server: Cannot assign requested address
Mar 03 14:58:40 volumio startx[1077]: xinit: server error
Mar 03 14:58:40 volumio systemd[1]: volumio-kiosk.service: Main process exited, code=exited, status=1/FAILURE
Mar 03 14:58:40 volumio systemd[1]: volumio-kiosk.service: Failed with result 'exit-code'.

What appeared to be causing this was Xorg.wrap: Only console users are allowed to run the X server. I fixed this by adding the following to /etc/X11/Xwrapper.config (file was empty): allowed_users = anybody.

After restarting the kiosk service with a simple sudo systemctl restart volumio-kiosk.service X worked!
All I had to do after that was add lcd_rotate = 2 to /boot/userconfig.txt because for some reason the rotation option in the settings did nothing and my 7" Pi official touchscreen was upside down.

After all this everything is up and running on my Pi4B+Pi touch+HifiBerry DAC+.

What version of the Touch Display plugin did you install?