Submit Hint Search The Forums LinksStatsPollsHeadlinesRSS
14,000 hints and counting!

Use the Apple external SuperDrive on (almost) any Mac Other Hardware
Since the launch of the MacBook Air, Apple produces a nice external optical drive, which unfortunately does not work on every machine; only MacBook Air and some Mac mini models. It was long believed it was due to a hardware limitation, but it is actually due to Mac OS X, as we shall see.

First of all, why use the Apple drive? There are several reasons. The first one is that it is quite nice-looking. It also uses a slot-in, more convenient than fragile drawers, it can play a DVD without changing the DVD drive, as it is considered as 'Apple-supplied drive' by the system and responds to the Eject button on Apple keyboards.

It also has two drawbacks: it is quite expensive and its USB cable is ridiculously short and non-removable. But finally, I found it to be more practical than the other drives I tested.

I could not test the handling on many machines; I had a 2009 17-inch MacBook Pro (when working), a 2006 MacBook (which does not work) and a 2010 Mac mini on which the hack is unnecessary. The tests were carried out under OS X Lion, but should work on Leopard and Snow Leopard.

As far as I know, the easiest way to check if the hack is possible is starting up the Mac while pressing the Option key with the drive connected; if the player turns on, it should work.

For the modification itself, a file editor (I use Hex Fiend) and a tool that simplifies the update of .kext files are needed. I use Kext Utility (search for the correct version for your OS version), but it can be done by hand or with others.

We have to edit a driver file, as follows:
  • Go to /System/Library/Extensions/, right-click on AppleStorageDrivers.kext and choose 'Show package contents.'
  • Then go to /Contents/PlugIns/, right-click on AppleUSBODD.kext and choose 'Show package contents' on that file.
  • Then go to /Contents/MacOS/ and edit the file AppleUSBODD with Hex Fiend.
  • By searching the file, you should find two chains of this type: Supported Mac Models MacBookAir Macmini Macmini1 Macmini2.
  • You must replace one of the values by your model identifier. In my case, I simply replaced MacBookAir by MacBookPro to keep a file of the same length. Pay attention to spaces, do not put any between MacBook and Pro. Normally, just use the beginning of the identifier and it should be enough, so : MacBook, MacPro, iMac, etc. Also pay attention to capital letters.
  • Once it is done on the two chains, just save and replace the original file AppleStorageDrivers.kext by the new. If everything is OK, Mac OS X will ask for a password.
  • Then launch Kext Utility to clear caches and repair permissions, and restart the Mac. If everything went well -- this was the case on my MacBook Pro -- the external drive should work right away.

[crarko adds: I haven't tested this one. This is where I throw out the big caution flag and remind you that editing .kext files can render your Mac non-bootable. I've done this two or three times in ten years and they went fine but I made sure to have a complete system backup around before attempting it. If you haven't done this before you might want to wait and read the comments of those who try it to make sure there aren't any pitfalls.

I also have to say it's kind of silly for Apple to put this kind of artificial restriction on the hardware.]
  Post a comment  •  Comments (31)  
  • Currently 4.00 / 5
  You rated: 2 / 5 (7 votes cast)
[89,623 views]  View Printable Version
How to clean Apple Mighty Mouse video Other Hardware
This hint points to a really in-depth, hi-resolution take-apart tutorial (on Youtube) about opening, cleaning and closing a dirty wireless Apple Mighty Mouse, presented in English. This is the way to do it after you've tried cleaning the ball from the outside 100 times. Save your mouse from the scrap heap.

Here's the link.

[crarko adds: We've run other hints on this before, and it's been quite a popular topic. A video tutorial seems like a good follow-up.]
  Post a comment  •  Comments (5)  
  • Currently 4.00 / 5
  You rated: 4 / 5 (5 votes cast)
[5,162 views]  View Printable Version
Copy extensions from 10.4.11 to 10.5.8 for Rage Pro cards Other Hardware
Rage Pro cards were not supported in 10.5.8 so you can copy the ATIRage .kexts from /System/Library/Extensions of a 10.4.11 drive to your new one. It will update the kext cache and then reboot. You will no longer have no extension loaded in the system profiler for your video card. I'm not sure what benefit this has but I still can't play Wolfenstein because it won't load OpenGL. This works fine in 10.4.11.

[crarko adds: I admit to having a weakness for the G3/G4 towers. I loved my Blue and White G3. Anything which prolongs their life is a good tip.]
  Post a comment  •  Comments (1)  
  • Currently 2.50 / 5
  You rated: 1 / 5 (4 votes cast)
[3,024 views]  View Printable Version
10.7: Prolific 2303 based USB to Serial adapter drivers Other Hardware
If you have a Prolific 2303 based USB to serial adapter and it no longer works under Lion, installing the Snow Leopard 64-bit driver may fix the issue.

Download the driver from Prolific's site here.

[crarko adds: I post this as a generic hint; if a device breaks under Lion check with the vendor to see if 64-bit drivers are available for it.]
  Post a comment  •  Comments (5)  
  • Currently 3.00 / 5
  You rated: 4 / 5 (4 votes cast)
[23,532 views]  View Printable Version
Delay Before Going into Sleep Mode Other Hardware
I had been experiencing a thirty second delay when I tried to put my iMac into Sleep mode.

I discovered that after I hooked up a USB modem to receive faxes that I had left the 'Receive faxes on this computer' option checked in the Receive Options of the Fax preferences. Unchecking that box enabled me to go into Sleep mode with no delay.

[crarko adds: USB devices have often been culprits in Sleep problems with Macs for a long time, as indicated in these previous hints. Checking them out is always a good step in troubleshooting problems with Sleep/Wake from Sleep.]
  Post a comment  •  Comments (2)  
  • Currently 3.88 / 5
  You rated: 1 / 5 (8 votes cast)
[5,076 views]  View Printable Version
Swap Command and Alt keys on USB keyboard Other Hardware
Today I ruined my silver Apple keyboard by spilling coffee on it and had to switch back to an old PC keyboard with a German layout. Which is a fine keyboard with one very annoying attribute: the Control (Windows) and Alt keys are swapped, the bottom keys are from left to right: Ctrl - Windows(Command) - Alt - Space. It can drive you crazy. So I searched for a solution but it was not as obvious as I had expected.

With Snow Leopard the mapping can be changed via System Preferences » Keyboard, there choose 'Modifier keys...' and in the Dialog remap Alt (Option) and Command. However, some applications, like Eclipse, do not get these changes.

So, I would like to swap the modifiers further down at the input driver level. There are descriptions how to modify AppleUSBKeyboard.kext. That seems to be outdated since I can not find AppleUSBKeyboard.kext on Snow Leopard (10.6.7) anymore. But looking at the source code for the the keyboard handler shows that there is a property Swap command and alt evaluated which belongs to the IO Service Provider. At least for Snow Leopard. Unfortunately, the property seems to be poorly documented and I could not find any example.

Using the IORegistryExplorer to check the internal and USB keyboard settings I found another property of the provider, alt_handler_id, set for the internal keyboard. In the same way I added the property Swap command and alt for the IOHIDEventDriver as follows:

First, open the property list for editing (as system) using a text editor capable of authenticating. I just used vi:
sudo vi /System/Library/Extensions//IOHIDFamily.kext/Contents/PlugIns/IOHIDEventDriver.kext/Contents/Info.plist
Note that the above path can be used with BBEdit or TextWrangler as well. Then make the following addition to the plist file:
<plist version="1.0">
                        <key>Swap command and alt</key>
After running

touch /System/Library/Extensions

in Terminal followed by a reboot, the USB keyboard's Alt and Command keys were changed.

Furthermore, with this kind of keyboard you may want to change the input method. For example, a keyboard layout can be created with Ukelele. For me, the layout offered here works perfectly. Just download it and copy to /Library/Keyboard Layouts.

[crarko adds: I haven't tested this one.]
  Post a comment  •  Comments (6)  
  • Currently 3.83 / 5
  You rated: 5 / 5 (6 votes cast)
[21,809 views]  View Printable Version
Mapping volume and eject keys to 3rd-party keyboard Other Hardware
If you have a keyboard that does not have eject and volume controls natively (like Das Keyboard), you can map them using KeyRemap4MacBook (it works for more than MacBook though!). This is kernel level mapping, so the keys act native, contrary to solutions provided by Quicksilver or Spark.

Download and install KeyRemap4Macbook. Despite the name, it works for any Mac, not just the Macbook.

You can search through the preferences and see if any of the built-ins work for you. I chose to do my mappings manually, as it allows you to map any key to any key.

Open up your private.xml through the "Misc & Uninstall" tab of KeyRemap4Macbook. The following code maps Insert, Home, and Pageup to Volume Down, Up, and Mute respectively. Those keys are pretty useless anyway, so you probably won't miss them. If you wanted to map them to something else, you can do that here. If you want syntax on different keys, you can find them documented here:


Here's the code:
<?xml version="1.0"?>
      <name>Volume Keys</name>
      <appendix>Up, Down, Mute</appendix>
      <autogen>--KeyToConsumer-- KeyCode::PC_INSERT,         ConsumerKeyCode::VOLUME_DOWN</autogen>
      <autogen>--KeyToConsumer-- KeyCode::HOME,              ConsumerKeyCode::VOLUME_UP</autogen>
      <autogen>--KeyToConsumer-- KeyCode::PAGEUP,            ConsumerKeyCode::VOLUME_MUTE</autogen>
I mapped PrintScreen to Eject (which is also available as a built-in option). If you wanted to map a different key to Eject, this is the following syntax.
<autogen>--KeyToConsumer-- KeyCode::PC_PRINTSCREEN, ConsumerKeyCode::EJECT</autogen>
Let me finish by stating that this is very powerful software, and it is capable of much more. For instance, I have it do my Dvorak layout remappings, so to user level programs my keyboard looks like a standard QWERTY. This allows for greater compatibility throughout the system. Often, non-QWERTY layouts got tripped up by Java or Carbon apps. With this program, you should have no issues. If you use a non-standard keyboard layout, look into this program!

[crarko adds: I haven't tested this one.]
  Post a comment  •  Comments (5)  
  • Currently 4.17 / 5
  You rated: 4 / 5 (6 votes cast)
[16,554 views]  View Printable Version
Cinema Display FireWire cable length nuisance solution Other Hardware
Here's how to simply use the FireWire 400 hub in your 30" Cinema Display (DVI) with the dual-link adaptor, without the massive nest of unused cable just so the FireWire from the display can reach your computer.

You've upgraded to a new machine with a Mini DisplayPort, and want to keep using your dual-link DVI display. The cable is rather long, and includes USB, but no FireWire. You could try to plug the FireWire into your machine, but the slack they give you is so little, you get a nest from the coiled dual-link adaptor. And its even more awkward if you use a 400-800 adaptor stub.

Here's what I did. Get a normal male-male FireWire cable (800-to-400 if your machine has an 800 port), and just plug it into the back of your Cinema Display. Now you can still hook up 2 FireWire 400 devices thru the monitor: one using the unused port on the back of the Cinema Display, and one using the unused male connection at the end of the monitor's own cable.

Explanation: the 3 connections to a typical FireWire hub (including the hub in the display) seem to all be the same. The only exception in this case is one is male and the two ports are female. The male connection is provided as a convenience and assumed you'll use that to connect your computer. But you can just as easily use it to connect a device, and connect your computer to one of the other two ports intended for devices. Just get a cable of the appropriate length (same as the cinema display cable + dual link adaptor to be a fully apt length). And save the dangling cable on the end of the display's cable for whatever it can practically reach, and set it next to the dual link adaptor's box.

[crarko adds: I haven't tested this one.]
  Post a comment  •  Comments (2)  
  • Currently 3.40 / 5
  You rated: 2 / 5 (5 votes cast)
[4,696 views]  View Printable Version
Play World of Warcraft with a Joystick/Gamepad in 10.6 Other Hardware
World of Warcraft, as many other games, doesn't have native support for a Joystick or Gamepad.

The solution is to map axis and buttons to key strokes using a device mapping software. I've tried USB Overdrive and ControllerMate. These are my conclusions:

USB Overdrive: Easy to use but limited in functionality. The main drawback is that it takes ownership of the Magic Mouse and converts it into an ordinary 2 button mouse. The programmer seems working hard to fix this issue. Stay tuned.

ControllerMate: Very powerful, a bit daunting at first. It kept my Magic Mouse controlled by the Operating System. It can even create virtual devices mapped to the Joystick that can be used by any application.

My World of Warcraft Configuration:
  • Create a Virtual Mouse and map the Joystick Y axis (or alternatively, the Rotation axis) to the Virtual Mouse Y axis.
  • Map right and left buttons to the Virtual Mouse X axis.
  • Map every button in the joystick to numbers in the keyboard.
  • Reserve two buttons in the Joystick for "tab" (next target) and "shift" (action bar) keys.
  • Have fun.

[crarko adds: I haven't tested this one.]
  Post a comment  •  Comments (0)  
  • Currently 3.50 / 5
  You rated: 3 / 5 (4 votes cast)
[7,129 views]  View Printable Version
Enable trim support on Apple and third party SSD’s Other Hardware
The folks at have found a way to modify a system extension that came with the 10.6.7 update, to enable trim support on pretty much all SSD drives that support trim.

I tested their modified extension on an OCZ Vertex 2 SSD in a mid 2009 MBP running 10.6.7 and 10.7 and both system info report trim support: Yes.

Here's the link to the article.

As noted by them, the fact that system info reports that trim support is on, doesn't mean it's actually working until another way of checking it is found in OS X.

[crarko adds: This procedure involves editing a kernel extension by hand with a hex editor. I'll put it out here as a possibility if you really think you need it, but if you mess up (especially on a MacBook Air) you may be looking at a wipe/reinstall, so make sure you have a complete backup of the system before attempting this. Proceed at your own risk.]
  Post a comment  •  Comments (21)  
  • Currently 3.50 / 5
  You rated: 2 / 5 (6 votes cast)
[17,030 views]  View Printable Version