respeaker / seeed-voicecard

2 Mic Hat, 4 Mic Array, 6-Mic Circular Array Kit, and 4-Mic Linear Array Kit for Raspberry Pi
GNU General Public License v3.0
481 stars 293 forks source link

[Bug]: Respeaker 2-Mic HAT on Alpine Linux #345

Open muellerj opened 4 days ago

muellerj commented 4 days ago

Describe the bug

I tried to get the 2-mic HAT working on Alpine Linux using pointers in https://github.com/respeaker/seeed-voicecard/issues/174 and the v6.6 branch from https://github.com/HinTak/seeed-voicecard. Most of the output looks ok, however the card is not listed properly and can't play/record.

Thanks

Thanks in advance for any help - I know the distro is not officially supported.

Platform

Relevant log output

$ dmesg
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.6.49-0-rpi (buildozer@build-3-20-aarch64) (gcc (Alpine 13.2.1_git20240309) 13.2.1 20240309, GNU ld (GNU Binutils) 2.42) #1-Alpine SMP PREEMPT Thu Sep  5 10:58:11 UTC 2024
[    0.000000] KASLR enabled
[    0.000000] random: crng init done
[    0.000000] Machine model: Raspberry Pi Zero 2 W Rev 1.0
[    0.000000] efi: UEFI not found.
[    0.000000] Reserved memory: created CMA memory pool at 0x0000000017800000, size 64 MiB
[    0.000000] OF: reserved mem: initialized node linux,cma, compatible id shared-dma-pool
[    0.000000] OF: reserved mem: 0x0000000017800000..0x000000001b7fffff (65536 KiB) map reusable linux,cma
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000000000000-0x000000001bffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000001bffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000001bffffff]
[    0.000000] On node 0, zone DMA: 16384 pages in unavailable ranges
[    0.000000] percpu: Embedded 30 pages/cpu s85224 r8192 d29464 u122880
[    0.000000] pcpu-alloc: s85224 r8192 d29464 u122880 alloc=30*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3
[    0.000000] Detected VIPT I-cache on CPU0
[    0.000000] CPU features: kernel page table isolation forced ON by KASLR
[    0.000000] CPU features: detected: Kernel page table isolation (KPTI)
[    0.000000] CPU features: detected: ARM erratum 843419
[    0.000000] CPU features: detected: ARM erratum 845719
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Kernel command line: coherent_pool=1M 8250.nr_uarts=0 snd_bcm2835.enable_headphones=0 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 smsc95xx.macaddr=B8:27:EB:80:92:02 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000  root=UUID=1d0abd4e-397d-466c-9f0b-cf23b2d54340 modules=sd-mod,usb-storage,ext4 quiet rootfstype=ext4
[    0.000000] Unknown kernel command line parameters "modules=sd-mod,usb-storage,ext4", will be passed to user space.
[    0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 112896
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] Memory: 353512K/458752K available (12608K kernel code, 2208K rwdata, 4252K rodata, 3456K init, 1073K bss, 39704K reserved, 65536K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] trace event string verifier disabled
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu:     RCU event tracing is enabled.
[    0.000000] rcu:     RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4.
[    0.000000]  Trampoline variant of Tasks RCU enabled.
[    0.000000]  Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=4
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] Root IRQ handler: bcm2836_arm_irqchip_handle_irq
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: 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.000001] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.000395] Console: colour dummy device 80x25
[    0.000412] printk: console [tty0] enabled
[    0.000517] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=76800)
[    0.000538] pid_max: default: 32768 minimum: 301
[    0.000803] LSM: initializing lsm=capability,integrity
[    0.001081] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.001106] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.002177] cgroup: Disabling memory control group subsystem
[    0.004233] RCU Tasks: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
[    0.004358] RCU Tasks Trace: Setting shift to 2 and lim to 1 rcu_task_cb_adjust=1.
[    0.004675] rcu: Hierarchical SRCU implementation.
[    0.004684] rcu:     Max phase no-delay instances is 1000.
[    0.006747] EFI services will not be available.
[    0.007126] smp: Bringing up secondary CPUs ...
[    0.007877] Detected VIPT I-cache on CPU1
[    0.008037] CPU1: Booted secondary processor 0x0000000001 [0x410fd034]
[    0.008918] Detected VIPT I-cache on CPU2
[    0.009026] CPU2: Booted secondary processor 0x0000000002 [0x410fd034]
[    0.009811] Detected VIPT I-cache on CPU3
[    0.009909] CPU3: Booted secondary processor 0x0000000003 [0x410fd034]
[    0.010017] smp: Brought up 1 node, 4 CPUs
[    0.010040] SMP: Total of 4 processors activated.
[    0.010050] CPU features: detected: 32-bit EL0 Support
[    0.010057] CPU features: detected: 32-bit EL1 Support
[    0.010067] CPU features: detected: CRC32 instructions
[    0.010187] CPU: All CPU(s) started at EL2
[    0.010207] alternatives: applying system-wide alternatives
[    0.013089] devtmpfs: initialized
[    0.026054] Enabled cp15_barrier support
[    0.026089] Enabled setend support
[    0.026339] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.026366] futex hash table entries: 1024 (order: 4, 65536 bytes, linear)
[    0.029670] pinctrl core: initialized pinctrl subsystem
[    0.030431] DMI not present or invalid.
[    0.031127] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.038264] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    0.038627] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.039203] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.039372] audit: initializing netlink subsys (disabled)
[    0.039675] audit: type=2000 audit(0.036:1): state=initialized audit_enabled=0 res=1
[    0.040605] thermal_sys: Registered thermal governor 'step_wise'
[    0.040672] cpuidle: using governor menu
[    0.040947] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.041094] ASID allocator initialised with 32768 entries
[    0.042193] Serial: AMBA PL011 UART driver
[    0.047564] bcm2835-mbox 3f00b880.mailbox: mailbox enabled
[    0.056259] raspberrypi-firmware soc:firmware: Attached to firmware from 2024-08-30T19:19:11, variant start
[    0.060280] raspberrypi-firmware soc:firmware: Firmware hash is 2808975b80149bbfe86844655fe45c7de66fc078
[    0.068604] Modules: 2G module region forced by RANDOMIZE_MODULE_REGION_FULL
[    0.068619] Modules: 0 pages in range for non-PLT usage
[    0.068625] Modules: 518336 pages in range for PLT usage
[    0.072192] bcm2835-dma 3f007000.dma-controller: DMA legacy API manager, dmachans=0x1
[    0.073757] iommu: Default domain type: Translated
[    0.073769] iommu: DMA domain TLB invalidation policy: strict mode
[    0.075624] SCSI subsystem initialized
[    0.075917] usbcore: registered new interface driver usbfs
[    0.075973] usbcore: registered new interface driver hub
[    0.076055] usbcore: registered new device driver usb
[    0.076530] pps_core: LinuxPPS API ver. 1 registered
[    0.076540] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    0.076574] PTP clock support registered
[    0.078123] vgaarb: loaded
[    0.078719] clocksource: Switched to clocksource arch_sys_counter
[    1.704852] VFS: Disk quotas dquot_6.6.0
[    1.704939] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    1.705097] FS-Cache: Loaded
[    1.705393] CacheFiles: Loaded
[    1.716870] NET: Registered PF_INET protocol family
[    1.717079] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    1.718465] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[    1.718497] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    1.718521] TCP established hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    1.718663] TCP bind hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    1.718888] TCP: Hash tables configured (established 4096 bind 4096)
[    1.719186] MPTCP token hash table entries: 512 (order: 1, 12288 bytes, linear)
[    1.719266] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    1.719302] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    1.719525] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    1.720166] RPC: Registered named UNIX socket transport module.
[    1.720177] RPC: Registered udp transport module.
[    1.720185] RPC: Registered tcp transport module.
[    1.720191] RPC: Registered tcp-with-tls transport module.
[    1.720198] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    1.720229] PCI: CLS 0 bytes, default 64
[    1.720750] Trying to unpack rootfs image as initramfs...
[    1.722891] kvm [1]: IPA Size Limit: 40 bits
[    1.724676] kvm [1]: Hyp mode initialized successfully
[    1.728526] Initialise system trusted keyrings
[    1.730103] workingset: timestamp_bits=46 max_order=17 bucket_order=0
[    1.730212] zbud: loaded
[    1.732076] NFS: Registering the id_resolver key type
[    1.732124] Key type id_resolver registered
[    1.732133] Key type id_legacy registered
[    1.732168] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    1.732179] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    1.733379] Key type asymmetric registered
[    1.733403] Asymmetric key parser 'x509' registered
[    1.733495] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    1.733731] io scheduler mq-deadline registered
[    1.733747] io scheduler kyber registered
[    1.733809] io scheduler bfq registered
[    1.737653] pinctrl-bcm2835 3f200000.gpio: GPIO_OUT persistence: yes
[    1.741360] bcm2708_fb soc:fb: FB found 1 display(s)
[    1.749222] Console: switching to colour frame buffer device 82x26
[    1.752085] bcm2708_fb soc:fb: Registered framebuffer for display 0, size 656x416
[    1.761099] bcm2835-rng 3f104000.rng: hwrng registered
[    1.762142] vc-mem: phys_addr:0x00000000 mem_base=0x1ec00000 mem_size:0x20000000(512 MiB)
[    1.784210] brd: module loaded
[    1.795794] loop: module loaded
[    1.797053] Loading iSCSI transport class v2.0-870.
[    1.809212] usbcore: registered new device driver r8152-cfgselector
[    1.809283] usbcore: registered new interface driver r8152
[    1.809337] usbcore: registered new interface driver lan78xx
[    1.809389] usbcore: registered new interface driver smsc95xx
[    1.809658] dwc_otg: version 3.00a 10-AUG-2012 (platform bus)
[    2.058631] Freeing initrd memory: 5340K
[    2.537993] Core Release: 2.80a
[    2.538020] Setting default values for core params
[    2.538046] Finished setting default values for core params
[    2.738400] Using Buffer DMA mode
[    2.738409] Periodic Transfer Interrupt Enhancement - disabled
[    2.738416] Multiprocessor Interrupt Enhancement - disabled
[    2.738424] OTG VER PARAM: 0, OTG VER FLAG: 0
[    2.738440] Dedicated Tx FIFOs mode
[    2.738941]
[    2.738949] WARN::dwc_otg_hcd_init:1070: FIQ DMA bounce buffers: virt = ffffffc080481000 dma = 0x00000000d7c10000 len=9024
[    2.738988] FIQ FSM acceleration enabled for :
[    2.738988] Non-periodic Split Transactions
[    2.738988] Periodic Split Transactions
[    2.738988] High-Speed Isochronous Endpoints
[    2.738988] Interrupt/Control Split Transaction hack enabled
[    2.739002] dwc_otg: Microframe scheduler enabled
[    2.739032]
[    2.739037] WARN::hcd_init_fiq:496: MPHI regs_base at ffffffc080065000
[    2.739092] dwc_otg 3f980000.usb: DWC OTG Controller
[    2.739128] dwc_otg 3f980000.usb: new USB bus registered, assigned bus number 1
[    2.739168] dwc_otg 3f980000.usb: irq 74, io mem 0x00000000
[    2.739222] Init: Port Power? op_state=1
[    2.739230] Init: Power Port (0)
[    2.739500] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 6.06
[    2.739519] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.739533] usb usb1: Product: DWC OTG Controller
[    2.739545] usb usb1: Manufacturer: Linux 6.6.49-0-rpi dwc_otg_hcd
[    2.739556] usb usb1: SerialNumber: 3f980000.usb
[    2.740644] hub 1-0:1.0: USB hub found
[    2.740706] hub 1-0:1.0: 1 port detected
[    2.741431] dwc_otg: FIQ enabled
[    2.741441] dwc_otg: NAK holdoff enabled
[    2.741448] dwc_otg: FIQ split-transaction FSM enabled
[    2.741464] Module dwc_common_port init
[    2.743225] usbcore: registered new interface driver uas
[    2.743435] usbcore: registered new interface driver usb-storage
[    2.744445] mousedev: PS/2 mouse device common for all mice
[    2.749793] sdhci: Secure Digital Host Controller Interface driver
[    2.749818] sdhci: Copyright(c) Pierre Ossman
[    2.750307] sdhci-pltfm: SDHCI platform and OF driver helper
[    2.751874] ledtrig-cpu: registered to indicate activity on CPUs
[    2.752513] hid: raw HID events driver (C) Jiri Kosina
[    2.752619] usbcore: registered new interface driver usbhid
[    2.752626] usbhid: USB HID core driver
[    2.752749] bcm2835_vchiq 3f00b840.mailbox: there is not valid maps for state default
[    2.757711] hw perfevents: enabled with armv8_cortex_a53 PMU driver, 7 counters available
[    2.759624] Key type dns_resolver registered
[    2.797618] registered taskstats version 1
[    2.797881] Loading compiled-in X.509 certificates
[    2.809784] Key type .fscrypt registered
[    2.809802] Key type fscrypt-provisioning registered
[    2.817020] uart-pl011 3f201000.serial: cts_event_workaround enabled
[    2.817393] 3f201000.serial: ttyAMA1 at MMIO 0x3f201000 (irq = 99, base_baud = 0) is a PL011 rev2
[    2.818297] serial serial0: tty port ttyAMA1 registered
[    2.820862] bcm2835-wdt bcm2835-wdt: Broadcom BCM2835 watchdog timer
[    2.821142] bcm2835-power bcm2835-power: Broadcom BCM2835 power domains driver
[    2.824466] mmc-bcm2835 3f300000.mmcnr: mmc_debug:0 mmc_debug2:0
[    2.824487] mmc-bcm2835 3f300000.mmcnr: DMA channel allocated
[    2.847404] sdhost: log_buf @ 000000009c0457be (c32d1000)
[    2.895799] mmc0: sdhost-bcm2835 loaded - DMA enabled (>1)
[    2.897322] of_cfs_init
[    2.897424] of_cfs_init: OK
[    2.897614] clk: Disabling unused clocks
[    2.901560] Freeing unused kernel memory: 3456K
[    2.901702] Run /init as init process
[    2.901708]   with arguments:
[    2.901712]     /init
[    2.901716]   with environment:
[    2.901719]     HOME=/
[    2.901723]     TERM=linux
[    2.901727]     modules=sd-mod,usb-storage,ext4
[    2.934150] mmc0: host does not support reading read-only switch, assuming write-enable
[    2.936882] mmc0: Host Software Queue enabled
[    2.936915] mmc0: new high speed SDHC card at address 59b4
[    2.938074] mmcblk0: mmc0:59b4 SN32G 29.7 GiB
[    2.941503]  mmcblk0: p1 p2
[    2.942346] mmcblk0: mmc0:59b4 SN32G 29.7 GiB (quirks 0x00004000)
[    2.950933] Alpine Init 3.10.1-r0
[    2.954073] Loading boot drivers...
[    2.965296] Loading boot drivers: ok.
[    2.970659] mmc1: new high speed SDIO card at address 0001
[    2.972372] Mounting root...
[    4.033585] EXT4-fs (mmcblk0p2): orphan cleanup on readonly fs
[    4.037151] EXT4-fs (mmcblk0p2): mounted filesystem 1d0abd4e-397d-466c-9f0b-cf23b2d54340 ro with ordered data mode. Quota mode: none.
[    4.038134] Mounting root: ok.
[    7.926920] Bluetooth: Core ver 2.22
[    7.927021] NET: Registered PF_BLUETOOTH protocol family
[    7.927027] Bluetooth: HCI device and connection manager initialized
[    7.927047] Bluetooth: HCI socket layer initialized
[    7.927058] Bluetooth: L2CAP socket layer initialized
[    7.927074] Bluetooth: SCO socket layer initialized
[    7.945619] Bluetooth: HCI UART driver ver 2.3
[    7.945643] Bluetooth: HCI UART protocol H4 registered
[    7.945747] Bluetooth: HCI UART protocol Three-wire (H5) registered
[    7.945921] Bluetooth: HCI UART protocol Broadcom registered
[    7.946367] hci_uart_bcm serial0-0: supply vbat not found, using dummy regulator
[    7.946562] hci_uart_bcm serial0-0: supply vddio not found, using dummy regulator
[    8.066960] uart-pl011 3f201000.serial: no DMA platform data
[    8.295284] rpi-gpiomem 3f200000.gpiomem: window base 0x3f200000 size 0x00001000
[    8.295784] rpi-gpiomem 3f200000.gpiomem: initialised 1 regions as /dev/gpiomem
[    8.312915] Bluetooth: hci0: BCM: chip id 94
[    8.314918] Bluetooth: hci0: BCM: features 0x2e
[    8.318789] Bluetooth: hci0: BCM43430A1
[    8.318806] Bluetooth: hci0: BCM43430A1 (001.002.009) build 0000
[    8.327369] Bluetooth: hci0: BCM43430A1 'brcm/BCM43430A1.raspberrypi,model-zero-2-w.hcd' Patch
[    8.635502] wm8960 1-001a: supply DCVDD not found, using dummy regulator
[    8.635692] wm8960 1-001a: supply DBVDD not found, using dummy regulator
[    8.635887] wm8960 1-001a: supply SPKVDD1 not found, using dummy regulator
[    8.635932] wm8960 1-001a: supply SPKVDD2 not found, using dummy regulator
[    8.672229] mc: Linux media interface: v0.10
[    8.731018] videodev: Linux video capture interface: v2.00
[    8.758645] vc_sm_cma: module is from the staging directory, the quality is unknown, you have been warned.
[    8.760275] bcm2835_vc_sm_cma_probe: Videocore shared memory driver
[    8.760304] [vc_sm_connected_init]: start
[    8.767857] [vc_sm_connected_init]: installed successfully
[    8.775023] bcm2835_mmal_vchiq: module is from the staging directory, the quality is unknown, you have been warned.
[    8.790012] bcm2835_v4l2: module is from the staging directory, the quality is unknown, you have been warned.
[    8.826199] bcm2835_codec: module is from the staging directory, the quality is unknown, you have been warned.
[    8.830589] bcm2835-codec bcm2835-codec: Device registered as /dev/video10
[    8.830630] bcm2835-codec bcm2835-codec: Loaded V4L2 decode
[    8.832685] bcm2835-codec bcm2835-codec: Device registered as /dev/video11
[    8.832728] bcm2835-codec bcm2835-codec: Loaded V4L2 encode
[    8.835625] bcm2835-codec bcm2835-codec: Device registered as /dev/video12
[    8.835668] bcm2835-codec bcm2835-codec: Loaded V4L2 isp
[    8.840856] bcm2835-codec bcm2835-codec: Device registered as /dev/video18
[    8.840895] bcm2835-codec bcm2835-codec: Loaded V4L2 image_fx
[    8.847621] bcm2835-codec bcm2835-codec: Device registered as /dev/video31
[    8.847662] bcm2835-codec bcm2835-codec: Loaded V4L2 encode_image
[    8.860946] bcm2835_isp: module is from the staging directory, the quality is unknown, you have been warned.
[    8.870170] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video13
[    8.870895] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video14
[    8.875084] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video15
[    8.875363] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video16
[    8.875384] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[    8.875405] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[    8.875416] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[    8.875428] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[    8.880202] bcm2835-isp bcm2835-isp: Device node output[0] registered as /dev/video20
[    8.880632] bcm2835-isp bcm2835-isp: Device node capture[0] registered as /dev/video21
[    8.881056] bcm2835-isp bcm2835-isp: Device node capture[1] registered as /dev/video22
[    8.881530] bcm2835-isp bcm2835-isp: Device node stats[2] registered as /dev/video23
[    8.881561] bcm2835-isp bcm2835-isp: Register output node 0 with media controller
[    8.881576] bcm2835-isp bcm2835-isp: Register capture node 1 with media controller
[    8.881586] bcm2835-isp bcm2835-isp: Register capture node 2 with media controller
[    8.881608] bcm2835-isp bcm2835-isp: Register capture node 3 with media controller
[    8.881925] bcm2835-isp bcm2835-isp: Loaded V4L2 bcm2835-isp
[    8.893896] snd_bcm2835: module is from the staging directory, the quality is unknown, you have been warned.
[    9.008015] Bluetooth: hci0: BCM: features 0x2e
[    9.009462] Bluetooth: hci0: BCM43436 37.4MHz Class 1.5 RaspBerry Pi Zero2 [Version: 1017.1042]
[    9.009473] Bluetooth: hci0: BCM43430A1 (001.002.009) build 1042
[    9.009983] Bluetooth: hci0: BCM: Using default device address (43:43:a1:12:1f:ac)
[    9.038502] cfg80211: Loading compiled-in X.509 certificates for regulatory database
[    9.052416] Loaded X.509 cert 'benh@debian.org: 577e021cb980e0e820821ba7b54b4961b8b4fadf'
[    9.053349] Loaded X.509 cert 'romain.perier@gmail.com: 3abbc6ec146e09d1b6016ab9d6cf71dd233f0328'
[    9.054248] Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[    9.055204] Loaded X.509 cert 'wens: 61c038651aabdcf94bd0ac7ff06c7248db18c600'
[    9.056249] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[    9.056279] cfg80211: failed to load regulatory.db
[    9.152047] brcmfmac: F1 signature read @0x18000000=0x1541a9a6
[    9.156699] brcmfmac: brcmf_fw_alloc_request: using brcm/brcmfmac43430-sdio for chip BCM43430/1
[    9.157204] usbcore: registered new interface driver brcmfmac
[    9.350042] brcmfmac: brcmf_c_process_txcap_blob: no txcap_blob available (err=-2)
[    9.350468] brcmfmac: brcmf_c_preinit_dcmds: Firmware: BCM43430/1 wl0: Jun 14 2023 07:27:45 version 7.45.96.s1 (gf031a129) FWID 01-70bd2af7 es7
[   10.522407] NET: Registered PF_PACKET protocol family
[   10.633771] NET: Registered PF_INET6 protocol family
[   10.634928] Segment Routing with IPv6
[   10.634963] In-situ OAM (IOAM) with IPv6
[   10.648004] snd_soc_seeed_voicecard: loading out-of-tree module taints kernel.
[   10.698335] i2c_dev: i2c /dev entries driver
[   11.175254] EXT4-fs (mmcblk0p2): re-mounted 1d0abd4e-397d-466c-9f0b-cf23b2d54340 r/w. Quota mode: none.
[   11.254878] EXT4-fs (mmcblk0p2): re-mounted 1d0abd4e-397d-466c-9f0b-cf23b2d54340 r/w. Quota mode: none.
[   12.192872] brcmfmac: brcmf_cfg80211_set_power_mgmt: power save enabled

$ i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- UU -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

$ cat /boot/config.txt
kernel=vmlinuz-rpi
initramfs initramfs-rpi
arm_64bit=1
include usercfg.txt
dtparam=i2c_arm=on,i2s=on
dtoverlay=seeed-2mic-voicecard

$ lsmod
Module                  Size  Used by
i2c_dev                16384  0
snd_soc_ac108          61440  0
snd_soc_seeed_voicecard    16384  1 snd_soc_ac108
ipv6                  544768  18
af_packet              53248  8
brcmfmac_wcc           12288  0
brcmfmac              339968  1 brcmfmac_wcc
brcmutil               24576  1 brcmfmac
cfg80211              958464  1 brcmfmac
raspberrypi_hwmon      12288  0
snd_bcm2835            24576  0
bcm2835_isp            28672  0
bcm2835_codec          45056  0
v4l2_mem2mem           40960  1 bcm2835_codec
videobuf2_dma_contig    16384  2 bcm2835_codec,bcm2835_isp
bcm2835_v4l2           40960  0
bcm2835_mmal_vchiq     36864  3 bcm2835_codec,bcm2835_v4l2,bcm2835_isp
vc_sm_cma              28672  2 bcm2835_mmal_vchiq,bcm2835_isp
videobuf2_vmalloc      12288  1 bcm2835_v4l2
videobuf2_memops       12288  2 videobuf2_vmalloc,videobuf2_dma_contig
videobuf2_v4l2         32768  4 bcm2835_codec,bcm2835_v4l2,v4l2_mem2mem,bcm2835_isp
videodev              290816  5 bcm2835_codec,videobuf2_v4l2,bcm2835_v4l2,v4l2_mem2mem,bcm2835_isp
videobuf2_common       65536  8 bcm2835_codec,videobuf2_vmalloc,videobuf2_dma_contig,videobuf2_v4l2,bcm2835_v4l2,v4l2_mem2mem,videobuf2_memops,bcm2835_isp
mc                     61440  6 videodev,bcm2835_codec,videobuf2_v4l2,videobuf2_common,v4l2_mem2mem,bcm2835_isp
snd_soc_wm8960         45056  1
snd_soc_simple_card    16384  0
snd_soc_simple_card_utils    28672  2 snd_soc_seeed_voicecard,snd_soc_simple_card
snd_soc_bcm2835_i2s    12288  2
snd_soc_core          274432  6 snd_soc_seeed_voicecard,snd_soc_bcm2835_i2s,snd_soc_ac108,snd_soc_simple_card_utils,snd_soc_simple_card,snd_soc_wm8960
snd_compress           16384  1 snd_soc_core
snd_pcm_dmaengine      16384  1 snd_soc_core
snd_pcm               135168  7 snd_soc_bcm2835_i2s,snd_bcm2835,snd_compress,snd_soc_simple_card_utils,snd_soc_core,snd_soc_wm8960,snd_pcm_dmaengine
snd_timer              36864  1 snd_pcm
snd                   106496  6 snd_bcm2835,snd_timer,snd_compress,snd_soc_core,snd_pcm,snd_soc_wm8960
raspberrypi_gpiomem    12288  0
hci_uart               49152  0
btbcm                  24576  1 hci_uart
bluetooth             573440  3 hci_uart,btbcm
ecdh_generic           16384  1 bluetooth
ecc                    36864  1 ecdh_generic
rfkill                 32768  4 bluetooth,cfg80211
libaes                 12288  1 bluetooth
uio_pdrv_genirq        12288  0
uio                    20480  1 uio_pdrv_genirq

$ cat /etc/modules-load.d/seeed-voicecard.conf
i2c-dev
snd_soc_wm8960
snd_soc_seeed_voicecard

$ alsactl restore
alsa-lib main.c:1554:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2

$ aplay -L
null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=seeed2micvoicec
    seeed-2mic-voicecard, 3f203000.i2s-wm8960-hifi wm8960-hifi-0
    Default Audio Device
$ arecord -L
null
    Discard all samples (playback) or generate zero samples (capture)
sysdefault:CARD=seeed2micvoicec
    seeed-2mic-voicecard, 3f203000.i2s-wm8960-hifi wm8960-hifi-0
    Default Audio Device
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: seeed2micvoicec [seeed-2mic-voicecard], device 0: 3f203000.i2s-wm8960-hifi wm8960-hifi-0 [3f203000.i2s-wm8960-hifi wm8960-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: seeed2micvoicec [seeed-2mic-voicecard], device 0: 3f203000.i2s-wm8960-hifi wm8960-hifi-0 [3f203000.i2s-wm8960-hifi wm8960-hifi-0]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

$ cat /etc/asound.conf
# The IPC key of dmix or dsnoop plugin must be unique
# If 555555 or 666666 is used by other processes, use another one

# use samplerate to resample as speexdsp resample is bad
defaults.pcm.rate_converter "samplerate"

pcm.!default {
    type asym
    playback.pcm "playback"
    capture.pcm "capture"
}

pcm.playback {
    type plug
    slave.pcm "dmixed"
}

pcm.capture {
    type plug
    slave.pcm "array"
}

pcm.dmixed {
    type dmix
    slave.pcm "hw:seeed2micvoicec"
    ipc_key 555555
}

pcm.array {
    type dsnoop
    slave {
        pcm "hw:seeed2micvoicec"
        channels 2
    }
    ipc_key 666666
}
HinTak commented 4 days ago

Those sound like user / user-education issue - the 2-mic device is not capable of playback, and recording is sampled at specific rates. Anyway, there is no indication of a bug in the log - it is detected on i2c, so that confirms the device is responsive.

I am not going to comment any further, as I don't work for seeedstudio. Whatever I am willing to do, they are just provided as is, and I do not want to hear from people demanding more.

muellerj commented 3 days ago

@HinTak: This abuse is completely uncalled for. I appreciate you not wanting to support hardware that you don't work for and I am not demanding any help. What I am demanding though, is manners in a public space.