Jump to content

AppleALC — dynamic AppleHDA patching


vit9696
5,371 posts in this topic

Recommended Posts

Well, it could be related. 

 

In my case I'm not trying to use the mic that I know of. The issue is always there anyway. But maybe, because of incorrect verbs or other bad config, the mic IS enabled all the time. 

 

There is an easy way to test this. If it is this bug causing it, I should disable the internal mic altogether. And then there is no way there could be "input" that causes this bug.

 

I need a bulletproof method to disable the internal mic. Is deleting the Internal mic arrays in Layout and Pathmap enough? Or should I null the mic nodes in the codec verbs in AppleConfigHardwareDriver (spelling?) as well?

 

 

Edit: I tried it. Deleted Mic paths in Layout.xml. No longer have Input Devices in System Report. No Input in Syspref Audio Pane.

 

The problem is still here :( But now, entering Sys Pref -> Audio In will not solve it anymore. So at least this is proof that it was the mic that somehow made the problem go away.

SOLVED

 

The issue is solved. I'd like to thank everyone who was involved in this bug and tried to help me solve it.

 

After over 40 hours pure work of trial and error, kext patching and reading about AppleHDA, Intel HDA specifications, hda-verb commands, documentation and what not, it turned out that I had to switch from 24 bit output to 16 bit output in Audio/MIDI-settings under /Applications/. It was not related to my kext at all this entire time.

 

The weird part is that the codec is able to output 24bit fine when I have the mic enabled. But the reason for that and how to solve that... lol! I could not care less.

 

EDIT:

This means my codec is ready for implementation to AppleALC. The one already available for ALC236 with layout 11 did not work at all.

 

Codec: Realtek Generic

Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0236 283902518
Subsystem Id: 0x17aa389a
Revision Id: 0x100002
 

 

01271C10 01271D01 01271EA0 01271F90

01471C30 01471D01 01471E10 01471F90 01470C02
01971C20 01971D10 01971E81 01971F04
02171C40 02171D10 02171E21 02171F04 02170C02
 
Output:
0x14-> 0x02 , decimal 20->2
0x21-> 0x03, decimal 33->3
 
Input pathmap calc:
0x07-0x24 (Selector) - 0x12 (Int Mic)
0x08-0x23 (Mixer) - 0x18, 0x19 (Ext Mic), 0x1a 0x1b 0x1d 0x12 (Int Mic)
0x09-0x22 (Mixer) - 0x18, 0x19, (Ext Mic) 0x1a 0x1b 0x1d
 
7-36-18 / 18 36 7
8-35-18 / 18 35 8
9-34-25 / 25 34 9
  • Like 1
Link to comment
Share on other sites

@DroneFriend 

 

 

SOLVED

 

The issue is solved. I'd like to thank everyone who was involved in this bug and tried to help me solve it.

 

After over 40 hours pure work of trial and error, kext patching and reading about AppleHDA, Intel HDA specifications, hda-verb commands, documentation and what not, it turned out that I had to switch from 24 bit output to 16 bit output in Audio/MIDI-settings under /Applications/. It was not related to my kext at all this entire time.

 

The weird part is that the codec is able to output 24bit fine when I have the mic enabled. But the reason for that and how to solve that... lol! I could not care less.

 

EDIT:

This means my codec is ready for implementation to AppleALC. The one already available for ALC236 with layout 11 did not work at all.

 

Codec: Realtek Generic

Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0236 283902518
Subsystem Id: 0x17aa389a
Revision Id: 0x100002
 

 

01271C10 01271D01 01271EA0 01271F90

01471C30 01471D01 01471E10 01471F90 01470C02
01971C20 01971D10 01971E81 01971F04
02171C40 02171D10 02171E21 02171F04 02170C02
 
Output:
0x14-> 0x02 , decimal 20->2
0x21-> 0x03, decimal 33->3
 
Input pathmap calc:
0x07-0x24 (Selector) - 0x12 (Int Mic)
0x08-0x23 (Mixer) - 0x18, 0x19 (Ext Mic), 0x1a 0x1b 0x1d 0x12 (Int Mic)
0x09-0x22 (Mixer) - 0x18, 0x19, (Ext Mic) 0x1a 0x1b 0x1d
 
7-36-18 / 18 36 7
8-35-18 / 18 35 8
9-34-25 / 25 34 9

 

Can you help me with mine too? I can't make Mic Input to use too

Link to comment
Share on other sites

 

SOLVED

 

The issue is solved. I'd like to thank everyone who was involved in this bug and tried to help me solve it.

 

After over 40 hours pure work of trial and error, kext patching and reading about AppleHDA, Intel HDA specifications, hda-verb commands, documentation and what not, it turned out that I had to switch from 24 bit output to 16 bit output in Audio/MIDI-settings under /Applications/. It was not related to my kext at all this entire time.

 

The weird part is that the codec is able to output 24bit fine when I have the mic enabled. But the reason for that and how to solve that... lol! I could not care less.

 

EDIT:

This means my codec is ready for implementation to AppleALC. The one already available for ALC236 with layout 11 did not work at all.

 

Codec: Realtek Generic

Address: 0
AFG Function Id: 0x1 (unsol 1)
Vendor Id: 0x10ec0236 283902518
Subsystem Id: 0x17aa389a
Revision Id: 0x100002
 

 

01271C10 01271D01 01271EA0 01271F90

01471C30 01471D01 01471E10 01471F90 01470C02
01971C20 01971D10 01971E81 01971F04
02171C40 02171D10 02171E21 02171F04 02170C02
 
Output:
0x14-> 0x02 , decimal 20->2
0x21-> 0x03, decimal 33->3
 
Input pathmap calc:
0x07-0x24 (Selector) - 0x12 (Int Mic)
0x08-0x23 (Mixer) - 0x18, 0x19 (Ext Mic), 0x1a 0x1b 0x1d 0x12 (Int Mic)
0x09-0x22 (Mixer) - 0x18, 0x19, (Ext Mic) 0x1a 0x1b 0x1d
 
7-36-18 / 18 36 7
8-35-18 / 18 35 8
9-34-25 / 25 34 9

 

So my kext works but you have to change settings ?

Link to comment
Share on other sites

No input as in it appears in syspref > sound but nothing works or ? And does your headphone jack work ?

Internal speakers are recognised in syspref > sound but nothing else at all under input or output.

 

Is there any chance AppleALC with layout I'd 28 (0x1C) would be conflicting with HDMI audio?

Link to comment
Share on other sites

HIi, I'm using ALC with my hackintosh sierra and CX20751/2. The output works normally, but the input is detected without any sound.

PinConfigurations:

1040210120001790309081013010a1034000a090e0005628

 

Codecs Found: 1

HDA:

0 CodecAddress:0x0

VendorID: 0x14f1510f

RevisionID: 0x100100

CodecID: 351359247

Revision(dec):=1048832

Id=0x510f

Id(dec)=20751

Vendor=0x14f1

Vendor(dec)=5361

 

Provide Linux codec dump and ask for help vusun123. Since @Mirone has gone he is the only one who can help. So be patient. 

Link to comment
Share on other sites

Since @Mirone has gone he is the only one who can help.

Isn't the whole philosophy of 'open source' meant to prevent situations like this?

Maybe someone should document the process of extracting and adding an audio codec, then anyone could do it.

Link to comment
Share on other sites

Isn't the whole philosophy of 'open source' meant to prevent situations like this?

Maybe someone should document the process of extracting and adding an audio codec, then anyone could do it.

 

Resource extraction and editing are well documented. Don't know about english manuals but in russian there are tons of manuals. True specialist like @Mirone could make resources with closed eyes. So if someone don't want and don't have time to dig in this mess the only way is to ask somebody who know the process. By the way, i read this manuals several times and for now i can fix minor problems and i can't even make working resources for my ALC887 from the very beginning. Need practice but don't have time for it. So it's not that simple as it seems :)

  • Like 2
Link to comment
Share on other sites

Resource extraction and editing are well documented. Don't know about english manuals but in russian there are tons of manuals.

Could you point me to any? I wouldn't know what to search for in Russian.

 

Everything is difficult until you know the answer, then it's easy!

Like most things, it's not magic, just logic.

Link to comment
Share on other sites

Is there anyone that could help me with a Creative X-Fi Titanium Pro PCIE (Emu20k2 - SB0880)?

 

I've been trying to get anywhere for days but all I got is headaches.

I tried dumping my codecs in linux but this card doesnt have any codecs in /proc/asound/. (Although everything works perfectly fine in Linux, even the mic)

Even in the windows registry I couldn't find PinConfigOrerride for this card.

 

VoodooHDA gives me Rear Analog Out - but everything else doesnt work.

Now I'm using AppleALC + Lilu but I don't have any device available at all.

 

Is there anyone that got a similiar creative card to work? All I really need is SPDIF Grey - Microphone/Lineout Rear - Analog Out Rear.

Link to comment
Share on other sites

All pretty simple. I've combined various guides and resources, found the missing scripts from a few Russian guides and translated everything into English.

I've created a GitHub project for it here --> https://github.com/F0x1c/AppleALC_Instructions

Thank you this is definitely worth the bookmark.

However this tutorial fails for me like the others I've read already at Step 1.

My card doesn't seem to have any codecs in linux even though everything is working perfectly fine there. Maybe I'm looking at the wrong place?

fiuU3JF.jpg

card1 is my nvidia hdmi output

Link to comment
Share on other sites

try this with Linux:

cd ~/Desktop && mkdir CodecDump && for c in /proc/asound/card*/codec#*; do f="${c/\/*card/card}"; cat "$c" > CodecDump/${f//\//-}.txt; done && zip -r CodecDump.zip CodecDump
Link to comment
Share on other sites

 

try this with Linux:

cd ~/Desktop && mkdir CodecDump && for c in /proc/asound/card*/codec#*; do f="${c/\/*card/card}"; cat "$c" > CodecDump/${f//\//-}.txt; done && zip -r CodecDump.zip CodecDump

it only copied the codec from card1 (nvidia hdmi)

 

09: PCI 600.0: 0403 Audio device                                
  [Created at pci.378]
  Unique ID: vTuk.pLVyrDoIUU2
  Parent ID: 96M4.DbhaNTHmnH9
  SysFS ID: /devices/pci0000:00/0000:00:1c.6/0000:06:00.0
  SysFS BusID: 0000:06:00.0
  Hardware Class: sound
  Model: "Creative EMU20k2 [Sound Blaster X-Fi Titanium Series]"
  Vendor: pci 0x1102 "Creative Labs"
  Device: pci 0x000b "EMU20k2 [Sound Blaster X-Fi Titanium Series]"
  SubVendor: pci 0x1102 "Creative Labs"
  SubDevice: pci 0x0043 
  Revision: 0x04
  Driver: "snd_ctxfi"
  Driver Modules: "snd_ctxfi"
  Memory Range: 0xf4200000-0xf420ffff (rw,non-prefetchable)
  Memory Range: 0xf4000000-0xf41fffff (rw,non-prefetchable)
  Memory Range: 0xf0000000-0xf3ffffff (rw,non-prefetchable)
  IRQ: 18 (546 events)
  Module Alias: "pci:v00001102d0000000Bsv00001102sd00000043bc04sc03i00"
  Driver Info #0:
    Driver Status: snd_ctxfi is active
    Driver Activation Cmd: "modprobe snd_ctxfi"
  Config Status: cfg=new, avail=yes, need=no, active=unknown
  Attached to: #13 (PCI bridge)

thats the only "useful" thing I found with hwinfo

CodecDump.zip

Link to comment
Share on other sites

These are the commands I use for checking stuff in Ubuntu linux:

# change directory to a folder on an ntfs drive that is readable in macOS:
cd /media/joevt/Games/debugfs/Nvidia

# make a new directory for the current audio and video you want information about:
mkdir NvidiaDVI
cd NvidiaDVI

# get the sound info
sudo find /proc/asound -type f -exec echo {} \; -exec cat {} \; &> 'asound.txt'

# get some other info - for intel graphics, will include DPCD (DisplayPort Configuration Data)
sudo find /sys/kernel/debug -path *dri* -type f -exec echo {} \; -exec cat {} \; &> 'All.txt'

# get hdaudio info (not useful?)
sudo find /sys/kernel/debug -path *hdaudio* -type f -not -name access -not -name registers -not -name range -exec echo {} \; -exec cat {} \; &> 'hdaudio.txt'

# get video modes
xrandr > 'xrandr.txt'

# alsa is the sound driver in linux - alsa-info will get all the sound information
alsa-info.sh --output 'alsa-info.txt'
Maybe you can get some useful information using High Definition Audio (HD Audio) tool in Windows?

https://msdn.microsoft.com/en-us/library/windows/hardware/dn613936(v=vs.85).aspx

Link to comment
Share on other sites

Thanks Joe I'll check the tool out and try the alsa-info

edit: the windows tool cant find any audio device and here is what alsa-tools says:

http://www.alsa-project.org/db/?f=4b28764e814d1cd2cf860b7ad30b5ce3f5289404

Looks like Ubuntu is not using an HDA driver for the X-Fi. You could try disabling the snd_ctxfi module in Ubuntu, to see if it will load an HDA driver instead. Then see if it is able to output audio. I don't know if Ubuntu will give any more useful info than VoodooHDA already did for you ( http://www.insanelymac.com/forum/topic/314406-voodoohda-290/page-14?do=findComment&comment=2423790). Maybe the graphing options of the guide could be modified to use the nodes listing provided by VoodooHDA's getdump. Or you could graph it manually.

 

I think the snd_ctxfi driver is open source, so that might help solve some issues if you want to do some programming. VoodooHDA is also open source, so maybe you can fix Sound Blaster X-Fi support by modifying that.

Link to comment
Share on other sites

Looks like Ubuntu is not using an HDA driver for the X-Fi. You could try disabling the snd_ctxfi module in Ubuntu, to see if it will load an HDA driver instead. Then see if it is able to output audio. I don't know if Ubuntu will give any more useful info than VoodooHDA already did for you ( http://www.insanelymac.com/forum/topic/314406-voodoohda-290/page-14?do=findComment&comment=2423790). Maybe the graphing options of the guide could be modified to use the nodes listing provided by VoodooHDA's getdump. Or you could graph it manually.

 

I think the snd_ctxfi driver is open source, so that might help solve some issues if you want to do some programming. VoodooHDA is also open source, so maybe you can fix Sound Blaster X-Fi support by modifying that.

On module blacklisting Linux doesn't have any sound anymore. I've looked a bit through the sourcecode of the ctxfi driver but as a noob I'm not really sure what to look for but this seems like something (?):https://hastebin.com/ziseqeyufa.cs

 

I attached the ctxfi folder from the linux kernel source if anyone wants to look through it.

Interesting files seem to be:

- ct20k2reg.h 

Registers

- ctdaio.c

This file contains the implementation of Digital Audio Input Output resource management object.

- ctmixer.c

This file contains the implementation of alsa mixer device functions.

- ctmixer.h

This file contains the definition of the mixer device functions.

ctxfi.zip

Link to comment
Share on other sites

Hi, I'm trying to get sound working in Alienware 13 R3. It has an ALC298 that seems that is working for other people using AppleALC and layout-id 13. Setting that layout-id and using AppleALC I'm able to get the device detected, and the mic working, I also get a volume slider and the device appears in the system report. But whenever I try to play anything the app won't progress. It seems that the audio is unable to be streamed through the device, and just block the app. I've tried different output configurations (16bit, 24bit, 44100, 48000, etc) using the midi control app, but was unable to make it work. Also tried layout-ids 1, 2, 3 and 11 and with all of them I didn't get any device.

 

I'm in OSX 10.12.5, with AppleALC 1.1.1 and I'm injecting the layout id through DSDT patching (also tried through clover). Running the audio_codecdetect command I get: 

 

Onboard audio codec

Device: Not supported
Realtek: 0x10ec0298
Name: Realtek ALC298
Audio ID: Not supported
Current Audio ID: 13 (valid: 1, 2, or 3)
 
Any idea??
 
Thanks
Link to comment
Share on other sites

 

Hi, I'm trying to get sound working in Alienware 13 R3. It has an ALC298 that seems that is working for other people using AppleALC and layout-id 13. Setting that layout-id and using AppleALC I'm able to get the device detected, and the mic working, I also get a volume slider and the device appears in the system report. But whenever I try to play anything the app won't progress. It seems that the audio is unable to be streamed through the device, and just block the app. I've tried different output configurations (16bit, 24bit, 44100, 48000, etc) using the midi control app, but was unable to make it work. Also tried layout-ids 1, 2, 3 and 11 and with all of them I didn't get any device.

 

I'm in OSX 10.12.5, with AppleALC 1.1.1 and I'm injecting the layout id through DSDT patching (also tried through clover). Running the audio_codecdetect command I get:

 

Onboard audio codec

Device: Not supported

Realtek: 0x10ec0298

Name: Realtek ALC298

Audio ID: Not supported

Current Audio ID: 13 (valid: 1, 2, or 3)

 

Any idea??

 

Thanks

Kaby Lake?

 

If Yes, toleda has built some work around kext. Google it. Applies to Kaby Lake chipsets if I'm not mistaken.

 

If not Kaby lake then I dont know. Try and install latest CodecCommander from RehabMans bitbucket.

Link to comment
Share on other sites

Yes, I have Kaby Lake, but it isn't a 200 chipset. I've tried also with the fix for 200-series chipset with the same result (also the script with fail as it doesn't detect a 200-series mainboard). And yes I have Lilu in the same folder:

 

kextstat | grep -i lilu

   26    2 0xffffff7f833b7000 0x38000    0x38000    as.vit9696.Lilu (1.1.1) 68AA14C1-7F48-3786-91C0-9484956C55B3 <7 5 4 3 2 1>

I'll try the codeccommander and report back.
 
thanks
 
Edit: I've tried the ALC298 from https://github.com/insanelydeepak/Patched-AppleHDA-for-Mac-OS-Sierra-10.12and I get the exact same behavior that I get with AppleALC throught CLOVER.
 
Edit2: More info: the jack detection works, if I plug my headphones the output will change from Speakers to Headphones. I've also compiled the latest github (1.1.2) with the same results, and after reading through more wikis I also tried layout-id 28. Nothing changes. About the CodecCommander it seems that it is fixing issues after sleep, I have no sound even after a cold reboot.
Link to comment
Share on other sites

×
×
  • Create New...