Linux on the Intel Mac Mini
My reasons for getting a Mac Mini had nothing to do with OS X or anything else Apple and Macintosh-like. It's a very nice piece of hardware and the bang-for-your-buck ratio is the best in that form factor. At least, it compares favorably to the two AOpen MiniPC models.
Particularly, I was hoping the Mini would make a nice Linux machine, and it certainly does. Almost all of the hardware works flawlessly. On the down side, there is no driver for the IR receiver presently (update: James McKenzie from the mactel-linux list created one), the suspend-to-RAM feature isn't all there, and the sound driver needs special support for Apple's custom mute hardware. The video works depending on how Linux is booted. When booting in BIOS mode -- a la Boot Camp -- the video works under Xorg using a beta i810 driver, and supports acceleration and custom resolutions. When booting in EFI mode using rEFIt and ELILO, the video only works in framebuffer mode and does not support resolution switching.
It's important to clarify here that Boot Camp does not enable PC BIOS boot mode on Intel Macs -- it merely depends on it. The magic that actually supports the BIOS mode boot process is part of the firmware update that Apple released about the same time as the Boot Camp beta. The firmware update is required for Boot Camp to work, but functions independently of Boot Camp. Without the firmware update, an Intel Mac will only boot in EFI mode from "blessed" HFS partitions. With the firmware update, the system will also enumerate disks with BIOS boot signatures and boot from them in BIOS mode. Boot Camp itself is an ~82MB download that contains two pieces: an assistant program for OS X that supports partitioning and boot selection, and a Windows driver CD image. That's all. However, it has become a buzz word symbolic of booting PC operating systems on a Mac.
The suspend-to-RAM problem may remain the most vexing. It works so smoothly on OS X and with OS X's automatic sleep and wake, it becomes difficult to tell if and when the machine actually goes to sleep. It would be nice if the process were so well supported under Linux and didn't cause the machine to get into unpleasant hung states.
The Mac Mini has Intel core logic. The audio is managed by its ICH7 "Azalia" HD audio controller in the southbridge. The controller's purpose is only to move bits around, the actual analog-to-digital and digital-to-analog conversion, and analog mixing is done in the codec chip, which is a Sigmatel STAC9220X5. This codec supports 8-channel analog output, 4-channel analog input, and bidirectional SPDIF/TOSLINK. Unfortunately, Apple only put two minijacks on the back -- a line-in and a line-out. The jacks support both stereo analog and TOSLINK optical digital connectors. Since they're targeting home theater applications this makes some sense.
The ALSA Linux hda-intel driver, in its current form, supports the ICH7 HDA controller 100%. It needs special support for Apple's custom mute hardware on the internal speaker and line-out jack, and may have problems configuring the input muxes to support analog capture. Why Apple chose to install a secondary mute switch remains a mystery. It doesn't suppress all popping -- disabling the mute does create a bit of a pop, but the pop sound it makes is much more pleasant than, say, a USB Sound Blaster. Ugh!
Read on for the solution...
Filed Under:
»