KVM and audio driver in Windows 7

Bug #419182 reported by Arie Skliarouk on 2009-08-26
44
This bug affects 9 people
Affects Status Importance Assigned to Milestone
kvm (Ubuntu)
Undecided
Unassigned

Bug Description

Binary package hint: kvm

Windows XP in KVM 1:84+dfsg-0ubuntu12.3 (kernel 2.6.28-15-generic) recognizes the "Ensoniq AudioPCI ES1370" device automatically and I can hear the audio.

On the same KVM Windows 7 (Evaluation copy, Build 7100) only detects presence of "Multimedia Audio Controller", but can not automatically find driver software for the device. I tried to find the drivers on the internet, to no avail. It is a bit strange that such an widespread card does not have driver in Windows 7...

If the problem is in windows 7, then close the bug as Invalid.

Once I know resolution of the problem, I will update wiki of KVM:
http://www.linux-kvm.org/page/Sound

Windows 7 doesn't have this driver

Changed in kvm (Ubuntu):
status: New → Invalid
Arie Skliarouk (skliarie) wrote :

Ok, for some reason windows 7 has no built-in driver for es1370 audio card (which is emulated by KVM by default)...
Is there downloadable driver for es1370 audio card for windows 7 somewhere?
May be there is a way to make KVM to emulate different kind of audio card (which windows 7 does know how to handle?

summary: - Windows 7 can not find driver for es1370 card
+ KVM and audio driver in Windows 7
Changed in kvm (Ubuntu):
status: Invalid → New
Dustin Kirkland  (kirkland) wrote :

kirkland@x200:/local/source/virt-manager/virt-manager-0.7.0$ qemu -soundhw ?
Valid sound card names (comma separated):
pcspk PC speaker
sb16 Creative Sound Blaster 16
cs4231a CS4231A
adlib Yamaha YM3812 (OPL2)
gus Gravis Ultrasound GF1
ac97 Intel 82801AA AC97 Audio
es1370 ENSONIQ AudioPCI ES1370

-soundhw all will enable all of the above

There are a number of options available.

:-Dustin

Changed in kvm (Ubuntu):
status: New → Invalid
Arie Skliarouk (skliarie) wrote :

virt-manager provides only three options for audio card: es1370, sb16 and pcskp.

I tried to use sb16 audio card for the windows7 instance and Windows have not even recognized it (with es1370 it at least detected the "Multimedia Audio Controller").

Someone posted success with "Windows 3.1 Driver Version 3.30.06." driver for es1370 over here:
http://brainmindinstrev.blogspot.com/2009_04_01_archive.html

but I was not able to reproduce it (probably due to evaluation version of my Windows7).

Can someone confirm whether the workaround works at all and post the result here please?

What I found out is: there's no x64 driver for both AC'97 and ES1370 for Windows. 64bit Chipsets would have no AC'97, so there is only the Realtek driver which doesn't work well. And ES1370 is a very, very old audio chip which is probably only supported for legacy reasons but only in the 32bit versions of Windows. In the link from comment #4, the 32bit version of Windows was used.

See http://www.virtualbox.org/ticket/5332 which is essentially the same problem for VirtualBox.

Can you confirm that Windows Update finds drivers for x32 but not for x64 versions of Windows?

Eric (kryptoer) wrote :

I am running kubuntu karmic 64 bit with kvm. I am running Windows 7 Enterprise 64 bit and 32 bit as guests. Using virt-manager for installation defaults to es1370 sound card and Multimedia Audio Controller is detected. Also for both guest installs neither one finds drivers after full activation and full windows 7 updates. I then shut down the windows 7 32 install and added the create labs sound blaster 16. After boot it did not find the audio card. I went to creative site and downloaded the driver for win 95 and installed it. Still nothing. However I then started playing with my driver lookup settings within windows and it found the creative labs sb16 sound and I now have sound on the win7 32 bit. I have not confirmed if the same will work on win 7 64 but I will try later and will pay more attention to the steps I take.

Eric (kryptoer) wrote :

On 64 bit Windows 7 creative tech is not an option as a sound driver. So far I can only make sound work on 32 bit. Also running 64 bit Windows 7 as a guest OS is slower than 32 bit Windows 7 guest and since I only really need it for OCS communications I will just run 32 bit windows 7.

Zhang Weiwu (zhangweiwu) wrote :

As I do have a physical ES1370 sound card I want to share my experience.

1. I installed Windows 7 64-bit "Advanced Home" Edition, Windows notified it tried but cannot find a driver for it.

2. I tried to go to Device Manager and ask for a driver update, selected to let windows choose the right driver on internet. It prompts fail to find any driver.

3. Google on the Internet finds multiple website offering download of a driver whose file name is "creative_es1370_60_win7.rar" and titled "ES1370/ES1371/ES1373 driver for Windows 7 version 6.00", which doesn't work for me. Examples:

http://download.pchome.net/driver/hardware/sound/download-100249.html
http://driver.cnd8.com/qudong/13203.htm
( both site checks HTTP head referral thus I cannot give direct download link. But on the later site, the download link is easy to find without reading Chinese, look at lower left column of the page where there is a column of 3 anmiated download icon, any one of these icon should work.)

It confuses me that the driver is not offered on English websites but I only found them on Chinese sites.

Download the driver, unpackage it to a folder, in Device Manager I update driver and specified location of the driver, Windows 7 prompts me no driver was found in that place.

Open the .inf file in the drvier package it is obvious this is a generic driver for almost a hundred different models of sound cards.

Conclusion: still no clue of a working driver of ES1370

The wiki page on http://www.linux-kvm.org/page/Sound suggested Windows 7 should find the driver by itself from the Internet, but the driver constantly crash. It is not true in my case. My Win7 cannot find the driver by itself, although, there is a chance it work without crash thanks to the physical device in presence.

From reading the VirtualBox site they had the same problem, that none of the emulated sound cards would work with 64bit Windows 7/2008 as they are all too old chipsets. They solved it by adding a new sound card to Virtual Box ('Intel HD Audio'). But appears this remains a compatibility 'bug' for kvm/qemu.

This bug has been marked invalid, however I don't think that is a sensible position; as the only viable fix can be a kvm/qemu change, as it seems unlikely anyone is going to write 64bit Windows drivers for the old unsupported chipsets that kvm/qemu provides.

That is kinda like marking a bug about no VM IDE hard disk emulation support as invalid because the VM provides MFM hard disk emulation :-) Even emulated hardware need to keep up with technology.

Good news. Looks like newer sound drivers are coming to Qemu in 0.14 (Maverick has 0.12.5, but Natty has 0.14) that work with Windows 7.

http://wiki.qemu.org/ChangeLog/0.14

----------------------------------------
Sound

    * New Intel HD Audio support (commit), adding three new devices:
          o intel-hda: Intel HD Audio Controller, the PCI device.
          o hda-duplex: HDA Codec. Attaches to the HDA bus. Supports 16bit stereo, rates 16k -> 96k, playback, recording and volume control (with CONFIG_MIXEMU=y).
          o hda-output: HDA Codec without recording support. Subset of the hda-duplex codec. Use this if you don't want your guests access your mic.
    * Usage: add '-device intel-hda -device hda-duplex' to your command line.
    * Tested guests:
          o Linux works.
          o Win7 works.
          o DOS (mpxplay) works.
          o WinXP doesn't work.
----------------------------------------

hda is not supported in libvirt-bin under Natty :(

I finally found a driver for win7 64bit which is working with the ac97 sound card:
http://www.64bitdrivers.com/driver.php?id=1375

If you download the driver sk35558.exe and edit the inf file for the PCI IDs used by kvm it will install with a warning about unsigned code.
Add the following line to the [Conexant.NTamd64] Section in the file cp6308Ba.inf:

"%*WDM_AMCAUD.DeviceDesc%=WDM_AMCAUD,PCI\VEN_8086&DEV_2415&SUBSYS_00008086"

I think this helps to mitigates the issue till we update to a new version with hda sound support.

tforsman (tforsman) wrote :

This is supported, but within libvirt the model is called "ich6" not "hda".
(It is named after the chipset name, not the marketing name.)

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.