We received numerous reports from our community about HiFiBerry DACs lagging behind kernel upstream compatibility and progression. Starting from kernel 6.0 there is an effort of fixing various clock management code across the kernel core and the device tree. Most of the DACs vendors doing their best to keep-up with the changes, a handful of the vendors like HiFiBerry choose to stay on kernel 5.5 and skip forward to the currently maintained - 6.6.
Discovery
Volumio is striving to provide the best audiophile experience and frequently paves the road for other distributions to follow. Performance, stability, feature reach requires development to move forward and waiting for DACs vendors to play catch-up game is the opposite to where the Volumio aspire to be.
With milestone Volumio OS starting from 3.7xx we are on last upstream kernel 6.1. This is where the “fun” begun:
Release
Volumio version
Kernel details
Official
3.702
6.1.77 - HiFiBerry DACs do not have I2C compensation cycle clock; will not be fixed
TEST
3.728 and newer
6.1.69 - Regression decision for DACs vendors struggling with development
Official
3.742
6.1.69 - Regressed kernel
Planned
4.xxx
6.6.x - next major Volumio OS release on roadmap; no ETA
Remedy
For now, for the HiFiBerry DACs owners, there is two step fix:
Enable TEST mode and Upgrade Volumio OS to 3.742 or newer.
Update /boot/userconfig.txt forcing a static I2C clock frequency. The userconfig.txt is left untouched during Volumio OS upgrade.
Enable TEST mode (if needed):
Forcing a static I2C clock frequency:
Edit /boot/userconfig.txt and add (if not exist):
dtparam=i2c_arm_baudrate=1000000
This post will be updated with the development progress and test mode is no longer required with the current official Volumio OS release.
If this can help, my installation with Version of Volumio 3.666 having Kernel 6.1.77-v8+, Pi5 8GB, hifiberry DAC2 HD works well without any problem.
Plugins installed:Youtube ver. 1.2.1, Backup & Restore Data ver. 0.7.4, System Information ver. 3.0.5, PeppyMeter Screensaver ver. 2.2.1, Touch Display ver. 3.4.0
Up dating my systems from 3.6xx to 3.742 basically turned them into noise generators rather than music players. I’ve tried the “dtparam=i2c_arm_baudrate=1000000” and the crap coming out of the speakers got worst.
How can I go back to a 3.6xx that works?
System Information
OS info
Version of Volumio: 3.742
Hostname: shack-1
Kernel: 6.1.69-v7+
Governor: performance
Uptime: 0 days, 0 Hrs, 3 Minutes, 58 Seconds
Network info
Interface: eth0
IP Address: 192.168.1.11
MAC Address: b8:27:eb:6c:05:f4
Type: wired
Speed: 100Mb/s
Audio info
Hw audio configured: HiFiBerry DAC+ Pro
Mixer type: Hardware
Number of channels:
Supported sample rate:
Board info
Manufacturer: Raspberry Pi Foundation
Model: Raspberry Pi 3 Model B Rev 1.2 Raspberry Pi / 3B - 1.2 /
Version: a22082 / 3B - 1.2
Firmware Version: Oct 17 2023 15:42:39 version 30f0c5e4d076da3ab4f341d88e7d505760b93ad7 (clean) (release) (start)
CPU info
Brand: BCM2837
Speed: 1.2 GHz
Family: Cortex-A53
Model: 4
Number of cores: 4
Physical cores: 4
Average load: 66%
Temperature: 59°C
Memory info
Memory: 891696 Ko
Free: 96832 Ko
Used: 794864 Ko
Software info
Mpd version: Music Player Daemon 0.23.15 (0.23.15)
Storage info
INTERNAL storage - Size: 26052Mo
Used: 1390Mo
Available for storage: 23315Mo (89%)