我目前正在运行带有 Virtual Box 5.2 的 TempleOS v5.03。我认为声音不起作用。当我使用SHIFT+播放 God Song 时F6,或者进入 Jukebox 并播放歌曲时,似乎没有任何声音产生。我必须在 Virtual Box 中进行哪些配置才能使声音正常工作?我的笔记本电脑没有电脑扬声器。
它似乎其他人也遇到过这个问题
答案1
PC 扬声器的声音驱动程序模拟
这只在 Linux 上有效。我的声卡恰好是snd_hda_intel
,该驱动程序实际上可以使用以下参数模拟 PC 扬声器beep_mode
:
beep_mode
:选择 HDA Beep 注册模式(0
=off,1
=on)(默认=1
)。(布尔数组)
此外,它默认处于开启状态。
设置和配置
您必须设置一次权限 - 将自己添加到适当的组。如果没有这个,您将得到一个你的错误如下VBox.log
确保
pcspkr
模块已加载lsmod | grep pcspkr
,如果没有看到,请加载它sudo modprobe pcspkr
这将公开一个设备文件
/dev/input/by-path/platform-pcspkr-event-spkr
确保您的组可以写入上面公开的设备文件(
ls -lah
)。在 Ubuntu 上,它归 拥有input
,为此,您必须运行类似usermod -aG input "$USER"
现在,注销并重新登录
- 通过运行来验证您是否在正确的组中
groups
,这将告诉您用户在哪些组中
确认设置成功
从现在开始你只需要做以下事情,
- 运行
modprobe pcspkr
,每次你都必须这样做,或者pcskr
从黑名单中删除,这样它就会在启动时添加。我只是运行它前我启动了虚拟盒。 运行
xkbbell
或xterm
(我不会使用 gnome-terminal、xfce-terminal 或 konqueror,因为它们可能会吞掉它)运行,printf "\a"
如果你没有听到任何声音,则运行以下命令并重试xset b 100 # or whatever the source control is for the beeper amixer sset Beep 100%
最后,你必须启用 PC 扬声器直通,
最后一步,你需要从虚拟盒高级常见问题解答,您可以使用 来实现这一点VBoxManage
。GUI 还没有方法来实现这一点。
VBoxManage setextradata "VM name" "VBoxInternal/Devices/i8254/0/Config/PassthroughSpeaker" 100
从现在开始你只需要做以下事情,
就是这样。现在只需启动 Virtual Box 并启动 TempleOS。您应该能够播放 God Songs。您无需重新安装 TempleOS。
PC 扬声器无声音驱动程序模拟
我相信这是仅有的假设有两种可能
如果主机操作系统可以虚拟出一个 PC 扬声器,Virtual Box 可以通过它。我相信 PC 扬声器可以通过 Virtual Box 传递在 Linux 上。我还没有找到任何可以在主机上模拟 PC 扬声器并与类似的东西一起工作的东西
beep
。如果这可以发挥作用,那么像这样的东西应该可以完成传递。从虚拟盒高级常见问题解答VBoxManage setextradata "VM name" "VBoxInternal/Devices/i8254/0/Config/PassthroughSpeaker" 100
我在 Unix.SE 上问过这个问题,Pulse Audio 可以模拟虚拟 PC 扬声器吗?
如果 Virtual Box 可以模拟 PC 扬声器,但据我所知它目前还无法做到这一点。
我认为对此没有解决方案或太多关注,因为即使对于在 PC 扬声器上使用 PWM 的旧 DOS 系统,对 Sound Blaster 的支持也是无处不在的,并且 Virtual Box 可以模拟与 Sound Blaster 兼容的设备。