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
Worked for me, 10.8 Retail. MacBookPro8,2
Thanks and apology for my misprint, should read 17″.
I guess extra power could come from a externally powered USB hub.
Cheers, will give it a go.
I got below (original) in that file, do I just add the mbasd=1 in between the ><
Kernel
mach_kernel
Kernel Flags
Cheers
Sorry,something got lost above, not sure what happened.
Kernel
mach_kernel
Kernel Flags
So I got me a USB SuperDrive but PPC does not want to accept any of the changes via Terminal (Powerbook 17″ G4 1.67 is the computer running on Leopard 10.5.8.), still shows the message of no compliance.
Only thing I can think of is power supply USB limited to 500mA only.
Will check with powered USB hub with extra power dedicated to one connection beyond 500mA.
excellent
The simpler method (mbasd-1) works on my 10.8.1.
I modified the DVDPlayback framework to work with the external based on:
http://reviews.cnet.com/8301-13727_7-20070591-263.html
This also works in 10.8.1.
MacBook Pro Early 2011 with OWC DataDoubler (no internal SuperDrive).
I LOVE YOU!!!! Worked on my MacBookPro Mid-2009. Thanks! I’m so happy!
I am needing help with getting my MacBook 10.6.8 to use the MacBook air SuperDrive. Advise please
Hey Lulz, i try it on my imac …. after i type
sudo pico /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type “man sudo” for more information.
To proceed, enter your password, or type Ctrl-C to abort.
Password:”
thing that make me confuse is .. i dont use any password on the imac .. and kindly frustrated.. cause it keep shown “password:”…. can you help me what should i do ?.. btw after i type sudo pico.. should i press space or not ? thx for ur help
hendra
just luz :-)
The sudo password is the password defined for the admin account when Mac OS X was installed. So if you really have NO password ever set on that machine, it might be that you can just press enter when sudo asks for the password. However, that’s quite unlikely – I’d assume that whoever set up that Mac did set a password initially. There are also ways to reset that password (I’d ask google).
BTW, there is a space after “sudo” and another one after “pico”, the rest of the command has NO more spaces
Halo Luz’
Thanks for the work, But on my 10.7.5 Lion, 2011 MBP 17in. It doesn’t work ! Double verified the .plist is exactly as you stated. mbasd=1 etc.
Is it possible it’s only a 500mA USB on the Pro’s ? That seems low.
Thanks in advance if you reply.
Hi Sef,
I think it’s very unlikely the USB ports on the 2011 MBP 17″ are only 500mA. I have a early 2010 MBP 17″ myself, and it works with the superdrive.
Did you check in Console.app if you see the “The MacBook Air SuperDrive is not supported on this Mac.” message when you plug in the drive? If so, then the kernel hasn’t recognized the .plist change for some reason (could be permissions, see older comments).
BTW: Have a look at the “Update 2” at the beginning of the post – I think I found a method which is simpler to apply than the .plist editing.
Lukas
urgent please help,
Im using mac and ive done everything that was above and after I restarted my mac its now stuck in recovery mode. please do you know any way to fix it or a thing to type in my recovery mode terminal and fix it with.BTW I know its my fault not yours.
Sounds bad. What exactly did you do? Did you do the “sudo nvram boot-args=”mbasd=1″” or the .plist editing?
Generally I don’t think that either method could really be the cause for the mac to get stuck in recovery mode (but just a coincidence).
Anyway, I’d recommend to start the system in verbose mode (hold Cmd and V during boot), and try to find the reason why the boot does not continue normally in the (many!) messages that scroll by.
If you suspect that you somehow damaged the .plist way beyond insertig the “mbasd=1”, you might try to start the system in single user mode (hold Cmd-S during boot), which boots into a text console. From there you should be able to edit the .plist again by typing “pico /Library/Preferences/SystemConfiguration/com.apple.Boot.plist” and review/correct it. Note that the single user console has super powers – you can do everything here, including damaging everything, so please be careful!
HELP i cant type on the single user mode. it damaged the system when i typed the mbasd=1!
Faisal. I’m contemplating trying this. Did you ever solve your problem and if so how? In case it happens to me. I’ve got an imac 17″ from 2006.
hi everybody,
if anyone answers this i would be thrilled.
i have a macbook (2008–black Intel Core-duo 1,1)
and it’s running Snow Leopard 10.6.8
I didn’t really understand the original post. There is a second update before the first update. I understood that to mean Update2 is all you need. So I found terminal and typed in
sudo nvram boot-args=”mbasd=1″
It asked me if I was sure, and then it asked me for my password. I typed that in and hit enter.
Then, NOTHING happened!
I rebooted my computer and nothing happened.
So what does this mean? Do I follow the “first” update?
Any help? I am not a programmer. And this is the first time I’m using “Terminal”.
Also, If i entered the “sudo nvram” line 3 times… should I erase 2 of them? How do I do that (if i need to)?
Any help would be greatly appreciated. I’m sure it’s simpler than I think, just don’t want to mess up my computer.
okay, so I did the update that comes after “Update2” by typing in the the “mbad” code. And presto! It worked!!!
That’s fantastic!!! Gracias people and LUZ!
Just, do you recommend erasing the “Update2” part? or is it even possible?
Thanks for saving me bucks! (the original optical drive replacement (for refurbished (!) was $238) But that broke down only after the second try. And the authorized 3rd party repair place wouldn’t help out after the 1 month warranty wore off (don’t go to ClickAway in Campbell, CA) So this time it saved me 152.38 (cost of NEW SuperDrive in CA $85.62)
Thanks again! And let me know if I need to erase the original input in Terminal.
–Charles
Apparently the “Update 2” method does not work in many cases (I edited the post to make it clear now).
You don’t need to, but yes, you can undo it by typing “sudo nvram -d boot-args”.
Before that, you could also check (for curiosity) if the original setting has stuck in the NVRAM at all: if you type “sudo nvram boot-args” it should output “boot-args mbasd=1”. Now that you have the modification in the .plist, it does not matter any more, but if it didn’t stick in the NVRAM (for whatever reason), that would explain why it hasn’t worked in the first place.
Thanks a lot – you saved my day!
Hi!
None of this solutions work for me.
I have a Macbook 5.1 unibody late 2008 core 2 duo with Mountain Lion 10.8.2
I’ve replaced the superdrive with an OWC Data Doubler + Crucial 128GB SSD Drive. Also i’ve changed the original 250GB HDD for a 1TB HDD and i’ve configured both drives as an unique Fusion Drive using this new functionality included in ML 10.8.2
Now the superdrive is in a SuperSlim USB external case but ML doesn’t recognize it.
When I plug the USB connector to the macbook the superdrive powers on and starts to rotate (i know that because the first thing i did when i connect it was to insert and audio CD cause i didn’t expect problems).
I’ve tried the first method, the second one and the one explained here
http://hints.macworld.com/article.php?story=20111107064435227
but none of them works for me.
Any idea?
Thanks!
In fact, the superdrive isn’t a macbook air superdrive. It is the superdrive that was inside the macbook, so i don’t know if typping mbasd=1 is correct… i’ve also tried mbsd=1 (mac book super drive = 1) but it also didn’t work….
You’re right, a internal superdrive, mounted in an external USB case is not the same as the MacBook Air Superdrive, so the trick described here does not apply at all.
What Mac OS X detects (and refuses to use) is not the drive itself, but Apple’s special USB to SATA converter in the MBASD. That’s why one of the first successful hardware hacks with the MBASD was replacing that converter.
So any drive in an external case should work with Mac OS X (except for DVD playback with the Apple player, which generally does not work with external drives unless patched).
If your original internal superdrive does not work in the external case, the problem is more likely with that case. I have a internal superdrive in an external case as well, and it always worked without any patches. Maybe the USB/SATA converter in your “superslim case” might be one not supported by Mac OS X out of the box – you might need a special driver for the chip used in that converter.
Holy now!! There are 4 months I’m struggling with this drive that gave me (I have a Hakintosh Lion 10.7.4) and it works even when I tell you that in both 7 and Windows 8 will work as well ….. Thanks many thanks
Just wanted to say thank you!
It’s working for me too, moved my optical to external USB box. I can play the movies with DVD player no problem! InsaneyMac forum brought me here…
You list the simple fix as: [Update 2]: It seems that there’s an even simpler method than all what I described below: 1) Open a Terminal, 2) type sudo nvram boot-args=”mbasd=1″ – done. There is a dash (-) between the words boot and args . Is this intentional or due to the line break in the posting. The line above ends with boot then there’s a dash followed by the line below.
Thank you,
B
The dash is intentional (boot-args is one word), but the linebreak is not – the command should be all on a single line.