Wednesday, July 16, 2008

New Experimental AudioHD Driver

I've just posted the latest experimental version of the OpenSolaris audiohd driver. This driver includes the latest work from the engineers in Beijing, including a widget parser that enables the driver to work on a much larger variety of audio configurations.

As most motherboards these days ship with an audiohd compliant device, this should greatly expand the support for audio on Solaris systems.

The above driver binary also includes suspend/resume support.

Note that this is not the anticipated Open Sound System driver, but rather an extension of the pre-existing Sun driver. It won't work with OSS. However, there is some chance (I've not tested it myself) that this will even work on Solaris 10.

A webrev of the changes should be posted soon.

In the meantime, if you want to give this a whirl, let me know the results. (To test it, just copy the binary objects into /kernel/drv/amd64/ or /kernel/drv and reboot. -- Yes there are ways to do this without a reboot, but the caveats are too many to list here.)

We're interested in any problem reports, as well as notification of hardware configurations where this either did or did not work. Thanks!

[ update 10/13/2008: I've changed the link to the files list so that readers can find the latest version posted up on the site ]

21 comments:

xRaich[o]²x said...

Hi,

I tested you driver on my laptop. Hardware is:

pci bus 0x0000 cardnum 0x1b function 0x00: vendor 0x8086 device 0x27d8
Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller

Audio didn't work before and doesn't work with the new driver.

dmesg give me the following output when greping for audio

Jul 17 12:47:00 tensaiga audiosup: [ID 291527 kern.warning] WARNING: audiohd0: unsupported HD codec: vid=0x10573055, rev=0x00100700
Jul 17 12:47:00 tensaiga audiosup: [ID 909512 kern.warning] WARNING: audiohd0: unsupported HD codec: vid=0x10ec0861, rev=0x00100300
Jul 17 12:47:00 tensaiga audiosup: [ID 493330 kern.warning] WARNING: audiohd0: audiohd_attach() couldn't create codec
Jul 17 12:47:13 tensaiga audiosup: [ID 291527 kern.warning] WARNING: audiohd0: unsupported HD codec: vid=0x10573055, rev=0x00100700
Jul 17 12:47:13 tensaiga audiosup: [ID 909512 kern.warning] WARNING: audiohd0: unsupported HD codec: vid=0x10ec0861, rev=0x00100300
Jul 17 12:47:13 tensaiga audiosup: [ID 493330 kern.warning] WARNING: audiohd0: audiohd_attach() couldn't create codec

Regards,
Björn

xRaich[o]²x said...
This comment has been removed by a blog administrator.
Garrett D'Amore said...

This sort of looks like you might not be using the new driver. Can you please verify that you have copied the new binaries into /kernel/drv/amd64/ and /kernel/drv ... and that you have rebooted with the new driver?

xRaich[o]²x said...

I only copied the audiohd to /kernel/drv but not to /kernel/drv/amd64 since I'm using 32-Bit. Yes I did a reboot and I didn't install OSS btw.

dme said...

My Thinkpad T60 now works, thanks!

It says:
Jul 18 13:07:19 tp audiohd: [ID 294501 kern.notice] NOTICE: Intel HD audio PCI 0x78 is: 0x6
Jul 18 13:07:19 tp audiohd: [ID 123783 kern.notice] NOTICE: Cannot no-snoop, ok
Jul 18 13:07:19 tp audiohd: [ID 550065 kern.notice] NOTICE: power=0x0, is ok
Jul 18 13:07:19 tp audiohd: [ID 829518 kern.notice] NOTICE: BAR0 pci reg 0x10 = 0xee400004
Jul 18 13:07:19 tp audiohd: [ID 833715 kern.notice] NOTICE: bar1 pci reg 0x14 = 0x0
Jul 18 13:07:19 tp audiohd: [ID 901379 kern.notice] NOTICE: pci reg 0x40 = 0x3
Jul 18 13:07:19 tp audiohd: [ID 578956 kern.notice] NOTICE: pci reg 0x50 = 0xc8426001
Jul 18 13:07:19 tp audiohd: [ID 449975 kern.notice] NOTICE: pci reg 0x54 = 0x0
Jul 18 13:07:19 tp audiohd: [ID 194031 kern.notice] NOTICE: GCAP = 0x4401
Jul 18 13:07:19 tp audiohd: [ID 723211 kern.notice] NOTICE: in reset_controller: mask is 0x3
Jul 18 13:07:19 tp audiosup: [ID 758380 kern.info] NOTICE: audiohd0: codec 0: vid=0x11d41981, sid=0x00000000, rev=0x00100200
Jul 18 13:07:19 tp audiohd: [ID 405778 kern.notice] NOTICE: audiohd: get a beep widget
Jul 18 13:07:19 tp pseudo: [ID 129642 kern.info] pseudo-device: ramdisk1024
Jul 18 13:07:19 tp genunix: [ID 936769 kern.info] ramdisk1024 is /pseudo/ramdisk@1024
Jul 18 13:07:19 tp audiosup: [ID 974567 kern.notice] NOTICE: audiohd0: audiohd:SPDIF-OUT found!
Jul 18 13:07:19 tp unix: [ID 954099 kern.info] NOTICE: IRQ17 is being shared by drivers with different interrupt levels.
Jul 18 13:07:19 tp This may result in reduced system performance.
Jul 18 13:07:19 tp npe: [ID 236367 kern.info] PCI Express-device: pci17aa,2010@1b, audiohd0
Jul 18 13:07:19 tp genunix: [ID 936769 kern.info] audiohd0 is /pci@0,0/pci17aa,2010@1b
Jul 18 13:07:19 tp audiosup: [ID 601478 kern.notice] NOTICE: audiohd0: Attach finished successfully!

mahi said...

Hello,

I tried with the audiohd driver.and i got an error.
Aug 6 18:18:27 lap genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
Aug 6 18:18:27 lap genunix: [ID 826211 kern.notice] 'pci_config_put8'
Aug 6 18:18:27 lap genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
Aug 6 18:18:27 lap genunix: [ID 826211 kern.notice] 'pci_config_get8'
Aug 6 18:18:27 lap genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
Aug 6 18:18:27 lap genunix: [ID 826211 kern.notice] 'pci_config_put16'
Aug 6 18:18:27 lap genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
Aug 6 18:18:27 lap genunix: [ID 826211 kern.notice] 'pci_config_get16'
Aug 6 18:18:27 lap genunix: [ID 819705 kern.notice] /kernel/drv/audiohd: undefined symbol
Aug 6 18:18:27 lap genunix: [ID 826211 kern.notice] 'pci_config_get32'
Aug 6 18:18:27 lap genunix: [ID 472681 kern.notice] WARNING: mod_load: cannot load module 'audiohd'

Toby Richmond said...

Works OK with Intel 82801G HD controller on Acer Aspire 5310 Solaris 2008.05
Only issue is that using gnome volume control - volume is only audible at 75% level or higher, and playback options are confused - if you unclick built-in speaker, nothing happens (ie sound stays on). If you unclick line out, speakers mute. Line out and speaker options are switched - I guess that's why the volume is pretty low?

Christian said...

My Apple Mac mini Core 2 Duo is now recognized by the driver:

Aug 9 17:29:18 workstation audiohd: [ID 294501 kern.notice] NOTICE: Intel HD audio PCI 0x78 is: 0x7
Aug 9 17:29:18 workstation audiohd: [ID 123783 kern.notice] NOTICE: Cannot no-snoop, ok
Aug 9 17:29:18 workstation audiohd: [ID 550065 kern.notice] NOTICE: power=0x0, is ok
Aug 9 17:29:18 workstation audiohd: [ID 829518 kern.notice] NOTICE: BAR0 pci reg 0x10 = 0xd0440004
Aug 9 17:29:18 workstation audiohd: [ID 833715 kern.notice] NOTICE: bar1 pci reg 0x14 = 0x0
Aug 9 17:29:18 workstation audiohd: [ID 901379 kern.notice] NOTICE: pci reg 0x40 = 0x1
Aug 9 17:29:18 workstation audiohd: [ID 578956 kern.notice] NOTICE: pci reg 0x50 = 0xc8426001
Aug 9 17:29:18 workstation audiohd: [ID 449975 kern.notice] NOTICE: pci reg 0x54 = 0x0
Aug 9 17:29:18 workstation audiohd: [ID 194031 kern.notice] NOTICE: GCAP = 0x4401
Aug 9 17:29:18 workstation audiohd: [ID 723211 kern.notice] NOTICE: in reset_controller: mask is 0x1
Aug 9 17:29:18 workstation audiosup: [ID 244587 kern.info] NOTICE: audiohd0: codec 0: vid=0x83847680, sid=0x00000000, rev=0x00103601
Aug 9 17:29:18 workstation audiohd: [ID 405778 kern.notice] NOTICE: audiohd: get a beep widget
Aug 9 17:29:18 workstation audiosup: [ID 974567 kern.notice] NOTICE: audiohd0: audiohd:SPDIF-OUT found!
Aug 9 17:29:18 workstation audiosup: [ID 229082 kern.notice] NOTICE: audiohd0: audiohd:SPDIF-IN found!
Aug 9 17:29:18 workstation pcplusmp: [ID 803547 kern.info] pcplusmp: pci8086,27d8 (audiohd) instance 0 vector 0x16 ioapic 0x1 intin 0x16 is bound to cpu 0
Aug 9 17:29:18 workstation npe: [ID 236367 kern.info] PCI Express-device: pci8384,7680@1b, audiohd0
Aug 9 17:29:18 workstation genunix: [ID 936769 kern.info] audiohd0 is /pci@0,0/pci8384,7680@1b
Aug 9 17:29:18 workstation audiosup: [ID 601478 kern.notice] NOTICE: audiohd0: Attach finished successfully!

But when I attach normal headphones I can't hear any sounds from either of the two jacks.

gabojm said...

Great !!!

I installed on my laptop an Acer aspire 4520 with realtek hda, and it,s working ok. Thanks


# dmesg |grep hd
Sep 5 15:46:33 coresolaris audiosup: [ID 484724 kern.warning] WARNING: audiohd0: unsupported HD codec: vid=0x10ec0268, rev=0x00100003
Sep 5 15:46:33 coresolaris audiosup: [ID 347318 kern.warning] WARNING: audiohd0: unsupported HD codec: vid=0x11c11040, rev=0x00100200
Sep 5 15:46:33 coresolaris audiosup: [ID 493330 kern.warning] WARNING: audiohd0: audiohd_attach() couldn't create codec
Sep 5 17:07:16 coresolaris audiohd: [ID 194031 kern.notice] NOTICE: GCAP = 0x4401
Sep 5 17:07:16 coresolaris audiohd: [ID 723211 kern.notice] NOTICE: in reset_controller: mask is 0x3
Sep 5 17:07:16 coresolaris audiosup: [ID 629302 kern.info] NOTICE: audiohd0: codec 0: vid=0x10ec0268, sid=0x00000000, rev=0x00100003
Sep 5 17:07:16 coresolaris audiosup: [ID 974567 kern.notice] NOTICE: audiohd0: audiohd:SPDIF-OUT found!
Sep 5 17:07:16 coresolaris npe: [ID 236367 kern.info] PCI Express-device: pci1025,127@7, audiohd0
Sep 5 17:07:16 coresolaris genunix: [ID 936769 kern.info] audiohd0 is /pci@0,0/pci1025,127@7
Sep 5 17:07:16 coresolaris audiosup: [ID 601478 kern.notice] NOTICE: audiohd0: Attach finished successfully!

sebastian said...

Tested on IBM/Lenovo Thinkpad X60s and works perfectly. THANK YOU!

JV said...

Hi there,
The driver works well for me with an Intel 82801H (Toshiba Satellite A200-1Y0). Thanks!

charlie said...

I grabbed the latest 8-25 audiohd driver it appears to have configured my audio device. It shows up as being configured in the Device Driver Utility GUI as being configured. And, a dmesg | grep audiohd shows it is being loaded. But, like Christian mentioned on his Apple Mac mini, I don't hear anything on the built-in speakers or by connecting head phones. Looking forward to a solution which addresses the remaining issue(s). Keep up the great work!

nukem said...

Worked until I made an update. Now there is noway to keep the audio running. What can I do?

Oct 12 16:37:21 opensolaris audiosup: [ID 878919 kern.warning] WARNING: audiohd0: unsupported HD codec: vid=0x14f15051, rev=0x00100000
Oct 12 16:37:21 opensolaris audiosup: [ID 493330 kern.warning] WARNING: audiohd0: audiohd_attach() couldn't create codec

Any hints for a noob? ;-)

Garrett D'Amore said...

charlie:
There has been newer versions of the driver released internally, and they should be integrated into b100 or b101. They may or may not fix our specific problem. I'll see if I can get a public downloadable binary in advance

nukem:
If you updated after you installed the audiohd driver, you might basically have undone the effect of an upgrade. You might need to reinstall. Alternatively, if you upgrade to a very recent (e.g. b99 or newer) build, then you might not need to worry about it.

Ixai said...

It works as in "I hear sounds", but there is some permanent hissing that just won't go away (not even muting audio) so I decided to stay audio-less for now.

laptop: Asus F8Sn
audio device: Intel Corporation 82810H (ICH8 Family) HD Audio Controller. [acording to the device driver utilty]

nukem said...

Garrett D'Amore:
Nono.
I Installed OS (think 086?), then audiodriver -> Sound :-)))
Update OS (098??!) -> No sound :-((
-> Install/copy the audiodriver -> still no sound >:-(((
Hmm, that´s making me wonder.

Ixai said...

I realised the link in here is not to the most recent driver, maybe it would be a good idea to point to the driver list instead of the outdated driver, I know you have more recent posts about that but this is the first one that appears on google when you search "audiohd opensolaris driver" or something like that. (add http://www.opensolaris.org/os/community/device_drivers/files/ as an update so everyone sees it)

with the driver from 25-08-08 everything works fine for me.

Garrett D'Amore said...

I just changed the URL to the master files list, so hopefully readers will pick up the right file now.

nukem said...

OK, added audiohd-2008-08-25. (Thanx for the link!!)
DeviceDriverUtility doesn't show errors anymore. But still silence on my speakers.
VolumeControl is disabled - by clicking it: GStreamer plugins missing.
Holy cow... I am a noob. WTF can I do more?
BTW: great blog!!

Garrett D'Amore said...

nukem: I'm not sure what is going on there, but I do know that even the 08/25 version of audiohd is a bit old. I've asked our internal folks to make a newer update available. Stay tuned.

Bruce said...

I recently installed OpenSolaris 0811 (snv_100a) with audiohd version pkg:/SUNWaudiohd@0.5.11,5.11-0.100:20081025T024558Z on my HP dv6700t (Penryn T9300 CPU, 4GB RAM, Intel 82801H (ICH8 Family) HD Audio Controller). Works fine booted 32 bit, but audiohd driver causes 64 bit boot to hang (remove audiohd line from /etc/name_to_major, updated boot archive and it boots; put that line back and update the archive and it hangs). Used to work fine in 64 bit in snv_96... Any ideas what's broken in 64 bit version of the driver (shouldn't hang forever no matter what!)