0

In Ubuntu 14.04 with oss-compat installed, I had this in /dev/snd:

  • controlC0
  • controlC1
  • hwC0D0
  • hwC0D1
  • midiC1D0
  • midiC1D1
  • midiC1D2
  • midiC1D3
  • pcmC0D0c
  • pcmC0D0p
  • pcmC0D1c
  • pcmC0D1p
  • seq
  • timer

Now, in Ubuntu 16.04 (just lately migrated from 14.04 to 16.04 as a new installation), I just have this:

  • controlC0
  • hwC0D0
  • hwC0D1
  • pcmC0D0c
  • pcmC0D0p
  • pcmC0D1p
  • seq
  • timer

The midiCnDn are missing.

I noticed in 16.04, oss-compat is provided by osspd (which provides oss-compat as virtual package). I though it was the issue, but after replacing osspd with oss-compat (the concrete package of that name), it’s still the same. I used meld on the new and old etc directories for a comparison, with no luck, it seems the difference does not come from a different configuration in etc.

Where does this difference may come from? How do I change what's provided? Is this a kernel option? Or is this really something I missed in etc?

Hibou57
  • 1,185
  • 2
  • 14
  • 25
  • 1
    Nothing in `/dev/snd/` is related with OSS. I guess you configured *something* in 14.04 to make it load the `snd-virmidi` module, and the update forgot that. – CL. Sep 26 '17 at 16:33
  • @CL. yes, `snd-virmidi` reminds me something, this may be a good track. As a side note, the update has not forgotten anything, I installed 16.04 in a new partition, using meta-packages and notes to re-create my previous configuration. Seems I forget something … Please, feel free to add your comment as an answer if you wish. – Hibou57 Sep 26 '17 at 17:03
  • @CL., indeed, that was it, there was a `snd-virmidi index=1` lines in `/etc/modules`, I missed it. Your comment solves the issue. – Hibou57 Sep 26 '17 at 17:09
  • 1
    Please add an answer with what you actually did to solve it. – CL. Sep 26 '17 at 17:20

1 Answers1

1

After @CL.’s comment, I could solve the issue adding an snd-virmidi line at the end of /etc/modules. After a restart, ls /dev/snd shows the expected midiCnDn entries. If one want to check it immediately without a restart, then a sudo modprobe snd-virmidi can do the same, but only temporarily. Adding a line at the end of /etc/modules is required to have this module loaded permanently.

If you want to have the virtual MIDI card using a fixed index, you can add an index option creating /etc/modprobe.d/snd-virmidi.conf file (required way since Ubuntu 16.04) then add the line options snd-virmidi index=n where N is the index you wish it to be at. If you have one real sound card, its index will be 0 so will want to have the virtual MIDI card at index 1. By default, the virtual MIDI card will expose four virtual MIDI devices. If the index is 1, they will be from /dev/snd/midiC1D0 to /dev/snd/midiC1D3.

So there is a kernel module for virtual MIDI devices, it’s not related to OSS emulation.

Hibou57
  • 1,185
  • 2
  • 14
  • 25