> -----Original Message----- > From: kvm-owner@xxxxxxxxxxxxxxx [mailto:kvm-owner@xxxxxxxxxxxxxxx] On Behalf Of Jimmy Crossley > Sent: Friday, June 08, 2012 17:29 > To: kvm@xxxxxxxxxxxxxxx > Subject: Garbled audio - Windows 7 64 bit guest on Debian > > I am experiencing garbled sound on a Windows 7 64 bit guest running under 64 bit Debian. I have > searched many discussion groups, etc. on the net and could find nothing useful, so I thought I would > post this here, hoping someone with a deeper understanding could help out. > > I am running 64 bit Debian GNU/Linux "testing" on a Lenovo Thinkpad T420s, 8GB RAM, Crucial m4 512GB > disk. Using ALSA, the sound works perfectly when playing all kinds of files. I am running > everything from the standard Debian repositories. This is using kernel version 3.0.0-1. kvm -- > version says: > > QEMU emulator version 1.0 (qemu-kvm-1.0+dfsg-11, Debian), Copyright (c) 2003-2008 Fabrice Bellard > > I am running Windows 7 Enterprise service pack 1 as a virtual machine. The machine is started with > the following command: > > /usr/bin/kvm \ > -M pc \ > -m 2048 \ > -drive file="csilt033-6.qcow",if=virtio \ > -soundhw hda \ > -display sdl & > > I believe I must use "-soundhw hda" because that is the only sound device that kvm emulates which > has Windows 7 64 bit drivers. Windows 7 automatically detects a "High Definition Audio Device" and > uses the driver HDAudio.sys. But the sounds it makes sound like they are very highly compressed, or > a lot of bits are being lost or something. Any application used to play sound has the same problem. > Speech is barely recognizable. Using the built in speakers or external speakers through the audio > jack give the same result. > > I have tried several QEMU_AUDIO* settings, but it seems like these make no difference. > > If I connect to the machine using remote desktop (mstsc.exe, rdesktop, xfreerdp), the sound gets > redirected to the local machine and sounds perfect. The sound is only garbled when using SDL. The > same audio problems exist if I start up the machine and connect to it with vnc. > > > I want to use SDL because I need to use Microsoft Lync, which requires me to log in on the console. > Using voice with Lync is not supported in a remote desktop environment. > > Here is lspci on the audio device on the host machine. > > $ sudo lspci -vvv -s 00:1b.0 > 00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio > Controller (rev 04) > Subsystem: Lenovo Device 21d2 > Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- > DisINTx+ > Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- > <PERR- INTx- > Latency: 0, Cache Line Size: 64 bytes > Interrupt: pin A routed to IRQ 51 > Region 0: Memory at f1620000 (64-bit, non-prefetchable) [size=16K] > Capabilities: [50] Power Management version 2 > Flags: PMEClk- DSI- D1- D2- AuxCurrent=55mA PME(D0+,D1-,D2-,D3hot+,D3cold+) > Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- > Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit+ > Address: 00000000fee004b8 Data: 0000 > Capabilities: [70] Express (v1) Root Complex Integrated Endpoint, MSI 00 > DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <64ns, L1 <1us > ExtTag- RBE- FLReset+ > DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- > RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- > MaxPayload 128 bytes, MaxReadReq 128 bytes > DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- > LnkCap: Port #0, Speed unknown, Width x0, ASPM unknown, Latency L0 <64ns, L1 <1us > ClockPM- Surprise- LLActRep- BwNot- > LnkCtl: ASPM Disabled; Disabled- Retrain- CommClk- > ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- > LnkSta: Speed unknown, Width x0, TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt- > Capabilities: [100 v1] Virtual Channel > Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 > Arb: Fixed- WRR32- WRR64- WRR128- > Ctrl: ArbSelect=Fixed > Status: InProgress- > VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- > Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- > Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 > Status: NegoPending- InProgress- > VC1: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- > Arb: Fixed- WRR32- WRR64- WRR128- TWRR128- WRR256- > Ctrl: Enable+ ID=1 ArbSelect=Fixed TC/VC=22 > Status: NegoPending- InProgress- > Capabilities: [130 v1] Root Complex Link > Desc: PortNumber=0f ComponentID=00 EltType=Config > Link0: Desc: TargetPort=00 TargetComponent=00 AssocRCRB- LinkType=MemMapped > LinkValid+ > Addr: 00000000fed1c000 > Kernel driver in use: HDA Intel > > Any ideas on how to get this to work would be appreciated. > > > > ----------------------------- > Jimmy Crossley > CoNetrix > Sentry Plaza III > 5214 68th Street, Suite 200 > Lubbock, TX 79424 > jcrossley@xxxxxxxxxxxx > https://www.CoNetrix.com > Telephone: 806-687-8600 > Toll Free: 800-356-6568 > Fax: 806-687-8511 > This e-mail message (and attachments) may contain confidential CoNetrix information. If you are not > the intended recipient, you cannot use, distribute or copy the message or attachments. In such a > case, please notify the sender by return e-mail immediately and erase all copies of the message and > attachments. Opinions, conclusions and other information in this message and attachments that do not > relate to official business are neither given nor endorsed by CoNetrix. > > > -- > To unsubscribe from this list: send the line "unsubscribe kvm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html I have mostly solved this issue. The sound works much, much, better, but is still not as good as on my host machine. I installed PulseAudio and used it instead of ALSA. In order to get kvm to use it, I set the environment variable QEMU_AUDIO_DRV=pa. I had been using sudo to start the VM, and that kept this environment variable from being used. I did a "sudo setcap cap_net_admin+ep /usr/bin/kvm" in order to be able to run kvm under a normal user account. Now the sound works quite well. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html