-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Segfault using Scarlett 18i8 #16
Comments
Same for 18i20 |
@david0 I have the same issue and backtrace as you. I have the Scarlett 18i8 USB |
At least for me it is preserved. This is how I currently use 18i20 in Linux. P.S.: mine is 2nd gen. |
I can confirm my 18i20 2nd gen also segfaults. |
First line of the README: "Currently supported models, first generation of..." |
Output of
|
I found the problem. With gen2 the mixer is disabled by default. You see that in dmesg:
in my case (18i8 2nd gen) it needed the following (in
The labels for the rightmost three outputs should be Headphone 2 R, S/PDIF, S/PDIF I think |
OK, so there's a bit of a layout problem with the output assigns, but it now works in general? Comparing this to https://github.com/x42/scarlett-mixer#screenshot the 8 L/R assigns should be grouped below the 4 output knobs (Monitor, Headphones 1,2). |
Yes it works in general. |
Where can I get the driver?
|
The driver is the one that is build-in into the the kernel. Since you see all these outputs it seems to be a different problem than I had, maybe because you have the 18i20 and I have 18i8. |
When you edit /etc/modprobe.d/scarlett.conf you have to insert the right device id (i my case it's 8204) lsusb | grep Focusrite sudo nano /etc/modprobe.d/scarlett.conf and insert : options snd_usb_audio vid=0x1235 pid=0x8204 device_setup=1,1,1,1 |
I've tried many different configurations for a 2nd gen 18i20
to
but I always end up with a dump: |
@JCruk Can't tell from your comment if you confirmed the scarlett is enabled before running the mixer e.g.
And if not enabled, make sure kernel >= 5.14 else you'll need to compile kernel module from https://github.com/Focusrite-Scarlett-on-Linux Assuming everything above for gen3 applies to gen2 too ... 🤷 |
Thanks! @aclark4life Here's my output:
I have the module installed, I think: My config is:
|
I have an 18i20 gen 3 ( vid=0x1235 pid=0x8215 ) that seems to have similar issues to the 18i8 gen2. Initially I was segfaulting when loading mixer controls because, as with the gen2, I needed to first enable the mixer driver via modprobe options. I'm now segfaulting when setting up high-z UI elements (I think the Pango warning is irrelevant, I'm on Fedora 37 workstation):
The backtrace was:
Line 737 is an assert:
I can't dereference
That address is the result of a call to hiz(ui, i) at the call line of the outer function, line 1383:
I have little experience with robtk and/or the mixer driver and I'm not sure where the fault is here but I'll see if I can drill down further later this week. |
The issue is that the controls mapping for earlier generations isn't compatible with the later generation devices (18i20 gen2 appears to have 260 controls per above, the 3rd gen has 436) and any alsa API calls requesting controls by index when using an incorrect mapping return unexpected control types. Reading many other issues here on github I realize that this probably the root problem for a half dozen of them (control mapping from older generation hardware used with newer hardware). The issue I encounter when writing a patch to fix this is that we identify the configuration by comparing the card name returned from ALSA: The card name reported by ALSA seems to be the same for any 18i20 across all three generations, but the control configuration is incompatible amongst these generations. If we put together the mapping for gen2/gen3 devices, we would need to use a different or additional method to identify the card in a way that discriminates between hardware across generations. @x42 - Would you accept a patch that adds a mechanism to further differentiate between generations of hardware that report the same name from the ALSA api? I believe I could work this out by reading /sys/class/sound/card[device_number]/device/modalias to pick out the vendor and device IDs, but I would need to dig these up for each supported device. |
Unfortunately I get a segfault on my system:
aplay shows:
Stacktrace:
The text was updated successfully, but these errors were encountered: