Hifiberry OS - did some one use it

New release 20201202:

added OpenHome player
added Amp100 driver
Improved Snapcast player (thanks to Bertware (Bertware) * GitHub)
Security: Secure DLNA against Callstranger (CVE-2020-12695)
update MPD to 0.22
upgrade buildroot to 2020.11
improve pausing of services when other player starts playback

Release 20201202 * hifiberry/hifiberry-os * GitHub



1/ fully-directly compatible:
- all HifiBerry cards
- IQaudIO Digi+ (recognised as HB digi)
- Audiophonics Digipi+ AES

2/ others (programming)
 
New release 20201213

-updated Bluetooth player
-improvements for Amp100/DSP combination
-fixed in DAC+ DSP and DSP add-on DSP profiles
-improved docker container configuration
-stability improvements

Release 20201213 * hifiberry/hifiberry-os * GitHub

1/ fully-directly compatible:
- all HifiBerry cards
- IQaudIO Digi+ (recognised as HB digi)
- Audiophonics Digipi+ AES

2/ others (programming)

3/ MSHAVS method
edit the file config.txt, this is -partially- the contents:
kernel=zImage

# To use an external initramfs file
#initramfs rootfs.cpio.gz

# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
disable_overscan=1

# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem_256=100
gpu_mem_512=100
gpu_mem_1024=100
# Enable I2C and SPI
dtparam=i2c=on
dtparam=spi=on
# Workaround force_eeprom_read
force_eeprom_read=0

# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console
dtoverlay=miniuart-bt

- change the lines dtparam as follows (this will disable the usage of the driver for e.g. HiFiBerry-HAT):
#dtparam=i2c=on
#dtparam=spi=on
- add the following line (this will disable the analog audio of the Pi itself):
dtparam=audio=off

- save the file (and unmount the filesystem in linux) and reboot or put the card in your Pi (before boot connect and/or turn on your DAC if not done)
now you should have only one audio device. In linux check with "aplay -l" if you see your DAC. This is then device "hw:0,0" you can specify in /etc/asound.conf. After a reboot you should get the DAC again as first (and only) device.
 
It's been a long time!...

New release 20210203:

- Allow to exchange L/R channels on non-DSP boards
- Bugfix: optical input on some DSP models not available
- Bugfix: Prev/Next button not working
- Improve volume control for cards with the DSP add-on
- Other small bugfixes and improvements



1/ fully-directly compatible:
- all HifiBerry cards
- IQaudIO Digi+ (recognised as HB digi)
- Audiophonics Digipi+ AES

2/ others (programming)

3/ MSHAVS method
edit the file config.txt, this is -partially- the contents:
kernel=zImage

# To use an external initramfs file
#initramfs rootfs.cpio.gz

# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
disable_overscan=1

# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem_256=100
gpu_mem_512=100
gpu_mem_1024=100
# Enable I2C and SPI
dtparam=i2c=on
dtparam=spi=on
# Workaround force_eeprom_read
force_eeprom_read=0

# fixes rpi (3B, 3B+, 3A+, 4B and Zero W) ttyAMA0 serial console
dtoverlay=miniuart-bt

- change the lines dtparam as follows (this will disable the usage of the driver for e.g. HiFiBerry-HAT):
#dtparam=i2c=on
#dtparam=spi=on
- add the following line (this will disable the analog audio of the Pi itself):
dtparam=audio=off

- save the file (and unmount the filesystem in linux) and reboot or put the card in your Pi (before boot connect and/or turn on your DAC if not done)
now you should have only one audio device. In linux check with "aplay -l" if you see your DAC. This is then device "hw:0,0" you can specify in /etc/asound.conf. After a reboot you should get the DAC again as first (and only) device.
 
I also tried it - without a HifiBerry DAC. It worked but I needed to change the config manually in order to use my USB-DAC instead (needs some knowledge of Linux and audio devices in Linux). Works good with Spotify. The only odd thing is when it starts: it starts "talking" to you. It'll announce the IP-address via your speakers !! First time I did not understand what happened, but then I realized the IP-address was mentioned :)

How did you edit the config? I would like to get HiFiBerryOS to spit audio out of the built in RaspberryPi composite jack.
 
Hi, how to edit config.txt, sudo is not a command?
sudo (su is equivalent for Substitute User) is a command to get other user rights, usually root. That's necessary when you log into a linux system with e.g. your own account, say "pete". pete can't do everything because by default he does not have high privilege.
If you want to start something owned by root, then you need to add pete to the file /etc/sudoers like below (you need to be root for editing this file):


# User privilege specification
pete ALL=(ALL:ALL) ALL


(BTW, this is the quick-and-dirty method, see man sudoers for more details)


now you can start a command like this:


sudo su


you'll have root privilege from now on (until you type "exit")


another way is to type this command (for this you dont have to edit /etc/sudoers):

su -


type your password and you'll be root from this moment on.

BTW, always be careful when being the root user in linux: you can do almost everything, also removing files which are necessary for linux to work. Go back to your own account as soon as you've done what was needed with root privilege.



now, for editing a file I would use the command "nano" (here in combination with sudo):

sudo nano /boot/config.txt

you can navigate in nano with the arrow-keys and edit the file the way you want.
After editing press <Ctrl>W and you save the contents. Leave nano by pressing <Ctrl>X
 
Last edited:
I also tried it - without a HifiBerry DAC. It worked but I needed to change the config manually in order to use my USB-DAC instead (needs some knowledge of Linux and audio devices in Linux). Works good with Spotify. The only odd thing is when it starts: it starts "talking" to you. It'll announce the IP-address via your speakers !! First time I did not understand what happened, but then I realized the IP-address was mentioned :)

Hi

I'd like to use Hifiberryos with usb too, could you please share how to do? thanks!
 
Thanks!

I tried, I had to remount in rw beacuse it was ro and config.txt was not editable:

mount -o remount,rw /boot

then with nano, the original config.txt was:



# Please note that this is only a sample, we recommend you to change it to fit
# your needs.
# You should override this file using a post-build script.
# See The Buildroot user manual
# and RPiconfig - eLinux.org for a description of config.txt syntax

# We always use the same names, the real used variant is selected by
# BR2_PACKAGE_RPI_FIRMWARE_{DEFAULT,X,CD} choice
start_file=start.elf
fixup_file=fixup.dat

kernel=zImage

# To use an external initramfs file
#initramfs rootfs.cpio.gz

# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
disable_overscan=1

# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem_256=100
gpu_mem_512=100
gpu_mem_1024=100
# Enable I2C and SPI
dtparam=i2c=on
dtparam=spi=on
dtoverlay=i2c-gpio,i2c_gpio_sda=0,i2c_gpio_scl=1
dtoverlay=vc4-fkms-v3d,audio=off
dtoverlay=hifiberry-dac


I put comment on the last block of dtparams and add

dtparam=audio=off

but when I reboot I find always these two rows added:


dtparam=i2c1=on
dtoverlay=hifiberry-dac
 
I tried too commenting the two lines:

start_file=start.elf
fixup_file=fixup.dat

# Please note that this is only a sample, we recommend you to change it to fit
# your needs.
# You should override this file using a post-build script.
# See The Buildroot user manual
# and RPiconfig - eLinux.org for a description of config.txt syntax

# We always use the same names, the real used variant is selected by
# BR2_PACKAGE_RPI_FIRMWARE_{DEFAULT,X,CD} choice

#start_file=start.elf
#fixup_file=fixup.dat

kernel=zImage

# To use an external initramfs file
#initramfs rootfs.cpio.gz

# Disable overscan assuming the display supports displaying the full resolution
# If the text shown on the screen disappears off the edge, comment this out
disable_overscan=1

# How much memory in MB to assign to the GPU on Pi models having
# 256, 512 or 1024 MB total memory
gpu_mem_256=100
gpu_mem_512=100
gpu_mem_1024=100
# Enable I2C and SPI
#dtparam=i2c=on
#dtparam=spi=on
#dtoverlay=i2c-gpio,i2c_gpio_sda=0,i2c_gpio_scl=1
#dtoverlay=vc4-fkms-v3d,audio=off
#dtoverlay=hifiberry-dac
dtparam=audio=off

dtparam=i2c1=on
dtoverlay=hifiberry-dac


but the last two lines are added however
 
#dtparam=i2c=on
#dtparam=spi=on
#dtoverlay=i2c-gpio,i2c_gpio_sda=0,i2c_gpio_scl=1
#dtoverlay=vc4-fkms-v3d,audio=off
#dtoverlay=hifiberry-dac
dtparam=audio=off

dtparam=i2c1=on
dtoverlay=hifiberry-dac


but the last two lines are added however

I was facing the same issues, and found an alternative way to get my USB DAC to work:

First, make sure SSH is enabled and sign in into the terminal. The first step is to stop, disable and remove the 'hifiberry-detect' service from the system:
Code:
systemctl stop hifiberry-detect
systemctl disable hifiberry-detect
rm /usr/lib/systemd/system/hifiberry-detect.service

That will stop the OS to keep detecting hifiberry devices that are not there. Then make sure that the config.txt file is cleaned up, as MSHAVS nicely described before. To do so from the SSH terminal:
Code:
mount /dev/mmcblk0p1 /mnt -o umask=000
nano /mnt/config.txt
Comment these lines by putting a # in front:
Code:
dtparam=i2c=on
dtparam=spi=on
dtoverlay=hifiberry-dac
and add the following line:
Code:
dtparam=audio=off
Save the changes by pressing CTRL+X and reboot the system, and it should work!