Skip to content

Releases: geoffreybennett/scarlett-gen2

Linux 5.14.0

30 Aug 14:50
Compare
Choose a tag to compare

Linux 5.14.0 is the first release kernel with Scarlett Gen 2 & 3 mixer driver support included. You can use these RPMs/debs if you want to try out the mixer driver, don't want to compile your own kernel, and don't want to wait for your distro to upgrade to this kernel.

This is the first release version that will work properly with the soon-to-be-released ALSA Scarlett Mixer GUI.

Install

  • RPM-based systems: rpm -ivh kernel-5.14.0-57.x86_64.rpm
  • deb-based systems: dpkg -i linux-image-5.14.0_5.14.0-21_amd64.deb

Enable

The driver is disabled by default and needs to be enabled at module load time with the device_setup=1 option to insmod/modprobe. Create a file /etc/modprobe.d/scarlett.conf containing the appropriate line for your device:

Gen 2:

  • 6i6: options snd_usb_audio vid=0x1235 pid=0x8203 device_setup=1
  • 18i8: options snd_usb_audio vid=0x1235 pid=0x8204 device_setup=1
  • 18i20: options snd_usb_audio vid=0x1235 pid=0x8201 device_setup=1

Gen 3:

  • Solo: options snd_usb_audio vid=0x1235 pid=0x8211 device_setup=1
  • 2i2: options snd_usb_audio vid=0x1235 pid=0x8210 device_setup=1
  • 4i4: options snd_usb_audio vid=0x1235 pid=0x8212 device_setup=1
  • 8i6: options snd_usb_audio vid=0x1235 pid=0x8213 device_setup=1
  • 18i8: options snd_usb_audio vid=0x1235 pid=0x8214 device_setup=1
  • 18i20: options snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1

Or you can use the sledgehammer: options snd_usb_audio device_setup=1,1,1,1 to pass that option to the first 4 USB audio devices.

Check

To see if the driver is present and enabled: dmesg | grep -i -A 5 -B 5 scarlett should display information like:

New USB device found, idVendor=1235, idProduct=8215, bcdDevice= 6.0b
Product: Scarlett 18i20 USB
Focusrite Scarlett Gen 2/3 Mixer Driver enabled pid=0x8215

Use

This is the fun bit. Run alsamixer -cUSB and you should see lots of controls. Use F3, F4, arrows keys, space bar, and "M" to display the controls, move around, and change values. To understand what the controls do, you will need to study the ASCII-art diagram at the top of the mixer_scarlett_gen2.c source code and the mixer driver feature list. You'll probably also need to study the Focusrite manual for your interface as well. Good luck!

Any issues, please come say hi at the Computer Related Hardware forum at LinuxMusicians: https://linuxmusicians.com/viewforum.php?f=6 or email me.

There will be a Scarlett-specific GUI released soon which will greatly improve the user interface. Stay tuned!

Have fun,
Geoffrey.

Linux 5.14rc6

18 Aug 14:56
Compare
Choose a tag to compare
Linux 5.14rc6 Pre-release
Pre-release

This is just a prebuilt Linux kernel v5.14-rc6 which should have everything Scarlett Gen 2 & Gen 3 (for now). See previous release notes for instructions.

Scarlett Gen 2 & 3 5.14rc1 test 1

14 Jul 01:39
Compare
Choose a tag to compare
Pre-release

This release is 5.14rc1 plus a few minor patches:

  • ALSA: scarlett2: Fix Mute/Dim/MSD Mode control names
  • ALSA: scarlett2: Fix Direct Monitor control name for 2i2
  • ALSA: scarlett2: Correct channel mute status after mute button pressed
  • ALSA: scarlett2: Fix speaker switching and mute notifications

Try at your own risk; 5.14rc1 is not for production systems!

Scarlett Gen 2 & 3 v2

26 Jun 16:19
Compare
Choose a tag to compare

This is an update to the Scarlett Gen 2 & 3 release:

  • Rebased to v5.12.13
  • Fix 18i8 Gen 3 Pad count (missing Pad controls for inputs 3 & 4)
  • Fix control change notification on many controls

See previous release information for instructions on enabling.

See my notes for feature information.

Scarlett Gen 2 & 3

17 Jun 18:54
Compare
Choose a tag to compare

Relative to v5.8.8s1, this release:

  • cleans up all the commits, getting ready for submission upstream,
  • hopefully fixes all the known issues, and
  • adds support for the Gen 3 devices without a mixer (Solo and 2i2).

Now supporting:

  • 6i6/18i8/18i20 Gen 2
  • Solo/2i2/4i4/8i6/18i8/18i20 Gen 3

There's lots of features, mostly listed here, including:

  • works with USB 2.0 ports!
  • loads all the configuration from the device!
  • talkback, speaker switching, direct monitor, phantom power, and individual line-out mute controls!

Hoping to get this upstream soon, so as well as failure reports if something doesn't work, we also need success reports.

Special thanks to Vladimir Sadovnikov for figuring out how to load the remainder of the configuration from the device!

As before, you need to enable the driver at module load time with the device_setup=1 option to insmod/modprobe. In /etc/modprobe.d/scarlett.conf, something like one of these lines should do it:

Gen 2:

  • 6i6: options snd_usb_audio vid=0x1235 pid=0x8203 device_setup=1
  • 18i8: options snd_usb_audio vid=0x1235 pid=0x8204 device_setup=1
  • 18i20: options snd_usb_audio vid=0x1235 pid=0x8201 device_setup=1

Gen 3:

  • Solo: options snd_usb_audio vid=0x1235 pid=0x8211 device_setup=1
  • 2i2: options snd_usb_audio vid=0x1235 pid=0x8210 device_setup=1
  • 4i4: options snd_usb_audio vid=0x1235 pid=0x8212 device_setup=1
  • 8i6: options snd_usb_audio vid=0x1235 pid=0x8213 device_setup=1
  • 18i8: options snd_usb_audio vid=0x1235 pid=0x8214 device_setup=1
  • 18i20: options snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1

Or you can use the sledgehammer: options snd_usb_audio device_setup=1,1,1,1 to pass that option to the first 4 USB audio devices.

Scarlett Gen 2 for-stable test 1

30 May 18:13
Compare
Choose a tag to compare

This release contains two patches from the scarlett-gen2 branch that I will propose to be applied to the stable Linux kernel on top of the "Fix device hang with ehci-pci" and "Improve driver startup messages" patches that have already been accepted:

  • Read mixer volumes at init time
  • Read mux at init time

If you have a 6i6, 18i8, or 18i20 Gen 2 device, please test this kernel to ensure that the mixer and mux states are loaded correctly from the hardware. To test:

  • prevent alsactl from interfering with the testing: mv /usr/sbin/alsactl /usr/sbin/alsactl-disabled
  • boot a kernel without this patch
  • run "alsamixer -cUSB" and you should see the "Mix X Input YY" volume controls all zero, and all the mux selection controls initialised to default values (e.g. Analogue Outputs 1-8 set to PCM 1-8)
  • change all the "Mix X Input YY" volume controls to some other value
  • change all the mux selection controls to some other value
  • boot this kernel
  • run "alsamixer -cUSB" and you should see the volume and mux controls with the same values that you set in the previous steps
  • boot a kernel without this patch again
  • you should see the volume controls and mux selection controls back to their zero/default values
  • move alsactl-disabled back to alsactl

Please report success or otherwise by email to [email protected]

Scarlett Gen 2 add sync status control

24 May 11:35
Compare
Choose a tag to compare

This release adds a new "Sync Status" read-only ALSA control which displays the Locked/Unlocked status of the interface.

Scarlett Gen 2 restore all settings during startup

22 May 14:25
Compare
Choose a tag to compare

With this release, all settings will (should!) be restored during startup. Previously the mixer volumes and the mux configuration were defaulted. Thanks to Vladimir Sadovnikov for figuring out how to do this.

Scarlett Gen 2 USB2.0 fix

20 May 17:40
Compare
Choose a tag to compare

This release is for Gen 2 devices only. One major fix: making the driver work with USB 2 ports (ehci host driver), a few tidyups, and a different initialisation sequence that is hopefully compatible with Gen 2 and Gen 3 devices.

Please test and report back if it works or not for you.

Better Gen 3 18i8, 18i20 support

12 Sep 16:53
Compare
Choose a tag to compare
Pre-release

This release (should) improve support for Gen 3 18i8 and 18i20:

  • The master HW control and outputs with the volume control set to HW should now move along with the actual HW knob.
  • Add mute and dim button controls

The features previously added should also still work:

  • Gen 2 support
  • Gen 3 4i4 and 8i6 support
  • Mixing/routing, Line/Inst, Pad, Air, MSD options

You need to enable the driver at module load time with the device_setup=1 option to insmod/modprobe. In /etc/modprobe.d/scarlett.conf, something like one of these lines should do it:

4i4: options snd_usb_audio vid=0x1235 pid=0x8212 device_setup=1
8i6: options snd_usb_audio vid=0x1235 pid=0x8213 device_setup=1
18i8: options snd_usb_audio vid=0x1235 pid=0x8214 device_setup=1
18i20: options snd_usb_audio vid=0x1235 pid=0x8215 device_setup=1