我的 Alsa 测序仪似乎有问题。我使用的是 Parabola(Arch 变体),我不使用 Pulseaudio,我直接使用 Alsa。我正在尝试通过 Wine 玩具有 MIDI 音频的游戏。我安装了 Fluidsynth 并且它可以工作 - 我可以播放 midi 文件并且听起来不错。但是,如果我启动 Fluidsynth 服务器并运行aplaymidi -l
,我会收到以下错误:
$ aplaymidi -l
ALSA lib seq_hw.c:466:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory
我没有/dev/snd/seq
文件,这似乎是应该存在的与 Alsa 序列器相关的文件。有谁知道为什么该文件可能不存在以及我可以尝试哪些解决方案?
编辑:
为了回答评论中的问题,以下是/proc/config.gz
处理定序器部分的输出:
$ zgrep -A 5 -B 5 SEQUENCER /proc/config.gz
# CONFIG_SND_CTL_VALIDATION is not set
# CONFIG_SND_JACK_INJECTION_DEBUG is not set
CONFIG_SND_VMASTER=y
CONFIG_SND_DMA_SGBUF=y
CONFIG_SND_CTL_LED=m
CONFIG_SND_SEQUENCER=m
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_SEQUENCER_OSS=m
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
CONFIG_SND_SEQ_MIDI_EVENT=m
CONFIG_SND_SEQ_MIDI=m
CONFIG_SND_SEQ_MIDI_EMUL=m
CONFIG_SND_SEQ_VIRMIDI=m
所以看起来 Alsa 序列器被编译为一个模块,我可能只需要加载该模块。
答案1
如果/dev/snd/seq
特殊文件不存在,很可能是因为您的系统没有加载适当的驱动程序。
适当的驱动程序是任何 Linux 发行版的一部分,并且是在内核 make 时根据 CONFIG_SND_SEQUENCER 配置选项构建的。
说“是”音序器支持(位置:设备驱动程序/声卡支持/高级Linux声音架构)在内核中构建驱动程序。 (Alsa 曾经推荐过)。重建你的内核,就是这样,它将在启动时自动加载(并创建特殊文件)。
顺便说一句,我强烈建议选择“使用 HR 计时器作为默认定序器计时器”以及。
我发现这个驱动程序可以构建为一个模块(说M)。如果这是您的选择,那么您不应该忘记在愿意使用 /dev/snd/seq 特殊文件之前显式地对其进行 modprobe。