Note: for Mac OS X 10.11 El Capitan and later, please see this updated post instead.
(Edited/clarified Nov. 2012, Nov. 2013, Jan 2015 and June 2016)
The story is this - a while ago I replaced the built-in optical disk drive in my MacBook Pro 17" by an OptiBay (in the meantime, there are also alternatives) which allows to connect a second harddrive, or in my case, a SSD.
To be able to continue using the SuperDrive (Apple's name for the CD/DVD read/write drive), the Optibay came with an external USB case which worked fine, but was ugly. And I didn't want to carry that around, so I left it at home and bought a shiny new MacBook Air SuperDrive (by 2012, Apple USB SuperDrive) for the office.
It just didn't occur to me that this thing could possibly not just work with any Mac, so I didn't even ask before buying. I knew that many third-party USB optical drives work fine, so I just assumed that would be the same for the Apple drive. But I had to learn otherwise. This drive only works for Macs which, in their original form, do not have an optical drive.
At this point, I started to search the net, finding hints, disassembling Mac OS X USB drivers and finally patching code in a hex editor which was the first, but ugly, solution to make the superdrive work, and gave me the information to eventually find the second, much nicer solution presented below. For those interested in the nitfy details of disassembling and hex code patching, the first approach is still documented here.
For actually making the SuperDrive work in clean and easy way, just read on (but note: while it has proven to be a quite safe method, still you'll be doing this entirely on your own risk! Using sudo and editing system files incorrectly can damage things severely!).
Apparently, Apple engineers had the need to test the superdrive with non-MacBookAir computers themselves, so the driver already has an option built-in to work on officially unsupported machines! All you need to do is enable that option, as follows:
The driver recognizes a boot parameter named "mbasd" (Mac Book Air Super Drive), which sets a flag in the driver which both overrides the check for the MBA and also tweaks something related to USB power management (the superdrive probably needs more power than regular USB allows). So just editing /Library/Preferences/SystemConfiguration/com.apple.Boot.plist and inserting the "mbasd=1″ into the "Kernel Flags" does the trick:
[For OS X 10.11 El Capitan onwards please see here for updated instructions instead!]
- open a terminal
- type the following two commands (two lines, each "sudo" starting on a new line)
sudo plutil -convert xml1 /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
sudo pico /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
- Insert mbasd=1 in the <string></string> value below the <key>Kernel Flags</key> (If and only if there is already something written between <string> and </string>, then use a space to separate the mbasd=1 from what's already there. Otherwise, avoid any extra spaces!). The file will then look like:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Kernel Flags</key>
<string>mbasd=1</string>
</dict>
</plist>[Important update for users of Trim Enabler (thanks boabmatic!): Since Yosemite, installation of Trim enabler puts another flag "kext-dev-mode=1" into the com.apple.Boot.plist, and, unfortunately, also converts the .plist to binary format which shows as mostly garbage in many text editors (that's what the "plutil" line in step 2 above takes care about: it converts the file back to XML so you can edit it). Note that the system will not boot any more when trim enabler is installed, but "kext-dev-mode=1" is missing! So to apply the "mdasd=1" with trim enabler active, you need to combine both flags, such that the line will read
<string>kext-dev-mode=1 mbasd=1</string>. For details on Yosemite and Trim Enabler, see here]
[Update: As CyborgSam pointed out in the comments, the file might not yet exist at all on some Macs. In that case, the pico editor window will initially be empty - if so, just copy and paste the entire XML block from above]. - Save (press Ctrl-X, answer yes to save by pressing Y, press enter to confirm the file name).
- Restart your machine. That's it!
I tested this [Updated:2013-11-03] on Lion 10.7.2 up to 10.7.4, Mountain Lion up to 10.8.4 and Mavericks 10.9 so far, but I expect it to work for all Mac OS versions that came after the initial release of the Macbook Air Superdrive, which is probably 10.5.3, and is likely to work with future versions of OS X. Just let me know your experience in the comments!
BTW: the boot options plist and how it works is described in the Darwin man pages
Hello:
For some reason I have GNU nano 2.0.6 on my computer (no idea who installed it), and I tried the method above and after I tell Terminal to save the code, it asks for “File Name to Write:” what should I type here?
Sorry, I’m not that technical!
Thanks!
pico and nano are two names for the same editor:-) And both are part of Mac OS X standard installation.
When pico/nano asks for the file name, the correct name should be already there, so all you need to do is pressing enter and the file will be saved with the correct name.
Worked for me on MacBook Pro Early 08 running 10.8.3.
Thanks
thnx a lot man, this works perfect… I did not check at all and just bought the drive after our internal drive on the mac did not work anymore, thought this would be easier then bringing the whole macbook to the service.
and first it did not work, but your tip did the trick!!
btw I macbook from 2010 running on 10.6.8
Thanks! After trying the sudo command line and .plist string edit, I was able to get it to work! Works like a charm and works with DVD’s!!! ;-) Very Happy!!!!
You have to make SURE you do not cut and paste the string. It MUST be typed and none of the other parts of the string can be changed or it won’t work…
Luz,
You should be running Apple tech support, or at least be voted into the “Humanitarian of the Year” competition.
I gave up trying to follow the mac OS years ago, so i’m not nearly as qualified to do this sort of thing as many of your other posters. I also didn’t want to attempt to log on in single user mode, but did find this out, and so want to relate it.
Admin privileges was not sufficient for me to gain access, so i signed in as ‘root’, typed the .plist into the terminal utility, added the mod, and viola. No other modifications were required for the drive to work with the OS DVD player.
(I haven’t seen this clarification in the other posts, so decided to send it along with the Kudos.)
27″ iMac, 2010. OSX 10.8.2
Thanks so much for the tip. My iMac 27″ 2009 superdrive kept making weird sounds and eventually would not read DVD’s. I went to apple and told them about my problem and that I could not drop my computer off for any amount of time for them to fix it. The apple genius told me the usb superdrive would work. I was excited. I opened it up plugged it in and nothing. I found an article on apple site saying it would not work. I was pissed, then I found your blog.
You kick ASS.
I opened terminal with no experience with code at all. Followed your directions, and now I have a bad ass new drive that works with my 2009 iMac!!!!! Thanks so much for your help with this matter. I am so glad I do not have to drive back to the store to return it.
Hi Luz,
again, thank you very much for this valuable tip.
i already used your tip successfully in december to connect the drive to a iMac Late 2009.
With your tip i was also able to connect the drive to an usb hub connected to the new iMac Late 2012.
Without that modification i got that known error message, although connecting the drive directly to the mac did not show up that error message.
Regards,
Matthias
Thanx, this worked out perfectly on my old MacBook from 2007. Followed the instructions except from using space to separate the mbasd..
Now I can burn DVDs in iMovie : )
It seems that the part about the separating space was misleading – no spaces should be used except when another kernel flag is already present (which is usually not the case). I tried to clarify the text.
Thanks for the tip! Worked a treat.
Both my wife’s and my MBPro’s internal superdrives broke within 2 years (mine just after a year). Couldnt believe it when I bought an external one to find that Apple had disabled them on all older Mac’s. Unbelievable – there seems to be no end to their arrogance.
Anyway, thanks to your tip, we both have nice new USB Superdrives working. Snow Leopard and Mountain Lion.
Just tried this on my MacBook (2006) running 10.6.8, and it worked like a charm. Thank you soooooooo much for this!!
Early 2011 Macbook Pro – did as per above and works Great…
This situation is rubbish. I bought a super drive because the internal drive on my iMac refuses to eject CD’s. Mac users should not have to go through all of this coding crap to get an external CD drive working.
Mac central (if anyone is listening?), please make this simple…at the moment £65 down the drain. It’s not the money, it’s the principle. Remember ‘plug and play”?
Thanks,
Alan.
Probably a private blog providing “coding crap” is not really a good place to make comments intended to be heard by “Mac central”… I doubt Tim regularily reads my blog ;-)
One important note, though: just using “an” external CD drive is no problem, there are many 3rd party drives which just work out of the box. Only Apple’s own external drive is restricted to be used with Macs that don’t have a built-in drive – lifting this (and only this!) restriction is what this post is about.
Only Apple’s own external drive is restricted to be used with Macs that don’t have a built-in drive – lifting this (and only this!) restriction is what this post is about.
Bring it on…my point is that ‘mere mortals’ just want to plug this (efficiently marketed) gear in and expect it to work…sad that it doesn’t…
And if Tim is not reading your blog…then, he’s missing a trick ;-))
Only Apple’s own external drive is restricted to be used with Macs that don’t have a built-in drive.
Where is the logic in this? Can somebody please explain?
It is indeed hard to understand, as it makes Apple customers angry which is no only bad for them, but also for Apple.
The only explanation I can imagine is what I already said in the original post: they don’t want to give way to having multiple optical drives in a single Mac, for support reasons. If they officially sold their superdrive for use with any machine, they’d officially have to support multi-optical configurations, which is more tricky as it might seem at a first sight – think copying from one disk to another, etc.
So they chose the same route as with various other features in OS X – technically, there’s a lot the OS supports and they even supply drivers, but they don’t want complicated scenarious linked in any way with their products. So if you want a second CD drive, you can have it, but from a third party which is then responsible for resolving issues.
Not that this is an excuse for apparently not training their shop staff to tell customers NOT to buy that drive except for Macs without a built-in optical drive.
Thanks luz,
On inspecting the packaging more closely, there is a sticker on the outside front edge of the box that does inform (in font size 6 or thereabouts) that it is “Compatible with Mac systems without a built in optical drive.”
So that will be my fault then for not reading the small print…shame the sticker and message isn’t bigger…but I guess that would offend the packaging style police…as we have been saying since Roman times…”Caveat Emptor !!” (Latin for let the buyer beware…)
Thanks again for taking the time to respond,
Best,
Alan.
With the approach detailed in Update 2, what value should I set boot-args back to/what should the default value be?
The default is no bootargs at all. As somewhere mentioned in the comments, you can delete the nvram boot-args by typing
sudo nvram -d boot-args
in a terminal.Basically, it seems the nvram method does not work in many cases, so I’d recommend to stick with the only slightly more complicated .plist editing, which works fine for most.
Thanks so much, you saved me in one important moment!!
That is an awesome trick! I thought I had just wasted my whole afternoon. Genius :) Thank you!
Have late 2008 MB, running on 10.5.8. Have a problem with my internal optical drive, and I need to update to 10.6.8 and “repair my disk” so I bought the superdrive.
Tried method 1, all went fine – but no rxn to the drive being inserted! nothing (comes up under System utility -USB)
when i open the file in Preferences/SystemConfiguration via Text Edit
I noticed an m at the beginning before the ‘less than sign’?xml version=”1.0″ encoding=”UTF-8″?>
so the first line is now
m’lessthansign’?xml version….etc.
I must have had a typo when saving the file????
Any way I can reverse this?
The “m” definitely does not belong there and is most probably the reason it does not work (I assume the OS now ignores the entire file due to invalid XML).
So just open it again with “sudo pico…” as described in the post, delete the “m” and save. If everything else is correct, I’d guess the drive will work after a restart.
worked fine on my macbook pro Mac OS X 10.6. as of the 9th of may 2013.. thanks for the help
I’ve followed the comments but haven’t found a solution to the problem I’m having yet. I’m running Lion a an iMac 7,1. When I plug in my superdrive it’s recognized, but the SuperDrive doesn’t seem to have power (it won’t draw a disc. though it does spin on startup/plug-in). I’ve plugged it into a hub, the keyboard and the iMac so I think the one of the ports should be sufficient… Anyways I’ll give you the Console error log that I received, maybe you’ll be able to decipher it:
13-05-13 10:58:31.377 PM ReportCrash: DebugSymbols was unable to start a spotlight query: spotlight is not responding or disabled.
13-05-13 10:58:31.000 PM kernel: USBMSC Identifier (non-unique): KXQC7342729 0x5ac 0x1500 0x202
13-05-13 10:58:32.782 PM com.apple.launchd: (com.apple.kextd[10]) Job appears to have crashed: Segmentation fault: 11
13-05-13 10:58:32.927 PM ReportCrash: Saved crash report for kextd[10] version ??? (???) to /Library/Logs/DiagnosticReports/kextd_2013-05-13-225832_localhost.crash
I’m thinking we might need a better hub so if power is an issue then hopefully it should be a simple solution. Your advice would be the deciding factor.
From the log excerpt it’s hard to tell if the reason of the crash has something to do with the SuperDrive or not.
Anyway, powering the drive through a non-Apple Hub most probably will not work, because the SuperDrive needs more power than a regular USB port can deliver. Apple’s USB ports (in not too old macs and in cinema displays) can deliver extra power, which allows the SuperDrive to be USB-powered only, rather than requiring a separate power supply. I don’t know if there are third party USB hubs that can deliver more power in the same way.
I am using the drive with an Exsys USB 2.0 Hub EX-1177 w/o any problem.
Hi, I have an old macbook (2005?) running 10.5.8 (Model Name: MacBook
Model Identifier: MacBook1,1
Processor Name: Intel Core Duo
Processor Speed: 2 GHz)…. if that helps at all.
I tried the first option and it doesn’t seem to work, won’t accept discs. In Console, All messages I do get that the “Mac Air super drive is not supported etc”
The beginning of the ‘sudo pico’ is different. I was able to successfully put in the mbasd=1 and save it but should I change the top part? (Ex. Apple Computer to Apple, adding in Propertylist etc) This is what mine displays…
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple$
Kernel
mach_kernel
Kernel Flags
mbasd=1
When I do the permission check it came up as : -rw-r–r– 1 root admin 297 16 May 12:21 /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
…. is that ok? I know you said the date would be different but I have 297 instead of 232.
What am I doing wrong? Plz help!
The DOCTYPE line does not matter here – it’s “Apple Computer” as that was the official name of the company back in 2005.
It must be something else, possibly something happened to the file along the way since 2005, but as it is not required for normal operation, that got unnoticed, but now prevents the OS from seeing the mbasd=1 option (that’s why you get the “MacBook Air super drive is not supported” message at boot).
One thing you can do, is having the entire file checked for XML errors that might escape the eye, by selecting/copying the entire text and pasting it into a online XML validator.