Skip to content

Enable MIDI 2.0 / UMP support (SND_UMP, SND_USB_AUDIO_MIDI_V2, USB_CONFIGFS_F_MIDI2) in the Pi kernel configs #7474

Description

@wamdam

Raspberry Pi OS kernels currently ship with all ALSA MIDI 2.0 / UMP options disabled. The support has been upstream since kernel 6.5 (refined through 6.12, which the Pi kernels are based on), and Trixie's userspace is already fully UMP-capable (alsa-lib 1.2.14, alsa-utils with aseqdump -u 2 / aplaymidi2), so the kernel configs are the only missing piece for MIDI 2.0 hardware support on the Pi.

Request: enable in bcm2711_defconfig / bcm2712_defconfig (and the 32-bit configs if practical):

CONFIG_SND_UMP=m                  # (selected by the below)
CONFIG_SND_UMP_LEGACY_RAWMIDI=y   # legacy rawmidi bridge per UMP group
CONFIG_SND_SEQ_UMP=y              # sequencer UMP event support
CONFIG_SND_SEQ_UMP_CLIENT=m
CONFIG_SND_USB_AUDIO_MIDI_V2=y    # USB MIDI 2.0 (bool inside snd-usb-audio)
CONFIG_USB_CONFIGFS_F_MIDI2=m     # USB MIDI 2.0 gadget (f_midi2)

Rationale / precedent:

  • Ubuntu enables exactly these (noble: SND_UMP=m, SND_USB_AUDIO_MIDI_V2=y, USB_CONFIGFS_F_MIDI2=y), as do Fedora and Arch.
  • Cost when unused is negligible: SND_USB_AUDIO_MIDI_V2 only changes probing for devices that actually expose a MIDI 2.0 altsetting (MIDI 1.0 devices are handled exactly as before), and module options midi2_enable=0 / midi2_ump_probe=0 exist as escape hatches.
  • The Pi is a popular platform for MIDI hubs/routers and synth projects; MIDI 2.0 controllers (Roland A-88MKII, Korg Keystage, NI Kontrol S MK3, newer Akai MPKs) are shipping now, and the f_midi2 gadget would let Pi-based devices present themselves as USB MIDI 2.0 peripherals with automatic 1.0 fallback.
  • USB_CONFIGFS_F_MIDI (the MIDI 1.0 gadget) is already enabled, so f_midi2 is the natural counterpart.

Happy to test on Pi 3B+/4/5 hardware — we maintain a Pi-based MIDI appliance (RaspiMIDIHub) and have verified that the equivalent module set builds and runs on 6.12.75+rpt.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions