linux下qemu-kvm、virt-manager和virsh建立虚拟机没有声音解决方法

在Linux环境下使用qemu-kvm建立的Windows虚拟机缺少声音。通过检查系统驱动、确认虚拟机设置、确保主机声卡正常以及使用qemu-kvm和qemu-system-x86_64命令启动声卡,最终成功解决了虚拟机无声音的问题。

ENV:

[root@Fedora32 ~]#uname -r
5.8.16-200.fc32.x86_64
[root@Fedora32 ~]#cat /etc/redhat-release 
Fedora release 32 (Thirty Two)
[root@Fedora32 ~]#rpm -qa|grep kvm
qemu-kvm-core-4.2.1-1.fc32.x86_64
libvirt-daemon-kvm-6.1.0-4.fc32.x86_64
qemu-kvm-4.2.1-1.fc32.x86_64

[root@Fedora32 ~]#
[root@Fedora32 ~]#virsh -V
Virsh command line tool of libvirt 6.1.0
See web site at https://libvirt.org/

Compiled with support for:
 Hypervisors: QEMU/KVM LXC LibXL OpenVZ VMware VirtualBox ESX Hyper-V Test
 Networking: Remote Network Bridging Interface netcf Nwfilter VirtualPort
 Storage: Dir Disk Filesystem SCSI Multipath iSCSI LVM RBD Sheepdog Gluster ZFS
 Miscellaneous: Daemon Nodedev SELinux Secrets Debug DTrace Readline

问题:长时间玩linux系统,并没有windows系统了,今天突然遇到些问题还需要在windows环境下才能更好的操作,幸好我的linux系统下安装有kvm(和virtualbox和VM一样的虚拟机)以及下载有windows的iso安装镜像,直接安装就好,所有都操作完成了,最后在系统启动完成后确发现没有声音,这可相当影响操作感观。

本人使用的qemu-kvm是virt-manager界面式的和virsh命令行这两种方式,所遇到的问题可能和别人的操作方式可能不同,遇到问题解决的方法可能也不一样,在别人的解决方案中有些命令在我的系统中并不能正常运行,会出问题,但总的思路还是可行的,请自己操作了解。

这个问题没遇到过,只能百度下了,但是找了好多也没什么好的解决方案,但在两个网页找到了相应的解决方向,操作和自己电脑的操作可能不一样,但是大方向是一样的。

已解决)成功使用qemu安装arch,但是使用发现虚拟机没有声音(最好是从前面两页看下来,可以了解全过程)

QEMU下虚拟机内的声卡模拟方法总结

当然了还有其他的网站也有解决方案,但是这里就不列那么多了,很多都是学习记录式的文章,并不能引起太大的兴趣。

解决过程思路和方法:

1.windows系统安装完成后,在启动进入系统后没有声音,首要想到的就是系统驱动出问题了。但是找了“设备管理器”和“声音控制”,之后又安装驱动管理软件(我选用的是“驱动精灵"),但是都没有问题(怎么看出来的?有些经验的都应该是知道的吧)

2.查看kvm设置虚拟机时是否选有声卡(一般声卡都是自带有的了,基本没问题,但是还是要确定下)

3.系统内部没有问题,再调试下本机linux系统的声音,确定本机也没有问题(要是本机就有问题那乐子就大了^0^)

4.虚拟机内外都查看了没有问题,那么剩下的就是要查看虚拟机是否安装和启用了声卡。

a.查看本机是否有声卡pci接口

[root@Fedora32 ~]#lspci
00:00.0 Host bridge: Intel Corporation 3rd Gen Core processor DRAM Controller (rev 09)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (rev 09)
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
00:14.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB xHCI Host Controller (rev 04)
00:16.0 Communication controller: Intel Corporation 7 Series/C216 Chipset Family MEI Controller #1 (rev 04)
00:1a.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 7 Series/C216 Chipset Family High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 7 Series/C216 Chipset Family PCI Express Root Port 1 (rev c4)
00:1c.2 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 3 (rev c4)
00:1c.7 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 8 (rev c4)
00:1d.0 USB controller: Intel Corporation 7 Series/C216 Chipset Family USB Enhanced Host Controller #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation HM77 Express Chipset LPC Controller (rev 04)
00:1f.2 SATA controller: Intel Corporation 7 Series Chipset Family 6-port SATA Controller [AHCI mode] (rev 04)
00:1f.3 SMBus: Intel Corporation 7 Series/C216 Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GF108M [GeForce GT 620M/630M/635M/640M LE] (rev a1)
01:00.1 Audio device: NVIDIA Corporation GF108 High Definition Audio Controller (rev ff)
04:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411 PCI Express Card Reader (rev 01)
04:00.2 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0a)
09:00.0 Network controller: Qualcomm Atheros AR9485 Wireless Network Adapter (rev 01)

其中00:1b.0和01:00.1这两个都是声卡,说明硬件没有问题,剩下的就是要看是否启动声卡了。

b.启动声卡

前面的两个网页也有怎么加sh脚本,我没看懂加在哪里(就没找那个文件,但是看命令像是添加虚拟机的,但是有两个命令还是很有用的。

命令1.  qemu-kvm

[xxx@Fedora32 /]$qemu-kvm -soundhw ?
Valid sound card names (comma separated):
sb16        Creative Sound Blaster 16
es1370      ENSONIQ AudioPCI ES1370
ac97        Intel 82801AA AC97 Audio
adlib       Yamaha YM3812 (OPL2)
gus         Gravis Ultrasound GF1
cs4231a     CS4231A
hda         Intel HD Audio
pcspk       PC speaker

-soundhw all will enable all of the above

这个命令普通用户操作几次,但是没有反应,当时以为命令不存在(当时还以为我安装的kvm不全呢),所以在运行这个命令时还是建议使用root用户。命令结果就是把所有的声卡都列出来,要想启动哪个声卡就直接把命令的?换成相应的声卡名称

如:qemu-kvm -soundhw ac97

结果最后也有提示,可以把所有的声卡都启动,这样也方便,毕竟不同的虚拟机可能采用不同的声卡。

命令:qemu-kvm -soundhw all

命令2.qemu-system-x86_64

[root@Fedora32 ~]#qemu-system-x86_64 -soundhw ?
Valid sound card names (comma separated):
sb16        Creative Sound Blaster 16
es1370      ENSONIQ AudioPCI ES1370
ac97        Intel 82801AA AC97 Audio
adlib       Yamaha YM3812 (OPL2)
gus         Gravis Ultrasound GF1
cs4231a     CS4231A
hda         Intel HD Audio
pcspk       PC speaker

-soundhw all will enable all of the above

这个命令以前还是没有接触过的,但是了解过qemu-system-x86_64命令后还是很惊喜的可以,可以通过命令

qemu-system-x86_64 --help

查看所有的功能。

这个命令和上面的命令其实是一样的,都可以启动声卡。

命令: qemu-system-x86_64 -soundhw all

 

最后再启动下windows镜像虚拟机测试下,终于能在windows系统中听到声音了。因这两个命令和这个问题不经常遇到,做个记录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值