NoobsPlanet

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics, posts and unlimited download to our resources, as well as connect with other members through your own private inbox!

[Fix] Internal/External Card Reader Hackintosh Guide

noobsplanet

Well-known member
Staff member
Administrator
Moderator
Make SDCard Reader Recognize into your hackintosh

card_reader.png

Hello guys, This guide fixes built-in card reader for hackintosh. Now it doesn't matter either it is Realtek or Atheros doesn't matter any model. Anyone can follow this guide and make your card reader work.Follow the steps below carefully :
  1. Open Finder and Goto S/L/E (System/Library/Extensions) and look for AppleStorageDriver.kext and copy this kext to Desktop
  2. Right Click in AppleStorageDriver.kext located at Desktop and select Show Package Contents and navigate to Contents > Plugin > Then find AppleUSBCardReader.kext
  3. Right Click on AppleUSBCardReader.kext and select Show package Contents. -> Contents
  4. You'll find Info.plist , If you did find Info.plist Goto Step 6, otherwise continue with step 5
  5. Some older mac version hides it's contents by default so we need to unhide the content so that we can edit. To do this open Terminal and type the following command : defaults write com.apple.Finder AppleShowAllFiles true and Hit Enter, then again type killall Finder and Hit Enter into Terminal, this will close the Finder window, close Terminal, then Again Follow from Step : 2
  6. Right Click on Info.plist and open with Xcode or Plist Editor to edit an file.
  7. Find IOKitPersonalities > AppleSDCardReader > Physical Interconnect Location > and then edit Physical Interconnect Location value section as External.
  8. Again find Vendor Identification and change value section to "Generic Reader by NoobsPlanet"
  9. Again find Apple_Internal_SD_Card_Reader_1_00 and edit sting value idProduct and idVenedor to decimal idProduct and idVendor, you can find Product ID and Vendor ID information in System Info into HEX value, so you need to convert it to Decimal Value. You can convert it online through binaryhexconverter. See the all image attached one after another in at the bottom of this post to understand.
  10. Again find Apple_Internal_SD_Card_Reader_2_00 and edit the string value idProduct and idVendor to decimal value. (Use the same decimal value we did in above step)
  11. Make sure you change value for Physical Interconnect Location on Apple_internal_SD_Card_Reader_1_00 and Apple_Internal_SD_Card_Reader_2_00 to External
  12. Save the edited file and Copy AppleStorageDriver.kext and paste it into /System/Library/Extensions/ and replace the kext if asked.
  13. Open Terminal and fix permission and rebuild Kernel cache with following commands :
Bash:
sudo chmod -R 755 /System/Library/Extensions/
sudo chown -R root:wheel /System/Library/Extensions/
sudo touch /System/Library/Extensions && sudo touch /Library/Extensions && sudo kextcache -u /
Once kextcache is complete and you get the Kernel ID into terminal then you can reboot your system. Now your card should be working well with hackintosh. :cool::cool:

Screenshots :
About_Mac.pngvendor-big.pngonlineconverter.pngInfo.png
Thank You!! Please if you get any confusion, error or any question then please feel free to ask by commenting below. Please don't mention about your other problem here. (y)(y)(y)
 
Last edited:

noobsplanet

Well-known member
Staff member
Administrator
Moderator
Hi, i stuck in the number 9 of your guide. I don't understand when you say "edit sting value idProduct and idVenedor to decimal"
Sorry.. I need to say number instead for string. You need to replace 33795 and 1452 with your system Information's Product ID and Vendor ID respectively.
Note: These values are in Hex number so you need to convert it to decimal and paste the output decimal number into that fIeld. You can use binaryhexconverter to convert these number. See attached screnshot above.
 

noobsplanet

Well-known member
Staff member
Administrator
Moderator
I followed the guide with no success, maybe it's not working on Mojave.
Your patch are correct.. one doubt on step 9. Are you sure you coppied a hex value from System Report (First screenshot attached above) and convert it to decimal?? I recommend you to check that again.

Try this again edited AppleStorageDriver.kext to S/L/E, if I remembered correctly they won't allow you to place file in S/L/E/. so delete the old AppleStorageDriver.kext and paste the new one. And provide me the output for above bash commands. reboot to check if it works.
 

LMHmedchem

New member
I have tried to implement this guide to get a Rosewill RDCR-11004 5.25" Data Hub working in High Sierra 10.13.6 (1765G). The eSATA and USB ports on the data hub are working, so I'm not sure why nothing is detected in the card reader since it uses the same 9-pin USB motherboard header as the USB 2 jacks. There are 4 USB2 jacks and they function as a hub appearing at HS11 in IO reg.

The steps were straightforward enough, except that when I looked in System Info >Hardware > USB, there is nothing there labeled USB 2.0-CRW as is shown in your screen captures. What is listed is USB 2.0 Hub, which I assume is the 4 jack USB 2 hub that is working. At any rate, I converted the hex value for produce id and vendor id to decimal and inserted those values in the locations specified in the guide.

This did not work and I SD cards are still not recognized in the data hub. I tried inserting the same data into Apple_internal_SD_Card_Reader_3_00 and Apple_internal_SD_Card_Reader_4_00 as well as 1 and 2, but that changes nothing.

Am I doing something wrong here? I have a custom SSDT to get my USB working and I am wondering if I need to change that. An inserted SD card does not appear anywhere in IO reg so it's hard to know how to proceed.

LMHmedchem
 

noobsplanet

Well-known member
Staff member
Administrator
Moderator
I have tried to implement this guide to get a Rosewill RDCR-11004 5.25" Data Hub working in High Sierra 10.13.6 (1765G). The eSATA and USB ports on the data hub are working, so I'm not sure why nothing is detected in the card reader since it uses the same 9-pin USB motherboard header as the USB 2 jacks. There are 4 USB2 jacks and they function as a hub appearing at HS11 in IO reg.

The steps were straightforward enough, except that when I looked in System Info >Hardware > USB, there is nothing there labeled USB 2.0-CRW as is shown in your screen captures. What is listed is USB 2.0 Hub, which I assume is the 4 jack USB 2 hub that is working. At any rate, I converted the hex value for produce id and vendor id to decimal and inserted those values in the locations specified in the guide.

This did not work and I SD cards are still not recognized in the data hub. I tried inserting the same data into Apple_internal_SD_Card_Reader_3_00 and Apple_internal_SD_Card_Reader_4_00 as well as 1 and 2, but that changes nothing.

Am I doing something wrong here? I have a custom SSDT to get my USB working and I am wondering if I need to change that. An inserted SD card does not appear anywhere in IO reg so it's hard to know how to proceed.

LMHmedchem
Please patch it carefully following all steps. Attach the patched AppleStorageDrivers.kext, also make sure you place it into S/L/E/ and permissions are ok. You can check it from Terminal ls -l | grep "AppleStorage".
 

LMHmedchem

New member
Please patch it carefully following all steps. Attach the patched AppleStorageDrivers.kext, also make sure you place it into S/L/E/ and permissions are ok. You can check it from Terminal ls -l | grep "AppleStorage".
I have attached my patched AppleStorageDrivers.kext. I have followed the guide carefully as far as I can tell.

This is the capture of System Report > Hardware > USB.

System_Report_Hardware_USB.png

You can see that there is no item USB 2.0-CRW. The vendor and device id values that I used are those that are listed for the USB 2.0 hub.
Code:
product id = 0x0101 = 257
vendor id = 0x1a40 = 6720
I have a similar card reader on a PC and I think that it actually uses the 19-pin USB 3 motherboard header to connect and not a 9-pin USB 2 header. I am wondering if this Rosewill connects in the same way and if I should try the device id and vendor id values for the USB 3.0 bus listed here. The Rosewill has both a USB 2 and a USB 3 connector and both are connected, so it's hard to say.

Does that make sense?

Since nothing appears in IO reg when an SD card is inserted, I am also wondering if the card reader appears at an SSxx port that I don't have injected in my SSDT.

Let me know what you think,

LMHmedchem
 

Attachments

Last edited:

LMHmedchem

New member
I have resolved this by modifying the SSDT used for USB port injection. Since the card reader did not appear as an obvious entry in System Report > Hardware > USB, I was wondering if it appeared at a port that I did not inject. To check this, I removed my compiled SSDT-UIAC.aml file from /Volumes/EFI/Clover/ACPI/patched and restarted. This results in all of the HSxx ports being injected and none of the SSxx ports being injected because the port limit is reached.

After restart, a Mass Storage Device appears at port HS12, which was not being injected in my SSDT. This appears in System Report > Hardware > USB as a "Mass Storage Device" (not USB 2.0-CRW). If I insert an SD card to the card reader, it appears at HS12, and also on the desktop, and in finder. I am able to access files on the card, so it appears to be working properly.

It didn't occur to me to use the card reader when I was doing the port identification step in creating the custom SSDT and so the relevant USB port didn't get injected. It turns out that I don't need to customize AppleStorageDriver.kext using the steps outlined in this guide. The card reader works with the default AppleStorageDriver.kext as long as the correct port has been injected.

I have only tested SD memory cards as I can't find any other kind of card here. I will see if I can get a few different ones to test. I would assume that all inserted cards appear at HS12, but I can't say that for sure until I test it.

Thanks for the help,

LMHmedchem
 
A

Abrahan

Guest
How to add various idVendors and idProducts to the info.plist to support more than 1 device(for example autodetecting one or another, depending on the computer)
 

noobsplanet

Well-known member
Staff member
Administrator
Moderator
How to add various idVendors and idProducts to the info.plist to support more than 1 device(for example autodetecting one or another, depending on the computer)
You can achieve these auto id in different computer through script. Learn more about shell scripting.
 

Marc

New member
Make SDCard Reader Recognize into your hackintosh

View attachment 110
Hello guys, This guide fixes built-in card reader for hackintosh. Now it doesn't matter either it is Realtek or Atheros doesn't matter any model. Anyone can follow this guide and make your card reader work.Follow the steps below carefully :
  1. Open Finder and Goto S/L/E (System/Library/Extensions) and look for AppleStorageDriver.kext and copy this kext to Desktop
  2. Right Click in AppleStorageDriver.kext located at Desktop and select Show Package Contents and navigate to Contents > Plugin > Then find AppleUSBCardReader.kext
  3. Right Click on AppleUSBCardReader.kext and select Show package Contents.
  4. You'll find Info.plist , If you did find Info.plist Goto Step 6, otherwise continue with step 5
  5. Some older mac version hides it's contents by default so we need to unhide the content so that we can edit. To do this open Terminal and type the following command : defaults write com.apple.Finder AppleShowAllFiles true and Hit Enter, then again type killall Finder and Hit Enter into Terminal, this will close the Finder window, close Terminal, then Again Follow from Step : 2
  6. Right Click on Info.plist and open with Xcode or Plist Editor to edit an file.
  7. Find IOKitPersonalities > AppleSDCardReader > Physical Interconnect Location > and then edit Physical Interconnect Location value section as External.
  8. Again find Vendor Identification and change value section to "Generic Reader by NoobsPlanet"
  9. Again find Apple_Internal_SD_Card_Reader_1_00 and edit sting value idProduct and idVenedor to decimal idProduct and idVendor, you can find Product ID and Vendor ID information in System Info into HEX value, so you need to convert it to Decimal Value. You can convert it online through binaryhexconverter. See the all image attached one after another in at the bottom of this post to understand.
  10. Again find Apple_Internal_SD_Card_Reader_2_00 and edit the string value idProduct and idVendor to decimal value. (Use the same decimal value we did in above step)
  11. Make sure you change value for Physical Interconnect Location on Apple_internal_SD_Card_Reader_1_00 and Apple_Internal_SD_Card_Reader_2_00 to External
  12. Save the edited file and Copy AppleStorageDriver.kext and paste it into /System/Library/Extensions/ and replace the kext if asked.
  13. Open Terminal and fix permission and rebuild Kernel cache with following commands :
Bash:
sudo chmod -R 755 /System/Library/Extensions/
sudo chown -R root:wheel /System/Library/Extensions/
sudo touch /System/Library/Extensions && sudo touch /Library/Extensions && sudo kextcache -u /
Once kextcache is complete and you get the Kernel ID into terminal then you can reboot your system. Now your card should be working well with hackintosh. :cool::cool:

Screenshots :
View attachment 109View attachment 113View attachment 112View attachment 111
Thank You!! Please if you get any confusion, error or any question then please feel free to ask by commenting below. Please don't mention about your other problem here. (y)(y)(y)
 
Top