AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 772585
Accepted
elbarna
elbarna
Asked: 2024-03-18 07:31:06 +0800 CST2024-03-18 07:31:06 +0800 CST 2024-03-18 07:31:06 +0800 CST

为什么 qemu 不接受音频的 xml 配置?

  • 772

我想将 audiodev 传递给虚拟机,但 libvirt 退出并出现此错误

error: internal error: process exited while connecting to monitor: 2024-03-17T23:29:37.725695Z qemu-system-x86_64: XDG_RUNTIME_DIR not set

这些是 vm 的行

<qemu:arg value="-device"/>
<qemu:arg value="usb-audio,audiodev=my_audiodev"/>
<qemu:arg value="-audiodev"/>
<qemu:arg value="pa,id=my_audiodev"/>

我知道可以直接在 xml 中插入声卡,但我想知道为什么会出现此错误,还要尝试“virtio-sound”然后

<qemu:arg value="-device"/>
<qemu:arg value="virtio-sound,audiodev=my_audiodev"/>
<qemu:arg value="-audiodev"/>
<qemu:arg value="pa,id=my_audiodev"/>

当然,如果没有这些行,虚拟机就会运行

qemu-版本是8.2.2 libvirt版本是10.0.0 系统是Slackware 15

该错误来自使用pulseaudio的qemu

qemu-system-x86_64 -audiodev pa,id=hda,out.mixing-engine=off -audiodev pa,id=usb,out.mixing-engine=off 
qemu-system-x86_64: XDG_RUNTIME_DIR not set

尝试设置 xdg-runtime-dir..

export XDG_RUNTIME_DIR=$TMPDIR
qemu-system-x86_64 -device usb-audio -audiodev alsa,id=hda,out.mixing-engine=off -audiodev pa,id=usb,out.mixing-engine=off 
qemu-system-x86_64: could not stat pidfile /pulse/pid: No such file or directory
libvirt
  • 1 1 个回答
  • 14 Views

1 个回答

  • Voted
  1. Best Answer
    elbarna
    2024-03-18T07:56:45+08:002024-03-18T07:56:45+08:00

    已找到解决方案,适用于 qemu

    与 XDG_RUNTIME_DIR

    mkdir /tmp/pulse
    XDG_RUNTIME_DIR=/tmp/pulse pulseaudio -D
    qemu-system-x86_64 -device usb-audio -audiodev pa,id=hda,out.mixing-engine=off -audiodev pa,id=usb,out.mixing-engine=off 
    

    没有 XDG_RUNTIME_DIR

    qemu-system-x86_64 -device usb-audio -audiodev pa,id=hda,out.mixing-engine=off -audiodev pa,id=usb,server=unix:/tmp/pulse-socket
    

    对于 libvirt 的另一个问题(使用 xdg_runtime_dir),它以不同的用户(qemu)运行,所以我必须找到一种与 qemu 用户共享声音的方法

    error: internal error: process exited while connecting to monitor: 2024-03-17T23:56:30.886989Z qemu-system-x86_64: could not stat pidfile /tmp/pulse/pulse/pid: Permission denied
    

    也为 libvirt 找到了解决方案(在这种情况下 xdg_runtime 没有用)

    <qemu:arg value="-device"/>
        <qemu:arg value="usb-audio,audiodev=my_audiodev"/>
        <qemu:arg value="-audiodev"/>
        <qemu:arg value="pa,id=my_audiodev,server=unix:/tmp/pulse-socket"/>
    

    在default_pa中

    vim $HOME/.config/pulse/default_pa

    load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse-socket
    load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.2;192.168.0.10
    

    通过此配置,您允许其他用户使用(并听到)您的声音,无需身份验证,使用基于 IP 的 ACL(不是 100% 安全,但对于家庭来说是可以的)

    • 0

相关问题

  • virsh: 连接到域 <name> 转义字符是 ^]

  • 使用 virt-install 在虚拟机上为虚拟设备配置串行控制台

  • Slackware 和 libvirt 与 qemu,为什么 vm 以 root 身份运行?

  • qcow2 实际尺寸

  • 尝试编译 libvirt 时出现错误“getopt.h:85:29:致命错误:getopt-pfx-core.h:没有这样的文件或目录”[关闭]

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve