Mac OS X on x86 Hardware 2008–2024 Technical Archive
InfiniteMac OSx86 › OSx86 Core & 10.X › Apple Shipping Drive DVD fix (DeviceMergeNub for Snow Leopar…
17,872 reads · 2010-11-24 – 2010-12-22
Dossier 10.X Core AHCI / SATA

Apple Shipping Drive DVD fix (DeviceMergeNub for Snow Leopard)

I recently rewrote AppleUSBMergeNub for PCI linked devices. The injector can operate against any IOPCIDevice entered device and can function for lots of things. For fixing your DVD drive (to get it recognized in System Profiler as Apple…

Primary Author
@andyvand Published 2010-11-24
Collection
OSx86 Core & 10.X
Archival Footprint
17,872 historical reads · 5 curated field notes (from 9 dispatches) · 2010-11-24 – 2010-12-22
Credited Voices (4)
@andyvand (4)@milanca (2)@sammity (2)@ashp

I recently rewrote AppleUSBMergeNub for PCI linked devices.
The injector can operate against any IOPCIDevice entered device and can function for lots of things.
For fixing your DVD drive (to get it recognized in System Profiler as Apple Shipping Drive) you need IORegistryExplorer.

Install Procedure:
-Look up your DVD drive in IORegistryExplorer.
-Next get under it the IOSCSIPeripheralDeviceNub.
-Look up Vendor Identification (default in DeviceMergeNub Info.plist is "HL-DT-ST") and insert it in the Info.plist.
-Look up Product Identification (default in DeviceMergeNub Info.plist is "DVD-ROM GDR8162B") and insert it in the Info.plist.
-Install the kext in /System/Library/Extensions.
-Reboot
-Enjoy the Apple Shipping Drive recognized DVD drive.

This should work for all PATA and non-AHCI SATA and AHCI drives.

Download including sources:
rapid share.com/files/432918115/DeviceMergeNub.zip
The driver is under build/Release.

Download for Tiger, Leopard or Snow Leopard:
rapid share.com/files/433496862/DeviceMergeNub_all_os.zip
Or below...
The driver is under build/Release (Tiger/Leopard).

Download for IORegistryExplorer (if you don't have it yet):
rapid share.com/files/430687772/IORegistryExplorer.zip

We serve to please...

Author Updates & Technical Revisions

Follow-up dispatches by @andyvand

Author Update #1 @andyvand 2010-11-27 ↳ Re: @milanca
@milancaConfirming this beautiful tweak. Works like a charm! Thanks Andy for hooking us up (entire community) with all these extra tweaks! Cheers, -milanca

No problem, my pleasure

Author Update #2 @andyvand 2010-12-22 ↳ Re: @ashp
@ashpCould I do this for two DVD drives in my computer (like combining EFI strings for device injection in chameleon). I'm just not sure how to go about this. Regards, Ash

Yes you can use it with 2 (or even more) drives by cloning the IOKitPersonalities entry and putting each of the drives into it.

Synthesized Community Field Notes

5 technical responses curated from 9 original dispatches

Field Note #1 @milanca 2010-11-27

Thanks Andy

Hope it can help my DVD drive from disappearing when in AHCI mode. No big deal, i use it in native IDE mode and there is no big difference, only ahci is more apple way.

-milanca

Field Note #2 @milanca 2010-11-27

Confirming this beautiful tweak. Works like a charm! Thanks Andy for hooking us up (entire community) with all these extra tweaks!

Cheers,
-milanca

Field Note #3 @sammity 2010-12-17

Thank you Andyvand for an excellent tweak. But despite my efforts I just can't get it to work for me.
I'm running Snow leopard 10.6.5 64bit on a HP DV8-1200.
In the Release leopard folder I've opened the kext contents and I've edited the plist file to input my drive details from IOreg.
I've put in my DVD drive vendor id as hp, and the drive type as shown in my IOreg as CDDVDW TS-L633N.
Saved the plist file, installed the kext via kext helper and rebooted, but no success.

Perhaps I'm missing something simple, could you possibly share some ideas on where I'm going wrong?

Field Note #4 @sammity 2010-12-18

figured it out.

Running kextutil in terminal I get this message:

sh-3.2# kextutil /System/Library/Extensions/DeviceMergeNub.kext
Warnings:
Executable does not contain code for architecture:
x86_64

Can't load /System/Library/Extensions/DeviceMergeNub.kext - no code for running kernel's architecture.
Failed to load /System/Library/Extensions/DeviceMergeNub.kext - (libkern/kext) requested architecture/executable not found.

Thats why it won't work for me! Any chance it could be complied for 64bit?

Field Note #5 @ashp 2010-12-18

Could I do this for two DVD drives in my computer (like combining EFI strings for device injection in chameleon). I'm just not sure how to go about this.

Regards,
Ash

Sources & Contributor Provenance (4 credited usernames · Thread #6747)
UsernameDossier ContributionDispatchesActive Window
@andyvandPrimary Author42010-11-24 → 2010-12-22
@milancaContributor22010-11-27
@sammityContributor22010-12-17 → 2010-12-18
@ashpContributor12010-12-18