在已安裝的Ubuntu 14.04 中oss-compat
,我有以下內容/dev/snd
:
- 控制C0
- 控制C1
- 硬體C0D0
- hwC0D1
- 中型C1D0
- MIDIC1D1
- MIDIC1D2
- MIDIC1D3
- pcmC0D0c
- pcmC0D0p
- pcmC0D1c
- pcmC0D1p
- 序列
- 定時器
現在,在 Ubuntu 16.04 中(最近作為新安裝從 14.04 遷移到 16.04),我只有這樣:
- 控制C0
- 硬體C0D0
- hwC0D1
- pcmC0D0c
- pcmC0D0p
- pcmC0D1p
- 序列
- 定時器
他們midiCnDn
失蹤了。
我注意到在 16.04 中,oss-compat
是由osspd
(oss-compat
以虛擬包形式提供)提供的。我雖然這是問題所在,但替換osspd
為oss-compat
(該名稱的具體包)後,它仍然是相同的。我meld
在新目錄和舊etc
目錄上進行了比較,但沒有運氣,似乎差異並不是來自etc
.
這種差異可能來自哪裡?如何更改所提供的內容?這是核心選項嗎?或者這真的是我錯過的事情嗎etc
?
答案1
在 @CL. 的評論之後,我可以透過snd-virmidi
在 的末尾添加一行來解決問題/etc/modules
。重新啟動後,ls /dev/snd
顯示預期的midiCnDn
項目。如果想立即檢查而不重新啟動,則sudo modprobe snd-virmidi
可以執行相同的操作,但只是暫時的。需要在末尾添加一行/etc/modules
才能永久載入該模組。
如果你想讓虛擬 MIDI 卡使用固定索引,你可以新增一個建立/etc/modprobe.d/snd-virmidi.conf
檔案的索引選項(自 Ubuntu 16.04 起必需的方式),然後新增options snd-virmidi index=n
N 是你希望它位於的索引的行。如果您有一張真正的音效卡,其索引將為 0,因此您希望虛擬 MIDI 卡的索引為 1。如果索引為 1,則它們將從/dev/snd/midiC1D0
到/dev/snd/midiC1D3
。
所以有一個虛擬MIDI設備的核心模組,它與OSS模擬無關。