PC 扬声器的声音驱动程序模拟

PC 扬声器的声音驱动程序模拟

我目前正在运行带有 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

  1. 确保pcspkr模块已加载lsmod | grep pcspkr,如果没有看到,请加载它

    sudo modprobe pcspkr
    

    这将公开一个设备文件/dev/input/by-path/platform-pcspkr-event-spkr

  2. 确保您的组可以写入上面公开的设备文件(ls -lah)。在 Ubuntu 上,它归 拥有input,为此,您必须运行类似

    usermod -aG input "$USER"
    
  3. 现在,注销并重新登录

  4. 通过运行来验证您是否在正确的组中groups,这将告诉您用户在哪些组中

确认设置成功

从现在开始你只需要做以下事情,

  1. 运行modprobe pcspkr,每次你都必须这样做,或者pcskr从黑名单中删除,这样它就会在启动时添加。我只是运行它我启动了虚拟盒。
  2. 运行xkbbellxterm(我不会使用 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 兼容的设备。

相关内容