arca old
[*] [ *] [ ] ]
L [] [] Debian desktop environment GNOME Xfce • GNOME Flashback KDE Plasma Cinnamon MATE • LXDE • LXQt web server SSH server standard system utilities Choose a Debian Blend for installation
sudo fwupdmgr get-devices
HP EliteDesk 800 G3 DM 65W
│
├─CT480BX500SSD1:
│ Device ID: 2ad4580685ade1c2cb2a2a6c53d2ee26ff7c0c3f
│ Summary: ATA drive
│ Current version: M6CR056
│ Vendor: Crucial (OUI:00a075, ATA:0xC0A9)
│ Serial Number: 2310E6B8BF14
│ GUIDs: f73b3707-6794-5a1d-b360-1a63510e9ba9 ← IDE\CT480BX500SSD1__________________________M6CR056
│ 9e8e685b-df78-5e87-9f97-90911e61f8f9 ← IDE\0CT480BX500SSD1__________________________
│ b82a6f66-f1d9-57bf-8a1b-e3bc901bc23d ← CT480BX500SSD1
│ Device Flags: • Internal device
│ • Updatable
│ • System requires external power source
│ • Needs a reboot after installation
│ • Device is usable for the duration of the update
│ • Can tag for emulation
│
├─Core™ i5-6500T CPU @ 2.50GHz:
│ Device ID: 4bde70ba4e39b28f9eab1628f9dd6e6244c03027
│ Current version: 0x000000f0
│ Vendor: Intel
│ GUIDs: 215d01de-fd1a-57cf-9153-72e29c0b7ffe ← CPUID\PRO_0&FAM_06&MOD_5E
│ c944e5cd-430c-5731-a9d5-c1b63c61cf27 ← CPUID\PRO_0&FAM_06&MOD_5E&STP_3
│ Device Flags: • Internal device
│
├─DataTraveler 3.0:
│ Device ID: 531af043900943d9664fbb3fc733e1124079b568
│ Summary: SCSI device
│ Current version: PMAP
│ Vendor: Kingston (USB:0x0951, SCSI:Kingston)
│ GUIDs: a6e1f4b9-a867-55d4-baf8-183cb3408c1c ← BLOCK\VEN_0951&DEV_1666
│ c30ac08e-0121-57e6-8f73-4ad05bcfb941 ← SCSI\VEN_Kingston&DEV_DataTraveler 3.0
│ 8d4e85f3-13b3-5f4b-b0cb-bd9df65bc777 ← SCSI\VEN_Kingston&DEV_DataTraveler 3.0&REV_PMAP
│ Device Flags: • Can tag for emulation
│
├─HD Graphics 530:
│ Device ID: 5792b48846ce271fab11c4a545f7a3df0d36e00a
│ Current version: 06
│ Vendor: Intel Corporation (PCI:0x8086)
│ GUID: c48d1cbc-3c34-5af1-b38f-bed4746a8acf ← PCI\VEN_8086&DEV_1912
│ Device Flags: • Internal device
│ • Cryptographic hash verification is available
│ • Can tag for emulation
│
├─System Firmware:
│ │ Device ID: 6eeea35b1d0c1ab63eb272438ede9f25c2c93648
│ │ Summary: UEFI System Resource Table device (updated via NVRAM)
│ │ Current version: 131122
│ │ Minimum Version: 1
│ │ Vendor: HP (DMI:HP)
│ │ Update State: Success
│ │ GUID: 3bbf311b-18ea-e04d-aa5c-139c4deb2a12
│ │ Device Flags: • Internal device
│ │ • Updatable
│ │ • System requires external power source
│ │ • Needs a reboot after installation
│ │ • Cryptographic hash verification is available
│ │ • Device is usable for the duration of the update
│ │ Device Requests: • Message
│ │
│ ├─HP UEFI Secure Boot 2013 PK Key:
│ │ Device ID: 6924110cde4fa051bfdc600a60620dc7aa9d3c6a
│ │ Summary: UEFI Platform Key
│ │ Current version: 0
│ │ Vendor: Hewlett-Packard Company
│ │ GUIDs: 306da3cc-39e5-5e88-853c-345b1b4d5dd8 ← UEFI\VENDOR_Hewlett-Packard-Company&NAME_HP-UEFI-Secure-Boot-2013-PK-Key
│ │ fa033ef8-3efa-5306-983e-37a196aba2ea ← UEFI\CRT_576F6A385DED2B5DF1FDA805614B347223B3FC4B
│ │ Device Flags: • Internal device
│ │ • Cryptographic hash verification is available
│ │ • Can tag for emulation
│ │
│ ├─UEFI Signature Database:
│ │ │ Device ID: 0352a8acc949c7df21fec16e566ba9a74e797a97
│ │ │ Device Flags: • Internal device
│ │ │
│ │ └─Windows Production PCA:
│ │ Device ID: ea9d4960094c43d107b919fe44941f2c774f84df
│ │ Current version: 2011
│ │ Vendor: Microsoft (UEFI:Microsoft)
│ │ GUIDs: 675d2184-6c9a-59f1-a6f1-3c229b5dbb79 ← UEFI\VENDOR_Microsoft&NAME_Microsoft-Windows-Production-PCA
│ │ 1a84097f-714e-51b7-b293-9a803c98bb1d ← UEFI\CRT_CBBBF4B136DB90D11FD37A4A9B2106973AECC095
│ │ Device Flags: • Internal device
│ │ • Updatable
│ │ • Signed Payload
│ │ • Can tag for emulation
│ │
│ └─UEFI dbx:
│ Device ID: 362301da643102b9f38477387e2193e57abaa590
│ Summary: UEFI revocation database
│ Current version: 20230301
│ Minimum Version: 20230301
│ Vendor: UEFI:Microsoft
│ Install Duration: 1 second
│ GUIDs: f1d99738-25d4-5f76-a2ec-87750d294993 ← UEFI\CRT_77F0715D0112EBF26BF15C0194B2395404E86731F853BBADCE4C4D745C3A78AD&ARCH_X64
│ f8ba2887-9411-5c36-9cee-88995bb39731 ← UEFI\CRT_A1117F516A32CEFCBA3F2D1ACE10A87972FD6BBE8FE0D0B996E09E65D802A503&ARCH_X64
│ Device Flags: • Internal device
│ • Updatable
│ • Needs a reboot after installation
│ • Cryptographic hash verification is available
│ • Device is usable for the duration of the update
│ • Only version upgrades are allowed
│ • Signed Payload
│ • Can tag for emulation
│
└─TPM:
Device ID: 1d8d50a4dbc65618f5c399c2ae827b632b3ccc11
Current version: 7.62.12.13824
Vendor: Infineon (TPM:IFX)
GUIDs: 5eebb112-75ad-5536-b173-a11eb3399402 ← TPM\VEN_IFX&DEV_0000
ddf995da-1b32-5a8a-bc1b-8d5af4b38b51 ← TPM\VEN_IFX&MOD_SLB9670
6d81ab63-db2e-50ac-934f-6be9accf5e02 ← TPM\VEN_IFX&DEV_0000&VER_2.0
301555de-680d-5ddc-b995-7553fc9138f1 ← TPM\VEN_IFX&MOD_SLB9670&VER_2.0
Device Flags: • Internal device
• System requires external power source
• Needs a reboot after installation
• Device can recover flash failures
• Full disk encryption secrets may be invalidated when updating
• Signed Payload
• Can tag for emulationsudo fwupdmgr update Devices with no available firmware updates: • CT480BX500SSD1 • HP UEFI Secure Boot 2013 DB key • HP UEFI Secure Boot 2013 KEK key • KEK CA • System Firmware • UEFI dbx • Windows Production PCA No updatable devices
OS Installation & Configuration
Download ISO Burn USB Key Boot and update BIOS config Install Debian including root password and one local user: bhdicaire
ssh -o PubkeyAuthentication=no -o PreferredAuthentications=password bhdicaire@172.30.30.239
Nice choice of hardware — the HP EliteDesk 800 G3 Mini + Debian 13.2 is a very solid combo for a homelab or daily Linux box.
Below is a clean, Linux-focused checklist covering BIOS/UEFI settings, BIOS & firmware updates, and verifying Wi-Fi / Bluetooth / devices.
⸻
- Recommended BIOS / UEFI settings (HP EliteDesk 800 G3)
Reboot and press F10 → Computer Setup (BIOS).
🔐 Security • Secure Boot: • ✅ Disabled (simplest, avoids kernel/module issues) • Legacy Support: • ❌ Disabled • TPM: • Optional (enable only if you plan disk encryption + TPM later)
🧭 Boot Options • Boot Mode: • ✅ UEFI Native (without CSM) • Boot Order: • OS Boot Manager (Debian) first • Fast Boot: • Optional (disable while troubleshooting)
⚙️ Advanced → Device Options • Intel Virtualization Technology (VT-x): • ✅ Enabled • VT-d (IOMMU): • ✅ Enabled (even if you don’t use it yet) • Hyper-Threading: • Enabled • Turbo Boost: • Enabled
🔌 Power Management • S5 Maximum Power Savings: • ❌ Disabled • Wake on LAN: • Optional (enable if this will be a server) • PCIe ASPM: • Enabled (better power efficiency)
💾 Storage • SATA Mode: • ✅ AHCI • NVMe RAID / Intel RST: • ❌ Disabled
🖥 Graphics • Primary Video Adapter: • Intel Graphics • DVMT Pre-Allocated: • Auto (or 128 MB if adjustable)
👉 Save & Exit
⸻
- Make sure BIOS is the latest version
Option A – Check current BIOS version
sudo dmidecode -s bios-version sudo dmidecode -s bios-release-date
Option B – Update BIOS (recommended method)
HP does not update BIOS via fwupd on this generation.
Best method: HP BIOS USB update 1. Go to HP Support → EliteDesk 800 G3 Mini 2. Download: • BIOS Update (BIN / EXE) 3. From BIOS: • F10 → Firmware Management → BIOS Update • Point to USB stick with the BIOS file
⚠️ Do not update BIOS from Windows installers under Wine.
⸻
- Update system firmware (SSD, Wi-Fi, Intel ME, etc.)
Debian 13 works very well with fwupd.
Install & refresh firmware metadata
sudo apt update sudo apt install fwupd sudo fwupdmgr refresh
Check supported devices
sudo fwupdmgr get-devices
Apply available updates
sudo fwupdmgr update
If firmware updates are available, reboot when prompted.
⸻
- Ensure Wi-Fi & Bluetooth firmware is installed
Install Debian firmware packages
sudo apt install firmware-linux firmware-linux-nonfree
firmware-iwlwifi firmware-realtek
Reboot after installation.
⸻
- Verify that all hardware is detected and working
CPU & virtualization
lscpu | grep Virtualization
Expected:
Virtualization: VT-x
⸻
Graphics (Intel iGPU)
lspci | grep -i vga
Check driver:
lsmod | grep i915
⸻
Wi-Fi
lspci | grep -i network
Check firmware loaded:
dmesg | grep iwlwifi
Check interface:
ip a | grep wlan
⸻
Bluetooth
lsusb | grep -i bluetooth
Check service:
systemctl status bluetooth
If not running:
sudo systemctl enable –now bluetooth
Test:
bluetoothctl
⸻
Audio
aplay -l
⸻
Sensors / thermals
sudo apt install lm-sensors sudo sensors-detect sensors
⸻
- Power efficiency (recommended for Mini PC)
sudo apt install powertop sudo powertop –auto-tune
Optional persistent tuning:
sudo systemctl enable powertop
⸻
- Final sanity check (one command)
inxi -Fz
If not installed:
sudo apt install inxi
This gives a full system overview in one shot.
⸻
What I can help you with next
If you want, I can: • ✅ Validate your inxi -Fz output • ✅ Tune it as a Proxmox / KVM / Docker host • ✅ Optimize power usage for 24/7 operation • ✅ Confirm exact Wi-Fi / Bluetooth chipset support
Just paste the output or tell me how you plan to use this box.
SSH
disable sleep
Check command already installed
The /etc/group is a plain text file still used in Debian 13 (Trixie) as it core component1 of user and group management. There is one entry per line, and each line has the following format (all fields are separated by a colon (:).
| Group Name | Password | Group ID | Members |
|---|---|---|---|
| root | x | 0 | |
| daemon | x | 1 | |
| bin | x | 2 | |
| sys | x | 3 | |
| adm | x | 4 | |
| tty | x | 5 | |
| disk | x | 6 | |
| lp | x | 7 | |
| x | 8 | ||
| news | x | 9 | |
| uucp | x | 10 | |
| man | x | 12 | |
| proxy | x | 13 | |
| kmem | x | 15 | |
| dialout | x | 20 | |
| fax | x | 21 | |
| voice | x | 22 | |
| cdrom | x | 24 | bhdicaire |
| floppy | x | 25 | bhdicaire |
| tape | x | 26 | |
| sudo | x | 27 | |
| audio | x | 29 | bhdicaire |
| dip | x | 30 | bhdicaire |
| www-data | x | 33 | |
| backup | x | 34 | |
| operator | x | 37 | |
| list | x | 38 | |
| irc | x | 39 | |
| src | x | 40 | |
| shadow | x | 42 | |
| utmp | x | 43 | |
| video | x | 44 | bhdicaire |
| sasl | x | 45 | |
| plugdev | x | 46 | bhdicaire |
| staff | x | 50 | |
| games | x | 60 | |
| users | x | 100 | bhdicaire,badicaire |
| nogroup | x | 65534 | |
| systemd-journal | x | 999 | |
| systemd-network | x | 998 | |
| crontab | x | 997 | |
| input | x | 996 | |
| sgx | x | 995 | |
| clock | x | 994 | |
| kvm | x | 993 | |
| render | x | 992 | |
| netdev | x | 101 | bhdicaire |
| scanner | x | 102 | saned,bhdicaire |
| tss | x | 103 | |
| systemd-timesync | x | 991 | |
| messagebus | x | 990 | |
| _ssh | x | 104 | |
| ssl-cert | x | 105 | |
| bluetooth | x | 106 | bhdicaire |
| avahi | x | 107 | |
| lpadmin | x | 108 | bhdicaire |
| pipewire | x | 109 | |
| fwupd-refresh | x | 988 | |
| geoclue | x | 110 | |
| gnome-remote-desktop | x | 987 | |
| saned | x | 111 | |
| polkitd | x | 986 | |
| rtkit | x | 112 | |
| colord | x | 113 | |
| Debian-gdm | x | 114 | |
| bhdicaire | x | 1000 |
Cheat Sheet
Find Out the Groups a User Is In: groups {username}
Sample outputs:
Print user / group Identity
id -g vivek
To create a new group named sales, run: sudo groupadd sales sudo groupadd –gid 3000 blogusers
ceate a new system group named sysftp? sudo groupadd –system sysftp
-
It defines the groups on the system and specifies which users belong to those groups in Linux and UNIX-like operating systems. ↩︎
Make sure BIOS is the latest version
Check current BIOS version:
sudo dmidecode -s bios-versionsudo dmidecode -s bios-release-date
Best method: HP BIOS USB update 1. Go to HP Support → EliteDesk 800 G3 Mini 2. Download: • BIOS Update (BIN / EXE) 3. From BIOS: • F10 → Firmware Management → BIOS Update • Point to USB stick with the BIOS file
⚠️ Do not update BIOS from Windows installers under Wine.
Make sure BIOS is the latest version
sudo dmidecode -s bios-version
sudo dmidecode -s bios-release-date*Update BIOS as recommended by the vendor
-
Download and update the firmware via the BIOS
-
F10 → Firmware Management → BIOS Update
-
Download the firmware from the vendor website to a usb key in the right directory
-
Reboot, F10 → Firmware Management → BIOS Update
Install OS
Make sure BIOS is the latest version
Check current BIOS version:
sudo dmidecode -s bios-versionsudo dmidecode -s bios-release-date
Best method: HP BIOS USB update 1. Go to HP Support → EliteDesk 800 G3 Mini 2. Download: • BIOS Update (BIN / EXE) 3. From BIOS: • F10 → Firmware Management → BIOS Update • Point to USB stick with the BIOS file
⚠️ Do not update BIOS from Windows installers under Wine.
Make sure BIOS is the latest version
sudo dmidecode -s bios-version
sudo dmidecode -s bios-release-date*Update BIOS as recommended by the vendor
-
Download and update the firmware via the BIOS
-
F10 → Firmware Management → BIOS Update
-
Download the firmware from the vendor website to a usb key in the right directory
-
Reboot, F10 → Firmware Management → BIOS Update
Update system firmware
Install & refresh firmware metadata sudo apt update sudo apt install fwupd sudo fwupdmgr refreshCheck supported devices sudo fwupdmgr get-devices Apply available updates sudo fwupdmgr update
Identity and Access management
- Add users: badicaire
adduser bhdicaire
sudo apt update -y;sudo apt upgrade -y sudo apt full-upgrade -y sudo apt list –installed sudo apt-get install nfs-common curl nano vim gnupg2 htop ffmpeg libasound2 cifs-utils -y
sudo groupadd roon adduser bhdicaire;adduser roon add sudo add shh key
sudo usermod -a -G roon roon bhdicaire
adduser bhdicaire adduser roon
Create a user with no password (password disabled)
- sudo adduser –disabled-password arcade → just press Enter twice for password to creates the user without a valid password hash.
Veify with sudo passwd -S arcade
&& sudo usermod -aG sudo arcade
add grp
SSH
vi /etc/ssh/sshd_config
# init section
PermitEmptyPasswords no
PasswordAuthentication nosudo
10: 07: 06: 10:16:8c Port 10, vlan30
ssh bhdicaire@172.30.30.239 To connect via SSH using a password and prevent the client from attempting public key authentication, use the following command structure:
ssh -o PubkeyAuthentication=no -o PreferredAuthentications=password bhdicaire@172.30.30.239
============================ HP EliteDesk 800 G3 DM 65W
Installation
01. Prerequisites
- Make sure BIOS is the latest version
sudo dmidecode -s bios-version
sudo dmidecode -s bios-release-date- Configure BIOS and UEFI settings
Reboot and press F10 → Computer Setup (BIOS)02. Debian OS
Modules:
-
Debian Desktop Environment
-
GNOME
-
SSH server
-
Standard System Utilities
03. Devices Firmwares/ Drivers
Confirm that we have all the required commands and install missing packages:which fwupdmgr sudo inxi fastfetch
sudo apt update; sudo apt full-upgrade -y
sudo apt install -y inxi fastfetchDebian 13 works very well with fwupd,a project that automate firmware update on Linux.
Refresh firmware metadata
sudo apt install fwupd
sudo fwupdmgr refreshCheck supported devices and apply available updates
sudo fwupdmgr get-devices
sudo fwupdmgr refresh
sudo fwupdmgr updateIf firmware updates are available, reboot when prompted.
Install Debian Wi-Fi & Bluetooth firmware packages
sudo apt install firmware-linux firmware-linux-nonfree \
firmware-iwlwifi firmware-realtekReboot after installation : sudo shutdown -r now
Update configuration
Disable device sleep entirely
Prevents all forms of sleep for an arcade or a media center: sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target. You can still power off manually.
To undo: sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
disable ipv6
Verify that all hardware is detected and working
sudo inxi -Fz
| Component | bash command | Description |
|---|---|---|
| CPU & virtualization | lscpu | grep Virtualization |
Expected: Virtualization: VT-x |
| Graphics Intel iGPU |
lspci | grep -i vga lsmod | grep i915 |
Check driver |
| Wi-Fi | lspci | grep -i networkdmesg | grep iwlwifiip a | grep wlan |
Check firmware loaded Check network interface |
| Bluetooth | lsusb | grep -i bluetoothsystemctl status bluetoothsudo systemctl enable --now bluetoothbluetoothctl |
Check service status If not running, try … Test |
| Audio | aplay -l |
|
| Sensors / thermals | sudo apt install lm-sensorssudo sensors-detect sensors |
|
| Storage Controller | lspci | grep -i sata |
Expected: SATA controller [AHCI mode]. Optane mode is enabled (bad), If you see RST / RAID / VMD |
Confirm that storage is properly configured
lsblk --discard
| Column | Description | Expected Value |
|---|---|---|
| DISC-ALN | Discard alignment offset | 0 |
| DISC-GRAN | Smallest TRIM unit | 512B or larger |
| DISC-MAX | Largest TRIM size | Non-zero (e.g., 2G) |
| DISC-ZERO | Zero-fill on discard | 0 |
Based on the expected value above, the SSD accepts TRIM:
- Linux can issue discard commands
- The controller passes them correctly
- Partitions inherit TRIM capability
For your information, sdc (e.g., USB device or a Card Reader) and sr0 (e.g., Optical Drive) are not expected to support trim.
Online TRIM vs periodic TRIM
Enable periodic TRIM : sudo systemctl enable fstrim.timer to discard unused filesystem blocks once a week.
- No runtime stutter (e.g., no I/O spikes during gameplay)
- SSD longevity preserved
You can check the current status: sudo systemctl --no-pager status fstrim.timer
HDMI audio latency on Linux
HDMI audio latency on Linux (especially on TVs) is a very common pain point, but the good news is: on your Debian 13 + Intel HD 530 + Dolphin setup, you can reduce it a lot with the right combination of PulseAudio/PipeWire tuning, TV settings, and Dolphin config.
I’ll give you a layered, practical approach, from big wins → fine tuning.
1️⃣ First: fix the TV side (BIGGEST latency source)
Most HDMI audio delay actually comes from the TV, not Linux.
On your TV, disable ALL of these:
Look for settings named: • ❌ Audio Processing • ❌ TruSurround / DTS / Dolby • ❌ Virtual Surround • ❌ Clear Voice • ❌ Auto Volume • ❌ Audio Sync / Lip Sync (set to 0)
Enable: • ✅ Game Mode (critical) • ✅ PCM audio (not Bitstream / Dolby)
📌 If your TV has HDMI input-specific settings, set Game Mode on that HDMI port.
This alone can reduce latency by 50–150 ms.
2️⃣ Use PipeWire (recommended for Debian 13)
Debian 13 defaults to PipeWire on many installs, but verify:
pactl info | grep “Server Name”
Expected:
Server Name: PulseAudio (on PipeWire)
If you see pure PulseAudio, I strongly recommend PipeWire.
Install PipeWire stack (safe):
sudo apt install pipewire pipewire-pulse wireplumber
Reboot after.
3️⃣ Reduce PipeWire audio buffer size (MAJOR improvement)
Create a user config:
mkdir -p ~/.config/pipewire nano ~/.config/pipewire/pipewire.conf.d/99-low-latency.conf
Paste this:
context.properties = { default.clock.rate = 48000 default.clock.quantum = 128 default.clock.min-quantum = 64 default.clock.max-quantum = 256 }
Save, then restart audio:
systemctl –user restart pipewire pipewire-pulse
What this does • Smaller buffers = less delay • 128 frames is safe and low-latency on Intel HDMI • No crackling on HD 530
⸻
4️⃣ Force Dolphin to use low-latency audio
In Dolphin → Config → Audio:
Backend • Audio Backend: Cubeb • Device: Default or HDMI
Settings • Latency: Low • Audio Stretching: ❌ Disabled • DSP HLE: ✅ Enabled (lower latency than LLE)
For Wii games: • Disable Dolby Pro Logic II
5️⃣ Reduce kernel audio scheduling latency (optional but good)
Enable performance governor during gameplay
sudo apt install cpupower sudo cpupower frequency-set -g performance
(You can automate this with gamemode, see below.)
6️⃣ Use GameMode (VERY recommended)
sudo apt install gamemode
Launch Dolphin with:
gamemoderun dolphin-emu
GameMode: • Prioritizes audio threads • Reduces scheduling jitter • Helps HDMI audio stability
7️⃣ Verify actual audio latency
Check current PipeWire settings:
pw-top
Look for: • Quantum ≈ 128 • Rate ≈ 48000
If you see 1024 or higher → latency is still high.
8️⃣ If latency is still noticeable (TV-dependent)
Best hardware workaround (near-zero latency) • Use 3.5mm analog output → TV / speakers • Or HDMI → audio extractor → speakers
HDMI audio via TVs is never zero-latency due to internal processing.
✅ Recommended final setup (summary)
Layer Setting TV Game Mode, PCM, no processing Audio stack PipeWire Buffer 128 frames Dolphin backend Cubeb Dolphin latency Low CPU Performance (via GameMode)
⸻
🎮 Expected real-world result • HDMI audio delay reduced to ~20–40 ms • Practically imperceptible for Dolphin • Tight audio sync for GameCube/Wii
Shader compilation stutter
Shader compilation stutter is the #1 remaining performance issue for Dolphin on Intel HD 530–class GPUs — but you can reduce it to the point where it’s barely noticeable.
Below is a battle-tested, Intel-specific tuning guide for your Debian 13 + Dolphin + i5-6500T arcade setup.
⸻
🎯 What causes shader stutter (quick context)
When a game first encounters a new effect: • Dolphin must compile a shader • The GPU pauses briefly • You feel a stutter
The goal is to: 1. Compile shaders earlier 2. Reuse them efficiently 3. Avoid blocking the render thread
⸻
1️⃣ Use the correct graphics backend (CRITICAL)
Dolphin → Graphics → General
Setting Value Backend Vulkan ✅ Adapter Intel HD Graphics 530 V-Sync ❌ Disabled Shader Compilation Asynchronous (see below)
👉 Vulkan has dramatically better async shader handling than OpenGL on Intel.
⸻
2️⃣ Enable asynchronous shader compilation (MOST IMPORTANT)
Dolphin → Graphics → Advanced
Enable all of the following: • ✅ Compile Shaders Before Starting • ✅ Compile Shaders on Startup • ✅ Enable Asynchronous Shader Compilation • ✅ Enable Asynchronous Ubershaders • ❌ Disable “Skip EFB Access” (leave default)
Why this matters • Prevents shader compilation from blocking gameplay • Moves compilation off the render thread • Reduces visible stutter by ~80–90%
⸻
3️⃣ Use Hybrid Ubershaders (best balance)
Dolphin → Graphics → Advanced → Ubershaders • Ubershader Mode: 👉 Hybrid
Why Hybrid is best on HD 530 • Full Ubershaders = no stutter but lower FPS • Hybrid = minimal stutter, minimal FPS loss • Perfect for GameCube/Wii at 1080p
⸻
4️⃣ Increase shader cache persistence (Linux-side)
Dolphin stores shaders under:
~/.cache/dolphin-emu/
Make sure this directory: • Is on your SSD • Is not cleaned automatically
Check:
ls -ld ~/.cache/dolphin-emu
If you use any cleanup tools: • ❌ Do NOT clear this directory • ❌ Do NOT mount /home with noatime + aggressive cleanup scripts
⸻
5️⃣ Precompile shaders before gameplay (manual warm-up)
First launch after install or GPU driver update: 1. Start the game 2. Let it sit on the title screen for 2–3 minutes 3. Enter gameplay areas slowly the first time
This allows Dolphin to: • Populate shader cache • Prevent stutter later
After 1–2 play sessions, stutter almost disappears permanently.
⸻
6️⃣ Reduce shader variety (Intel-specific tuning)
Dolphin → Graphics → Enhancements
Recommended for HD 530:
Setting Value Internal Resolution 2× or 3× Anti-Aliasing ❌ Disabled Anisotropic Filtering 2× or 4× Scaled EFB Copy ❌ Disabled Force Texture Filtering ❌ Disabled
This: • Reduces shader permutations • Lowers compile frequency • Improves consistency
⸻
7️⃣ Force shader threads to stay responsive (GameMode)
You already installed GameMode — perfect.
Launch Dolphin with:
gamemoderun dolphin-emu
This: • Gives shader compilation threads higher priority • Reduces CPU scheduling stalls • Helps Vulkan pipeline creation
⸻
8️⃣ Mesa driver tuning (safe + effective)
Make sure you have:
sudo apt install mesa-vulkan-drivers mesa-utils
Verify Vulkan:
vulkaninfo | grep driver
You should see Intel ANV.
Optional (safe):
export MESA_SHADER_CACHE_MAX_SIZE=5G
Add to ~/.profile for persistence.
⸻
9️⃣ What NOT to do (important)
❌ Don’t disable shader cache ❌ Don’t clear ~/.cache/dolphin-emu ❌ Don’t use OpenGL on Intel HD 530 ❌ Don’t use Full Ubershaders on this GPU
⸻
✅ Expected real-world result
After 1–2 play sessions per game: • Initial micro-stutter only once • Near-zero stutter afterward • Smooth 60 FPS • Console-like experience
This is as good as Dolphin gets on Intel HD 530.
⸻
🎮 Final recommended shader setup (TL;DR) • Backend: Vulkan • Async shaders: ON • Ubershaders: Hybrid • Shader cache: Persistent • Launch with: gamemoderun
⸻
If you want, next I can: • Create a “first-run shader warmup” workflow • Auto-launch Dolphin directly into a game • Tune per-game shader settings (Mario Kart, Smash, Zelda, etc.) • Optimize Wii MotionPlus / controller latency
Just tell me which game you care about most 🎯
Proxmox
pve-firewall status
Uncomplicated Firewall (UFW)
sudo ufw allow sshsudo ufw reload
iptables
- To be defined
nftables
- To be defined