Waveshare 3.5inch LCD RPI (B) rev2.0 on RPI3B+ for Volumio

Thanks for the quick reply. That is the procedure I used. I ran the script you suggested. The Touch Display plugin does not report any error but the screen is still blank. Same error on both RPIs. Here is the log again:

volumio@volumio:~$ cat /var/log/Xorg.0.log
[    53.569]
X.Org X Server 1.20.4
X Protocol Version 11, Revision 0
[    53.569] Build Operating System: Linux 5.4.0-72-generic armv8l Raspbian
[    53.569] Current Operating System: Linux volumio 5.10.92-v7+ #1514 SMP Mon Jan 17 17:36:39 GMT 2022 armv7l
[    53.570] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 bcm2708_fb.fbwidth=640 bcm2708_fb.fbheight=480 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3ec00000 vc_mem.mem_size=0x40000000  splash 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 quiet console=ttyS0,115200 console=tty1 imgpart=/dev/mmcblk0p2 imgfile=/volumio_current.sqsh rootwait bootdelay=5 elevator=noop logo.nologo vt.global_cursor_default=0 net.ifnames=0 snd-bcm2835.enable_compat_alsa=0 snd_bcm2835.enable_hdmi=1 loglevel=0
[    53.570] Build Date: 04 January 2022  10:05:34AM
[    53.570] xorg-server 2:1.20.4-1+rpt4+deb10u4 (https://www.debian.org/support)
[    53.570] Current version of pixman: 0.36.0
[    53.570]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    53.570] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    53.570] (==) Log file: "/var/log/Xorg.0.log", Time: Mon Aug  1 10:21:43 2022
[    53.578] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    53.578] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    53.587] (==) No Layout section.  Using the first Screen section.
[    53.587] (==) No screen section available. Using defaults.
[    53.587] (**) |-->Screen "Default Screen Section" (0)
[    53.587] (**) |   |-->Monitor "<default monitor>"
[    53.598] (==) No device specified for screen "Default Screen Section".
        Using the first device section listed.
[    53.598] (**) |   |-->Device "Allwinner A10/A13 FBDEV"
[    53.598] (==) No monitor specified for screen "Default Screen Section".
        Using a default monitor configuration.
[    53.598] (==) Automatically adding devices
[    53.598] (==) Automatically enabling devices
[    53.598] (==) Automatically adding GPU devices
[    53.610] (==) Max clients allowed: 256, resource mask: 0x1fffff
[    53.611] (WW) The directory "/usr/share/fonts/X11/cyrillic" does not exist.
[    53.611]    Entry deleted from font path.
[    53.613] (==) 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
[    53.613] (==) ModulePath set to "/usr/lib/xorg/modules"
[    53.613] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    53.613] (II) Loader magic: 0x1fdf80
[    53.613] (II) Module ABI versions:
[    53.613]    X.Org ANSI C Emulation: 0.4
[    53.613]    X.Org Video Driver: 24.0
[    53.613]    X.Org XInput driver : 24.1
[    53.613]    X.Org Server Extension : 10.0
[    53.618] (--) using VT number 2

[    53.618] (II) systemd-logind: logind integration requires -keeptty and -keeptty was not provided, disabling logind integration
[    53.618] (II) no primary bus or device found
[    53.618] (II) LoadModule: "glx"
[    53.625] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[    53.734] (II) Module glx: vendor="X.Org Foundation"
[    53.734]    compiled for 1.20.4, module version = 1.0.0
[    53.734]    ABI class: X.Org Server Extension, version 10.0
[    53.734] (II) LoadModule: "fbturbo"
[    53.734] (II) Loading /usr/lib/xorg/modules/drivers/fbturbo_drv.so
[    53.740] (II) Module fbturbo: vendor="X.Org Foundation"
[    53.740]    compiled for 1.20.3, module version = 0.5.1
[    53.740]    Module class: X.Org Video Driver
[    53.740]    ABI class: X.Org Video Driver, version 24.0
[    53.740] (II) FBTURBO: driver for framebuffer: fbturbo
[    53.743] (WW) Falling back to old probe method for fbturbo
[    53.743] (II) Loading sub module "fbdevhw"
[    53.743] (II) LoadModule: "fbdevhw"
[    53.744] (II) Loading /usr/lib/xorg/modules/libfbdevhw.so
[    53.747] (II) Module fbdevhw: vendor="X.Org Foundation"
[    53.747]    compiled for 1.20.4, module version = 0.0.2
[    53.747]    ABI class: X.Org Video Driver, version 24.0
[    53.747] (II) FBTURBO(0): using /dev/fb0
[    53.747] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    53.747] (II) FBTURBO(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
[    53.747] (==) FBTURBO(0): Depth 24, (==) framebuffer bpp 32
[    53.747] (==) FBTURBO(0): RGB weight 888
[    53.747] (==) FBTURBO(0): Default visual is TrueColor
[    53.747] (==) FBTURBO(0): Using gamma correction (1.0, 1.0, 1.0)
[    53.747] (II) FBTURBO(0): hardware: BCM2708 FB (video memory: 1200kB)
[    53.747] (DB) xf86MergeOutputClassOptions unsupported bus type 0
[    53.747] (**) FBTURBO(0): Option "fbdev" "/dev/fb0"
[    53.747] (**) FBTURBO(0): Option "SwapbuffersWait" "true"
[    53.748] (II) FBTURBO(0): processor: Unknown
[    53.748] (II) FBTURBO(0): checking modes against framebuffer device...
[    53.748] (II) FBTURBO(0): checking modes against monitor...
[    53.748] (II) FBTURBO(0): Virtual size is 640x480 (pitch 640)
[    53.748] (**) FBTURBO(0):  Built-in mode "current"
[    53.748] (==) FBTURBO(0): DPI set to (96, 96)
[    53.748] (II) Loading sub module "fb"
[    53.748] (II) LoadModule: "fb"
[    53.748] (II) Loading /usr/lib/xorg/modules/libfb.so
[    53.757] (II) Module fb: vendor="X.Org Foundation"
[    53.757]    compiled for 1.20.4, module version = 1.0.0
[    53.757]    ABI class: X.Org ANSI C Emulation, version 0.4
[    53.791] (II) FBTURBO(0): using backing store heuristics
[    53.803] (II) FBTURBO(0): can't load 'g2d_23' kernel module
[    53.803] (II) FBTURBO(0): failed to enable the use of sunxi display controller
[    53.803] (II) FBTURBO(0): No sunxi-g2d hardware detected (check /dev/disp and /dev/g2d)
[    53.803] (II) FBTURBO(0): G2D hardware acceleration can't be enabled
[    53.803] (II) FBTURBO(0): enabled fbdev copyarea acceleration
[    53.803] (==) FBTURBO(0): Backing store enabled
[    53.818] (==) FBTURBO(0): DPMS enabled
[    53.818] (II) FBTURBO(0): failed to enable hardware cursor
[    53.818] (II) FBTURBO(0): no 3D acceleration because the driver has been compiled without libUMP
[    53.819] (II) FBTURBO(0): if this is wrong and needs to be fixed, please check ./configure log
[    53.820] (II) Initializing extension Generic Event Extension
[    53.821] (II) Initializing extension SHAPE
[    53.822] (II) Initializing extension MIT-SHM
[    53.823] (II) Initializing extension XInputExtension
[    53.830] (II) Initializing extension XTEST
[    53.831] (II) Initializing extension BIG-REQUESTS
[    53.832] (II) Initializing extension SYNC
[    53.833] (II) Initializing extension XKEYBOARD
[    53.834] (II) Initializing extension XC-MISC
[    53.835] (II) Initializing extension SECURITY
[    53.836] (II) Initializing extension XFIXES
[    53.837] (II) Initializing extension RENDER
[    53.838] (II) Initializing extension RANDR
[    53.840] (II) Initializing extension COMPOSITE
[    53.842] (II) Initializing extension DAMAGE
[    53.843] (II) Initializing extension MIT-SCREEN-SAVER
[    53.844] (II) Initializing extension DOUBLE-BUFFER
[    53.845] (II) Initializing extension RECORD
[    53.846] (II) Initializing extension DPMS
[    53.847] (II) Initializing extension Present
[    53.848] (II) Initializing extension DRI3
[    53.848] (II) Initializing extension X-Resource
[    53.849] (II) Initializing extension XVideo
[    53.850] (II) Initializing extension XVideo-MotionCompensation
[    53.850] (II) Initializing extension SELinux
[    53.850] (II) SELinux: Disabled on system
[    53.850] (II) Initializing extension GLX
[    53.851] (II) AIGLX: Screen 0 is not DRI2 capable
[    56.130] (II) IGLX: Loaded and initialized swrast
[    56.130] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    56.130] (II) Initializing extension XFree86-VidModeExtension
[    56.131] (II) Initializing extension XFree86-DGA
[    56.132] (II) Initializing extension XFree86-DRI
[    56.137] (II) Initializing extension DRI2
[    56.464] (II) config/udev: Adding input device ADS7846 Touchscreen (/dev/input/event0)
[    56.464] (**) ADS7846 Touchscreen: Applying InputClass "evdev touchscreen catchall"
[    56.464] (**) ADS7846 Touchscreen: Applying InputClass "libinput touchscreen catchall"
[    56.464] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    56.464] (**) ADS7846 Touchscreen: Applying InputClass "Touch rotation"
[    56.464] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    56.464] (II) LoadModule: "evdev"
[    56.465] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[    56.474] (II) Module evdev: vendor="X.Org Foundation"
[    56.474]    compiled for 1.20.3, module version = 2.10.6
[    56.474]    Module class: X.Org XInput Driver
[    56.474]    ABI class: X.Org XInput driver, version 24.1
[    56.474] (II) Using input driver 'evdev' for 'ADS7846 Touchscreen'
[    56.474] (**) ADS7846 Touchscreen: always reports core events
[    56.474] (**) evdev: ADS7846 Touchscreen: Device: "/dev/input/event0"
[    56.475] (--) evdev: ADS7846 Touchscreen: Vendor 0 Product 0
[    56.475] (--) evdev: ADS7846 Touchscreen: Found absolute axes
[    56.475] (--) evdev: ADS7846 Touchscreen: Found x and y absolute axes
[    56.475] (--) evdev: ADS7846 Touchscreen: Found absolute touchscreen
[    56.475] (**) Option "SwapAxes" "1"
[    56.475] (II) evdev: ADS7846 Touchscreen: Configuring as touchscreen
[    56.475] (**) evdev: ADS7846 Touchscreen: YAxisMapping: buttons 4 and 5
[    56.475] (**) evdev: ADS7846 Touchscreen: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[    56.475] (**) Option "config_info" "udev:/sys/devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input0/event0"
[    56.475] (II) XINPUT: Adding extended input device "ADS7846 Touchscreen" (type: TOUCHSCREEN, id 6)
[    56.475] (II) evdev: ADS7846 Touchscreen: initialized for absolute axes.
[    56.476] (**) ADS7846 Touchscreen: (accel) keeping acceleration scheme 1
[    56.476] (**) ADS7846 Touchscreen: (accel) acceleration profile 0
[    56.476] (**) ADS7846 Touchscreen: (accel) acceleration factor: 2.000
[    56.476] (**) ADS7846 Touchscreen: (accel) acceleration threshold: 4
[    56.479] (II) config/udev: Adding input device ADS7846 Touchscreen (/dev/input/mouse0)
[    56.479] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    56.479] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    56.479] (II) Using input driver 'evdev' for 'ADS7846 Touchscreen'
[    56.479] (**) ADS7846 Touchscreen: always reports core events
[    56.479] (**) evdev: ADS7846 Touchscreen: Device: "/dev/input/mouse0"
[    56.479] (EE) evdev: ADS7846 Touchscreen: Unable to query fd: Inappropriate ioctl for device
[    56.560] (EE) PreInit returned 2 for "ADS7846 Touchscreen"
[    56.560] (II) UnloadModule: "evdev"
[    56.633] (II) evdev: ADS7846 Touchscreen: Close
[    56.633] (II) UnloadModule: "evdev"
[    56.654] (II) FBTURBO(0): using backing store heuristics
[    56.669] (II) FBTURBO(0): can't load 'g2d_23' kernel module
[    56.670] (II) FBTURBO(0): failed to enable the use of sunxi display controller
[    56.670] (II) FBTURBO(0): No sunxi-g2d hardware detected (check /dev/disp and /dev/g2d)
[    56.670] (II) FBTURBO(0): G2D hardware acceleration can't be enabled
[    56.670] (II) FBTURBO(0): enabled fbdev copyarea acceleration
[    56.671] (==) FBTURBO(0): DPMS enabled
[    56.671] (II) FBTURBO(0): failed to enable hardware cursor
[    56.671] (II) FBTURBO(0): no 3D acceleration because the driver has been compiled without libUMP
[    56.671] (II) FBTURBO(0): if this is wrong and needs to be fixed, please check ./configure log
[    56.671] (II) Initializing extension Generic Event Extension
[    56.672] (II) Initializing extension SHAPE
[    56.673] (II) Initializing extension MIT-SHM
[    56.674] (II) Initializing extension XInputExtension
[    56.675] (II) Initializing extension XTEST
[    56.677] (II) Initializing extension BIG-REQUESTS
[    56.678] (II) Initializing extension SYNC
[    56.679] (II) Initializing extension XKEYBOARD
[    56.680] (II) Initializing extension XC-MISC
[    56.681] (II) Initializing extension SECURITY
[    56.682] (II) Initializing extension XFIXES
[    56.689] (II) Initializing extension RENDER
[    56.691] (II) Initializing extension RANDR
[    56.693] (II) Initializing extension COMPOSITE
[    56.694] (II) Initializing extension DAMAGE
[    56.695] (II) Initializing extension MIT-SCREEN-SAVER
[    56.696] (II) Initializing extension DOUBLE-BUFFER
[    56.697] (II) Initializing extension RECORD
[    56.698] (II) Initializing extension DPMS
[    56.699] (II) Initializing extension Present
[    56.701] (II) Initializing extension DRI3
[    56.701] (II) Initializing extension X-Resource
[    56.702] (II) Initializing extension XVideo
[    56.703] (II) Initializing extension XVideo-MotionCompensation
[    56.703] (II) Initializing extension SELinux
[    56.703] (II) SELinux: Disabled on system
[    56.703] (II) Initializing extension GLX
[    56.705] (II) AIGLX: Screen 0 is not DRI2 capable
[    56.735] (II) IGLX: Loaded and initialized swrast
[    56.735] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    56.735] (II) Initializing extension XFree86-VidModeExtension
[    56.737] (II) Initializing extension XFree86-DGA
[    56.738] (II) Initializing extension XFree86-DRI
[    56.739] (II) Initializing extension DRI2
[    56.951] (II) config/udev: Adding input device ADS7846 Touchscreen (/dev/input/event0)
[    56.952] (**) ADS7846 Touchscreen: Applying InputClass "evdev touchscreen catchall"
[    56.952] (**) ADS7846 Touchscreen: Applying InputClass "libinput touchscreen catchall"
[    56.952] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    56.952] (**) ADS7846 Touchscreen: Applying InputClass "Touch rotation"
[    56.952] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    56.952] (II) Using input driver 'evdev' for 'ADS7846 Touchscreen'
[    56.952] (**) ADS7846 Touchscreen: always reports core events
[    56.952] (**) evdev: ADS7846 Touchscreen: Device: "/dev/input/event0"
[    56.952] (--) evdev: ADS7846 Touchscreen: Vendor 0 Product 0
[    56.952] (--) evdev: ADS7846 Touchscreen: Found absolute axes
[    56.952] (--) evdev: ADS7846 Touchscreen: Found x and y absolute axes
[    56.952] (--) evdev: ADS7846 Touchscreen: Found absolute touchscreen
[    56.952] (**) Option "SwapAxes" "1"
[    56.952] (II) evdev: ADS7846 Touchscreen: Configuring as touchscreen
[    56.952] (**) evdev: ADS7846 Touchscreen: YAxisMapping: buttons 4 and 5
[    56.952] (**) evdev: ADS7846 Touchscreen: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[    56.952] (**) Option "config_info" "udev:/sys/devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input0/event0"
[    56.952] (II) evdev: ADS7846 Touchscreen: initialized for absolute axes.
[    56.953] (**) ADS7846 Touchscreen: (accel) keeping acceleration scheme 1
[    56.953] (**) ADS7846 Touchscreen: (accel) acceleration profile 0
[    56.953] (**) ADS7846 Touchscreen: (accel) acceleration factor: 2.000
[    56.953] (**) ADS7846 Touchscreen: (accel) acceleration threshold: 4
[    56.955] (II) config/udev: Adding input device ADS7846 Touchscreen (/dev/input/mouse0)
[    56.955] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    56.955] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    56.955] (II) Using input driver 'evdev' for 'ADS7846 Touchscreen'
[    56.956] (**) ADS7846 Touchscreen: always reports core events
[    56.956] (**) evdev: ADS7846 Touchscreen: Device: "/dev/input/mouse0"
[    56.956] (EE) evdev: ADS7846 Touchscreen: Unable to query fd: Inappropriate ioctl for device
[    57.030] (EE) PreInit returned 2 for "ADS7846 Touchscreen"
[    57.030] (II) UnloadModule: "evdev"
[    57.092] (II) evdev: ADS7846 Touchscreen: Close
[    57.092] (II) UnloadModule: "evdev"
[    57.101] (II) FBTURBO(0): using backing store heuristics
[    57.115] (II) FBTURBO(0): can't load 'g2d_23' kernel module
[    57.115] (II) FBTURBO(0): failed to enable the use of sunxi display controller
[    57.115] (II) FBTURBO(0): No sunxi-g2d hardware detected (check /dev/disp and /dev/g2d)
[    57.115] (II) FBTURBO(0): G2D hardware acceleration can't be enabled
[    57.115] (II) FBTURBO(0): enabled fbdev copyarea acceleration
[    57.116] (==) FBTURBO(0): DPMS enabled
[    57.116] (II) FBTURBO(0): failed to enable hardware cursor
[    57.116] (II) FBTURBO(0): no 3D acceleration because the driver has been compiled without libUMP
[    57.116] (II) FBTURBO(0): if this is wrong and needs to be fixed, please check ./configure log
[    57.116] (II) Initializing extension Generic Event Extension
[    57.117] (II) Initializing extension SHAPE
[    57.118] (II) Initializing extension MIT-SHM
[    57.119] (II) Initializing extension XInputExtension
[    57.120] (II) Initializing extension XTEST
[    57.122] (II) Initializing extension BIG-REQUESTS
[    57.123] (II) Initializing extension SYNC
[    57.124] (II) Initializing extension XKEYBOARD
[    57.125] (II) Initializing extension XC-MISC
[    57.126] (II) Initializing extension SECURITY
[    57.127] (II) Initializing extension XFIXES
[    57.128] (II) Initializing extension RENDER
[    57.129] (II) Initializing extension RANDR
[    57.131] (II) Initializing extension COMPOSITE
[    57.132] (II) Initializing extension DAMAGE
[    57.133] (II) Initializing extension MIT-SCREEN-SAVER
[    57.134] (II) Initializing extension DOUBLE-BUFFER
[    57.135] (II) Initializing extension RECORD
[    57.136] (II) Initializing extension DPMS
[    57.137] (II) Initializing extension Present
[    57.138] (II) Initializing extension DRI3
[    57.138] (II) Initializing extension X-Resource
[    57.139] (II) Initializing extension XVideo
[    57.140] (II) Initializing extension XVideo-MotionCompensation
[    57.140] (II) Initializing extension SELinux
[    57.140] (II) SELinux: Disabled on system
[    57.140] (II) Initializing extension GLX
[    57.141] (II) AIGLX: Screen 0 is not DRI2 capable
[    57.161] (II) IGLX: Loaded and initialized swrast
[    57.161] (II) GLX: Initialized DRISWRAST GL provider for screen 0
[    57.161] (II) Initializing extension XFree86-VidModeExtension
[    57.162] (II) Initializing extension XFree86-DGA
[    57.163] (II) Initializing extension XFree86-DRI
[    57.163] (II) Initializing extension DRI2
[    57.360] (II) config/udev: Adding input device ADS7846 Touchscreen (/dev/input/event0)
[    57.360] (**) ADS7846 Touchscreen: Applying InputClass "evdev touchscreen catchall"
[    57.360] (**) ADS7846 Touchscreen: Applying InputClass "libinput touchscreen catchall"
[    57.360] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    57.360] (**) ADS7846 Touchscreen: Applying InputClass "Touch rotation"
[    57.360] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    57.360] (II) Using input driver 'evdev' for 'ADS7846 Touchscreen'
[    57.361] (**) ADS7846 Touchscreen: always reports core events
[    57.361] (**) evdev: ADS7846 Touchscreen: Device: "/dev/input/event0"
[    57.361] (--) evdev: ADS7846 Touchscreen: Vendor 0 Product 0
[    57.361] (--) evdev: ADS7846 Touchscreen: Found absolute axes
[    57.361] (--) evdev: ADS7846 Touchscreen: Found x and y absolute axes
[    57.361] (--) evdev: ADS7846 Touchscreen: Found absolute touchscreen
[    57.361] (**) Option "SwapAxes" "1"
[    57.361] (II) evdev: ADS7846 Touchscreen: Configuring as touchscreen
[    57.361] (**) evdev: ADS7846 Touchscreen: YAxisMapping: buttons 4 and 5
[    57.361] (**) evdev: ADS7846 Touchscreen: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[    57.361] (**) Option "config_info" "udev:/sys/devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input0/event0"
[    57.361] (II) evdev: ADS7846 Touchscreen: initialized for absolute axes.
[    57.362] (**) ADS7846 Touchscreen: (accel) keeping acceleration scheme 1
[    57.362] (**) ADS7846 Touchscreen: (accel) acceleration profile 0
[    57.362] (**) ADS7846 Touchscreen: (accel) acceleration factor: 2.000
[    57.362] (**) ADS7846 Touchscreen: (accel) acceleration threshold: 4
[    57.364] (II) config/udev: Adding input device ADS7846 Touchscreen (/dev/input/mouse0)
[    57.364] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    57.364] (**) ADS7846 Touchscreen: Applying InputClass "calibration"
[    57.364] (II) Using input driver 'evdev' for 'ADS7846 Touchscreen'
[    57.364] (**) ADS7846 Touchscreen: always reports core events
[    57.364] (**) evdev: ADS7846 Touchscreen: Device: "/dev/input/mouse0"
[    57.364] (EE) evdev: ADS7846 Touchscreen: Unable to query fd: Inappropriate ioctl for device
[    57.450] (EE) PreInit returned 2 for "ADS7846 Touchscreen"
[    57.450] (II) UnloadModule: "evdev"
volumio@volumio:~$

Please post the output of

cat /usr/share/X11/xorg.conf.d/99-fbturbo.conf

volumio@volumio:~$ cat /usr/share/X11/xorg.conf.d/99-fbturbo.conf

This is a minimal sample config file, which can be copied to

/etc/X11/xorg.conf in order to make the Xorg server pick up

and load xf86-video-fbturbo driver installed in the system.

When troubleshooting, check /var/log/Xorg.0.log for the debugging

output and error messages.

Run “man fbturbo” to get additional information about the extra

configuration options for tuning the driver.

Section “Device”
Identifier “Allwinner A10/A13 FBDEV”
Driver “fbturbo”
Option “fbdev” “/dev/fb0”

    Option          "SwapbuffersWait" "true"

EndSection
volumio@volumio:~$

Execute

sudo sed 's/fb0/fb1/' -i /usr/share/X11/xorg.conf.d/99-fbturbo.conf

Then restart the plugin or reboot.

1 Like

Thank You. That fixed the problem. The screen is now working. It looks nice after settting the scale factor to 60%


.I also tested with a RPI 4 and it works.
For those encountering the same problem after following Page 1 to install Volumio. These are the two steps provided by gvolt that may fix your problem:

  1. sudo apt-get -y install xserver-xorg-video-fbturbo
    Then restart the Touch Display plugin or reboot.
    2.sudo sed ‘s/fb0/fb1/’ -i /usr/share/X11/xorg.conf.d/99-fbturbo.conf
    Then reboot
    You may also want to change the scale factor in the Touch Display plugin to 60.
1 Like

Hi All,

The ws-35b-v2.sh mentioned in the post #1 is not available anymore. Can someone help me to get that? I am trying to install LCD (B) Rev 2.0 in Volumio but no luck.

Hi,
here it is (available for approx. 1 month):

ws-35b-v2.sh

It’s a big help! Thank you. I am tying now with the file.

Hi i have a Boombox project with Volumio for my raspberry pi 3b+.I cant figure out why Waveshare 3.5inch RPI (B) revision 2 Lcd does not show gui of volumio it just black screen,even if screen connected to pi.I have also tried solution that people tell me to do in volumio community but does not seem to work the instruction for drivers as of 2025.

i need help please

here are some photo of screen



Tell me if you need more info

Hi my volumio setup is raspberry pi 3b+ and waveshare 3.5 inch (B) rev 2 lcd.

I have downloaded this files ws-35b-v2.sh and my LCD waveshare 3.5 inch (B) rev 2 seem to not display gui even when i installed touch display plugin and followed your instruction.

I really need help i am beginner when it comes to linux and maybe i dont understand your instruction help would be appreciated.

Hey @Mat2,

Previous posts and Waveshare instructions were written for kernel 5.x and older Raspbian-based stacks. Volumio is now on kernel 6.12.34, and many of the overlay names, framebuffer drivers, and X11 configurations have changed. Re-using scripts like LCD35B-show-V2 that overwrite config.txt or cmdline.txt will usually break the boot sequence on a modern Volumio build.

A clean install ensures that:

  • You begin with a known-good Volumio image.
  • userconfig.txt is preserved correctly across updates.
  • Only the current, in-tree overlay (dtoverlay=waveshare35b) is used, rather than legacy -v2 variants.
  • The Touch Display plugin works with the new kernel’s KMS defaults without conflicting fbturbo configs.

So the current recommendation is:

  1. Flash the latest Volumio image again to the SD card.

  2. Download and unzip the waveshare35b-v2.dtbo device tree file to add it to the /boot/overlay folder.

  3. Add only the minimal lines to /boot/userconfig.txt:

    • dtparam=spi=on
    • dtoverlay=waveshare35b-v2,rotate=270 (adjust rotation if needed)
  4. Install the xserver-xorg-input-evdev package if touch input is required.

  5. Enable the Touch Display plugin from the UI.

This avoids all the legacy rc.local/inittab/fbturbo hacks that were valid years ago but are not appropriate for kernel 6.12.34.

Kind Regards

2 Likes

Thank you i will do that and will let you know if there problems

Hi i have followed your intstruction and my waveshare 3.5 inch LCD (B) rev 2 LCD is still not working and display gui .It just for step 4 its says install xserver-xorg-input-evdev package and i searched on google and it says to do sudo apt-get update and also sudo apt install xserver-xorg-input-evdev,and sudo reboot.

This is what i wrote in userconfig.txt

This is photo of what my screen do it shows a white thing and dispear
lcd screen show white thing

help would be appracaited

Hey @Mat2,

The fact that your screen lights up briefly is actually promising - it suggests the SPI interface is active. What we don’t know yet is whether the kernel has created a framebuffer device (/dev/fb1) for the Waveshare panel and whether the relevant drivers have loaded.

Please note: I don’t have this specific screen at my disposal and I’m not looking to buy one, so you will need to carry the burden of investigation yourself, unless other community members who do own this panel can step in and provide exact details for the Volumio version you installed (which we still don’t know - the log will capture this).

Here’s what to do next:

1. Disable the Touch Display plugin
In Volumio UI go to Plugins → Installed Plugins and switch off the Touch Display plugin. For now we only want to see whether the kernel has a working console on the screen, not the UI.

2. Send a Volumio log link

  • Open a browser and go to:
    http://<your_volumio_ip>/dev
  • Scroll to the section Send logs of bug report.
  • Enter a short note (for example “Waveshare 3.5B SPI not showing UI”).
  • Click Send.
  • Copy the link it gives you (from logs.volumio.org/...) and paste it back here.

3. Collect framebuffer and module information via SSH
On the same DEV page you can enable SSH. Then connect to your Volumio (user: volumio, password: volumio).
Once logged in, copy-paste this block and return all of its output:

echo "=== Volumio version and kernel ==="; cat /etc/volumio_version 2>/dev/null; uname -a
echo
echo "=== Framebuffers ==="; cat /proc/fb; ls -l /dev/fb* 2>/dev/null
echo
echo "=== Modules of interest ==="; lsmod | egrep -i 'spi|ili9|fbtft|fbcon|vc4|drm|ads7846' || true
echo
echo "=== Recent kernel lines (spi/display) ==="; dmesg | grep -i -E 'spi|ili9|waveshare|fbtft|ads7846|fbcon' | tail -n 120

With the log link and this small set of outputs we will know:

  • Which Volumio version you are running.
  • Whether the kernel created a framebuffer (fb1) for the LCD.
  • Which modules are loaded (spi_bcm2835, ili9486, ads7846, etc).
  • Any errors when the overlay tried to initialize the panel.

Once that’s clear, we’ll know whether the display is alive at kernel level. If it is, we can then look at enabling the UI later.

Kind Regards,