From: GitHub pull_request - opened <github@alsa-project.org>
To: alsa-devel@alsa-project.org
Subject: ucm2: Focusrite Scarlett 18i20 Gen 1 — fix USB ID
Date: Tue, 7 Apr 2026 08:49:26 +0200 (CEST) [thread overview]
Message-ID: <18a4005f7a54c000-webhooks-bot@alsa-project.org> (raw)
In-Reply-To: <alsa-project/alsa-ucm-conf/pr/739@alsa-project.org>
alsa-project/alsa-ucm-conf pull request #739 was opened from geomtn:
## Summary
The device matching regex for the Focusrite Scarlett 18i20 series in `USB-Audio.conf` uses an uppercase `C` in the Gen 1 product ID (`800C`), but kernel reports USB component IDs in lowercase (`800c`). The regex is case-sensitive, so the Gen 1 device never matches and the UCM profile fails to load entirely.
This is the remaining piece of the Gen 1 UCM breakage reported in #588 — the ADAT channel count issue was addressed by #731 (commit 17b48b1), but the device never reaches the profile at all due to this earlier match failure.
*Note, Claude-Code was heavily depended on for the troubleshooting, local bug fix, and testing.*
---
## Details
In `ucm2/USB-Audio/USB-Audio.conf`, the Scarlett 18i20 matching block uses:
```
Regex "USB1235:8(00C|2(01|1(5|d)))"
```
The kernel reports the Gen 1 component string as `USB1235:800c` (lowercase). Because the regex is case-sensitive and only matches `800C`, the `ProfileName` variable is never set and the loader hits the fallback error:
```
True.Error "UCM is not supported for this USB device (${CardLongName} @ ${CardComponents})"
```
This causes WirePlumber to report the device as `[ALSA UCM error]` and refuse to load any profile for it.
The other IDs in the same regex — `8201`, `8215`, `821d` — are already lowercase and match correctly. Only the Gen 1 `800C` is inconsistent.
---
## Fix
```diff
--- a/ucm2/USB-Audio/USB-Audio.conf
+++ b/ucm2/USB-Audio/USB-Audio.conf
@@ -1 +1 @@
- Regex "USB1235:8(00C|2(01|1(5|d)))"
+ Regex "USB1235:8(00c|2(01|1(5|d)))"
```
Same single-character change applies to `ucm2/conf.d/USB-Audio/USB-Audio.conf`.
---
## Testing
Tested on Focusrite Scarlett 18i20 Gen 1 (`USB1235:800c`) with:
- Kernel: 6.19.10-zen1-1-zen (Arch Linux)
- PipeWire / WirePlumber
- `alsa-ucm-conf` 1.2.15.3
With both this fix and the ADAT channel count fix from #731 applied, the device loads without UCM errors and all output ports enumerate correctly.
Without this fix, the ADAT channel count fix in #731 has no effect for Gen 1 users — the profile match fails before the HiFi configuration is ever reached.
---
## Related
- Fixes #588 — Focusrite Scarlett 18i20 Gen 1: UCM configuration fails to load
- Related to #559 — ALSA UCM error for Scarlett 18i20 Gen 2 (ADAT channel count addressed by #731)
Request URL : https://github.com/alsa-project/alsa-ucm-conf/pull/739
Patch URL : https://github.com/alsa-project/alsa-ucm-conf/pull/739.patch
Repository URL: https://github.com/alsa-project/alsa-ucm-conf
parent reply other threads:[~2026-04-07 6:50 UTC|newest]
Thread overview: expand[flat|nested] mbox.gz Atom feed
[parent not found: <alsa-project/alsa-ucm-conf/pr/739@alsa-project.org>]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=18a4005f7a54c000-webhooks-bot@alsa-project.org \
--to=github@alsa-project.org \
--cc=alsa-devel@alsa-project.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox