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
Very helpful, thank you. Worked perfectly on my 2009 iMac running 10.8.2.
I tried the latest update: sudo nvram boot-args=”mbasd=1″ but, unfortunately the terminal does not let me type in my password.
I can’t type nothing after I type in: sudo nvram boot-args=”mbasd=1″…… what’s wrong?
First, please be aware that the nvram method seems to work only for very few users. As stated in the text, the .plist method is the way to go.
Second, that’s how password input on the console works in general – no “echo” while typing (but the computer still recognizes the keys). You need to type the password blindly and press return.
When I enter this
sudo pico /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
in terminal, this is what I get, which, as you can see, is different from the code listed in the article above because it contains this– “mach_kernel”
?xml version=”1.0″ encoding=”UTF-8″?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple$
Kernel
mach_kernel
Kernel Flags
It is also impossible to change the code, or insert any text into it. It appears to be locked.
The second method, entering
“sudo nvram boot-args=”mbasd=1″”
into terminal doesn’t appear to have any effect.
Has Apple changed this to prevent hacks that make the USB superdrive functional? Any suggestions? Thanks in advance for any that anyone may have.
BTW, it’s a latest model superdrive, on an early 2009 iMac, 10.8.2.
For whatever reason, the code doesn’t appear as typed.
But this is the string that’s on my computer that is different from above.
“mach_kernel”
Hopefully, it will display properly
There should be a string on either side plus arrows, etc in the above.
Is HTML interpreting this as HTML code?
Yes, wordpress ist interpreting > and < as HTML, to have these actually appear in comments you need to write > and <
Indeed, some machines have the “mach_kernel” entry, some don’t. But this is irrelevant to the Superdrive.
Only the “Kernel Flags” need to be changed.
It’s however strange that you cannot edit the file however, as when you really enter “sudo pico” (and not just “pico”) you should have superuser power and be able to edit anything.
I’m a novice at using terminal for all but the most basic tasks, so that’s probably a good part of the problem.
It appears that it’s putting this into nano editor, but I have no idea how to edit it once inside that editor, and can’t find any info on it.
Figured out how to use the editor (good enough for now anyway) and got the right code inserted, but so far, superdrive will no operate.
Copy/Paste
The original permissions are owned by root:admin and with readwrite permission only for the owner, but readonly for all others. You can check with the following command (on a single line):
ls -la /Library/Preferences/
SystemConfiguration/
com.apple.Boot.plist
output should look exactly like this (except for the date):
-rw-r–r– 1 root admin 232 13 Okt 2011 /Library/Preferences/SystemConfiguration/
com.apple.Boot.plist
If your permissions look any different, correct them with:
sudo chown root:admin /Library/Preferences
/SystemConfiguration/
com.apple.Boot.plist
sudo chmod 644 /Library/Preferences/
SystemConfiguration/
com.apple.Boot.plist
End Copy/Paste
PowerBook G4 17″ 1.67
Well I have tried again (all mentioned possibilities) and still no luck, console still shows that the MBASD is not supported!
I have a root account with password as well as an admin account (my account) with password.
Have tried the above as to resetting the permissions, only achieve a change when I actually type into terminal (not copy/paste) but all that happens is that auto log changes to manual and I do not have access no longer to the Preference Folder in the Library. Also system gets unstable somewhat, Icons in Menu Bar (right side) toggle in and out, don’t set at all.
Changing permission for the Preference Folder back from the now “Custom” to what was before the change via Terminal does reset all the confusion back to normal!
So how do I change permission for the .plist from what is now
-rw-r-r–@ 1 “my name” staff xxx xxx xxx to
-rw-r-r– 1 root admin xxx xxx xxx.
The above don’t seem to work for me.
Cheers and thanks in advance.
Hello,
I’m on a macbook pro 2.4 core 2 duo, OSX10.5.8
Internal superdrive is dead so i get the usb one. I added the mbasd=1 into the string node but i still have the “The MacBook Air SuperDrive is not supported on this Mac.” into console.
There’s a difference between your plist file and mine. i got two nodes key and two nodes string.
So my xml file is going like this
key node value = Kernel
string value = mach_kernel
key = Kernel Flags
string = mbasd=1
I written it like that as i red the xml is badly recognized by the comment thing but everything is well written in my xml file as in your example.
Thank you in advance if you have any idea… this began to be a nightmare. Iphone 3G too old, so i buy Iphone 5, Itunes too old, so i buy snowleopard online to update, usb superdrive not working…. i’d like to put an end to that :)
This looks perfectly ok to me – no idea why it does not work (I assume you did reboot the machine). Did you edit the file with pico as suggested or with another editor? Just because some editors modify permissions, which might cause the kernel not to read the file.
With pico :/
Hum i just checked my xml file and i see that i have apple$.com instead of apple.com written in the doctype node. i’m afraid to change it as i’m pretty sure it’s not coming from me, could it be the problem? I don’t think so but i don’t know where to look
I restored everything back to its original state, and then used the “sudo pico, etc” method, which seems to have edited the file correctly, but still no joy with the superdrive.
I got this when permissions were repaired– Is there anything significant in this?
Permissions differ on “Library/Preferences/SystemConfiguration/com.apple.Boot.plist”; should be -rw-r–r– ; they are -rw-rw-r– .
ACL found but not expected on “Library/Preferences/SystemConfiguration/com.apple.Boot.plist”
Repaired “Library/Preferences/SystemConfiguration/com.apple.Boot.plist”
Yes, I guess that could be significant. Apparently, your .plist had write access for all admin users, which might prevent the system from reading it at all (for security reasons – being writable for non-root users carries the possibility that malign software could have modified it).
Here’s the command I used to check the permissions (rw only in the first position, only owner may write) and ownership (“root”, group “admin”) of the file on my system:
ls -la /Library/Preferences/SystemConfiguration/com.apple.Boot.*
-rw-r--r-- 1 root admin 239 6 Nov 2011 /Library/Preferences/SystemConfiguration/com.apple.Boot.plist
I’d recommend to check this, and if your permissions are different, run the repair again.
I changed that so only I (Me) have rw permissions, at the top, followed by system, admin and everyone with r only permissions. When permissions are repaired, it then changes it so that system also has rw permissions.
After that, no matter how may times I restart and then repair permissions, I get this–
ACL found but not expected on “Library/Preferences/SystemConfiguration/com.apple.Boot.plist”
Repaired “Library/Preferences/SystemConfiguration/com.apple.Boot.plist”
The code reads correctly, meaning that “mbasd=1″ is inserted in the correct position, but the superdrive kicks out any disk within a few seconds of attempting to read it.
The sudo nvram boot-args=”mbasd=1″ method has no effect on my system.
I gota an original USB SuperDrive from Apple and I have 10.8.2 on my computer. I opened the terminal and I just wrote: sudo nvram boot-args=”mbasd=1″ after that I restarted my computer, the surprise was my USD SuperDrive it´s working very well. Thank´s for the tipp
Thanks very much for this. My nearly 5 year old MacBook’s internal Superdrive recently died and I was quite frustrated to find that an Apple USB Superdrive wouldn’t work. Okay, more than frustrated. Really pissed off. I’m at a loss to understand why they intentionally cripple their own products in this manner. Your fix has enabled me to use my USB drive and I admit to feeling more than a little joy at being able to laugh in the face of whoever decided it was a good idea to impose arbitrary restrictions on hardware compatibility.
Update–
I got a replacement superdrive from Apple, and the new one works just as it’s supposed to. So it was bad hardware, not a software problem. There appears to be a large percentage of defective superdrives.
Thanks, for you help, luz.
You are a fanatastic person. You just solved a huge problem i was having <3
There was a dude on another post about this.. that mentions this..
Samuel1 Apr 2, 2012
This fix certainly enables the drive, but Apple’s DVD Player may not work with the external drive (mine worked for a couple of days).
There’s a free AppleScript app named DVD Drive Switcher which modifies the DVD Player frameworks to switch between an external/internal drive. Switching to external fixed it for me. I couldn’t Google the original author, but many thanks to them.
I found the app at:
http://hdcaddy.com/cms.php?id_cms=7
http://www.mediafire.com/?2ijhoz5myzz
works awesome and you can keep both drives working..
Spent ages trying to sort out this problem on my wife’s MPB 2007, Snow Leopard OS. I’ve done it now, and she happy watching DVDs on it in bed, after an operation. Thank you Luz for your effort, but it would be a good idea to warn people googling to your website desperately looking for help that this fix is really meant for geeks/programmers or old MS-DOS fans who know how to handle terminal mode. They can do a lot of damage and if there is no backup they will be deep in the brown stuff.. The problem with Apple’s DVD player needs to be mentioned up front. I found Ali’s post and tried his solutions, VLC worked the other one did not.
Luz, I’m now panicking. Please help!
I was trying to get the USB SuperDrive to work on my boss’s Mac with 10.5.8 (Leopard).
I went into the terminal and typed
sudo nvram boot-args=”mbasd=1″
I gave it his password. Now, not only does the SuperDrive not work, but his wireless keyboard is now not functioning.
How do I undo the
sudo nvram boot-args=”mbasd=1″
command? Thanks!
IMHO, it’s very unlikely the wireless keyboard thing is related to the
sudo nvram boot-args="mbasd=1"
.Still, you can easily undo it by typing
sudo nvram -d boot-args
As mentioned, for making the superdrive work safely, stick with the .plist method, as this has proven working fine for most, while the nvram method seems not working reliably in many cases.
Thanks man. Will do. Oh, and the keyboard reconnected. Panick abated. :-)
Hi Luz! I’m a new mac user, just bought my first MBA 2 weeks ago…I have a OSX 10.8.2…problem is my MBA cannot detect my wife’s external superdrive (ACER), she’s still on windows…just wanted to try it so I don’t have to buy the apple superdrive…I tried the .plist method but nothing happened…any suggestions?
The trick presented here is for the opposite – a MacBook Air Superdrive connected to a non-MacBook Air computer.
I certainly can’t help in your situation, with a non-Apple external drive.
You need to look for Mac OS X drivers for your external drive.
Hey, thanks anyway for the reply…
Worked perfect on my Mid 2007 MacBook Lion 10.7.5 . was having some problems getting it to work but it was because I was not hitting enter after I hit y.
Thank you very much.
I was really quite disappointed when I came home and it wouldn’t work.
Can you reverse the mbsad=1 to make internal work again
Sorry meant mbasd=1
mbasd=1 does not disable the internal drive. It just allows an external MBA Superdrive to be used at all with a non-MacBook Air.
But of course, you can reverse it (same steps as adding it to the .plist, except that you remove the “mbasd=1” string instead of adding it).
so i i add mbasd=1 in terminal, when external superdrive is not plugged in, it will revert back to internal, just in work they had an external on sale for 15pound which is a bargain i think so was just gunna use it to make it easier when my mac is linked to my tv, i can have the external on a usb extension
Just wanted to say thanks, the fix worked first time on my iMac OS X 10.6.8
I have tried this method on my MBP late 2011 but to no avail. I removed my optical drive and converted it to s external superdrive and I hoped that this would work but alas I am still looking for a solution. SOMEONE PLEASE HELP11
This post desribes how to connect an external Apple USB Superdrive. If you put the internal superdrive into a external box, that’s something entirely different – for your mac does not see the drive itself, but the USB to SATA converter in your external box (some work with OS X as is, some need drivers – please ask the maker of your external drive case).