How to make the MacBook Air SuperDrive work with any Mac

(Edited/clarified Nov. 2012 by luz, updated for Mavericks Nov. 2013, added Trim Enabler note Jan 2015) 

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. Which are the MacBook Airs and the new Minis [Update 2013-11-10: the only model left with an optical drive is the non-retina MBP 13″].

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:

  1. open a terminal
  2. 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

  3. 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].

  4. Save (press Ctrl-X, answer yes to save by pressing Y, press enter to confirm the file name).
  5. 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

[Update 1]: This trick has found it’s way into a Mac OS X Hints comment, unfortunately lacking credit… [Update: was just accidental omission by the comment’s author]

[Update 2]: It seems that there’s an even simpler method than all what I described above: 1) Open a Terminal, 2) type sudo nvram boot-args=”mbasd=1″ - done. I haven’t tested so far, but Apple docs (from here to here to here) suggest this has exactly the same effect as the .plist editing below. [Update: apparently, does not always work, so I recommed to stick with the .plist editing which works well]

28. October 2011 by luz
Categories: English | Tags: , | 376 comments

Comments (376)

  1. Thanks for the great tip! I’ve been in a big trouble and it’s gone.

    MBP early 2011, OS X 10.10

  2. It didn’t work for me in Yosemite OS X 10.10.2. I just installed a second hard drive in my mid-2009 MacBook Pro 15″, 2.53 ghz, using the Other World Computing “Data Doubler” adapter in the space where the Superdrive had been, and put the Superdrive in an external case, the “OWC Value LIne SuperSlim”. I used Text Wrangler to change the file at /Library/Preferences/SystemConfiguration/com.apple.Boot.plist to include the code “mbasd=1″ as outlined in your blog. After restarting and opening DVD player, I still got the error message from DVD Player that a valid DVD drive could not be found. Here is the code I have in the com.apple.Boot.plist file. The indents on two lines were in the original file.

    Kernel Flags
    mbasd=1

    • Using the formerly internal drive in an external case is a different situation than using the Apple designed external superdrive. The post covers the latter only.
      Your problem seems to be that Apple’s DVD player does not play DVDs from unknown external drives. There are patches for that out there, but ususally by far the simplest solution is to dump Apple’s DVD player and use VLC instead to watch DVDs (or pretty much any pther video format).

  3. In my previous remarks, I tried to insert the complete code from /Library/Preferences/SystemConfiguration/com.apple.Boot.plist, but only a small part of the code appeared in my post. Suffice to say, I inserted the code between the two “string” values. I’ll past the complete code here again, but it seems that the blog will not allow that, so it will probably be incomplete again:

    Kernel Flags
    mbasd=1

  4. GREAT NEWS! I found a solution that worked for my Superdrive in the external case. After applying the fix you suggested, which did not work by itself, I left the file at /Library/Preferences/SystemConfiguration/com.apple.Boot.plist with the code “mbasd=1″ included. Then I used the fix on this page:

    http://macriot.com/mcrt/?p=2294

    The fix requires modification of some code embedded into OS X’s DVDPlayback framework; essentially replacing the words “internal” with “external”. YIPPEE! Now my external Superdrive plays movies using DVD Player.

    • IMPORTANT: I forgot one step in my last post, and the first step might be necessary. Here are the complete steps I used.

      External SuperDrive DVD player fix – SOLVED!

      This solution worked for my Superdrive, which I had installed in a USB external case, so now it can play movies using Apples DVD Player App, but additional steps may be needed, as I outline below. I had removed the SuperDrive from my mid-2009 Macbook Pro 15″ 2.53 ghz to install a second hard drive with Other World Computing’s “Data Doubler” adapter, and mounted the SuperDrive in an OWC Value Line SuperSlim external case.

      I don’t know if the two steps below are necessary, but I had done them before applying the fix you suggested, because other suggested them as fixes.

      1) I installed Apple’s SuperDrive Firmware Update 3.0, which is on Apple’s support site at http://support.apple.com/en-gb/HT201953

      2) Then I applied a fix on this page, http://www.hardturm.ch/luz/2011/10/how-to-make-the-macbook-air-superdrive-work-with-any-mac/comment-page-12/#comment-106449, using Text Wrangler to edit the preference file at /Library/Preferences/SystemConfiguration/com.apple.Boot.plist by adding code mbasd=1 between the two string values. However, that still did not resolve the problem. I left the preference file with the code “mbasd=1″ included, as outlined on that site.

      3) Then, I used the fix at http://macriot.com/mcrt/?p=2294 which requires modification of some code embedded into OS X’s DVDPlayback framework; essentially replacing the words “internal” with “external”

      YIPPEE! Now my external Superdrive plays movies using DVD Player.

      • IMHO, the second step is not necessary, because it only applies to Apple’s external superdrive, but is irrelevant for an internal superdrive repackaged into an external case. The reason is that the computer only sees the identity of the case’s USB-to-SATA converter, not the drive itself.

        I’d say, in your case step 3 is the key – making the DVDplayback framework to accept external drives. Thanks for the link!

      • I made a typo in my posting and somehow deleted part of the path to the file that I modified. The complete path file is:
        /Library/Preferences/SystemConfiguration/com.apple.Boot.plist, which is the same as stated in the original post by the blog’s author on this thread.

  5. I have a macbook pro OS X 10.9.5 and tried the code you suggested. actually both of them; also the one in the update, but my mac still won’t recognize the superdrive.
    Im not sure what to do.
    Thanks!

  6. I can put in the command, and do control X to save it, and Y. I just close the terminal after this, restart my computer, but I still get an error message saying that this mac doesn’t support the superdrive.

  7. When I press Y, I get “File Name to Write:$t” at the bottom of the screen by the way

  8. I got it thanks! I just kept forgetting to press enter after Y. silly me. All set now! thank you!!

  9. I had an interesting discovery with this command. First of all, it worked great, superdrive works. However, it also might have fixed my previously non working internal optical drive on my mid 2009 macbook pro!

    It had been broken for a while (the physical arm blocking disks from entering the drive, persisting after resets, etc.) However, after staying broken for many months, it now works! Recently, I did the Yosemite upgrade, and then today ran this command. One or the other has fixed my drive, I didn’t test the drive in between. Could it have been because of this .plist edit? If so, you should publicize that!

    • I’d say that’s just a lucky coincidence. The .plist edit sets an option only for the driver for USB connected optical drives, and has nothing to do with the SATA connected internal superdrive.

  10. I just want to add my thanks for this fix! I have almost zero need for an optical drive so I didn’t care when I realized mine was dead, but my girlfriend was really bummed when hers died because she imports music CDs to iTunes almost every week.

    She bought the external Apple SuperDrive only to find out it didn’t work on her Aluminum MacBook5,1. When she took it to the Apple techs at the store where she bought it, THEN they said, “Sorry, it doesn’t work in any Mac with a built-in optical drive.” Luckily they let her return it.

    Not long after that her hard drive crashed, and I really wanted to set up a dual drive with SSD for her main drive and HDD in the optical bay for Time Machine so we could avoid the troublesome data recovery process if one day the new drive crashes. However, she really wants an optical drive. How happy I was to find this blog!

    In case anyone is wondering, here is what I’ve tested…

    Girlfriend’s Aluminum MacBook5,1 running Snow Leopard 10.6.8:
    – the plist edit trick to add mbasd=1 works!
    – the nvram boot-args=”mbasd=1″ trick also works!

    My White MacBook3,1 also running Snow Leopard 10.6.8:
    – the plist edit trick to add mbasd=1 works!
    – the nvram boot-args=”mbasd=1″ trick also works!

    On both systems, with either trick I was able to read a data CD, play an audio CD, import the audio to MP3 in iTunes…AND play a DVD automatically after inserting the disc using the OS X DVD Player software. I also tested DVD playback in VLC on my White MacBook, and it works as well.

    • Quick addition: I updated the Aluminum MacBook5,1 to Mavericks (OS X 10.9.5) and checked the fixes again.

      Either method gives the same results as with Snow Leopard. DVDs still play in the default DVD Player application, too :)

      I’m currently updating to Yosemite. I’ll repeat the tests just to be sure there are no bugs and then the results here soon.

      • One last post after testing Yosemite.

        Both methods (plist editing and nvram at the command line) worked in all situations I tried:
        – Aluminum MacBook5,1 with Snow Leopard, with Mavericks, and with Yosemite
        – White MacBook3,1 with Snow Leopard

  11. I have a MacBook Pro mid2012 Running Yosimite. This hack worked with Mavericks but after my update it quick working. I had trim enabler installed as well so my “/Library/Preferences/SystemConfiguration/com.apple.Boot.plist” dosent look like it should, it says:

    “bplist00�^A^B\Kernel Flags_^PWkext-dev-mode=1 mbasd=1^H^K^X^@^@^@^@^@^@^A^A^@^@^@^@^@^@^@^C^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@2″

    As you can see I tried adding the mbasd=1 in the line but it still will not work. Any ideas?

    • Your .plist was apparently converted to the binary format by trim enabler, that’s why it looks like (mostly) garbage. It is not possible to edit this with a regular text editor – even if you insert text seemingly at the right place as you did, the result will not be a valid binary plist any more. I just found that there’s a command line utility named plutil which can convert the plist back to XML, so I updated the post and added a step that makes sure the file gets converted to XML before editing. Please try that and check if the result looks as it should. If not, the direct editing in the binary file has probably damaged the file, in that case I’d recommend to just recreate it new as shown in the post.

  12. this worked. Thx!!!

  13. Thank you for this workaround! Note: sudo nvram boot-args=”mbasd=1″ did not work for me on OS X 10.10.2.

  14. I almost had to tell my wife the shiny birthday present would not work on her old iMac, which has a feeble internal cd reader.

    Thank you very very much!

  15. Hi, when copy/paste from the instruction:
    sudo nvram boot-args=”mbasd=1″
    will not work as the hyphens are incorrect.
    The result in nvram is:
    boot-args
    Correct string should be:
    nvram boot-args=”mbasd=%1″
    subsequently the nvram becomes:
    boot-args mbasd=%1

    thanks for the tip I shall now reboot and see what happens :-)

  16. Yep, SuperDrive is now recognized on my MBP 2009 (mid) Both VLC and MakeMKV works. Still get the Apple error-message for DVD Player as described above. I will not even bother with it.

  17. Frustrating that we all have to jump through so many hoops to get something so simple to work right. Took me a while to find this, but it worked great. Thanks for the post.

Leave a Reply

Required fields are marked *