An age old question.
Well, though the best answer is "Go to the wiki or other hardware compatilbility lists", that answer isn't necessarily complete. You can follow some basic guidelines to experiment yourself.
First of all, there is one thing you must know before we continue: the devices in your computer all have a 4-character vendor ID and a 4-character device ID, which together form a PCI ID. The vendor ID is the ID of the manufacturer, and the device ID is the ID of the exact device. How do you find this? See this FAQ.
Processor: Intel processors are the best, particularly any Intel Core (such as Core 2 duo, Core i5, etc.) or an Intel Xeon. Why these processors, and not other Intel or AMD CPUs? Simply because Intel Core and Intel Xeon CPUs are inside Macs. This doesn't mean other CPUs won't work; it just means you need to use a different kernel than Apple's bundled kernel. (If you're wondering, the kernel is the middleman; think of it this way, the operating system and software talks to the kernel, and the kernel talks to the hardware in the computer.)
Controller: This is what manages your data that goes to and from your hard drives and DVD drives, be it SATA or IDE. See this FAQ for more info.
I/O ports: This includes all your data ports such as USB. Details for each I/O is listed below.
USB 2.0: Most of the time USB 2.0 ports are detected right away. If not, (it occasionally happens with some Snow Leopard installations), you can find what's called a rollback kext; that is, a USB driver from an older version of Mac OS X.
FireWire 400 & 800 (1394a and 1394b): From what I know, there are not very many issues with FireWire that I've seen. If there are problems, I believe the solution is the same as USB 2.0 problems.
eSATA: eSATA ports are actually connected to your data controller, so controller solutions fix eSATA.
USB 3.0: USB 3.0 can be a little interesting. Mac OS X can support USB 3.0 (there are USB 3.0 Mac PCIe cards available), and there are several (experimental) drivers available around here and other communities, but as I haven't worked with USB 3.0 I can't offer any definite solutions.
Memory Card Readers: These work differently depending on how the reader is connected (check in Device Manager to see how your card reader is connected). If it is connected via internal USB, then all you need to do is get USB working. If your card reader is PCMCIA, there are other solutions, but they are a little more complex. If it's something else, well...you'll have to find a solution.
PC card/ExpressCard slots (for laptops): I personally have not worked with these, but I believe some PC and ExpressCard slots can be made working through custom drivers.
PCI and PCIe (and AGP with older machines):You don't need to worry about these; isn't that great? Just make sure your expansions cards are Mac-compatible.
Networking: This includes wired (a.k.a. Ethernet), wireless (a.k.a. WiFi), and Bluetooth network (Internet) connections.
Ethernet: There are many Ethernet enablers for many vendors, including Marvell, Broadcom, VIA, Intel, Atheros, and a host of others. Many times it is a simple as getting a driver (remember those are called kexts ) and adding your Ethernet's PCI ID into the driver, known as patching the kext. For info on patching see this FAQ.
WiFi: This is a little more tricky if it is internal (be it desktop or laptop). For internal cards, if you want the little AirPort icon up in the menu bar, you must have a Broadcom (vendor ID 14e4) or Atheros (vendor ID 168c) based WiFi card. An occasional Ralink card may work (not likely, though), Intel cards may work, and I've heard about Realtek success, but you won't have the AirPort icon in the menu bar...plus, even in laptops, WiFi cards are easy to replace. Just look for a Broadcom or Atheros based card (if you like, you can check compatibility for OS X; the worst that could happen is you'd have to patch IO80211Family.kext and insert your IDs like described in the FAQ above), and throw it in! Want the best buy? Get an authentic AirPort card!! Desktop users, you aren't left out; there are many Broadcom and Atheros based PCI and PCIe cards, not to mention a Mini-PCie to PCIe x1 adapter if you want to use a real AirPort card. Of course any Mac-compatible USB stick will work, too.
Bluetooth: I don't believe there are many issues with Bluetooth. Worse comes to worse, there are very cheap Mac-compatible Bluetooth USB sticks.
Audio: There are basically two types of audio cards (in modern computers): AC'97 (abbreviation for Audio Codec '97), and HDA (abbreviation for High Definition Audio).
AC'97: There is an AC'97 kernel extension (called AppleAC97Audio.kext) that covers most (if not all) AC'97 cards. If it doesn't provide audio for your AC'97 codec, you can modify the driver with your PCI ID (I described the method above with Ethernet). For an AC'97 Creative SoundBlaster, you can try kXAudio.
HDA: There are three ways to enable HDA audio: you can patch AppleHDA (Apple's built-in driver) and patch DSDT (this is the hardest way to enable audio), you can use VoodooHDA (this is the most user-friendly way to get all audio ports working), or you can use AppleAzaliaAudio.kext (this should probably be a last resort because it is 32-bit and only enables stereo audio). If VoodooHDA and AppleAzaliaAudio don't work right away, use the PCI ID insertion method above. For more info on VoodooHDA troubleshooting, check out this topic. If these don't work for your HDA Creative SoundBlaster, try kXaudio.
Graphics: This is by far the toughest and most essential element for running Mac OS. As a rule of thumb, nVidia are the easiest cards to enable, and you can basically enable any nVidia card to work with OS X. ATi cards are a real pain, as only a few work, and are hit or miss. Intel cards are fairly easy to enable, but there are a very limited amount of built-in Intel chips that work. Now for methods: The easiest way is to use the bootloader's built in GraphicsEnabler feature; graphics cards that are supported by default in Apple's drivers will be enabled. This method is the only one used for Intel GMA/HD Graphics chips. For ATi, you can insert your PCI ID in the appropriate driver and try GraphicsEnabler, or try ATY_Init, Natit, or EVOEnabler. However, usually only ATi cards that are in Apple's driver work; even if you try inserting your PCI ID in the driver, there are very few times that it will work. For nVidia, you can insert your PCI ID in the appropriate driver, use GFX strings (EFI strings), and use enablers such as NVEnabler, NVInject, Titan, and many others. With nVidia, almost any card (even if you have to insert the ID) will work properly.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users