Jump to content

AppleALC — dynamic AppleHDA patching


vit9696
5,390 posts in this topic

Recommended Posts

exactly it could reduce time , but still few things you still have to do manually
 
 old vs new both seems fine 
1629821599_ScreenShot2019-02-10at12_42_51PM.thumb.png.dbc8a4f73f42844702b9627c912573d9.png
 
 
 
your codec_dump is strange no mic nodes there 
 
 
Yes, it's from acer swift 3. Dumped from Linux Ubuntu

Sent from my Mi Note 2 using Tapatalk

Link to comment
Share on other sites

6 hours ago, Andres ZeroCross said:

@vit9696 i can confirm with Lilu.kext 1.3.3 + AppleALC 1.3.5 with all available layoutiD Release version Audio for ALC256 is stop working,, Then i replace with Lilu.kext 1.3.1 + AppleALC.kext 1.3.4 then audio is back. But i can't give you the log. Because i Remote the Notebook with Anydesk, it's so complicated

@rottenpants maybe your case is same like this. Try to use Lilu.kext 1.3.1 + AppleALC.kext 1.3.4. Then upload your IOREG.

 

Tried 2 different combinations: ALC 1.3.4 + Lilu 1.3.1 and ALC 1.3.4 + Lilu 1.3.3 but same results no sound :( 

 

 

IOReg.ioreg

Link to comment
Share on other sites

 
Tried 2 different combinations: ALC 1.3.4 + Lilu 1.3.1 and ALC 1.3.4 + Lilu 1.3.3 but same results no sound  
 
 
IOReg.ioreg
It's interesting. Can you send me Whatsapp??? I will help you. Send me private message in +6281398934647 with whatsapp

Sent from my Mi Note 2 using Tapatalk

Link to comment
Share on other sites

6 hours ago, insanelyDeepak said:

thank you these changes were neccessary and missing in old pinconfigurator app so i was doing all manually 

 

really we need only the "verbs" that are changed

so

Configdata=01471E10 01871EA0 01871F91 01971E81 01470C02

will work with almost any Realtek ALC :)

Link to comment
Share on other sites

On 2/8/2019 at 10:51 PM, Andres ZeroCross said:

Use this config.plist, replace the old ones.. Then use this AppleALC.kext and replace the old ones. 

Reboot and check your internal mic, and upload your IOREG Output

config.plist

AppleALC.kext.zip

 

I confirm that now the internal mic works! Thank you!

 

Here is new IOREG

 

 

p40yoga_feb10.ioreg.zip

Link to comment
Share on other sites

38 minutes ago, Rodion2010 said:

what exactly? maybe we can include these to auto-fix in the future?

for now everything is good , actually i was doing whole stuff manually by using codecgraph + verbit + graphviz it require alot time but this could save alot time 

 

for future update you can add combojack detection , for most new laptops it needs to configure 

in codec_dump you will find 

 Headset Mic=0x19   
 Headphone Mic=0x1a

include it as Line-In same method only one microphone could exist 

 

Headphone Mic = combojack port 

Headset Mic    = Line-In port  (extra external mic port)

 

 

Edited by insanelyDeepak
  • Like 1
Link to comment
Share on other sites

3 minutes ago, insanelyDeepak said:

for future update you can add combojack detection , for most new laptops it needs to configure 

in codec_dump you will find 


 Headset Mic=0x19   
 Headphone Mic=0x1a

include it as Line-In same method only microphone could exist 

 

Headphone Mic = combojack port 

Headset Mic    = Line-In port  (extra external mic port)

 Can you give me a codec_dump that shows an example of the above and the correct verb output and I can try to implement it.

  • Like 1
Link to comment
Share on other sites

@headkaze final feature if you add generating codec_dump_dec.txt.svg  as codecgraph does, then it will be full fledge codec configurator 

 

   

also you add option to export text file like verbs.txt , so it will easy compare if app fails sometimes

 


Verbs from Linux Codec Dump File: codec_dump.txt

Codec: Realtek ALC256   Address: 0   DevID: 283902550 (0x10ec0256)

   Jack   Color  Description                  Node     PinDefault             Original Verbs
--------------------------------------------------------------------------------------------------------
Unknown Unknown  Line Out at Ext N/A         18 0x12   0x40000000   01271c00 01271d00 01271e00 01271f40
    1/8   Black  Speaker at Ext Rear         19 0x13   0x411111f0   01371cf0 01371d11 01371e11 01371f41
 Analog    Grey  Speaker at Int N/A          20 0x14   0x90172120   01471c20 01471d21 01471e17 01471f90
    1/8   Black  Speaker at Ext Rear         24 0x18   0x411111f0   01871cf0 01871d11 01871e11 01871f41
    1/8   Black  Speaker at Ext Rear         25 0x19   0x411111f0   01971cf0 01971d11 01971e11 01971f41
    1/8   Black  Speaker at Ext Rear         26 0x1a   0x411111f0   01a71cf0 01a71d11 01a71e11 01a71f41
 Speaker at Ext Rear    0x1b 0x1b                        1091637744 01b71cf0 01b71d11     01b71e11 01b71f41  
    DIN UNKNOWN  Digital Out at Ext N/A      29 0x1d   0x4058ba2d   01d71c2d 01d71dba 01d71e58 01d71f40
    1/8   Black  Speaker at Ext Rear         30 0x1e   0x411111f0   01e71cf0 01e71d11 01e71e11 01e71f41
    1/8   Black  HP Out at Ext Front         33 0x21   0x02211010   02171c10 02171d10 02171e21 02171f02
--------------------------------------------------------------------------------------------------------


   Jack   Color  Description                  Node     PinDefault             Modified Verbs
--------------------------------------------------------------------------------------------------------
Unknown Unknown  Line Out at Ext N/A         18 0x12   0x40000000   01271c00 01271d00 01271e00 01271f40
 Analog    Grey  Speaker at Int N/A          20 0x14   0x90172120   01471c20 01471d20 01471e17 01471f90
    DIN UNKNOWN  Digital Out at Ext N/A      29 0x1d   0x4058ba2d   01d71c30 01d71db0 01d71e58 01d71f40
    1/8   Black  HP Out at Ext Front         33 0x21   0x02211010   02171c40 02171d10 02171e21 02171f01
--------------------------------------------------------------------------------------------------------

 

Edited by insanelyDeepak
  • Like 2
Link to comment
Share on other sites

7 minutes ago, insanelyDeepak said:

 

for future update you can add combojack detection , for most new laptops it needs to configure 

 

 

 

it is very interesting about ComboJack but I have no that kind of Notebook to test

does VoodooHDA dumps include any info about ComboJack? or just Mic and HeadPhones?

 

and maybe we need to add IOMux parameter to layout* to enable bidirectional "audioport" and detectdelegate to platform* to make it work like MacBook

 

  • Like 1
Link to comment
Share on other sites

4 minutes ago, Rodion2010 said:

it is very interesting about ComboJack but I have no that kind of Notebook to test

does VoodooHDA dumps include any info about ComboJack? or just Mic and HeadPhones?

 

and maybe we need to add IOMux parameter to layout* to enable bidirectional "audioport" and detectdelegate to platform* to make it work like MacBook

 

i still remember my macmini has headphone (combojack) and seperate mic (external mic also it shows same in input section) 

so yes we can do it 

 

Quote

does VoodooHDA dumps include any info about ComboJack? or just Mic and HeadPhones?

i stop using voodoo long years ago it failed for me many times 

 

 

Edited by insanelyDeepak
  • Like 1
Link to comment
Share on other sites

6 minutes ago, Rodion2010 said:

292246877_2019-02-1015_45_31.png.32c0c6d797b3d37968555ca923c83499.png

 

here is a picture from your dump

can you provide more detailed info - where ComboJack need to be inserted? 

1009746604_2019-02-1015_48_06.png.63ee59f04e40270dce9ca74382f0307b.png

 

this way? please provide a working sample

thanks

 

yes all good , but you need to enable disable device e.g Headphone Mic 1a

 

check this config data : ALC298 

<01771c10 01771d00 01771e17 01771f90 01271c20 01271d00 01271ea0 01271f90 02171c30 02171d10 02171e2b 02171f02 01871c40 01871d10 01871e8b 01871f02 01870c02 01470c02 02170c02>

 

 

Edited by insanelyDeepak
  • Like 1
Link to comment
Share on other sites

10 minutes ago, insanelyDeepak said:

i stop using voodoo long years ago it failed for me many times 

 

 

I used dumps from voodoo because it is faster, do you think linux dumps are better and more exact?

btw there is a way to get dump from efi-shell

https://github.com/Goldfish64/AudioPkg/tree/master/Application/HdaCodecDump

no voodoo, no linux :)

 

sample dump attached

dump_all.txt.zip

from dump

68483305_2019-02-1015_59_36.thumb.png.bfcee0e4170fd88054d16ab01a4692fd.png

 

fixed

1633347143_2019-02-1016_00_06.thumb.png.5c18f744c76dc057fedc6b8ebdd21cc5.png

 

works perfectly :)

Digital Other are HDMI and must be deleted from here

  • Like 1
Link to comment
Share on other sites

9 minutes ago, Rodion2010 said:

I used dumps from voodoo because it is faster, do you think linux dumps are better and more exact?

btw there is a way to get dump from efi-shell

https://github.com/Goldfish64/AudioPkg/tree/master/Application/HdaCodecDump

no voodoo, no linux :)

 

sample dump attached

dump_all.txt.zip

actually i prefer linux bcoz that vooodoo wasn't good and it don't detect most of your devices and static noise so many other things 

 

it looks voodoo is good now as you prefer 

 

Quote

 

yeah found AudioDXE just updated clover yesterday , it's interesting 

 

it would be great if clover implement codec dump like ACPI

@Rodion2010 

 

Quote

but you need to enable disable device e.g Headphone Mic 1a

 

you can skip enabling disabled device bcoz for most of codec only sending custom command using hda-verb is enough 

 

Edited by insanelyDeepak
  • Like 1
Link to comment
Share on other sites

13 minutes ago, Rodion2010 said:

I used dumps from voodoo because it is faster, do you think linux dumps are better and more exact?

btw there is a way to get dump from efi-shell

https://github.com/Goldfish64/AudioPkg/tree/master/Application/HdaCodecDump

no voodoo, no linux :)

 

sample dump attached

dump_all.txt.zip

from dump

 

fixed

 

works perfectly :)

Digital Other are HDMI and must be deleted from here

that's great 

 

i think you can add option to disable or remove digital outputs from HDMI dumps

  • Like 1
Link to comment
Share on other sites

34 minutes ago, insanelyDeepak said:

check this config data : ALC298 


<01771c10 01771d00 01771e17 01771f90 01271c20 01271d00 01271ea0 01271f90 02171c30 02171d10 02171e2b 02171f02 01871c40 01871d10 01871e8b 01871f02 01870c02 01470c02 02170c02>

 

1635435234_2019-02-1016_23_28.png.ad0b80552acf2341a1e4a0fb722a030f.png895132603_2019-02-1016_22_48.png.cb4f7925e8e73ce82efad464f408eade.png

its OK but how did you find 24=0x18 is an input in this example? or it is from some previous knowledge or codec datasheet, not from dump?

 

13 minutes ago, insanelyDeepak said:

that's great 

 

i think you can add option to disable or remove digital outputs from HDMI dumps

 

I think we have always remove HDMI, it is not related with analog codec config

Edited by Rodion2010
Link to comment
Share on other sites

24 minutes ago, insanelyDeepak said:

it would be great if clover implement codec dump like ACPI

I'll ask @Sherlocks if he can add this.

 

4 minutes ago, Rodion2010 said:

its OK but how did you find 0x24 is an input in this example? or it is from some previous knowledge or codec datasheet, not from dump?

This is what's confusing me. But I think the Headset Mic=0x19, Headphone Mic=0x1a he is referring to is the Nid. So in this one he's referring to 0x1a.

 

Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Control: name="Headphone Mic Boost Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Amp-In caps: ofs=0x00, nsteps=0x03, stepsize=0x27, mute=0
  Amp-In vals:  [0x00 0x00]
  Amp-Out caps: ofs=0x00, nsteps=0x00, stepsize=0x00, mute=1
  Amp-Out vals:  [0x80 0x80]
  Pincap 0x0001373c: IN OUT HP EAPD Detect
    Vref caps: HIZ 50 GRD 80 100
  EAPD 0x2: EAPD
  Pin Default 0x411111f0: [N/A] Speaker at Ext Rear
    Conn = 1/8, Color = Black
    DefAssociation = 0xf, Sequence = 0x0
    Misc = NO_PRESENCE
  Pin-ctls: 0x20: IN VREF_HIZ
  Unsolicited: tag=00, enabled=0
  Power states:  D0 D1 D2 D3 EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x0c* 0x0d

 

Since the Pin Default data is 0x411111f0 it's typically filtered out. So I need to know how to parse this Node and convert it.

  • Like 1
Link to comment
Share on other sites

1 hour ago, Andres ZeroCross said:

You're right,,, not all realtek use nodeid 18 :)

sure node numbers may vary

but the idea will be the same for any codec

for my AD1988b I get

<01271c10 01271d40 01271e11 01271f01 02471c11 02471d60 02471e11 02471f01 01671c12 01671d10 01671e11 01671f01 02571c14 02571d20 02571e11 02571f01 01771c20 01771d90 01771ea0 01771f91 01471c21 01471d90 01471e80 01471f02 01571c2e 01571d30 01571e81 01571f01 01171c30 01171d40 01171e21 01171f02 01371cf0 01371d10 01371e17 01371f51 01a71cf0 01a71d10 01a71ef7 01a71f91 01b71cf0 01b71df0 01b71e45 01b71f01>

from Pinconfigurator

but ConfigData I use 01271E10 01771EA0 01771F91 01471E80 and it is enough

 

  • Like 1
Link to comment
Share on other sites

9 minutes ago, headkaze said:

I'll ask @Sherlocks if he can add this.

 

This is what's confusing me. But I think the Headset Mic=0x19, Headphone Mic=0x1a he is referring to is the Nid. So in this one he's referring to 0x1a.

 

both seems to be very similar

Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In
  Control: name="Headset Mic Boost Volume", index=0, device=0

Node 0x1a [Pin Complex] wcaps 0x40058f: Stereo Amp-In Amp-Out
  Control: name="Headphone Mic Boost Volume", index=0, device=0

what is Headset and what is Headphone Mic?
    

Link to comment
Share on other sites

×
×
  • Create New...