[GUIDE] Waveshare 11.9"/7.9" DSI LCD Display Configuration for Volumio 4

Waveshare DSI display configuration guide for Volumio OS

Supported hardware

Raspberry Pi models

  • Raspberry Pi 4B+ - Tested with all scenarios
  • Raspberry Pi 5 - Tested with all scenarios

Waveshare DSI displays

  • 11.9 inch DSI LCD - Native resolution 320x1480 (portrait)
  • 7.9 inch DSI LCD - Native resolution 400x1280 (portrait)

Operating system

  • Volumio OS 4 (Debian Bookworm-based)

Display-specific parameters reference

All configurations require display-specific parameters. Use this table to determine correct values for your display.

Parameter table by display size

Parameter 11.9 inch display 7.9 inch display
Native resolution 320x1480 (portrait) 400x1280 (portrait)
Rotated resolution 1480x320 (landscape) 1280x400 (landscape)
dtoverlay line dtoverlay=vc4-kms-dsi-waveshare-panel,11_9_inch,rotation=270 dtoverlay=vc4-kms-dsi-waveshare-panel,7_9_inch,rotation=270
video= parameter video=DSI-1:320x1480@60,rotate=270 video=DSI-1:400x1280e,rotate=270
Expected fbset output mode "1480x320" mode "1280x400"

Important notes:

  • Both displays use rotation=270 in dtoverlay for landscape orientation
  • 7.9 inch display requires “e” flag in video= parameter: 400x1280e
  • 11.9 inch display does NOT use “e” flag: 320x1480@60

Complete example configurations

This section provides complete, ready-to-use configuration files for common setups. Choose the example matching your hardware and copy the entire configuration.

Example 1: Raspberry Pi 4B+ with 11.9 inch display (Scenario 1)

Complete /boot/userconfig.txt:

# Add your custom config.txt options to this file, which will be preserved during updates
[pi4]
dtoverlay=vc4-kms-v3d-pi4
dtoverlay=vc4-kms-dsi-waveshare-panel,11_9_inch,rotation=270
hdmi_force_hotplug=0
disable_overscan=1
dtparam=audio=off
[all]

Add to end of /boot/cmdline.txt:

video=DSI-1:320x1480@60,rotate=270

Expected fbset output:

mode "1480x320"

Example 2: Raspberry Pi 5 with 11.9 inch display (Scenario 1)

Complete /boot/userconfig.txt:

# Add your custom config.txt options to this file, which will be preserved during updates
dtoverlay=vc4-kms-dsi-waveshare-panel,11_9_inch,rotation=270
hdmi_force_hotplug=0
hdmi_drive=2
disable_overscan=1

Add to end of /boot/cmdline.txt:

video=DSI-1:320x1480@60,rotate=270

Expected fbset output:

mode "1480x320"

Example 3: Raspberry Pi 4B+ with 7.9 inch display (Scenario 1)

Complete /boot/userconfig.txt:

# Add your custom config.txt options to this file, which will be preserved during updates
[pi4]
dtoverlay=vc4-kms-v3d-pi4
dtoverlay=vc4-kms-dsi-waveshare-panel,7_9_inch,rotation=270
hdmi_force_hotplug=0
disable_overscan=1
dtparam=audio=off
[all]

Add to end of /boot/cmdline.txt:

video=DSI-1:400x1280e,rotate=270

Note: The “e” flag is required for 7.9 inch display.

Expected fbset output:

mode "1280x400"

Example 4: Raspberry Pi 5 with 7.9 inch display (Scenario 1)

Complete /boot/userconfig.txt:

# Add your custom config.txt options to this file, which will be preserved during updates
dtoverlay=vc4-kms-dsi-waveshare-panel,7_9_inch,rotation=270
hdmi_force_hotplug=0
hdmi_drive=2
disable_overscan=1

Add to end of /boot/cmdline.txt:

video=DSI-1:400x1280e,rotate=270

Note: The “e” flag is required for 7.9 inch display.

Expected fbset output:

mode "1280x400"

Example 5: Raspberry Pi 4B+ with 11.9 inch + HDMI port 0 audio (Scenario 3)

Complete /boot/userconfig.txt:

# Add your custom config.txt options to this file, which will be preserved during updates
[pi4]
dtoverlay=vc4-kms-v3d-pi4
dtoverlay=vc4-kms-dsi-waveshare-panel,11_9_inch,rotation=270
hdmi_force_hotplug:0=1
hdmi_drive:0=2
hdmi_ignore_edid:0=0xa5000080
disable_overscan=1
[all]

Add to end of /boot/cmdline.txt:

video=DSI-1:320x1480@60,rotate=270 video=HDMI-A-1:d

Expected result: Display on DSI, audio from HDMI port 0


Example 6: Raspberry Pi 5 with 7.9 inch + both HDMI ports audio (Scenario 5)

Complete /boot/userconfig.txt:

# Add your custom config.txt options to this file, which will be preserved during updates
dtoverlay=vc4-kms-dsi-waveshare-panel,7_9_inch,rotation=270
hdmi_force_hotplug:0=1
hdmi_force_hotplug:1=1
hdmi_drive:0=2
hdmi_drive:1=2
hdmi_ignore_edid:0=0xa5000080
hdmi_ignore_edid:1=0xa5000080
disable_overscan=1

Add to end of /boot/cmdline.txt:

video=DSI-1:400x1280e,rotate=270 video=HDMI-A-1:d video=HDMI-A-2:d

Expected result: Display on DSI, audio from both HDMI ports (Volumio uses one)


Physical orientation (270-degree rotation)

Raspberry Pi 4B+ and Pi 5 mounting (when viewing from screen side):

  • Bottom edge: USB-C power port, HDMI ports
  • Left edge: USB ports, Ethernet/LAN port
  • Top edge: GPIO header
  • Right edge: SD card slot (micro SD on Pi 4B+, full size SD on Pi 5)

Note: When mounting the Pi from behind (looking at the back of the display), left and right edges are reversed from this description.

Display orientation with 270-degree rotation:

  • Display top edge: Aligned with GPIO header (Pi top edge)
  • Display bottom edge: Aligned with USB-C/HDMI ports (Pi bottom edge)

Raspberry Pi 4B+ and Pi 5 mounting (when viewing from screen side):

  • Bottom edge: USB-C power port, HDMI ports
  • Left edge: USB ports, Ethernet/LAN port
  • Top edge: GPIO header
  • Right edge: SD card slot (micro SD on Pi 4B+, full size SD on Pi 5)

Note: When mounting the Pi from behind (looking at the back of the display), left and right edges are reversed from this description.

Display orientation with 270-degree rotation:

  • Display top edge: Aligned with GPIO header (Pi top edge)
  • Display bottom edge: Aligned with USB-C/HDMI ports (Pi bottom edge)

Configuration scenarios overview

Scenario Audio output HDMI port 0 HDMI port 1 Use case
1 None/Disabled Disabled Disabled Minimal setup, no audio
2 I2S DAC Disabled Disabled High-quality audio via DAC
3 HDMI audio Audio only Disabled Soundbar/AVR on HDMI 0
4 HDMI audio Disabled Audio only Soundbar/AVR on HDMI 1
5 HDMI audio Audio only Audio only Dual audio output capability

Common base configuration

Raspberry Pi 4B+

All scenarios share this base configuration in /boot/userconfig.txt:

[pi4]
dtoverlay=vc4-kms-v3d-pi4
<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
disable_overscan=1

Add scenario-specific parameters below this base.

Raspberry Pi 5

All scenarios use this simplified configuration in /boot/userconfig.txt:

<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug=0
hdmi_drive=2
disable_overscan=1

Key differences for Pi 5:

  • No section markers ([pi4], [all]) needed
  • No vc4-kms-v3d overlay (handled automatically by volumioconfig.txt)
  • Simplified HDMI configuration

Add scenario-specific parameters below this base.

cmdline.txt configuration

For all scenarios on both Pi 4B+ and Pi 5:

Add the display-specific video= parameter from the table to the END of /boot/cmdline.txt:

<INSERT DISPLAY-SPECIFIC video= PARAMETER FROM TABLE>

Space-separate from previous parameters.

Example for 11.9 inch display:

... use_kmsg=no video=DSI-1:320x1480@60,rotate=270

Example for 7.9 inch display:

... use_kmsg=no video=DSI-1:400x1280e,rotate=270

Scenario 1: DSI only (no audio)

Purpose

Minimal configuration for display only, all audio outputs disabled.

Configuration

Raspberry Pi 4B+

/boot/userconfig.txt:

[pi4]
dtoverlay=vc4-kms-v3d-pi4
<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug=0
disable_overscan=1
dtparam=audio=off
[all]

Raspberry Pi 5

/boot/userconfig.txt:

<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug=0
hdmi_drive=2
disable_overscan=1

Both Pi 4B+ and Pi 5

/boot/cmdline.txt:

  • Add to the END of the existing single line: <INSERT DISPLAY-SPECIFIC video= PARAMETER FROM TABLE>
  • Space-separate from previous parameters

Expected results

  • fbset shows display-specific resolution (see parameter table)
  • No HDMI interference
  • Plymouth displays correctly on DSI with landscape rotation
  • Console properly rotated to landscape
  • No audio outputs active

Scenario 2: DSI + I2S DAC

Purpose

High-quality audio through external I2S DAC while maintaining DSI display.

Configuration

Raspberry Pi 4B+

/boot/userconfig.txt:

[pi4]
dtoverlay=vc4-kms-v3d-pi4
<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug=0
disable_overscan=1
dtparam=audio=off
[all]

Raspberry Pi 5

/boot/userconfig.txt:

<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug=0
hdmi_drive=2
disable_overscan=1

Both Pi 4B+ and Pi 5

/boot/cmdline.txt:

  • Add to the END of the existing single line: <INSERT DISPLAY-SPECIFIC video= PARAMETER FROM TABLE>
  • Space-separate from previous parameters

DAC Configuration via Volumio UI:

Do NOT add DAC overlays to userconfig.txt. Configure your I2S DAC through Volumio’s web interface:

  1. Open Volumio web UI (http://volumio.local)
  2. Navigate to: Settings → Playback Options
  3. Under Output Device, select your I2S DAC from the dropdown
  4. Click Save
  5. Volumio will automatically add the correct DAC overlay to /boot/config.txt
  6. Reboot when prompted

Important: Volumio manages DAC configuration in /boot/config.txt (system file). User modifications should only go in /boot/userconfig.txt. The two files work together - config.txt is managed by Volumio, userconfig.txt is for user customizations like display settings.

Expected results

  • fbset shows display-specific resolution (see parameter table)
  • I2S DAC active for audio output (configured via Volumio UI)
  • Plymouth displays correctly on DSI with landscape rotation
  • Console properly rotated to landscape
  • HDMI audio disabled

Scenario 3: DSI + HDMI port 0 audio

Purpose

Extract audio from HDMI port 0 (closer to USB-C power) while disabling video output.

Configuration

Raspberry Pi 4B+

/boot/userconfig.txt:

[pi4]
dtoverlay=vc4-kms-v3d-pi4
<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug:0=1
hdmi_drive:0=2
hdmi_ignore_edid:0=0xa5000080
disable_overscan=1
[all]

Raspberry Pi 5

/boot/userconfig.txt:

<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug:0=1
hdmi_drive:0=2
hdmi_ignore_edid:0=0xa5000080
disable_overscan=1

Both Pi 4B+ and Pi 5

/boot/cmdline.txt:

  • Add to the END of the existing single line: <INSERT DISPLAY-SPECIFIC video= PARAMETER FROM TABLE> video=HDMI-A-1:d
  • Space-separate from previous parameters

Example for 11.9 inch display:

... use_kmsg=no video=DSI-1:320x1480@60,rotate=270 video=HDMI-A-1:d

Expected results

  • fbset shows display-specific resolution (see parameter table)
  • HDMI-A-1 video disabled but audio active
  • Plymouth displays correctly on DSI with landscape rotation
  • Console properly rotated to landscape
  • HDMI audio available to soundbar/AVR connected to port 0

Scenario 4: DSI + HDMI port 1 audio

Purpose

Extract audio from HDMI port 1 (farther from USB-C power) while disabling video output.

Configuration

Raspberry Pi 4B+

/boot/userconfig.txt:

[pi4]
dtoverlay=vc4-kms-v3d-pi4
<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug:1=1
hdmi_drive:1=2
hdmi_ignore_edid:1=0xa5000080
disable_overscan=1
[all]

Raspberry Pi 5

/boot/userconfig.txt:

<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug:1=1
hdmi_drive:1=2
hdmi_ignore_edid:1=0xa5000080
disable_overscan=1

Both Pi 4B+ and Pi 5

/boot/cmdline.txt:

  • Add to the END of the existing single line: <INSERT DISPLAY-SPECIFIC video= PARAMETER FROM TABLE> video=HDMI-A-2:d
  • Space-separate from previous parameters

Example for 11.9 inch display:

... use_kmsg=no video=DSI-1:320x1480@60,rotate=270 video=HDMI-A-2:d

Expected results

  • fbset shows display-specific resolution (see parameter table)
  • HDMI-A-2 video disabled but audio active
  • Plymouth displays correctly on DSI with landscape rotation
  • Console properly rotated to landscape
  • HDMI audio available to soundbar/AVR connected to port 1

Scenario 5: DSI + both HDMI ports audio

Purpose

Extract audio from both HDMI ports simultaneously while disabling video output.

Configuration

Raspberry Pi 4B+

/boot/userconfig.txt:

[pi4]
dtoverlay=vc4-kms-v3d-pi4
<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug:0=1
hdmi_force_hotplug:1=1
hdmi_drive:0=2
hdmi_drive:1=2
hdmi_ignore_edid:0=0xa5000080
hdmi_ignore_edid:1=0xa5000080
disable_overscan=1
[all]

Raspberry Pi 5

/boot/userconfig.txt:

<INSERT DISPLAY-SPECIFIC dtoverlay LINE FROM TABLE>
hdmi_force_hotplug:0=1
hdmi_force_hotplug:1=1
hdmi_drive:0=2
hdmi_drive:1=2
hdmi_ignore_edid:0=0xa5000080
hdmi_ignore_edid:1=0xa5000080
disable_overscan=1

Both Pi 4B+ and Pi 5

/boot/cmdline.txt:

  • Add to the END of the existing single line: <INSERT DISPLAY-SPECIFIC video= PARAMETER FROM TABLE> video=HDMI-A-1:d video=HDMI-A-2:d
  • Space-separate from previous parameters

Example for 11.9 inch display:

... use_kmsg=no video=DSI-1:320x1480@60,rotate=270 video=HDMI-A-1:d video=HDMI-A-2:d

Expected results

  • fbset shows display-specific resolution (see parameter table)
  • Both HDMI video outputs disabled but audio active on both ports
  • Plymouth displays correctly on DSI with landscape rotation
  • Console properly rotated to landscape
  • HDMI audio available on both ports (Volumio will default to one)

Parameter reference

Display parameters

Parameter Function
dtoverlay=vc4-kms-v3d-pi4 Enables VC4 KMS display driver for Pi 4 (Pi 4B+ only)
dtoverlay=vc4-kms-dsi-waveshare-panel,<size>,rotation=270 Loads Waveshare DSI panel driver with 270-degree rotation
video=DSI-1:<resolution>,rotate=270 Kernel-level framebuffer rotation for console
disable_overscan=1 Prevents display area reduction (no black borders)

HDMI audio parameters

Parameter Function
hdmi_force_hotplug:N=1 Keeps HDMI port N active (0=first port, 1=second port)
hdmi_drive:N=2 Forces HDMI audio mode (not DVI) on port N
hdmi_ignore_edid:N=0xa5000080 Ignores display detection on port N (audio-only mode)
video=HDMI-A-N:d Kernel-level disable of HDMI-A-N video output

Audio parameters

Parameter Function
dtparam=audio=off Disables onboard 3.5mm audio jack (Pi 4B+ only)
dtoverlay=<dac-name> Loads specific I2S DAC driver overlay

Verification commands

After rebooting with new configuration, verify setup with these commands:

Check framebuffer resolution

fbset

Expected output for 11.9 inch display:

mode "1480x320"
    geometry 1480 320 1480 320 16

Expected output for 7.9 inch display:

mode "1280x400"
    geometry 1280 400 1280 400 16

Check kernel command line

cat /proc/cmdline | grep video

Expected output for 11.9 inch (Scenario 3):

... video=DSI-1:320x1480@60,rotate=270 video=HDMI-A-1:d

Expected output for 7.9 inch (Scenario 3):

... video=DSI-1:400x1280e,rotate=270 video=HDMI-A-1:d

Check DSI display status

cat /sys/class/drm/card1-DSI-1/modes
cat /sys/class/drm/card1-DSI-1/status

Expected output for 11.9 inch:

320x1480
connected

Expected output for 7.9 inch:

400x1280
connected

Check HDMI configuration

vcgencmd get_config int | grep hdmi

Expected output (Scenario 3):

hdmi_drive:0=2
hdmi_force_hotplug:0=1

Check display devices

ls /sys/class/drm/

Expected output:

card0  card0-HDMI-A-1  card0-HDMI-A-2  card1  card1-DSI-1  ...

Troubleshooting

Issue: Framebuffer shows wrong resolution

Symptoms:

fbset
mode "320x480"  # Wrong for 11.9 inch
mode "400x480"  # Wrong for 7.9 inch

Causes:

  1. HDMI parameters injected by firmware before DSI configuration
  2. Conflicting video= parameters in cmdline.txt
  3. Missing video=DSI-1 rotation parameter
  4. Wrong display-specific parameters used

Solution:

  1. Verify hdmi_force_hotplug=0 in userconfig.txt (or proper port-specific settings)
  2. Check /proc/cmdline for unexpected video=HDMI parameters
  3. Ensure correct display-specific video= parameter from table is in cmdline.txt
  4. Verify video=DSI-1 parameter appears BEFORE any HDMI parameters
  5. Double-check you’re using parameters for the correct display size

Issue: Console in portrait mode despite rotation

Symptoms:

  • Plymouth displays correctly rotated
  • Console text appears in portrait orientation
  • Login prompt sideways

Solution:

  • Add display-specific video=DSI-1:... parameter to cmdline.txt
  • This parameter rotates the framebuffer/console layer
  • dtoverlay rotation alone only affects panel hardware, not console
  • Verify you’re using the correct video= parameter for your display size

Issue: 7.9 inch display not working

Symptoms:

  • Black screen or no output
  • fbset shows wrong resolution

Solution:

  • Verify video= parameter includes “e” flag: video=DSI-1:400x1280e,rotate=270
  • The “e” flag is required for 7.9 inch display
  • 11.9 inch display does NOT use “e” flag

Issue: HDMI audio not working

Symptoms:

  • No audio output from HDMI-connected device
  • Volumio doesn’t list HDMI as audio output option

Solution:

  1. Verify hdmi_drive:N=2 is set (forces audio mode)
  2. Check HDMI cable supports audio (not all do)
  3. Verify soundbar/AVR is set to correct HDMI input
  4. Check Volumio audio output settings in web interface

Issue: Plymouth not displaying during boot

Symptoms:

  • Black screen during boot
  • Boot messages appear but no Plymouth splash

Solution:

  1. Verify DSI display is detected: cat /sys/class/drm/card1-DSI-1/status
  2. Check Plymouth is enabled: plymouth --ping
  3. Review initramfs Plymouth script: /scripts/init-premount/plymouth
  4. Check kernel messages: dmesg | grep -i plymouth

Issue: Display corruption or multiple segments

Symptoms:

  • Screen shows multiple copies of content
  • Distorted or rotated incorrectly

Solution:

  1. Ensure dtoverlay rotation matches video= rotation (both 270 degrees)
  2. Never use different rotation values in dtoverlay vs video= parameter
  3. Check for duplicate rotation specifications
  4. Verify using correct display-specific parameters

Notes and best practices

Important warnings

  1. Never edit /boot/config.txt directly - Always use /boot/userconfig.txt for custom settings
  2. cmdline.txt is a single line - All parameters must be on one line, space-separated
  3. Rotation values must match - dtoverlay rotation and video= rotation must be identical
  4. DSI parameter goes first - Place video=DSI-1 before any HDMI parameters in cmdline.txt
  5. Use correct display parameters - 11.9 inch and 7.9 inch require different parameters
  6. 7.9 inch needs “e” flag - video= parameter must include “e”: 400x1280e
  7. Firmware interference - hdmi_force_hotplug triggers automatic HDMI detection
  8. Configure DACs via Volumio UI - Never manually add DAC overlays to userconfig.txt; use Settings → Playback Options instead

File preservation

These files are preserved during Volumio updates:

  • /boot/userconfig.txt - User configuration for display and custom hardware (safe to edit)
  • /boot/cmdline.txt - Kernel parameters (safe to edit)

These files are managed by Volumio:

  • /boot/config.txt - System configuration managed by Volumio (do not edit directly)
  • /boot/volumioconfig.txt - Volumio base config (do not edit)

Important distinction:

  • /boot/config.txt - Volumio writes system settings here (DAC configuration, base hardware settings)
  • /boot/userconfig.txt - User adds custom settings here (display configuration, additional hardware)
  • Both files are processed together at boot
  • Settings in userconfig.txt supplement (not replace) config.txt
  • Never manually add DAC overlays to userconfig.txt - use Volumio UI instead

Configuration testing workflow

  1. Identify your display size (11.9 inch or 7.9 inch)
  2. Reference the parameter table for display-specific values
  3. Make changes to configuration files using correct parameters
  4. Verify syntax (no typos, proper spacing)
  5. Reboot system
  6. Run verification commands
  7. Check Plymouth during boot
  8. Verify console rotation
  9. Test audio output if configured
  10. Document working configuration

Rotation angles reference

Rotation Native portrait Landscape result Display top edge aligns with
0 Native portrait Portrait mode N/A - portrait mode
90 Native portrait Landscape SD card slot (Pi right edge)
180 Native portrait Portrait upside down N/A - portrait upside down
270 Native portrait Landscape GPIO header (Pi top edge)

This guide uses 270-degree rotation for landscape display with GPIO header at top.

Why both dtoverlay and video= rotation?

  • dtoverlay rotation: Rotates panel at hardware/driver level
  • video= rotation: Rotates framebuffer/console layer at kernel level
  • Both required: Panel needs hardware rotation, console needs framebuffer rotation
  • Values must match: Using different rotation values causes display corruption

References

Kind Regards,

1 Like

In addition to the 2 displays mentioned, I use a 8.8" 480x1920 Waveshare DSI touchscreen on a Pi5. These are the lines I run to get my screen working:

userconfig.txt:

#DSI1 Use
dtoverlay=vc4-kms-dsi-waveshare-panel,8_8_inch,rotation=90
hdmi_force_hotplug=0
hdmi_drive=2
disable_overscan=1

cmdline.txt:

video=DSI-1:480x1920@60,rotate=90

A gotcha I ran into was that my previous config had framebuffer set for width and height in userconfig and those lines caused the screen to have a triplicated garbled output. Removing those lines fixed it.

I’m beginning to think that there is some kind of incompatibility with my RPi 4 1.5 and WS DSI 11.9" display. It works flawlessly with Volumio 3, but with Volumio 4 there are strange problems I can’t solve.

When I install Volumio 4 from the start, with a “cold” system, the display never works. Since 4.062 at least there are no errors in the logs, but it stays black. At least for some while. At the 5th or 8th reboot it starts working.

If I boot with Volumio 3 or a standard graphic distribution (where the display always works fine) and then boot Volumio 4, the display always works. Again no errors in logs. But turning the system off by night means it won’t work when turning it on in the morning…

It looks like there is some kind of initialization or warm-up that is not being applied. But I really don’t know where to look.

Nobody has ever seen something like this?

I remember there was some incompatibility between this RPi 4 v1.5 and some DAC (PiFi perhaps?). Maybe I have to change this RPI…

Regards.

Ps. I started working on this with WaveShare but then Chinese New Year arrived and everything stopped…

Have you entered the specific line in userconfig.txt for your specific Waveshare screen?

From a fresh install and cold boot, without that line in that file, the screen will not initialize. So from a fresh install, with the screen not initialized, you must ssh in and add the appropriate line, then reboot for the screen to work.

Yes, I followed the guide step by step. At least twice. The Volumio 4 installation I have that works (after V3 or Raspbian or… initializing) curiously has this line:

dtoverlay=vc4-kms-v3d

instead of the

dtoverlay=vc4-kms-v3d-pi4

of the guide. But I changed cmdline.txt and userconfig.txt according to the guide. Results are worse in my case: only when initializing with a graphic “working” distro or after several reboots, the display starts working but only with the dtoverlay without the “-pi4”.

This is what I have and the results of fbtest that, by the way, are NOT the same as the shown in the OP:

volumio@volumio:~$ cat /boot/cmdline.txt
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=serial0,115200 console=tty1 imgpart=UUID=78d948c3-935b-4358-b7df-c382779bbef9 imgfile=/volumio_current.sqsh bootpart=UUID=A1E8-5028 datapart=UUID=60f254d7-c70a-4b55-956c-3df3766a56af uuidconfig=cmdline.txt pcie_aspm=off pci=pcie_bus_safe rootwait bootdelay=7 logo.nologo vt.global_cursor_default=0 net.ifnames=0 snd-bcm2835.enable_compat_alsa= snd_bcm2835.enable_hdmi=1 snd_bcm2835.enable_headphones=1 loglevel=0 nodebug use_kmsg=no video=DSI-1:320x1480@60,rotate=270
volumio@volumio:~$ cat /boot/userconfig.txt
# Add your custom config.txt options to this file, which will be preserved during updates

dtoverlay=vc4-kms-v3d-pi4
dtoverlay=vc4-kms-dsi-waveshare-panel,11_9_inch,rotation=270
hdmi_force_hotplug=0
disable_overscan=1
dtparam=audio=off

#### Touch Display rotation setting below: do not alter ####
display_lcd_rotate=3
display_hdmi_rotate=3
volumio@volumio:~$ fbtest
/dev/fb0: res 320x1480, virtual 320x1480, line_len 640

In the meanwhile, Volumio 3 works flawlessly…

Best Regards