The speaker's USB firmware stops answering control requests when the host stops the audio stream after WirePlumber's 5 s idle suspend. The kernel then logs usb_set_interface failed (-110), clock source 1 is not valid, and cannot set freq 48000 err -110; PipeWire fails to start the sink and only a replug recovers it. On one machine this happened on six days over three weeks, up to hundreds of timeouts a day. A WirePlumber rule sets session.suspend-timeout-seconds = 0 for the KEF node only, so the stream is never stopped and the trigger never fires. Other sinks keep the default. The migration seeds the file for existing installs and restarts WirePlumber if it is running, since conf.d is only read at startup. Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
20 lines
481 B
Plaintext
20 lines
481 B
Plaintext
## Never suspend the KEF LSX II LT USB sink.
|
|
## The speaker's USB firmware stops answering control requests when the host
|
|
## stops the stream after idle (usb_set_interface -110), and only a replug
|
|
## recovers it. Keeping the stream open avoids the trigger.
|
|
|
|
monitor.alsa.rules = [
|
|
{
|
|
matches = [
|
|
{
|
|
node.name = "~alsa_output.usb-KEF_LSX_II_LT.*"
|
|
}
|
|
]
|
|
actions = {
|
|
update-props = {
|
|
session.suspend-timeout-seconds = 0
|
|
}
|
|
}
|
|
}
|
|
]
|