Jump to content

Fully working legacy driver for ALC883 address 0 (Notebook)


coconup
 Share

106 posts in this topic

Recommended Posts

Alright, now everything's working and displayed correctly. No sound assertions at all under 10.5.6. You must put the kext in extra/extensions.mkext and patch your dsdt or inject the codec verbs in hdaenabler.

 

I changed the verbs to make every jack connection shown as combo, like in real macbooks. This didn't actually affect any functionality. If you prefer to have external stuff shown as 1/8 inch Jack, just change every 'B' with '1' in the verbs and in the pin configuration.

 

What's inside:

 

Internal Speakers and Headphones with autoswitch between them

 

Internal Mic recognized and working with noise reduction

 

Line In working with noise reduction as well

 

Autoswitch between Internal Mic and Line In

 

Digital Out working

 

No sound assertions at all

 

post-269722-1238162765_thumb.png

post-269722-1238162835_thumb.png

post-269722-1238162908_thumb.png

post-269722-1237997358_thumb.png

post-269722-1237997365_thumb.png

 

Kext: ALC883.zip

 

10.5.7 here: HDA.kext.zip

HDAEnabler: HDAEnabler.kext.zip

 

Verbs:

 

01471C40 01471D01 01471E10 01471F90 01571C50 01571D40 01571E2B 01571F01 01971C10 01971D01 01971EA0 01971F90 01871C20 01871D30 01871E8B 01871F01 01E71C60 01E71DE1 01E71E4B 01E71F01

 

DSDT:

 

			Device (HDEF)
			{
				Name (_ADR, 0x001B0000)
				OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)
				Field (HDAR, WordAcc, NoLock, Preserve)
				{
					DCKA,   1, 
							Offset (0x01), 
					DCKM,   1, 
						,   6, 
					DCKS,   1, 
							Offset (0x08), 
						,   15, 
					PMES,   1
				}	

				Method (_DSM, 4, NotSerialized)
				{
					Store (Package (0x08)
					{
						"codec-id",
						Buffer (0x04)
						{
						0x83, 0x08, 0xec, 0x10
						},

						"layout-id",
						Buffer (0x04)
						{
							0x73, 0x03, 0x00, 0x00
						},

						"device-type",
						Buffer (0x11)
						{
							"ALC883"
						},

						"PinConfigurations",
						Buffer (0x14)
						{
							/* 0000 */ 0x40, 0x01, 0x10, 0x90, 0x50, 0x40, 0x2b, 0x01, 
							/* 0008 */ 0x10, 0x01, 0xa0, 0x90, 0x20, 0x30, 0x8b, 0x01, 
							/* 0010 */ 0x60, 0xe1, 0x4b, 0x01
						} 

					}, Local0)
					DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
					Return (Local0)
					}

				Name (_PRW, Package (0x02)
				{
					0x0D, 
					0x04
				})
			}

Link to comment
Share on other sites

Congratulations, dude. what`s ur model of Hasee? I`m using F237R and the MB is GL960 which integrated with ALC883 address 1. No luck to get it working. Can you upload ur alc883 CAd 0 dump codec and ur modification instruction? That means a lot to me. I wanna do it by comparing to ur elegant work. :blink:

Link to comment
Share on other sites

I have an Asus laptop with a similar configuration (internal mic, internal speakers, external mic, headphones out, spdif out) and an ALC663 chipset. Is there anything you could do to help me get it up and running? I tried modding your kexts with my device id and even replaced the codec verbs with the ones vista gave me for my card (bit-flipped) but it is reading as an 883 chipset in the system profiler, and no device is showing up in my system prefs... If i gave you my codec dump and/or codec verbs do you think you could take a look? Thanks in advance! I hope to get my notebook working as well as you have yours!

ALC663_Mike.txt

ALC663_Pinout.txt

Link to comment
Share on other sites

well the 883 in system profiler is just cosmetic... don't worry about that. To get your card working the first thing you must do is to replace the pin configurations in platformdriver with the yours. I did everything just following the king's guide, the only thing I couldn't get to work was the internal mic and I finally made it as I described above. Also, if you just replace my verbs with yours in hdacontroller you should see everything in system profiler, if the verbs are correct.

 

These are my codec dumps, dec and hex:dumpfile.txt , ConvertedDumpfile.txt

 

The verbs I'm using are the ones above

 

PS my hasee is a wq280, I think it has an intel gm965 motherboard

Link to comment
Share on other sites

  • 3 weeks later...
I don't really know what I did but I finally have full audio in and out using legacy kexts on my hasee laptop (chipset intel gm965).

... I tried everything but I finally made it changing the Port Connectivity and Location values in the verbs (it was 99 and I put 00, see pin 19)

 

99 there is invalid, at least the last 9 is. Have you tried 90?

Link to comment
Share on other sites

  • 3 weeks later...

Update :) ...

 

I (partially) solved my problems. I own a Hasee WQ250, that is equivalent to a UNIWILL S20II (www.uniwill.com) and sold with various brands. With its bios that was version 1.04 your method didn't work. I was not able to find an updated bios for my laptop, it looks like HASEE gives it away requesting it directly (never replied to me...) and even on the uniwill site there is no bios available. I was able to download a bios for the ADVENT equivalent model and now the audio is perfectly working using your kexts, thanks.

 

The problem is that with this bios the fan is always running, even if at low speed, while with the old one the laptop was silent untill the fan was needed.

 

If someone can share a copy of its bios it would do me a favour, it's not exactly easy to backup the bios, it needs a DOS startup CD and the PHOENIX application for the BIOS but if you already done it you probably will be able to make a copy...

 

In any case thank you, audio out is working perfectly and the headphones work automatically with the jack in :P

 

I used PCEFI V9, system is running on 10.5.6 , I had no need to change APPLEHDA . I will make some tests...

Link to comment
Share on other sites

  • 3 weeks later...

hey, sorry for the late answer... I can't figure out how the bios could have anything to do with your audio... but have you tried injecting the hda values through dsdt? for me it made no difference than using hdaenabler, but dsdt essentially overrides your bios's values so I think it's worth a try. here's my modified dsdt (look under Device (HDEF): dsdt.txt

Link to comment
Share on other sites

Thank you very much

 

I've to learn more about DSDT , the Hasee Bios is far better than the one from ADVENT, at least on my laptop, but with the ADVENT bios I can have the audio working with your kexts.

 

If you've the time to do so, can you post a copy of your bios ?

 

Thanks

 

For reasons that I can't understand on each page that I've seen for this kind of laptop, the bios update is missing...

Link to comment
Share on other sites

I don't have a copy of my bios sorry, I just use the original one... however, if u use your original bios and override the dsdt it should work..

 

since we have almost the same laptop you could just try to put my dsdt in your root folder (/) since pciefi v9 supports it

Link to comment
Share on other sites

Hi coconup and thank for your replies

 

I'm not really into DSDT, btw I reloaded the old bios and the sound now works perfectly (I don't really know why it didn't before...) , I was already using your DSDT.

 

In any case, I don't know if your Hasee does the same, it runs much hotter than using XP or Vista. On a normal use on XP or Vista, like when I'm only reading an ebook, the fan never spins, with Leopard it's spinning almost all the time because the CPU is hotter. I've already tried all that is told to try on this forum, deleting kexts, replacing kexts, using voodoopower etc., but the result is the same. It also affect the battery duration, obviously.

 

If you've a good combination of kernel/kexts etc. for 10.5.6 let me know please, and thank you, your thread solved a lot of problems here...

 

Edit: I tried the new voodoo kernel, a complete disaster. I think to give up and go back Vista 64, my left hand burns if I use it near the fan...

Link to comment
Share on other sites

Hi coconup, thank you again for your replies.

 

Today I wanted to bump my head strongly on this hard wall.

 

First of all, your modified legacy kexts for audio work not only on alc883 but also on other alc-something audio, for example the one on my GA-P35-DSL3 wit alc888. I noticed it before because I had audio working on this laptop using the patcher from Taruga and a txt for alc883 on Gygabyte's motherboards. Good for me because finally I've all ports working on my desktop PC :unsure: .

 

I went for a vanilla installation with a release disk.

I was not able to make a proper boot132 disk for this laptop, I could never generate a DSDT without errors, so I unplugged the hard disk and attached it to my Desktop.

 

Installed everything and applied PCEFI, in the mkext I put your 2 kexts and AppleDecrypt

 

While I was upgrading with the combo to 10.5.6 I noticed that the sound went on on my Gygabyte mainboard (so this i why I said that the kexts works also on that one...)

 

BTW wen I restarted on 10.5.6 no audio at all, I replaced the kexts and applehda with yours for 10.5.6 but nothing.

 

So I think that there is something wrong just with 10.5.6

 

In any case no problem, 10.5.6 was already pissing me with its pile of incompatibility, so I made it again and applied the 10.5.5 upgrade instead.

 

With 10.5.5 you kexts are working great, I installed the voodoo kernel (working well) and voodopower (working well, not working on 10.5.6) and the fan starts less frequently than before.

 

The bios I'm using , 10.4 from Hasee stops the fan at all while the other one from Advent kept it running at low speed, that fun is very noisy, I'll see if I can change it with another model.

 

Well, thank you for your support. Things are going better now...

 

I'm going to learn something of pmset now...

Link to comment
Share on other sites

just updated the kext, now it gives only one sound assertion on boot:

 

23/03/2009 13:15:10 kernel Sound assertion "0 == fMikeyDriver" failed in "/SourceCache/AppleHDA/AppleHDA-162.1.37/AppleHDA/AppleHDADriver.cpp" at line 1063 goto handler

 

ideas?

Link to comment
Share on other sites

well, you've still got a different card than mine..

 

alright try this: ALC889.kext.zip

 

just to be sure you know how to use it: you must have pcefi v9 or some bootloader that supports the /extra folder, then you must put all your modified kexts in /extra/extensions.mkext (use mkexttool to pack them all together). If you put this kext in /extra/extensions folder it WON'T work. Then you must put the verbs and codec id (283,904,137) in hdaenabler or alternatively patch yout dsdt.

 

verbs

 

01471C40 01471D01 01471E10 01471F90 01571C50 01571D40 01571E2B 01571F01 01271C10 01271D01 01271EA0 01271F90 01871C20 01871D30 01871E8B 018F01 01E71C60 01E71DE1 01E71E4B 7101E71F01

 

dsdt

 

Device (HDEF)

{

Name (_ADR, 0x001B0000)

OperationRegion (HDAR, PCI_Config, 0x4C, 0x10)

Field (HDAR, WordAcc, NoLock, Preserve)

{

DCKA, 1,

Offset (0x01),

DCKM, 1,

, 6,

DCKS, 1,

Offset (0x08),

, 15,

PMES, 1

}

 

Method (_DSM, 4, NotSerialized)

{

Store (Package (0x08)

{

"codec-id",

Buffer (0x04)

{

0x89, 0x08, 0xec, 0x10

},

 

"layout-id",

Buffer (0x04)

{

0x73, 0x03, 0x00, 0x00

},

 

"device-type",

Buffer (0x11)

{

"ALC889"

},

 

"PinConfigurations",

Buffer (0x14)

{

/* 0000 */ 0x40, 0x01, 0x10, 0x90, 0x50, 0x40, 0x2b, 0x01,

/* 0008 */ 0x10, 0x01, 0xa0, 0x90, 0x20, 0x30, 0x8b, 0x01,

/* 0010 */ 0x60, 0xe1, 0x4b, 0x01

}

 

}, Local0)

DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))

Return (Local0)

}

 

Name (_PRW, Package (0x02)

{

0x0D,

0x04

})

}

Link to comment
Share on other sites

 Share

×
×
  • Create New...