Contribute
Register

Clarifying concepts - DSDT vs kexts

Status
Not open for further replies.
Joined
Jan 6, 2012
Messages
19
Motherboard
GA-Z77X-UD3H
CPU
i7 3770
Graphics
HD4000
Mac
  1. 0
Classic Mac
  1. 0
Mobile Phone
  1. 0
I am about to try my first OSX86, and have read a jillion guides and how-tos, gathered my hardware, and am more or less ready to start. But a couple of things still are not quite clear. Hoping someone can set me straight on a few conceptual points which will help me understand what I am doing.

1. I understand that the Mac OS normally won't run properly on hardware it wasn't specifically designed for. Kindly correct me if i am wrong, but it seems there are two fundamentally different ways to address the mismatch. Either a) you can get the bootloader to trick the OS kernel to load into RAM a customized DSDT.aml file from the boot drive, rather than grab the DSDT in the motherboard BIOS ROM as it normally would, or b) you put customized kexts (essentially drivers) into certain folders on the OS drive, and these kexts replace original Mac drivers so the OS can communicate with non-Apple hardware it otherwise would not know how to talk to.

My question here is whether either of these two alternatives can be used for all types of hardware components (network cards, display controllers, sound, etc.) or are there certain categories of hardware which can only be handled by kexts, others only in the DSDT?

Put another way, is it possible in theory to reconcile all hardware-OS compatibility problems in a customized DSDT, or alternatively can we solve all problems with kexts only, allowing the boot-up to simply use the mobo-supplied DSDT? Any other fundamental differences between these two approaches?

2. The second question sort of depends on the answer to the first. I have found online a DSDT for ML on my motherboard, but the version number is wrong. Looking at the specs for the two versions, the difference seems to be limited to the LAN and audio. Would I be better off using multibeast to install the almost-correct DSDT, and then add kexts (or later try to edit the DSDT) as needed, or should I forget about the almost correct DSDT and just try to get everything working with kexts only?
 
1. I understand that the Mac OS normally won't run properly on hardware it wasn't specifically designed for. Kindly correct me if i am wrong, but it seems there are two fundamentally different ways to address the mismatch. Either a) you can get the bootloader to trick the OS kernel to load into RAM a customized DSDT.aml file from the boot drive, rather than grab the DSDT in the motherboard BIOS ROM as it normally would, or b) you put customized kexts (essentially drivers) into certain folders on the OS drive, and these kexts replace original Mac drivers so the OS can communicate with non-Apple hardware it otherwise would not know how to talk to.

My question here is whether either of these two alternatives can be used for all types of hardware components (network cards, display controllers, sound, etc.) or are there certain categories of hardware which can only be handled by kexts, others only in the DSDT?

Put another way, is it possible in theory to reconcile all hardware-OS compatibility problems in a customized DSDT, or alternatively can we solve all problems with kexts only, allowing the boot-up to simply use the mobo-supplied DSDT? Any other fundamental differences between these two approaches?
Kexts vs DSDT is part an aesthetics thing and part necessity - some prefer to keep the OS as "vanilla" (nothing added to the Apple install at all) as possible and some couldn't care less, but find it a PITA to have to wait for a patched kext that works on the next version before they can update. Whether or not a kext is needed for things like audio or network depends on the hardware on the main board. If there is no "native" driver, i.e. it is not already present in an OS X kext, then a kext is necessary to add driver support for the device.
For some things, sleep especially, a DSDT is needed because there is no communication between the main board and OS X because OS X looks for certain things named a certain way and PC BIOSes rarely use the same names or initialise sleep the same way as Mac OS does.
2. The second question sort of depends on the answer to the first. I have found online a DSDT for ML on my motherboard, but the version number is wrong. Looking at the specs for the two versions, the difference seems to be limited to the LAN and audio. Would I be better off using multibeast to install the almost-correct DSDT, and then add kexts (or later try to edit the DSDT) as needed, or should I forget about the almost correct DSDT and just try to get everything working with kexts only?
You need to match board, board revision number and BIOS revision for best results (or even any results other than a KP).
Your best recourse is to extract a BIOS from your own board and patch it yourself. If you go to http://olarila.com/forum/index.php and register you can open the DSDT thread and download the patcher. Then you can look at the patches by motherboard thread and see if there is a "patch-kit" for your board, download it and use the patcher to apply it.
 
Status
Not open for further replies.
Back
Top