Jump to content

Lord Kamina

Members
  • Content Count

    23
  • Joined

  • Last visited

Posts posted by Lord Kamina


  1. So... I know HWMonitor has a fan controlling module, which can be accessed by hovering over the fans on the list of sensors. I also know this dialog does not generally show on hackintosh. There is evidently something the program is looking for, and that something determines whether to show it or not.

     

    I'm trying to figure out what that check is... Anybody familiar with the HWMonitor code, that might give me a hand with this?.


  2. you will not be able to use the recovery partition with chameleon. i think you can with clover but i have no clover experience.

    Oh yeah, I'd forgotten about that. It's not important though, I just want it to be there so the OS components that require it will work.

     

    Guess I'll just go to sleep now.


  3. set your self up a test partition if possible and test on that. leave your current setup untouched just in case.

    Yeah either way I have Time machine backups and even an old SL partition I can use to fix fuck-ups.

     

    Still, I wanted to know whether there was anything I needed to know in order to tackle preemptively.

     

     

    P.S. I've still not made a proper recovery partition. I'm thinking I'll just do it after upgrading to Mavericks; or is there any reason for doing it now?


  4. Currently running 10.8.5 (build on my sig), hackintosh started on a different mobo with 10.6.8 on boot, eventually managed to change to my current build without much trouble (i.e. no clean install); skipped Lion entirely and have avoided Combo Updates like the plague except for first install (10.8.2 back then, I think)

     

    At present, pretty much everything is working perfectly (except for I haven't bothered to check if iMessages is working and I haven't got a Recovery partition; will try the method on some other topic around when I'm bored)

     

    Was just wondering if there was anything special I needed to worry about when upgrading to Mavericks?

     

    My main concern here would be Audio since I have a fairly non-standard setup. I never could get my revision of ALC887 to be properly recognized by AppleHDA so I'm using VoodooHDA alongside AppleHDA (modded and patched to only work with the HDMI audio and leave the onboard alone)


  5. DISCLAIMER:I have made this guide for people using ATI/AMD GPUs because that is what I have, because as-far-as-I-know AMD uses only one audio codec and because it's what I've tried and know, works. Still, the principle should be just as valid for NVIDIA or even Intel HD cards.

     

     

    My Build:


    • [*:27ud9cd4]Motherboard: Asus P5G41T-M LX PLUS
      [*:27ud9cd4]CPU: Intel E7400, overclocked @ 3.37GHz
      [*:27ud9cd4]Memory: 4GB Ram DDR3 1333
      [*:27ud9cd4]Ethernet: Realtek RTL8169
      [*:27ud9cd4]Audio Codec: ALC887-VD
      [*:27ud9cd4]Graphics: XFX Radeon HD 5570 1GB DDR3
      [*:27ud9cd4]OS: Mountain Lion 10.8.2

     

    I bought this Asus board a couple months ago and mostly it works very well. Now, when I bought it I looked at the audio codec but I didn't search for actual user experiences getting it to work (my mistake) and to my surprise, upon getting home I quickly realized that AppleHDA and my board just weren't the best of buddies.

     

    Flash-forward a couple of weeks and I'm resigned to using VoodooHDA. Now, VoodooHDA doesn't make friends with my HDMI audio so I have to choose between AppleHDA and HDMI or Voodoo and on-board and frankly, that sucks.

     

    The solution? Use both at the same time!

     

    Now, usually this will result in a kernel panic. Why? Because by default both these kexts try to match devices by their PCI-Class and logically end-up trying to take control of the same devices and that's not good.

     

    But, with a few minor edits it's possible to have them both coexist peacefully.

     

    Normally, AppleHDA(AppleHDA.kext/Contents/Plugins/AppleHDAController/Contents/Info.plist) will have these lines near the bottom:

     

    IOClass
    AppleHDAController
    IOPCIClassMatch
    0x04020000&0xFFFE0000
    IOProviderClass
    IOPCIDevice
    

     

    And VoodooHDA.kext/Contents/Info.plist will have these:

     

    IOClass
    VoodooHDADevice
    IOPCIClassMatch
    0x04020000&0xFFFE0000
    IOProviderClass
    IOPCIDevice
    

     

    See the similarity?

     

    Now, if instead you change them to the following (note, the actual values might and probably will change depending on your actual on-board codec and GPU)

     

    IOClass

    AppleHDAController

    IOPCIPrimaryMatch/key>

    0xaa601002 (0x1002:aa60 is the PCI Vendor ID for my Radeon's HDMI device, you can check these by using "System Info.app")

    IOProviderClass

    IOPCIDevice

     

    And

     

    IOClass

    VoodooHDADevice

    IOPCIPrimaryMatch

    0x27d88086 (0x8086:27d8 is the PCI Vendor ID for my on-board ALC887 device, you can check these by using "System Info.app")

    IOProviderClass

    IOPCIDevice

     

    Now Voodoo will know to try and match only your on-board audio and AppleHDA will know to try and match only your GPU's audio.

     

    Clearly, you're not yet quite done. For this to work, you will need more-or-less the same DSDT edits you would use to enable HDMI audio normally (and if you're using an AMD card like me, you need to be sure your Framebuffer is correct, which I won't go into now)

     

    The only departure from the tried-and-true DSDT edit for AMD cards is the following (I'm not entirely sure it is needed but I did it this way and it worked)

     

    You must add the layout-id that normally goes in the HDEF section to the HDAU section, like this:

     

    Device (HDAU)

    {

    Name (_ADR, One)

    Method (_DSM, 4, NotSerialized)

    {

    Store (Package (0×04)

    {

    “hda-gfxâ€,

    Buffer (0x0A)

    {

    “onboard-1″

    },

    "layout-id",

    Buffer (0x04)

    {

    0x01, 0x00, 0x00, 0x00

    }

    }, Local0)

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

    Return (Local0)

    }

    }

     

    Once all that is done, you need to edit AppleHDA proper:

     

    Since Mountain Lion supports ATI HDMI audio OOB, you only need to change the layout/pathmap to suit your card. You will find numerous tutorials explaining in details how to do that. For now, what I did was use layout id: 1 and defined it thus:

     

    <?xml version="1.0" encoding="UTF-8"?>

    LayoutID

    1

    PathMapRef

    CodecID

    268610049 (My Radeon's codec ID in decimal, should be the same for all ATI/AMD cards)

    HDMI

    Outputs

    HDMI

    PathMapID

    268610049 (Following Apple's example on a layout that included an Nvidia HDMI audio, I used the Device ID as the PathMapID, the actual number is mostly irrelevant as long as it matches Platforms.xml though)

     

    And then in Platforms.xml, I did this:

     

    PathMaps

    PathMap

    NodeID

    3

    NodeID

    2

    PathMapID

    268610049 See? Same ID

     

    The Node IDs I just get from a codec dump of my HDMI card done in Linux.

     

    After all this was done, I deleted all other layouts and Pathmaps (left the DSP section alone, though) and compressed those XMLs again using zlib.pl, just ran MyFix, rebooted and all was working as expected.

     


    • [*:27ud9cd4]System Info:
    http://olarila.com/forum/viewtopic.php?f=6&t=63
    [*:27ud9cd4]How to modify your DSDT to add your ATI/AMD GPU: http://rampagedev.wordpress.com/2012/07 ... dsdt-36-2/
    [*:27ud9cd4]zlib.pl: http://www.olarila.com/forum/viewtopic.php?f=27&t=1702

     

    I am attaching both my own modified AppleHDA (done as per the instructions here, the binary itself is intact, I just messed with the Info.plists, pathmaps and whatnot) and my IORegistry so you can have fun with it:

    AppleHDA_HDMI.kext.zip

    Tiamat_Voodoo_AppleHDA.ioreg.zip


  6. I am using VoodooHDA because AppleHDA didn't work either (I'll see if I can find an older IOReg with AppleHDA; with it, even the TV's brand was recognized in the Output options but there was still no sound) and Voodoo at least works with my onboard audio (which AppleHDA didn't)

     

    Edit: Here. I suppose I could have gotten the Framebuffer wrong that time but I don't think it's likely.

    dsdt_onboard-1_Tiamat.ioreg.zip


  7. I personally always suggest gigabyte mainboard and msi gpu, i have had almost universal success with them.

     

    My last straw with ASUS came with an 8600GT that caught fire while my computer was idle in the middle of the night, and nearly burned my apartment down. Then they refused to even replace the component - gigabyte replaced the mainboard in that system despite knowing that the GPU was at fault... So I will forever be loyal to gigabyte, and ironically they have consistently produced the best hackintosh-able boards.

     

    Perhaps you can find some winblows gamer who will be willing to buy that from you - say 'barely used, perfect condition, only selling because it's not compatible with OS X'. I'm sure someone will buy it.

     

    Yeah but I'm stuck with the local supply here in Chile. I could have always ordered something from overseas I guess, but it would have taken too long to get here.


  8. See my reply to this issue here: viewtopic.php?f=6&t=601&p=1995#p1995

     

    I have seen this happen many times to people with XFX cards over the years, I have rarely seen it solved if you are one of the unlucky ones with one of the GPU's that just won't work.

     

    Yeah, that kind of sucks... :/

     

    And I actually did a research before buying my current motherboard and GPU (but I never thought Asus ALC887 specifically and XFX 5570 had issues...) I guess I know better for next time, assuming next time I won't have enough to say "Screw this, I'll just get a Macbook Pro."

     

    Anyway, you know what makes it worse? That if I'd waited a month, I would have gotten the MSI 5770 for the same price I paid, that's the problem with buying "old-ish" hardware.


  9. So as I have spammed and spewed all over the internet, I have been consistently sucking at choosing my hardware (somehow managing to get hardware that works except FOR THAT ONE VERSION _I_ GOT) and there's something that just sort of occurred to me regarding my 5570...

     

    Is there any way to actually modify how the cad connects to its ports? Can the encoder/transmitter be modified in the card's BIOS or something like that? Or are all those things inherent to the physical connections on it? Would it, for example, be possible to flash one GPU with the BIOS for the same GPU but by another manufacturer? Would that change anything, would it be the same?


  10. I should probably add that my card IS injected on my DSDT. Both with VooooHDA and AppleHDA (back when I hadn't resigned to it not working), I am able to select HDMI under the Sound Devices (even detects the name of the display, at least with AppleHDA) but there's no audio coming through. What I'm not sure about is the fact that Audio/MIDI set-up wouldn't allow me to choose "encoded digital audio" (don't know if that is required though, I was trying it with a stereo mp3 anyway, going as simple as I could to make sure it worked or not), whenever I chose that option, the output would change from HDMI to something else.

     

    And yes, I get proper video output through the port. (except for the hot-plugging thing I described above but I think that's practically an ubiquitous issue)

     

    For reference, here's the relevant section of my DSDT:

     

    In _SB\PCI0\

     

    Device (PEGP)
               {
                   Name (_ADR, 0x00010000)
                   Method (_PRW, 0, NotSerialized)
                   {
                       Return (GPRW (0x09, 0x04))
                   }
                   Method (_PRT, 0, NotSerialized)
                   {
                       If (PICM)
                       {
                           Return (AR02)
                       }
                       Return (PR02)
                   }
                   Device (GFX0)
                   {
                       Name (_ADR, Zero)
                       Name (_SUN, One)
                       Method (_DSM, 4, NotSerialized)
                       {
                           Store (Package (0x0C)
                               {
                                   "@0,name", 
                                   Buffer (0x0B)
                                   {
                                       "ATY,Baboon"
                                   }, 
                                   "@1,name", 
                                   Buffer (0x0B)
                                   {
                                       "ATY,Baboon"
                                   }, 
                                   "@2,name", 
                                   Buffer (0x0B)
                                   {
                                       "ATY,Baboon"
                                   }, 
                                   "@3,name", 
                                   Buffer (0x0B)
                                   {
                                       "ATY,Baboon"
                                   }, 
                                   "model", 
                                   Buffer (0x13)
                                   {
                                       "ATI Radeon HD 5570"
                                   }, 
                                   "hda-gfx", 
                                   Buffer (0x0A)
                                   {
                                       "onboard-1"
                                   }
                               }, Local0)
                           DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                           Return (Local0)
                       }
                   }
                   Device (HDAU)
                   {
                       Name (_ADR, One)
                       Method (_DSM, 4, NotSerialized)
                       {
                           Store (Package (0x02)
                               {
                                   "hda-gfx", 
                                   Buffer (0x0A)
                                   {
                                       "onboard-1"
                                   }
                               }, Local0)
                           DTGP (Arg0, Arg1, Arg2, Arg3, RefOf (Local0))
                           Return (Local0)
                       }
                   }
               }
    


  11. 1) I made my own framebuffer for this card (mixing up instructions from pretty much everywhere plus much trial and error, ended up with a Baboon (nothing but the name really) with working VGA, DVI and HDMI. The only caveats, HDMI hotplugging not working (the other ports work fine.) I know the HDMI hotplugging is a bit of an issue; still, is there a way to get that to work as of now?

     

    And 2) I just resigned to using VoodooHDA since no matter the amount of torture I submitted AppleHDA to, I just couldn't coax it into giving away a single sound. It's currently working fine with my onboard audio (Asus ALC-887VD, rev. 100302) and after an edit to the Info.plist my HDMI port shows under the Audio Outputs. It is not producing any sound when I select it though, might any of you be able to help me with this?

     

    My framebuffer:

     

    0000000: 0400 0000 1400 0000 0001 0000 0112 0101  ................
    0000010: 0008 0000 0002 0000 0001 0000 1204 0505  ................
    0000020: 1000 0000 1000 0000 0000 0000 1010 0404  ................
    

     

    My connector info

    ATOM BIOS Rom: 
    SubsystemVendorID: 0x1682 SubsystemID: 0x3059
    IOBaseAddress: 0xd000
    Filename: 557ZHLE2.BIN
    BIOS Bootup Message: 
    REDWOOD C02101 DDR3 128MX8                                                  
    
    PCI ID: 1002:68d9
    Connector at index 0
    Type [@offset 44338]: HDMI-A (11)
    Encoder [@offset 44342]: INTERNAL_UNIPHY2 (0x21)
    i2cid [@offset 44422]: 0x94, OSX senseid: 0x5
    Connector at index 1
    Type [@offset 44348]: DVI-I (2)
    Encoder [@offset 44352]: INTERNAL_UNIPHY1 (0x20)
    i2cid [@offset 44459]: 0x90, OSX senseid: 0x1
    Connector at index 2
    Type [@offset 44358]: DVI-I (2)
    Encoder [@offset 44362]: INTERNAL_KLDSCP_DAC1 (0x15)
    i2cid [@offset 44459]: 0x90, OSX senseid: 0x1
    Connector at index 3
    Type [@offset 44368]: VGA (1)
    Encoder [@offset 44372]: INTERNAL_KLDSCP_DAC2 (0x16)
    i2cid [@offset 44486]: 0x93, OSX senseid: 0x4
    

     

    IOReg included as attachment.

    Tiamat.ioreg.zip


  12. Wrong layout ID or using the wrong AppleHDA. There are two different versions of ALC887.

     

    But, why? What did you find backing that?

     

    My codec is ALC887-VD, on Address 0. Does the layout number really matter? I used what the kext had for default and then manually edited both the layout to make sure it fitted with what I've really got and did the same for the pin configs and path maps.

     

    Wouldn't a wrong layout/kext make all devices disappear? Not, for example, if I open an audio application while IOregistryExplorer is open, it will be updated with a new IOAudioClient (or IOHDAClient, can't remember the proper name...) meaning the system IS recognizing the audio, and it does try to output sounds through the appropriate ports (seeing as I only get the clicking/popping noise if I select the actual port onto which the headphones are plugged in)

     

    P.S. I just attached my codec dump (from Ubuntu) and the codecgraph generated out of that dump.

    P.S.2. Hmm, if you said it because of the whole "layout-id: c" and "layout-id" Unicode("c") in the DSDT... I fell for it at the beginning too, but it appears to be one of IASL's compiling optimizations and mac apparently translates it to "99" wherever it actually matters.

    card0-codec#0.txt

    card0-codec#0.txt.svg.zip


  13. Hello!

     

    I've been trying to get this audio to work properly for a few weeks now, so far unsuccessfully.

    Here's where I'm at: I've edited my DSDT properly, I dumped my codecs and got my verbs, I tried to patch my own AppleHDA (but I failed miserably :lol:, so instead I downloaded one of two 10.8.2 ALC887 AppleHDA.kexts found on osx86.net, though I only replaced the binary, since I had already edited my layout and pathmaps and pin configs)

     

    With that, I boot and get a single sound assertion from AppleHDAController (I've noticed a few others triggered under specific circumstances: trying to change the sample rate or bit-depth in the Audio/MIDI Setup, for example) but otherwise AppleHDA appears to load properly.

     

    My IOReg shows AppleHDA and all its components loaded, it shows several HDAStreams, etc etc.

    In devices, I can see a Line-in, Speakers, a Line-Out and a Digital Out.

     

    If I connect my headphones to the appropriate port and try changing the output volume I get a single, relatively loud "POP" and then nothing. So, it happens the first time a sound would be output through the phones after being plugged in, basically.

     

    And I have tried editing everything I can think off, with no success. Either I break it and the Devices stop showing or just nothing changes.

     

    Attached are the a screenshot , the DSDT I'm using and the IORegistry. So far, the only "weird" thing I've been able to notice is under "AppleHDADriver", the "PowerProfile" has "CurrentPowerLevel", "IdlePowerLevel" and "MaxPowerLimit" all set to 0x0. I have no idea if this is at all related but from the symptoms it seems to me like it could be a power issue?

     

    If not, maybe someone else will have a better answer?

    Archive.zip

    post-2205-13826558086309_thumb.jpg

×
×
  • Create New...