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
Great tip, works on MBP 2009 with OS X 10.10.1. Thanks a lot!
I just wanted to add that this hack works great with my MBP 2009, OS X 10.10.1 too. I did the reboot and poof, there was the external DVD drive in “About This Mac > Storage.”
I’m burning a disk with iDVD right now.
Thank you!
PS – I think I remember applying this hack to 10.9. I guess the 10.10 update overwrote the plist change.
Which one of the tips did you use?
Hi
Will that work with a MBP retina mid-2012 with yosemite 10.10 ?
Please let me know.
Thanks.
Alan
You don’t need this trick with a MBP retina – this machine does not have a built-in superdrive in its original form, so the external superdrive “officially” just works.
The trick described here is required only for Macs which do/did have a built-in superdrive.
I couldn’t get my MBP early 2013 Retina Yosemite 10.10.1 to recognise my USB Super Drive, so I added mbasd=1 between which did the trick and I was able to play my CD. However, now the Super drive won’t eject and my CD is stuck in it.
I just ejected it and got the CD out by pressing CTRL right click instead of CMD E!
Hi! Will that work with snow leopard 10.6?
most probably, yes. I haven’t tested myself (my machine had 10.7 when I first discovered this) but the Superdrive was released when 10.5 was current, so I guess this will work from 10.5 onwards.
Many thanks for the nice post, I was really furstrated as I have got iMac mid2011 built in DVD is not working. I took the iMac to apple store here in Birmingham, UK and had them checking it, two options ; fix new internal DVD that would take 5 days and cost $400 !! or buy $100 USB superdrive… the G Bar experts thought that the superdrive would work despite my wife’s questions !!! arriving at home found that the USB superdrive is dead ! checked the net and got your wonderful post where like magic the superdrive now is working FINE.. However the one line did not work so I went back to your orginal method with my Mac O X 10.7.5
Merry Xmas and many thanks
Cheers
maybe the Genius Bar experts in Birmingham should read this post ;-)
I did not have the com.apple.Boot.plist file in my prefs folder so I had to copy it from the site and create it with textedit, it then forced me to save it with an .rtf ext., so after saving to prefs I had to remove the rtf part…..reboot….no luck, then I had to go to terminal and add the mbasd=1, then save, reboot….Sucess!!
Thanks Luz! I didn’t think i’d have the tech know-how but it really is simple and worked for me 3rd time round (when I saw the .Boot file said it had been modified today as opposed to years ago). My CD drive packed up just as I wanted to burn a CD for a christmas present, and my brother gave me his spare drive, so this couldn’t have been more handy at this time! have a good xmas.
Hey! It has perfectly worked in a Macbook 3.1 with 10.8.6!! Thanks a lot!!! Merry Christmas and Happy 2015!!
Have a MacBook (aluminum uni-body, 5,1). Upgraded to Maverick, then wrote this one line in the terminal as you have given in ”Update 2” above. Worked perfectly.
I did that after having taken out the internal optical drive (which I just left blank for the time being).
All I have in the Boot.plist file is this ..?
bplist00�^A^B\Kernel Flags_^P^Okext-dev-mode=1^H^K^X^@^@^@^@^@^@^A^A^@^@^@^@^@^@^@^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@*
Can I just delete this and add the xml code
Kernel Flags
mbasd=1
thanks…
looks like a binary .plist. Basically replacing it with XML should be ok, but in your particular case I wonder why you have kext-dev-mode=1 in there – are you a kernel extension developer? I assume not, so the question is why this is enabled in your system and what will happen if you disable it. At least, that binary .plist with kext-dev-mode being present indicates that some other software has changed it at some point in the past.
hey Luz,
Thanks for the reply, figured out the kext-dev-mode=1 is set by the TrimEnabler app when using yosemite to get round the new security settings.
WARNING – if you are using trimenabler with yosemite do not run the command
sudo nvram boot-args=”mbasd=1″
as your mac will not boot after it, will stop at a circle with a line through it as it removes this dev mode setting which stops the trim changes working.
I had to remove the trim changes using the guide here to get my mac booting again…
http://www.cindori.org/trim-enabler-and-yosemite/
Thanks a lot for that information!
That’s very important to know – so I put a note into the original post.
Hi I have a MacBook air and just bought a super drive but don’t seem to be working could some one help me pls am I missing something thanks everyone
The MacBook Air does not need the trick described here – the super drive is designed for the Air and works with it out of the box. If it doesn’t, the problem must be something else.
Thank you so much.
It´s working on
MacBook PRO 2010 7.1 / Yosemite 10.10.1
Brilliant. Thanks. Working for me – 2009 MBP Unibody Mavericks 10.9.5
My on-board superdrive failed some months back (it was always iffy) – I have a few disks/games/dvds I can’t play without access to a drive – so happy now.
If you’re not as confident with Terminal you can edit the file here in TextEdit:
Macintosh HD/Library/Preferences/SystemConfiguration/com.apple.Boot.plist
(need to make library visible first)
Hi Luz,
I tried to follow through with your instructions, I have never used Terminal before. It says “Bus Error” after I tried to confirm the file name… what did I do wrong?? I’m on a late 2007 white MacBook. Many thanks…
never mind i took it back today…. at least I was able to get a refund…!
My com.apple.Boot.plist file was deleted by an apple tech trying to resolve startup issues on my computer. I was able to use your fix before, but now that those files are deleted I can’t get the superdrive to work. Any suggestions? Thanks.
Just create a new com.apple.Boot.plist with the XML contents shown in the post. (See the second update note in the post, which explains this)
Perfect work! on MBP 2010 OS X 10.10
hi – i ve tried to follow your tip but i can’t seem to save the changes using the Ctrl-X command ? – can anyone please suggest what i might be doing wrong ? appreciate your help in advance
Hi Everyone
Using Yosemite and Trim Enabler on my Mid 2007 iMac, I couldn’t get the mbasd to work at all following the above instructions. I’m sure there’s something I’m not doing right, but hey.
I did however, copy the com.apple.Boot.plist from a MacBook Pro with Retina display to my iMac, restart…done! A little unorthodox, but simple. TRIM is also still enabled.
Good luck :-)
/Library/Preferences/SystemConfiguration/com.apple.Boot.plist