I managed to get the soundcard working on my rpi 2B with raspbian. Since I plan to use it in specific application, I'd like to replace raspbian by a fast-booting buildroot-built linux. I reproduced everything I did with raspbian, but in the end I can't have the card working... It's not even detected : "aplay -l" always says "no soudcard found"
I'm using latest kernel on branch rpi-4.9.y, overlays are in the boot partition, config.txt contains
file /etc/modprobe.d/cirrus.conf exists with line :
softdep arizona-spi pre: arizona-ldo1
The result of dmesg is at the end of my message
I've been trying for a few weeks, now I think I need some help.
Can anybody help me ?
[ 0.000000] Booting Linux on physical CPU 0xf00 [ 0.000000] Linux version 4.9.63-v7 (root@Nei-IBM) (gcc version 6.4.0 (Buildroot 2017.08-gf7ba6b1) ) #2 SMP Mon Nov 20 22:55:27 CET 2017 [ 0.000000] CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d [ 0.000000] CPU: div instructions available: patching division code [ 0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache [ 0.000000] OF: fdt:Machine model: Raspberry Pi 2 Model B Rev 1.1 [ 0.000000] cma: Reserved 8 MiB at 0x38400000 [ 0.000000] Memory policy: Data cache writealloc [ 0.000000] On node 0 totalpages: 232448 [ 0.000000] free_area_init_node: node 0, pgdat 80c6f280, node_mem_map b7bfb000 [ 0.000000] Normal zone: 2043 pages used for memmap [ 0.000000] Normal zone: 0 pages reserved [ 0.000000] Normal zone: 232448 pages, LIFO batch:31 [ 0.000000] percpu: Embedded 14 pages/cpu @b7bb5000 s25548 r8192 d23604 u57344 [ 0.000000] pcpu-alloc: s25548 r8192 d23604 u57344 alloc=14*4096 [ 0.000000] pcpu-alloc:  0  1  2  3 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 230405 [ 0.000000] Kernel command line: bcm2708_fb.fbwidth=1920 bcm2708_fb.fbheight=1080 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 rootwait [ 0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes) [ 0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes) [ 0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes) [ 0.000000] Memory: 899764K/929792K available (7168K kernel code, 485K rwdata, 2012K rodata, 1024K init, 769K bss, 21836K reserved, 8192K cma-reserved) [ 0.000000] Virtual kernel memory layout: [ 0.000000] vector : 0xffff0000 - 0xffff1000 ( 4 kB) [ 0.000000] fixmap : 0xffc00000 - 0xfff00000 (3072 kB) [ 0.000000] vmalloc : 0xb9000000 - 0xff800000 (1128 MB) [ 0.000000] lowmem : 0x80000000 - 0xb8c00000 ( 908 MB) [ 0.000000] modules : 0x7f000000 - 0x80000000 ( 16 MB) [ 0.000000] .text : 0x80008000 - 0x80800000 (8160 kB) [ 0.000000] .init : 0x80b00000 - 0x80c00000 (1024 kB) [ 0.000000] .data : 0x80c00000 - 0x80c79764 ( 486 kB) [ 0.000000] .bss : 0x80c7b000 - 0x80d3b794 ( 770 kB) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 [ 0.000000] Hierarchical RCU implementation. [ 0.000000] Build-time adjustment of leaf fanout to 32. [ 0.000000] NR_IRQS:16 nr_irqs:16 16 [ 0.000000] arm_arch_timer: Architected cp15 timer(s) running at 19.20MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns [ 0.000011] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns [ 0.000032] Switching to timer-based delay loop, resolution 52ns [ 0.000379] Console: colour dummy device 80x30 [ 0.001314] console [tty1] enabled [ 0.001371] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=192000) [ 0.001446] pid_max: default: 32768 minimum: 301 [ 0.001891] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.001944] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes) [ 0.003459] Disabling memory control group subsystem [ 0.003636] CPU: Testing write buffer coherency: ok [ 0.003732] ftrace: allocating 22272 entries in 66 pages [ 0.058446] CPU0: update cpu_capacity 1024 [ 0.058524] CPU0: thread -1, cpu 0, socket 15, mpidr 80000f00 [ 0.058620] Setting up static identity map for 0x100000 - 0x100034 [ 0.061730] CPU1: update cpu_capacity 1024 [ 0.061743] CPU1: thread -1, cpu 1, socket 15, mpidr 80000f01 [ 0.062763] CPU2: update cpu_capacity 1024 [ 0.062773] CPU2: thread -1, cpu 2, socket 15, mpidr 80000f02 [ 0.063701] CPU3: update cpu_capacity 1024 [ 0.063710] CPU3: thread -1, cpu 3, socket 15, mpidr 80000f03 [ 0.063833] Brought up 4 CPUs [ 0.064029] SMP: Total of 4 processors activated (153.60 BogoMIPS). [ 0.064061] CPU: All CPU(s) started in HYP mode. [ 0.064090] CPU: Virtualization extensions available. [ 0.065225] devtmpfs: initialized [ 0.078959] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 5 [ 0.079406] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns [ 0.079483] futex hash table entries: 1024 (order: 4, 65536 bytes) [ 0.080301] pinctrl core: initialized pinctrl subsystem [ 0.081614] NET: Registered protocol family 16 [ 0.084059] DMA: preallocated 1024 KiB pool for atomic coherent allocations [ 0.094307] uart0_pclk not registered [ 0.094347] uart0_pclk alias not registered [ 0.094421] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers. [ 0.094471] hw-breakpoint: maximum watchpoint size is 8 bytes. [ 0.094699] Serial: AMBA PL011 UART driver [ 0.097268] bcm2835-mbox 3f00b880.mailbox: mailbox enabled [ 0.179618] bcm2835-dma 3f007000.dma: DMA legacy API manager at b900f000, dmachans=0x1 [ 0.182010] SCSI subsystem initialized [ 0.182259] usbcore: registered new interface driver usbfs [ 0.182392] usbcore: registered new interface driver hub [ 0.182572] usbcore: registered new device driver usb [ 0.188055] raspberrypi-firmware soc:firmware: Attached to firmware from 2017-07-11 12:29 [ 0.189750] clocksource: Switched to clocksource arch_sys_counter [ 0.244592] VFS: Disk quotas dquot_6.6.0 [ 0.244741] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes) [ 0.245066] FS-Cache: Loaded [ 0.245445] CacheFiles: Loaded [ 0.261757] NET: Registered protocol family 2 [ 0.263043] TCP established hash table entries: 8192 (order: 3, 32768 bytes) [ 0.263212] TCP bind hash table entries: 8192 (order: 4, 65536 bytes) [ 0.263431] TCP: Hash tables configured (established 8192 bind 8192) [ 0.263583] UDP hash table entries: 512 (order: 2, 16384 bytes) [ 0.263670] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes) [ 0.263995] NET: Registered protocol family 1 [ 0.264681] RPC: Registered named UNIX socket transport module. [ 0.264727] RPC: Registered udp transport module. [ 0.264758] RPC: Registered tcp transport module. [ 0.264788] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.265823] hw perfevents: enabled with armv7_cortex_a7 PMU driver, 5 counters available [ 0.268914] workingset: timestamp_bits=14 max_order=18 bucket_order=4 [ 0.287672] FS-Cache: Netfs 'nfs' registered for caching [ 0.289004] NFS: Registering the id_resolver key type [ 0.289084] Key type id_resolver registered [ 0.289115] Key type id_legacy registered [ 0.292472] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251) [ 0.292697] io scheduler noop registered [ 0.292734] io scheduler deadline registered [ 0.293088] io scheduler cfq registered (default) [ 0.298706] BCM2708FB: allocated DMA memory f8500000 [ 0.298782] BCM2708FB: allocated DMA channel 0 @ b900f000 [ 0.355038] Console: switching to colour frame buffer device 240x67 [ 0.389091] bcm2835-rng 3f104000.rng: hwrng registered [ 0.389412] vc-mem: phys_addr:0x00000000 mem_base=0x3dc00000 mem_size:0x3f000000(1008 MiB) [ 0.390434] vc-sm: Videocore shared memory driver [ 0.412171] brd: module loaded [ 0.424230] loop: module loaded [ 0.424378] Loading iSCSI transport class v2.0-870. [ 0.425293] usbcore: registered new interface driver smsc95xx [ 0.425489] dwc_otg: version 3.00a 10-AUG-2012 (platform bus) [ 0.653950] Core Release: 2.80a [ 0.654072] Setting default values for core params [ 0.654251] Finished setting default values for core params [ 0.854878] Using Buffer DMA mode [ 0.854993] Periodic Transfer Interrupt Enhancement - disabled [ 0.855159] Multiprocessor Interrupt Enhancement - disabled [ 0.855318] OTG VER PARAM: 0, OTG VER FLAG: 0 [ 0.855466] Dedicated Tx FIFOs mode [ 0.856107] WARN::dwc_otg_hcd_init:1032: FIQ DMA bounce buffers: virt = 0xb8514000 dma = 0xf8514000 len=9024 [ 0.856418] FIQ FSM acceleration enabled for : [ 0.856418] Non-periodic Split Transactions [ 0.856418] Periodic Split Transactions [ 0.856418] High-Speed Isochronous Endpoints [ 0.856418] Interrupt/Control Split Transaction hack enabled [ 0.857016] dwc_otg: Microframe scheduler enabled [ 0.857091] WARN::hcd_init_fiq:459: FIQ on core 1 at 0x805927c8 [ 0.857271] WARN::hcd_init_fiq:460: FIQ ASM at 0x80592b28 length 36 [ 0.857456] WARN::hcd_init_fiq:486: MPHI regs_base at 0xb907a000 [ 0.857700] dwc_otg 3f980000.usb: DWC OTG Controller [ 0.857893] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1 [ 0.858148] dwc_otg 3f980000.usb: irq 62, io mem 0x00000000 [ 0.858354] Init: Port Power? op_state=1 [ 0.858470] Init: Power Port (0) [ 0.858883] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 [ 0.859083] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 [ 0.867042] usb usb1: Product: DWC OTG Controller [ 0.874775] usb usb1: Manufacturer: Linux 4.9.63-v7 dwc_otg_hcd [ 0.882530] usb usb1: SerialNumber: 3f980000.usb [ 0.891384] hub 1-0:1.0: USB hub found [ 0.898947] hub 1-0:1.0: 1 port detected [ 0.907304] dwc_otg: FIQ enabled [ 0.907312] dwc_otg: NAK holdoff enabled [ 0.907317] dwc_otg: FIQ split-transaction FSM enabled [ 0.907335] Module dwc_common_port init [ 0.907705] usbcore: registered new interface driver usb-storage [ 0.915585] mousedev: PS/2 mouse device common for all mice [ 0.924514] bcm2835-wdt 3f100000.watchdog: Broadcom BCM2835 watchdog timer [ 0.932438] bcm2835-cpufreq: min=600000 max=900000 [ 0.940657] sdhci: Secure Digital Host Controller Interface driver [ 0.948120] sdhci: Copyright(c) Pierre Ossman [ 0.955965] sdhost-bcm2835 3f202000.sdhost: could not get clk, deferring probe [ 0.963845] sdhci-pltfm: SDHCI platform and OF driver helper [ 0.972325] ledtrig-cpu: registered to indicate activity on CPUs [ 0.980252] hidraw: raw HID events driver (C) Jiri Kosina [ 0.988156] usbcore: registered new interface driver usbhid [ 0.995775] usbhid: USB HID core driver [ 1.004433] vchiq: vchiq_init_state: slot_zero = 0xb8580000, is_master = 0 [ 1.014126] [vc_sm_connected_init]: start [ 1.024647] [vc_sm_connected_init]: end - returning 0 [ 1.033046] Initializing XFRM netlink socket [ 1.040739] NET: Registered protocol family 17 [ 1.048438] Key type dns_resolver registered [ 1.056240] Registering SWP/SWPB emulation handler [ 1.065090] registered taskstats version 1 [ 1.079466] uart-pl011 3f201000.serial: cts_event_workaround enabled [ 1.087397] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2 [ 2.230929] console [ttyAMA0] enabled [ 2.245536] sdhost: log_buf @ b8513000 (f8513000) [ 2.280022] Indeed it is in host mode hprt0 = 00021501 [ 2.379803] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1) [ 2.383767] random: fast init done [ 2.406170] of_cfs_init [ 2.417050] of_cfs_init: OK [ 2.428944] Waiting for root device /dev/mmcblk0p2... [ 2.489799] usb 1-1: new high-speed USB device number 2 using dwc_otg [ 2.505822] Indeed it is in host mode hprt0 = 00001101 [ 2.620892] mmc0: host does not support reading read-only switch, assuming write-enable [ 2.643947] mmc0: new high speed SDHC card at address aaaa [ 2.659819] mmcblk0: mmc0:aaaa SL16G 14.8 GiB [ 2.678637] mmcblk0: p1 p2 [ 2.750159] usb 1-1: New USB device found, idVendor=0424, idProduct=9514 [ 2.766207] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 2.783686] hub 1-1:1.0: USB hub found [ 2.796384] hub 1-1:1.0: 5 ports detected [ 2.938573] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 2.956655] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. [ 2.976597] devtmpfs: mounted [ 2.990128] Freeing unused kernel memory: 1024K [ 3.109290] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered [ 3.130321] usb 1-1.1: new high-speed USB device number 3 using dwc_otg [ 3.270321] usb 1-1.1: New USB device found, idVendor=0424, idProduct=ec00 [ 3.287431] usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0 [ 3.308689] smsc95xx v1.0.5 [ 3.414503] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-3f980000.usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:9c:35:ef [ 3.490167] NET: Registered protocol family 10 [ 3.529898] usb 1-1.2: new low-speed USB device number 4 using dwc_otg [ 3.672633] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup [ 3.690356] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready [ 3.730857] usb 1-1.2: New USB device found, idVendor=0e6a, idProduct=6001 [ 3.748975] usb 1-1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=0 [ 3.767639] usb 1-1.2: Product: HID Keyboard Device [ 3.818689] input: HID Keyboard Device as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.0/0003:0E6A:6001.0001/input/input0 [ 3.910760] hid-generic 0003:0E6A:6001.0001: input,hidraw0: USB HID v1.10 Keyboard [HID Keyboard Device] on usb-3f980000.usb-1.2/input0 [ 3.962871] input: HID Keyboard Device as /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2/1-1.2:1.1/0003:0E6A:6001.0002/input/input1 [ 4.050204] hid-generic 0003:0E6A:6001.0002: input,hidraw1: USB HID v1.10 Device [HID Keyboard Device] on usb-3f980000.usb-1.2/input1 [ 4.169797] usb 1-1.5: new full-speed USB device number 5 using dwc_otg [ 4.325443] usb 1-1.5: New USB device found, idVendor=2341, idProduct=0001 [ 4.343469] usb 1-1.5: New USB device strings: Mfr=1, Product=2, SerialNumber=220 [ 4.362171] usb 1-1.5: Product: Arduino Uno [ 4.376757] usb 1-1.5: Manufacturer: Arduino (www.arduino.cc) [ 4.393258] usb 1-1.5: SerialNumber: 64932343638351817150
[ 18.146475] random: crng init done
[ 21.794930] uart-pl011 3f201000.serial: no DMA platform data
Keep in mind that modprobe from busybox doesn't support softdep - you have to use modprobe etc from kmod instead.
Thank you for your very quick answer... but I'm afraid I don't understand it ...
I tried the commands :
but aplay -l still can't find a soundcard...
Most embedded buildsystems, like buildroot, use the tools from busybox instead of the full-blown ones you have on typical linux installations. The kernel module tools from busybox lack the softdep feature, so it's best to disable the kernel module utilities in busybox and install the kmod package with the official kernel tools instead.
This is also what we are doing in LibreELEC, most of the standard tools come from busybox but for the cases where important functionality is missing - like with module utilities - the "full blown" packages are used.
Just noticed another thing: your dmesg doesn't mention any of the kernel modules being loaded. So check that your kernel config is correct and the modules are properly installed.
I'am using the Wolfson soundcard a few years, but it was still running on the original image (Kernel 3.10). Squeezelite runs on this RPI so that I could play music from my Logitech media server (LMS). More or less by accident I found: RPi Linux driver for Wolfson / Cirrus Logic Audio Card Thank you very much for this work.
I wanted to update my player before. Then I saw that you spent a lot of time on this sound card. I'am a noob, it was too difficult for me.
Fresh install >>> my Rpi (1B) is now running Linux >>Test 4.9.64+ #1053 Tue Nov 21 14:28:35 GMT 2017 armv6l GNU/Linux. I managed to install the sound card. I also installed Squeezelite.
When I boot/reboot the pi it automatically connects to the LMS, so far so good. But there is no sound. There is sound when I enter (Putty) ./Playback_to_Lineout.sh. I must repeat that after each boot/reboot, that's a lot of hassle.
systemctl status alsa-store returns >> Unit alsa-store.service could not be found. I got stuck.
Thanks in advance for your answer.
In Debian/Raspbian Stretch the systemd unit is "alsa-restore.service". Instead of the traditional alsactl store / restore method one can also use the alsa state daemon (see alsa-state.service) - but I haven't used that yet.
Your suggestions did not work (for me), but you pointed me in the right direction. I found: https://bbs.archlinux.org/viewtopic.php?id=163847
>> alsactl -f /var/lib/alsa/asound.state store
everything works as desired
Thanks a lot!
Thanks a lot for your excellent work.
Glad to see the Wolfson/Cirrus Logic audio cards getting support.
Unfortunately i was not able to get the card working.
I followed instruction from RPi Linux driver for Wolfson / Cirrus Logic Audio Card
LDO1: supplied by RPi-Cirrus 1v8
[ 4.355107] snd-rpi-cirrus soc:sound: ASoC: CODEC DAI wm5102-aif1 not registered - will retry
[ 4.360790] arizona spi0.1: Unknown device ID: 0
[ 4.390296] wm8804 1-003b: Failed to read device ID: -121
[ 4.390600] wm8804: probe of 1-003b failed with error -121
aplay: device_list:268: no soundcards found...
full logs are here:
Please ignore my previous post.
After a dis- and remount, the card works as expected.
The card obviously got shaken loose, although this was not visible.
So if you see above error, it could be worth checking the cards physical connection.
I've spent hours trying to have the driver working within a buildroot environment... unsuccessfully. Did anybody achieved this ? I hope this is not just a too big thing for me...
If somebody can help me, here is what I've done so far:
From buildroot repository https://github.com/gamaral/rpi-buildroot ,
using raspberrypi2_defconfig, with following deviations:
- kernel is configured as https://github.com/raspberrypi/linux , branch rpi-4.9.y
- target packages --> system tools --> kmod is checked
config.txt content is (without comments) :
kernel=zImage disable_overscan=1 gpu_mem_256=100 gpu_mem_512=100 gpu_mem_1024=100 dtoverlay=midi-uart0 dtoverlay=rpi-cirrus-wm5102
don't be afraid by the line kernel=zImage, read next
the build steps are :
- in buildroot dir
- build kernel (with proper PATH):
make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-uclibcgnueabihf- zImage modules dtbs
- make buildroot again to generate sdcard.img with extra files created in previous step
note : after that, kernel file is actually zImage, as in my config.txt
then write to SDcard :
- write sdcard.img + resize partitions as recommended in buildroot documentation (the raspberry pi boots if I stop the full process here, so I think it works)
- install kernel properly (with MY_PATH_TO_ROOT being path to root partition of SDCard):
make ARCH=arm CROSS_COMPILE=arm-buildroot-linux-uclibcgnueabihf- INSTALL_MOD_PATH=MY_PATH_TO_ROOT modules_install
- copy dts/dtb/...
cp -v LINUX_PATH_WITHIN_BUILDROOT/arch/arm/boot/dts/*.dtb SD_BOOT_PARTITION_PATH cp -v LINUX_PATH_WITHIN_BUILDROOT/arch/arm/boot/dts/overlays/*.dtb* SD_BOOT_PARTITION_PATH/overlays
during the build process, buildroot added in root partition (on my command) :
file /etc/modprobe.d with content
softdep arizona-spi pre: arizona-ldo1
After this process, RPi boots successfully, but :
- dmesg says nothing about the driver of the soundcard
- aplay -k returns "no soundcard found"
- same as in my previous messages (#300 & #303)
thanks so much
bought a Wolfson card some time ago and always thought it could be modded to run like a Cyrus with a Pi 2. After reading the excellent posts here I got off my backside and recently did it.
Wolfson Audio Card, with 4 signals to Pogo pins rewired as described above. I used an 8 way header to plug into the bottom GPIO pins.
RPi 2 B v1.1. Resistor R39 removed as above. If you do not have a SMD removal dual wielding soldering irons does the trick neatly.
Pogo pins shielded from the RPi PCB using the clear, thick cellophane style lid that some card packs come with (greeting cards), cut to fit. A piece of electrical tape for the Pogo pins to press into keeps it all in place.
1 A power supply is sufficient.
Raspbian for NOOBS, fresh download and install.
Mixer scripts etc as per hiassoft at
For simple playback using VLC I have placed the 2 following lines into /etc/rc.local so that it is configured at boot
(the scripts are in the /home/pi/bin directory as per the default hiassoft instructions)
To automatically start vlc edit as per: sudo nano ~/.config/lxsessions/LXDE-pi/pi/autostart and place @/usr/bin/vlc close to end (3rd last line).
I have my files on a USB removable HDD called 'Music' so to open this folder add @xdg-open/media/pi/Music in the above file. This is a bit clunky since it opens the window twice and generates spurious error messages, but it still works. I suspect I should ensure the drive is mounted first, say by checked for existence of the directory.
The results. Fantastic. Using my mid level Sennheiser head phones the quality of the sound is far superior to what comes out of a PC/laptop audio port. I though the sound quality I was getting was just due to old ears but no. I tend to listen to .flac files (created with EOC or Audacity) but even MP3 files sound better - much crisper. So now I am busy transferring my music to a large removable HDD. What would be nice would be to run the PC USB audio out straight into the RPi and then to the Wolfson card.
Came across your updated kernel, etc and so pleased that it seems to offer new possibilities for my Wolfson Card.
I am not sure which version I have of the Wolfson Card - but it is attached to a Raspberry Pi Model B rev. 2.
This combination has been working fine with a version of Squeezeplug loaded onto another SD.
What prompted me to look into your kernel is the hope that I can combine the Wolfson card with the Rpi and hopefully then add Airplay receiver function
I am using Raspbian Stretch, with updated kernel in line with your instructions but seem to have trouble with the use case scripts - I am very much a beginner and don't really understand code, but the scripts after downloading seem to be 'empty'
When I try to activate them through terminal nothing seems to happen.
I have compared them to some former scripts for the card which have many more lines, and from memory activating these scripts seems to produce lots of lines of text below the terminal command..
Any help you can offer would be gratefully received...
These are the details of the current system:
An examples of the scripts:
1 of 1 people found this helpful
The logs you posted look fine and so does the "Playback_to_Headset.sh" script you posted. The old scripts were very noisy (for no reason), the new scripts are quiet and will only annoy you with output if something fails.
So, everything looks fine IMO.
BTW: in the new scripts I moved all the functionality to the rpi-cirrus-functions.sh helper "shell library", the other scripts like Playback_to_Headset.sh just call helper functions from that "library". You can also use the helper functions in there in your own scripts if you want to setup some advanced configurations.
Thanks very much indeed
I ran the Reset_paths & Playback_to_Headset scripts and now all working fine -
This has given my old Wolfson card a new lease of life and finally now have it playing music wirelessly with shairport-sync...very pleased.
I've been working on a driver rework, mainly to get rid of the requirement to carry around a bunch of patches to upstream driver code, and also to fix some outstanding issues and introduce some new features.
Most issues have been ironed out so here's the first public release.
Edit: the driver has been included in official RPi kernels. Just run sudo rpi-update to install it.
You still have to install the mixer scripts and add the /etc/modprobe.d file. See my website for details
Precompiled kernel: http://www.horus.com/~hias/tmp/cirrus/cirrus-ng-linux-4.9.0.tgz
New mixer scripts: http://www.horus.com/~hias/tmp/cirrus/cirrus-ng-scripts.tgz
- The new driver bases on the rather fresh kernel 4.9.0 which means there's some risk of (yet unknown) issues. Use it at your own risk and please run "rpi-update" to get the latest firmware before installing the new driver.
- The soundcard name has been changed from "snd_rpi_wsp" to "RPi-Cirrus", also several ALSA controls have been removed and new ones were added. This means the old usecase scripts and any custom-made scripts will no longer work. Use the new mixer scripts instead of the old usecase/listen scripts.
- The new driver supports setting (and receiving) of the S/PDIF channel status bits (aka AES bits). If you add an ALSA card configuration file this means applications like Kodi can do proper AC3/DTS passthrough. A sample card configuration file (plus the mixer scripts) can be found here: https://github.com/HiassofT/rpi-cirrus-config
- I haven't fully updated the documentation on my website RPi Linux driver for Wolfson / Cirrus Logic Audio Card yet, will do that during the next weeks/months. But except for the things noted above most stuff should still work as in previous driver versions.
Please report back if you tested the driver (either successfully or unsuccessfully), any feedback will help me!