Hi all.
I have got a new HiFiBerry Digi card and therefore would like to be able to use it in microcore (piCorePlayer). The first card I received was faulty, but the new one is working fine in raspbian, but unfortunately it is not working in microcore.
This is what is loaded at start:
sudo modprobe snd_soc_bcm2708
sudo modprobe snd_soc_bcm2708_i2s
sudo modprobe bcm2708_dmaengine
sudo modprobe snd_soc_wm8804
sudo modprobe snd_soc_hifiberry_digi
This is lsmod:
tc@piCorePlayer:~$ lsmod
Module Size Used by Not tainted
bcm2708_dmaengine 5104 0
virt_dma 2021 1 bcm2708_dmaengine
snd_soc_hifiberry_digi 2572 0
snd_usb_audio 116218 0
snd_usbmidi_lib 18720 1 snd_usb_audio
snd_rawmidi 20133 1 snd_usbmidi_lib
snd_seq_device 6034 1 snd_rawmidi
snd_hwdep 5917 1 snd_usb_audio
snd_bcm2835 16116 0
8192cu 550984 0
snd_soc_bcm2708_i2s 5486 0
snd_soc_wm8804 7692 0
snd_soc_core 115066 3 snd_soc_hifiberry_digi,snd_soc_bcm2708_i2s,snd_soc_wm8804
snd_pcm_dmaengine 4564 1 snd_soc_core
snd_pcm 74840 4 snd_usb_audio,snd_bcm2835,snd_soc_core,snd_pcm_dmaengine
snd_page_alloc 4680 1 snd_pcm
snd_timer 19270 1 snd_pcm
snd_compress 7974 1 snd_soc_core
snd 56397 10 snd_usb_audio,snd_usbmidi_lib,snd_rawmidi,snd_seq_device,snd_hwdep,snd_bcm2835,snd_soc_core,snd_pcm,snd_timer,snd_compress
regmap_i2c 1522 2 snd_soc_wm8804,snd_soc_core
regmap_spi 1778 2 snd_soc_wm8804,snd_soc_core
regmap_mmio 2673 1 snd_soc_bcm2708_i2s
This is the output from dmesg in the interesting area:
[ 30.550406] wm8804 1-003b: revision E
[ 30.551879] bcm2708-i2s bcm2708-i2s.0: Missing dma channel for stream: 0
[ 30.551914] bcm2708-i2s bcm2708-i2s.0: ASoC: pcm constructor failed: -22
[ 30.551936] snd-hifiberry-digi snd-hifiberry-digi.0: ASoC: can't create pcm HifiBerry Digi HiFi :-22
[ 30.551953] snd-hifiberry-digi snd-hifiberry-digi.0: ASoC: failed to instantiate card -22
[ 30.552213] snd-hifiberry-digi snd-hifiberry-digi.0: snd_soc_register_card() failed: -22
[ 30.552249] snd-hifiberry-digi: probe of snd-hifiberry-digi.0 failed with error -22
And no digital soundcard is found:
tc@piCorePlayer:~$ aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=ALSA
bcm2835 ALSA, bcm2835 ALSA
Default Audio Device
*******************************************
The following is from Raspbian were it is working:
This is dmesg from a working raspbian
5.046655] bcm2708_i2c_init_pinmode(0,0)
[ 5.189238] bcm2708_i2c_init_pinmode(0,1)
[ 5.198487] bcm2708_i2c bcm2708_i2c.0: BSC0 Controller at 0x20205000 (irq 79) (baudrate 100000)
[ 5.565192] bcm2708_i2c_init_pinmode(1,2)
[ 5.683164] bcm2708_i2c_init_pinmode(1,3)
[ 5.759676] bcm2708_i2c bcm2708_i2c.1: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100000)
[ 6.592136] bcm2708-i2s bcm2708-i2s.0: Failed to create debugfs directory
[ 17.463406] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 17.979715] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null)
[ 19.047572] wm8804 1-003b: revision E
[ 19.061571] snd-hifiberry-digi snd-hifiberry-digi.0: wm8804-spdif <-> bcm2708-i2s.0 mapping ok
And it finds the digital card:
aplay -L
null
Discard all samples (playback) or generate zero samples (capture)
default:CARD=sndrpihifiberry
snd_rpi_hifiberry_digi,
Default Audio Device
sysdefault:CARD=sndrpihifiberry
snd_rpi_hifiberry_digi,
Default Audio Device
And this is the loaded modules:
pi@raspberrypi ~ $ lsmod
Module Size Used by
snd_soc_hifiberry_digi 2556 0
bcm2708_dmaengine 5108 2
virt_dma 2273 1 bcm2708_dmaengine
snd_soc_wm8804 7821 1
snd_soc_bcm2708_i2s 5474 2
regmap_mmio 2806 1 snd_soc_bcm2708_i2s
snd_soc_core 131268 3 snd_soc_wm8804,snd_soc_hifiberry_digi,snd_soc_bcm2708_i2s
snd_compress 8076 1 snd_soc_core
regmap_i2c 1645 2 snd_soc_wm8804,snd_soc_core
regmap_spi 1897 2 snd_soc_wm8804,snd_soc_core
snd_pcm 81593 1 snd_soc_core
snd_page_alloc 5156 1 snd_pcm
snd_seq 53769 0
snd_seq_device 6473 1 snd_seq
snd_timer 20133 2 snd_pcm,snd_seq
leds_gpio 2059 0
evdev 9419 1
led_class 3688 1 leds_gpio
snd 61291 6 snd_soc_core,snd_timer,snd_pcm,snd_seq,snd_seq_device,snd_compress
i2c_bcm2708 3997 0
I have tried to load the modules in different order, but somehow microcore can't use the digital sound card. I'm suspecting that it might have something to do with the i2c modules, but I really don't know??
Steen