Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Pi 5: TLV320AIC3104 (ReSpeaker 2-Mics HAT V2.0) PCM open() returns EINVAL on 6.18.50, works on 6.18.39

オープン
#7,672 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
48/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
c, linux

調査の方向性

Start by comparing the 6.18.39 and 6.18.50 changes under sound/soc/dwc, especially d1140e16d6, which the report identifies as a possible cause. Reproduce with the listed arecord command on both kernels, then investigate why opening the PCM device returns EINVAL on 6.18.50. Done when capture and playback PCM devices open on the newer kernel.

索引モデルが issue の本文から書いたものです。

説明

Describe the bug

After upgrading from 1:6.18.39-1+rpt1 to 1:6.18.50-1+rpt1 (linux-image-6.18.50+rpt-rpi-2712), opening either PCM of an I2S sound card on RP1 fails with EINVAL. The card is a TLV320AIC3104 codec on a simple-audio-card. Both capture and playback fail, raw hw: included. The card still enumerates normally in /proc/asound/cards, and the kernel logs nothing when the open fails.

Booting the 6.18.39 kernel again, with the same rootfs, overlay and userspace (config.txt differs only in the kernel=/initramfs lines), fixes it completely.

Steps to reproduce
  1. Pi 5 with a Seeed ReSpeaker 2-Mics Pi HAT V2.0 (TLV320AIC3104 at i2c-1 0x18), dtoverlay=respeaker-2mic-v2_0. The overlay is compiled from Seeed's respeaker-2mic-v2_0-overlay.dts and is unchanged between the two kernels.
  2. Boot 6.18.50+rpt-rpi-2712.
  3. Run arecord -D hw:CARD=seeed2micvoicec,DEV=0 -f S16_LE -c 2 -r 48000 -d 1 /dev/null

On 6.18.50:

arecord: main:850: audio open error: Invalid argument

The same happens at -r 16000, through plughw:, and with aplay (playback).

strace shows that the syscall itself is what fails, not alsa-lib:

openat(AT_FDCWD, "/dev/snd/pcmC0D0c", O_RDWR|O_NONBLOCK|O_CLOEXEC) = -1 EINVAL (Invalid argument)

Nothing holds the device (lsof /dev/snd/* is empty), /proc/asound/card0/pcm0c/sub0/status reads closed, and dmesg is empty after the attempt.

Expected behaviour

The PCM opens, as it does on 6.18.39. On 6.18.39 the same command records, playback works, and with capture running at 16 kHz aplay --dump-hw-params reports FORMAT: S16_LE S24_LE S32_LE, CHANNELS: 2, RATE: 16000 (the rate is limited by the running capture stream).

Possible cause (not verified)

The only change under sound/soc/dwc between the two builds appears to be d1140e16d6 "ASoC: dwc: Raise sample rate limit to 768kHz", which changes dw_configure_dai_by_dt() from SNDRV_PCM_RATE_8000_384000 to SNDRV_PCM_RATE_8000_768000. I haven't built a kernel with it reverted, so this is only a suspect. 6.18.50 also contains stable merges that I haven't ruled out. 8946ad8626 ("Revert i2s_stop to the upstream version") is not in 6.18.50.

I'm happy to test a build with d1140e16d6 reverted, or an rpi-update kernel, if that helps.

Device (s)

Raspberry Pi 5

System
  • Raspberry Pi 5 Model B Rev 1.0
  • Raspberry Pi OS (trixie), 64-bit
  • Bad: Linux 6.18.50+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.18.50-1+rpt1 (Linux commit cff533aec2fa)
  • Good: Linux 6.18.39+rpt-rpi-2712 #1 SMP PREEMPT Debian 1:6.18.39-1+rpt1 (2026-07-29)
  • Firmware: 2026/09/25 15:59:09, version 1accd665 (release) (embedded)
  • Other: an out-of-tree Hailo PCIe driver (hailo1x_pci) is loaded on both kernels. It does not touch audio.
Logs

dmesg shows nothing at open time. On both kernels, boot shows the codec and card probing normally, and the card appears in /proc/asound/cards as 0 [seeed2micvoicec]: simple-card - seeed2micvoicec.

Additional context

Workaround: pin the old kernel in config.txt with kernel=kernel_2712-6.18.39.img and initramfs initramfs_2712-6.18.39 followkernel, using copies of the 6.18.39 files.

主要言語
C
スター
13.2k
フォーク
5.5k
平均マージ
2日 4時間
マージ済み PR(30日)
20

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

raspberrypi/linux のほかの issue

raspberrypi/linux の issue をすべて見る

似ている issue

C の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。