Skip to content
View in the app

A better way to browse. Learn more.

Armbian Community Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

No Audio on Kernel: 6.12.15 and Armbian 25.2.2 Bookworm Minimal

Featured Replies

Hello again,
 

We're already aware of the existing issues with kernel 6 and the audio on the RK3308B. In this case, it fails again in the latest versions... Alsamixer detects the audio card and even shows it in arecord -L or arecord -l, but when trying to record, the error appears:
 

"arecord: set_params:1416: unable to install hw params"
 

The command applied is:

arecord -c 2 -r 192000 -f S32_LE test.wav
 

Although if I leave it without parameters to see what it does, it throws the same error, even if I specify the hardware... In the previous kernel (I think it was 6.12.11 (with the u-boot issue in the previous post), the audio worked perfectly).

Thanks for all.

Edited by Truenox

I was able to duplicate this problem. 

Audio output appears to be working in both edge and current branches. 

But,

The "arecord: set_params:1416: unable to install hw params" error occurs in the current branch as well.  This is running kernel 6.12.28

 

the example arecord command you gave appears to work in kernel 6.12.12.  So, the breakage occurred between 6.12.12 and 6.12.28

  • Author

Dear @brentr,

It seems to be a common bug that keeps reappearing.
 

And as far as I understand, it's a fix that needs to be applied to the kernel because otherwise, it won't work.
 

Isn't there a way to make an external fix, which the user can install if needed and which can be applied to any kernel?
 

If this bug is hardcoded, I imagine it's impossible and must be modified every time the kernel is compiled...

I'm sorry I can't help much except by reporting the bug.

Thank you for your contribution and the work you do, both to you and the community.

Further testing shows that Armbian 25.2.x through the current version all run the

arecord -c 2 -r 192000 -f S32_LE test.wav

without error, PROVIDED the 6.12.12 kernel is used.

 

But, any kernel version after 6.12.12 fails.

 

Now I've just got to find out what broke in 6.12.13 🙂

 

The bug arose with kernel commit:

21cfbeae7d7c54a6cdea4b00096150f438f4fbde

 

ASoC: rockchip: i2s_tdm: Re-add the set_sysclk callback

Committer

Greg Kroah-Hartman<gregkh@linuxfoundation.org>

Author

Detlev Casanova<detlev.casanova@collabora.com>

Author date

1/17/25 8:31 AM

Parent

RISC-V: Mark riscv_v_init() as __init

Child

io_uring/uring_cmd: use cached cmd_op in io_uring_cmd_sock()

Branch

kernel-rockchip64-6.12 (io_uring/uring_cmd: use cached cmd_op in io_uring_cmd_sock())

Follows

test (ASoC: Intel: sof_sdw: Fix DMI match for Lenovo 83JX, 83MC...)

 

ASoC: rockchip: i2s_tdm: Re-add the set_sysclk callback

 

[ Upstream commit 5323186e2e8d33c073fad51e24f18e2d6dbae2da ]

 

In commit

9e2ab4b18ebd ("ASoC: rockchip: i2s-tdm: Fix inaccurate sampling rates"),

the set_sysclk callback was removed as considered unused as the mclk rate

can be set in the hw_params callback.

The difference between hw_params and set_sysclk is that the former is

called with the audio sampling rate set in the params (e.g.: 48000 Hz)

while the latter is called with a clock rate already computed with

sampling_rate * mclk-fs (e.g.: 48000 * 256)

 

For HDMI audio using the Rockchip I2S TDM driver, the mclk-fs value must

be set to 128 instead of the default 256, and that value is set in the

device tree at the machine driver level (like a simple-audio-card

compatible node).

Therefore, the i2s_tdm driver has no idea that another mclk-fs value can

be configured and simply computes the mclk rate in the hw_params callback

with DEFAULT_MCLK_FS * params_rate(params), which is wrong for HDMI

audio.

 

Re-add the set_sysclk callback so that the mclk rate is computed by the

machine driver which has the correct mclk-fs value set in its device tree

node.

 

Fixes: 9e2ab4b18ebd ("ASoC: rockchip: i2s-tdm: Fix inaccurate sampling rates")

Signed-off-by: Detlev Casanova <detlev.casanova@collabora.com>

Link: https://patch.msgid.link/20250117163102.65807-1-detlev.casanova@collabora.com

Signed-off-by: Mark Brown <broonie@kernel.org>

Signed-off-by: Sasha Levin <sashal@kernel.org>

 

  • Author

Hello Brentr,

Nice, good job!!

It's already possible to upgrade kernel? What version it is?

Thanks for all, Brentr.

Best regards.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.