Tag Archives: linux

Help wanted – Linux kernel development

tux_enhanced_penguin_linux_art-1979pxTo improve our HiFiBerry drivers (especially for the HiFiBerry Digi), we’re looking for somebody who can support us with some kernel development. The person should be familiar with the ALSA sound subsystem. We need to create a sound subdevice similar to the sound driver for the HDMI output. This will be included in the official Raspberry Pi Linux kernel.

Is somebody interested in supporting us here? Contact us!

HiFiBerry Digi pre-order started

hifiberrydigiOur new digital output board for the Raspberry Pi – the HiFiBerry Digi. can be pre-ordered now for our a special introductory price. We expect to ship the first units about mid of February.

The HiFiBerry Digi adds an optical and a fully isolated electrical output to your Raspberry Pi. Samples rates up to 192kHz/24bit are supported on both outputs.

Linux driver development has been finished already, production samples were tested. Everything works very well.

Pre-order it now!

HiFiBerry Digi support in Raspberry Pi Linux kernel

hbdigi-proto-raspberryOur HiFiBerry Digi will be available soon. Now, another major step in development has been finished: The HiFiBerry Digi support is included in the official Raspberry Pi Linux 3.10 kernel. If you’re interested in the source code, check out the pull request on Github.

I want to thank Florian Meier – the author of the Raspberry Pi I2S kernel module – for his great support. During the last weeks, I learned a lot about GIT and Linux kernel patches.

HiFiBerry Digi Linux driver

tux_enhanced_penguin_linux_art-1979pxThere wasn’t any hardware development news in the last time. The reason for it was mostly that we spent time developing a Linux driver for our new HiFiBerry Digi S/PDIF output board. And finally the first working version is there. Getting around the mixer controls and the power management (we don’t need both) took us some time. I want to thank Florian Meier personally for the tips he gave during the driver development phase.

Do you want to test if you can compile it yourself? You can download the code from Github (the new driver is in the 3.10 branch).

I2S and HiFiBerry driver now in downstream Raspberry kernel

tux_enhanced_penguin_linux_art-1979pxFlorian did a great job making the I2S sound module ready for the official Raspberry Pi Linux kernel. It is now much easier to enable HiFiBerry DAC support.

If you use a Raspbian-based distribution, it is just a command:

sudo rpi-update

This will install the latest Linux kernel and it will have HiFiBerry support. That means: no need to compile your own kernel! After installing the kernel, there is still some minor work to do:

  1. Enable HiFiBerry in /etc/modules, by adding the following lines to this file:
    snd_soc_bcm2708
    snd_soc_bcm2708_i2s
    bcm2708_dmaengine
    snd_soc_pcm5102a
    snd_soc_hifiberry_dac
  2. Reboot

That’s it! After the reboot, you should see, that the sound card is enabled:
[email protected] ~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

Link

I’ve compile the Linux 3.10 kernel with HiFiBerry support. You can download the tar file from the HiFiBerry website.  The archive includes the updated Raspberry Pi firmware for kernel version 3.10. Therefore it should work even on systems that run Linux 3.8 now. However I cannot guarantee, that it will work on all configurations. Therefore use it on your own risk.

Linux 3.10 sucessfully installed on RaspyFi

tux_enhanced_penguin_linux_art-1979pxToday I replaced the Linux 3.8 kernel on my RaspyFi installation by the new 3.10 kernel. Comparing both versions, the sound subsystem for SOC chips is now much cleaner than before. Hardware drivers are the same for “normal” PCs and SOCs. That means drivers developed for the Raspberry Pi can be reused also on all other Linux platforms. Also the driver is split now in a low-level device driver that directly communicated with the chipset and a higher-level sound card driver, that is used for a specific sound card.

At the moment HiFiBerry Mini (now called HiFiBerry DAC) is the only sound interface supported in this version. But I started working on a driver for the upcoming HiFiBerry Digi.
But first lets check out this output:

[email protected]:~$ uname -a
Linux Raspyfi 3.10.19+ #1 PREEMPT Sun Dec 1 14:21:39 CET 2013 armv6l GNU/Linux
[email protected]:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: sndrpihifiberry [snd_rpi_hifiberry_mini], device 0: HifiBerry Mini HiFi pcm5102a-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0

Looks cool :-)

P.S. Upgrading from Linux 3.8 to Linux 3.10 also needs a newer firmware. I will update the kernel compilation guide on the next time.