Jump to content

An attempt at getting Conexant HD Audio working


daviddl
 Share

40 posts in this topic

Recommended Posts

Although Conexant HDA is already working with the Azalia kext, there is no lineout/headphones which makes it pretty much useless.

I've been fiddling around with AppleHDA.kext, trying to get it work.

I booted Ubuntu, where the sound worked perfectly, and made a codec dump (attached). As AppleHDA Patcher barfed on this file, I attempted to patch AppleHDA myself going by Taruga's guide. I replaced the two Vendor ID codes in the AppleHDA binary using 0xED, and made an attempt to patch Info.plist.

 

However I was not very confident I was doing so correctly. I booted the system with this modified kext, and ALCinject.kext, with my headphones plugged in. Interestingly, there was a loud pop halfway through the OSX boot sequence, which hadn't happened before, and the red LED under the mute button came on

(HP dv9208TX laptop) which hasn't happened before in OSX either. However there was no sound or volume control at all.

 

I'd appreciate any advice at all, or suggestions on what to try. The part I was most unsure about was modifying Info.plist, as there is very little detail in the guide on this. I only included the values for the headphones output, and I'm not sure if this affected my results. If anyone could explain how to set up this file correctly, I'd greatly appreciate it.

 

I was also unsure of how to modify ALCinject.kext, or even if modifying it is necessary. I couldn't find any pertinant values in info.plist or Resources. I'd also appreciate any info on this.

CX20549.txt

Link to comment
Share on other sites

I followed Taruga's guide as well (I have the same soundcard as you). I had trouble modifying the appleHDA binary since I couldn't find the values he listed (I was using 0xED). Perhaps I have a different version.

 

Any chance you're willing to share you're work?

Link to comment
Share on other sites

It would only be of use to you if you have exactly the same chip, ie. vendor ID = 0x14F1 and device ID = 0x5045 - you can check this in windows Device Manager under 'Hardware IDs', or make a codec dump under Linux. The code you have to replace in the AppleHDA binary is 'backwards', ie. the last byte (2 hex characters) is at the start and the second to last comes second etc.

 

So 0x14f15045 becomes 0x4550f114

 

So, in 0xED, search for 8508ec10 (remember to set the find dialog to Hex mode),

and replace it with 4550f114 (if that's what your device ID is) (note that it's a combination of the vendor and device values reported by windows device manager).

Note that you have to replace it twice.

 

Disclaimer: Doing the above wont get your sound working! But hopefully it's a step in the right direction.

 

Hope that helps, and good luck, be sure to post back if you discover anything potentially useful.

Link to comment
Share on other sites

This is exactly where I got stuck, too. From what I know the only one who could tell us how to go on from here is Taruga, but he seems to be busy coding his own generic Intel HDA driver for Mac OS x86 ..

Link to comment
Share on other sites

Seems I was working with an already modified AppleHDA kext. Got one off my new Kalyway dvd and put in my ven and dev id with bytes reversed.

 

I get the same results, pop at startup but no sound.

 

I don't know if we need to modify ACLinject. From the little I understand, it seems that it forces AppleHDA to load a certain layout-id, which points to a certain pathmap (whatever that means) Mine is set to layout-id 12, which points to pathmap 9 according to Taruga's guide.

 

Perhaps taking a look at the linux ALSA module, snd-intel-hda, might give some insight.

 

Hope I can get this working--everything but the sound works great on my install.

Link to comment
Share on other sites

This is exactly where I got stuck, too. From what I know the only one who could tell us how to go on from here is Taruga, but he seems to be busy coding his own generic Intel HDA driver for Mac OS x86 ..

 

Do you have this from a reputable source? If this is indeed the case, and he hasn't just vanished, it could be the solution to our problems.

 

In the meantime I guess we just have to wait until someone knowledgeable gives us some pointers. I experimented a bit more this morning, and got a 'pop' from my internal speakers instead of the headphones (or perhaps I imagined it), but made no real progress.

 

Seems I was working with an already modified AppleHDA kext. Got one off my new Kalyway dvd and put in my ven and dev id with bytes reversed.

 

I get the same results, pop at startup but no sound.

 

I don't know if we need to modify ACLinject. From the little I understand, it seems that it forces AppleHDA to load a certain layout-id, which points to a certain pathmap (whatever that means) Mine is set to layout-id 12, which points to pathmap 9 according to Taruga's guide.

 

Perhaps taking a look at the linux ALSA module, snd-intel-hda, might give some insight.

 

Hope I can get this working--everything but the sound works great on my install.

 

Same here, it's the only thing preventing me using OSX full time.

How does ALCInject specify which pathmap/layout to load? I presume these refer to the xml files in AppleHDA's resources. I experimented a little with Taruga's patcher, and I don't think it modifies the xml files, just Info.plist. I also discovered it can't be fooled by switching the Device IDs from my codec dump with a supported ID, it completely ignores the rest of the dump, so the Nodes for each card must be hardcoded by Taruga.

Link to comment
Share on other sites

Do you have this from a reputable source?
from Taruga himself. But it would be of no use at all to pester him with this! I don't even know if he has started with his driver yet. Let alone if he could succeed anytime soon to finish it, and if all Conexant (Waikiki, Venice etc. pp) variants will or can be supported. So we can just wait, or anyone with quite some time can follow macdanger's AppleHDA working Guide to adapt! His guide seems like the guarant to get sound working, but as it looks like one needs to spare a weekend for it ..
Link to comment
Share on other sites

Thanks for this link. It explains how ALCInject works, which is very useful. Also, since we're already getting the 'crack' from our speakers at boot, it seems that, according to his guide that all that's left to do is get the layout and pathmap working, based on the codec dump (From my brief search of conexant's site it doesn't look like they provide this information to the public.)

However I don't have time to do this at the moment, I might give it a try in a few weeks if noone else gets it working before then.

Link to comment
Share on other sites

So I took a few minutes and tried using ALCinject to try different layout-id's, thinking I might get different results. With all the one's I tried (I tried about 12) I get the same pop. (I'm certain the pop comes from the internal speakers since I have no headphones connected) It sounds like the same sound I get when the ALSA modules load on my linux install.

 

Macdanger from the link above didn't get the "rice krispies" sound until he used the one specific layout-id, so I don't know where that leaves us.

Link to comment
Share on other sites

it seems that, according to his guide that all that's left to do is get the layout and pathmap working, based on the codec dump (From my brief search of conexant's site it doesn't look like they provide this information to the public.)
First thing to try is to simply send them an email to technical@conexant.com asking them for the Layout-IDs and property pages (and anything else which is necessary) for their Waikiki and Venice drivers :) . Just tell them you are trying to code a driver for FreeBSD and you are already quite far, getting a "pop" out if the internal speakers :)
Link to comment
Share on other sites

So I took a few minutes and tried using ALCinject to try different layout-id's, thinking I might get different results. With all the one's I tried (I tried about 12) I get the same pop. (I'm certain the pop comes from the internal speakers since I have no headphones connected) It sounds like the same sound I get when the ALSA modules load on my linux install.

 

Macdanger from the link above didn't get the "rice krispies" sound until he used the one specific layout-id, so I don't know where that leaves us.

 

But he did use a different version of AppleHDA.kext (1.3.3)

I tried with this version (available here: http://www.apple.com/support/downloads/aud...ate2007001.html - don't install it, just view package contents, find Archive.pax.gz and extracts it, creates a folder on your desktop with the .kext) and couldn't find the realtek 882 ID taruga used in his guide, so instead used the sigmatel ID macdanger used (replace 3 times). I didn't get to the layout-ID part - it seems like a massive task.

Link to comment
Share on other sites

So followed macdanger's guide to the dot (I used the same version kext, 1.3.3). I modified the applehda binary as well the controller plist. I then used ALCinject to inject every SINGLE layout-id listed in the AppleHDA plist (this stopped seeming like a good idea around the 8th restart), hoping to get some different results.

 

Well, I get the same results every time. I get a pop from the internal speakers (as well as headphones if they are connected) and the mute button turns red (like daviddl reported) but no audio device is detected. I used IORegistryExplorer to verify that the layout-id's were being injected.

 

Not sure where to go from here. I might simply grab one of those USB sound dongles in the meantime.

Link to comment
Share on other sites

Macdanger:

I copied the Pathmap of LayoutID 52 (pathmap 18) to a new pathmap 19 and pointed the Layout 52 to it. Then I did some trial and error and used Taruga's Guide and my linux codec#0 dump to add more and more parts of the codec.

 

Did you try this part? I had a go, with no results.

These are the nodeIDs I used in the order they appear in the .plist file.

It's interesting that the headphones and speakers use the same mixer and output, with the other codecs in the plist they all seem to have different values for speakers and headphones.

Edit: Note that these values are quite possibly incorrect.

CodecID - 351359045
speaker - x10 x17 x19 = 16 23 25
HP - x11 x17 x19 = 17 23 25

Link to comment
Share on other sites

Yep, I tried that a few days ago when BugsBunny first posted the link to macdanger's guide. No luck here either.

 

I tried to take a look at the FreeBSD driver, thinking I might learn something but the source is only available as a series of patches. (128 patches to be exact! It'd be quite a feat to correctly apply a few dozen patches, forget about 128.)

 

When I have some more free time I'll take a look at the ALSA driver, but I'm not familiar with the ALSA api so it might be more trouble than it's worth.

 

Maybe we can get a hint from Taruga.

Link to comment
Share on other sites

well im thoroughly confused with my hardware... windows device manager claims i have the conexant hda 5045 device while linux claims i have an nvidia hda 055c device... mac agrees with the 055c part but i can't seem to get the azalia driver to find it... even after sticking 0x10deffff into the vendor list... ioreg claims its an AZA0 device but never loads the kext and never attaches it....

 

	| |   +-o AZA0@7  <class IOPCIDevice, registered, matched, active, busy 0, retain count 7>
| |   |   {
| |   |	 "IODeviceMemory" = (({"address"=18446744073546498048,"length"=16384}))
| |   |	 "device-id" = <5c050000>
| |   |	 "name" = "pci10de,55c"
| |   |	 "acpi-path" = "IOACPIPlane:/_SB/PCI0@0/AZA0@70000"
| |   |	 "IOName" = "pci10de,55c"
| |   |	 "vendor-id" = <de100000>
| |   |	 "revision-id" = <a1000000>
| |   |	 "IOPCIResourced" = Yes
| |   |	 "subsystem-vendor-id" = <3c100000>
| |   |	 "Power Management private data" = "{ this object = 022c3e80, interested driver = 022c3e80, driverDesire = 0, deviceDesire = 0$
| |   |	 "IOInterruptControllers" = ("io-apic-0")
| |   |	 "Power Management protected data" = "{ theNumberOfPowerStates = 3, version 1, power state 0 = { capabilityFlags 00000000, out$
| |   |	 "acpi-reg" = <00380000>
| |   |	 "class-code" = <00030400>
| |   |	 "compatible" = <"pci103c,30cf","pci10de,55c","pciclass,040300">
| |   |	 "assigned-addresses" = <1038008200000000000048f60000000000400000>
| |   |	 "subsystem-id" = <cf300000>
| |   |	 "reg" = <0038000000000000000000000000000000000000103800020000000000000000000000000040
000>
| |   |	 "IOInterruptSpecifiers" = (<1500000007000000>)
| |   |   }

Link to comment
Share on other sites

128 patches! seems like an odd way to distribute code...

Anyway, here's the (most AFAIK) relevant file from ALSA:

http://hg-mirror.alsa-project.org/alsa-ker...atch_conexant.c

The interesting part (for those with the Venice chip) starts at line 442.

static hda_nid_t cxt5045_dac_nids[1] = { 0x19 };
static hda_nid_t cxt5045_adc_nids[1] = { 0x1a };

spec->hp_present = snd_hda_codec_read(codec, 0x11, 0,
		 AC_VERB_GET_PIN_SENSE, 0) & 0x80000000;
bits = (spec->hp_present || !spec->cur_eapd) ? HDA_AMP_MUTE : 0; 
snd_hda_codec_amp_stereo(codec, 0x10, HDA_OUTPUT, 0,
		 HDA_AMP_MUTE, bits);

 

I wonder if AppleHDA has the ability to mute the internal speakers when the headphones are connected... of course I'd be happy with just headphones working.

Link to comment
Share on other sites

I would try manually loading azaliaaudio to see where it burps. (AppleHDA BTW gives zero useful information from doing this, possible because we force it to load)

 

So win is reporting your dev_id as 5045? is your ven_id 14f1? That info should be straight from the controller and shouldn't change from os to os.

 

Not sure we're the bunch to help you. I've started using osx86 about two weeks ago, so I know little (I've been running gentoo for three years now, but it's proven a nightmare to keep a stable system without staying in the dark ages. and win at work ocasionally, of course) This whole plist business is alien to me.

 

@daviddl

 

yeah, i noticed that earlier too. it looks like all the intel hda codecs do the speaker muting in software, so it's probably supported in AppleHDA. For some reason though, the conexant codecs each have a different section implementing it.

 

I gotta tell you, that stuff if way above my head. I've done my fair share of coding but not at the IO level. Those guys are a different breed :-)

Link to comment
Share on other sites

yeah it claims its 14f1/5045, and linux/mac claim its 10de/055c.... of course i have a vista laptop with xp running on it which took quite a bit of time to get running properly... the installation of the sound was particularly interesting... i had to install the realtek hda driver for windows to recognize the HDA device and then the conexant drivers took over from there....

Link to comment
Share on other sites

Hello guys,

 

I don't know if my mac experience would be of any benefit in this topic, but I did found this discussion while searching a way to figure out how to make my Intel HDA Conexant microphone to work as i need it for skype :(

 

I have a Compaq Presario V3205TU with Uphuck's Mac OSX86 10.4.9 v1.4i r2 installed (Triple booted with Vista and Ubuntu) and got the sound-out working, including ethernet LAN. Unfortunately no input/mic and built-in Intel 3945abg wireless (yet) for me.

 

I don't know much about anything discussed here, but I do noticed alot of people are still having trouble configuring their sound-out work while I have it working out-of-the-box (in a sense) after successfully installed uphuck Mac.

 

So I thought maybe I could help out by giving out some .kext or sumthing, or anything. Let me know what I can help.

 

Thanks for a great thread.

 

Cheers!

Link to comment
Share on other sites

do you have headphone output also? if so, what conexant codec do you have (venice, waikiki,...)?

 

We have the internal speaker working using the apple azalia audio kext. We're trying to get it to work under AppleHDA with full functionality. However, I would be happy (well, happier) with headphone output.

 

 

BTW, i purchased one of those cheap usb audio dongles. It works plug and play, but the volume is stuck at full. Only software volume controls work. It's still a working solution. YMMV with the different ebay vendors. Some dongles do support volume control it seems, depeding on the pin config on the board. Still working up the courage to resolder the pins into the config I want.

Link to comment
Share on other sites

  • 2 weeks later...

Hey,

 

I hope it is okay to post this here, I've ran out of ideas and need some help from some pros. I had my conextant hd audio working in my toshiba satellite p105-26064 laptop great. Headphone out and speakers worked great, no problem. I was not worried about my line in so that was not a problem for me. I upgraded my BIOS to fix a few bugs and then I noticed my USB did not work correct, so I downgraded back to where I was. Now my audio does not work. And honestly, I cannot remember if my audio worked when my BIOS was the newer version or not because I was so worried about getting my USB to work. Whenever I install the Azalia Audio driver it shows up fine just like it used to, but I do not get any sound. It is the strangest thing, it's like it recognizes that it is there but my hardware is not getting initialized. Any help you could offer would be great!

 

Thanks,

 

Geiman

Link to comment
Share on other sites

I have been working on this issue for a long time as well without success. My ToH 10.5 installation has sound after I installed Azalia, but I can't get the headphone to work. I follow Taruga's guide. Got the Linux codec dump, edited the AppleHDA Info.plist. Altough I am not sure if I am editing it correctly as I am rather confused with the plist. Can anyone tell me or send me the kext if it is working? Mine machine is a Compaq C571NR laptop, Conexant 14f1 5045

Link to comment
Share on other sites

Hello everybody,

 

I try Leo on my Toshiba P100-253 and it works. But I prefer Tiger...

 

On Leo there's a detection of my waikiki conexant audio chipset but it does not work on the control panel.

 

If this help, I can tell you what are the reference under Leo.

 

And i hope the day, where tiger is fully fonctionnal because I prefer Tiger over Windows.

 

Bye...

Link to comment
Share on other sites

 Share

×
×
  • Create New...