An unofficial Realtek PCIe/USB-based SD card reader driver for macOS

Realtek Card Reader Driver for macOS

Unleash the full potential of your SDXC UHS-I cards

Introduction

An unofficial macOS kernel extension for Realtek PCIe/USB-based SD card readers.
It uses the Linux driver as a reference implementation but is written from scratch and carefully designed for macOS to deliver the best performance.

Features

  • No compatibility layer
  • Supports SDSC/HC/XC cards
  • Supports the default and the high speed modes
  • Supports UHS-I SDR12/25/50/104 and DDR50 modes
  • Recognizable as a built-in card reader device*
  • Device-independent SD host driver stack

Notes:

Limitations

  • MMC cards are not supported
  • SD Express cards are not supported

Current Status

  • Last Updated: Jul 14, 2021
  • Reference: Linux Kernel 5.11
  • Driver Status: Pre-1.0 Beta (v0.9.5)
    • Basic power management is now available.
    • USB-based RTS5129, 5139 and 5179 card readers are now supported.
    • I/O performance and the overall driver stability are of the most concern at this moment.

Supported Systems

  • macOS Big Sur
  • macOS Catalina
  • macOS Mojave

Notes:

  • Other systems are not tested yet.

Supported Devices

Series Device ID Name Supported Since
51X9 0x0BDA0129 RTS5129 USB 2.0/3.0 Card Reader Yes 0.9.5
51X9 0x0BDA0139 RTS5139 USB 2.0/3.0 Card Reader Yes 0.9.5
51X9 0x0BDA0140 RTS5179 USB 2.0/3.0 Card Reader Yes 0.9.5
5209 0x10EC5209 RTS5209 PCI Express Card Reader Yes 0.9.1
5227 0x10EC5227 RTS5227 PCI Express Card Reader Yes 0.9.3
5227 0x10EC522A RTS522A PCI Express Card Reader Yes 0.9.3
5228 0x10EC5228 RTS5228 PCI Express Card Reader Not Yet N/A
5229 0x10EC5229 RTS5229 PCI Express Card Reader Yes 0.9.1
5249 0x10EC5249 RTS5249 PCI Express Card Reader Yes 0.9.0
5249 0x10EC524A RTS524A PCI Express Card Reader Yes 0.9.0
5249 0x10EC525A RTS525A PCI Express Card Reader Yes 0.9.0
5260 0x10EC5260 RTS5260 PCI Express Card Reader Yes 0.9.6
5261 0x10EC5261 RTS5261 PCI Express Card Reader Not Yet N/A
8411 0x10EC5286 RTL8402 PCI Express Card Reader Yes 0.9.2
8411 0x10EC5287 RTL8411B PCI Express Card Reader Yes 0.9.2
8411 0x10EC5289 RTL8411 PCI Express Card Reader Yes 0.9.2

Notes:

  • By design, all listed devices are supported, and devices that have the same series share most of the controller code.
  • RTS525A has the highest priority than other chips, because that's the only chip available for me to test the driver.
  • If a device's support status is "Not Yet", its controller is not implemented yet.
  • Other Realtek USB card readers (e.g., RTS5138) conform to the USB Attached SCSI (UAS) protocol and therefore may be supported by the native driver.

Questions, Issues and Documentation

Users

Please read FAQs carefully before asking any questions.
Please use the issue template before submitting any code-level issues.
Please clearly indicate your chip model, device ID and revision number and attach the kernel log in your issue.
Please make sure that your kernel log is complete. Issues without any details will be closed and left unanswered.

Developers

You are welcome to submit pull requests to improve this driver.
Please read the code documentation to understand how each class/function is related to the Linux driver code and how to add support for other listed devices.
A detailed port note will be available later.

Discussion

A discussion thread is available on InsanelyMac.

Support

Writing a driver from scratch is hard and time consuming.
If you would like to support my work, please consider a donation.

Donate

References

Credits

License

This project is licensed under BSD-3-Clause.
Copyright (C) 2021 FireWolf @ FireWolf Pl. All Rights Reserved.

Comments
  • About RTS5227.

    About RTS5227.

    Version: RealtekPCIeCardReader.kext 0.9.2 My card reader is RTS5227, but it is not in the supported chip. I noticed that the two chips RTS5227 and RTS5249 are very similar. I added RTS5227 to info.plist and used class RealtekRTS5249Controller to make RTS5227 work. info IORegistryExplorer

    1. RTS5227 can work normally in macOS12, but it will cause kp in macOS10.15. 10.15-kp.md.zip
    2. Since there is no power management, the card reader will not work after sleep wakeup.
  • RTS522A unable to initialize card

    RTS522A unable to initialize card

    When I boot, the kext is correctly attached to the reader, but when I insert the card, it fails to initialize the card even with the default frequency, and fails to read the card. Here's my log. rtsx.log (I'm currently using macOS12 Monterey) (This is the log made with the 1bit code that you uploaded at the insainlymac today. I'll present the log with the uploaded 0.9.5 kext if needed!)

  • Problem Solved! Not work on my latitude 5175 RTS525A

    Problem Solved! Not work on my latitude 5175 RTS525A

    I tried to use it on my Latitude 5175 running MacOS 12 with both kexts injected, it recognizes the SD Card reader, but no SD Card shows up on Disk Utility or anything. If someone can help..

    The installed test shows the drive seems to been installed. but when I insert tf card ,it do not response at all.

    the kernel log as follow rtsx.log Really appreciated if someone could help me. Thx a lot!

  • RTS5227 Timeouts / Mount Errors

    RTS5227 Timeouts / Mount Errors

    First off: thanks again for porting this over to macOS!

    I got the latest nightly (https://github.com/0xFireWolf/RealtekCardReader/actions/runs/1218661751) installed on my machine:

    • Lenovo T440s with RTS5227 built-in
    • macOS Mojave 10.14.6
    • Clover bootloader (using kext injection for all of my kexts, including yours)

    I tried 5-6 SD cards I had lying around. 4 of them were 32gb cards and worked flawlessly. However, I noticed that a 128gb card I had did not mount correctly. I captured the logs from the moment I plugged it in, to the end of when it was printing errors (see attached). Line 11634 looks particularly interesting... RTS5227_Mount_Error.txt

    I have a few other cards too I'd like to test with this machine.

  • RTS5129 (0x129 0xbda) issue

    RTS5129 (0x129 0xbda) issue

    Hi @0xFireWolf you are doing a great job in developing the kext for card reader. As you mentioned in 0.9.5 changelog, I did add both the kexts but nothing changed for RTS5129, it's same as before. I am using opencore and I have attached some pics too. You also mentioned that you don't have this card reader with you right? I can help you with whatever tests you need to do with the card reader as I have it but please make it work. Screenshot 2021-08-03 at 2 21 20 PM Screenshot 2021-08-03 at 2 17 25 PM Screenshot 2021-08-03 at 2 17 07 PM Screenshot 2021-08-03 at 2 17 01 PM

  • RTS5227 PCI Express Card Reader

    RTS5227 PCI Express Card Reader

    Not working here on my HP Probook 650 G1 It work with Sinetek-rtsx.kext but I would have liked to use your kext This is the Infos from Hackintool

    04:00.0 10EC 5227 103C 2101 L0s+L1 Realtek Semiconductor Co., Ltd RTS5227 PCI Express Card Reader Unassigned class ??? /pci10ec,[email protected] pci10ec,5227 PciRoot(0x0)/Pci(0x1C,0x7)/Pci(0x0,0x0)

  • 525a driver problem

    525a driver problem

    Hello: At present, there is a problem with the 525a, that is, if the SD card is inserted into the computer before booting, it cannot be driven. I don't know if this is the case for me alone?

  • Problem with RTS5139

    Problem with RTS5139

    Hey and thanks a lot for your kext.

    I have problems getting the RTS5139 up and running on an ASUS UX32VD Laptop. I got the info from a user that it should work with your kext, but I couldn't make it.

    More details about the issue can be found on: https://github.com/rafaelmaeuer/Asus-UX32VD-Hackintosh/issues/36

  • Monterey supported?

    Monterey supported?

    Hey there!

    Will this driver work with macOS Monterey? I can't seem to get it to work, just wondering whether it's my mistake, or if the kext is not yet supporting this version of the OS.

  • Adding RTS5260 Support

    Adding RTS5260 Support

    Hi FireWolf:

    First of all, thank you very much for implementing the Realtek SD card driver. I'm testing it on a Dell Precision 7530, which has the RTS5260 chip (10EC, 5260). I used the RTS525A class to experiment, however, it is not supported and recognized at all. I wonder if there is something I could do to help you implement the driver. The chip is most commonly found on Dell business laptops. Thank you again!

  • Support for Ventura

    Support for Ventura

    Hello! Can you please update a kext to support loding on Ventura, because it was released and out of beta?

    I know, it's possible to load it with proper boot-arg, but still :)

  • RTS5287/RTL8411B Not working

    RTS5287/RTL8411B Not working

    Hi, I can't get my RTS 5287 / RTL8411B PCI Express Card Reader to work : it doesn't mount the SD Card I am using. The SD Card reader works correctly with the Sinetek-rtsx kext.

    Here is the log obtained by using the debug version of the latest kext, boot arg added and DebugEnhancer. rtsx.log I am currently using OpenCore 0.8.6 with macOS Monterey 12.6.1.

    Is there any way to make it work ? Thanks

  • RTS525A XPS 13 7390 2in1 Does not respond to ACMD41

    RTS525A XPS 13 7390 2in1 Does not respond to ACMD41

    OpenCore 0.8.3
    Tested on macOS 12.5.1 Monterey

    Tested with both SDHC and SDXC

    Card reader:

    0000:58:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTS525A PCI Express Card Reader (rev 01)
    

    dmesg.log

  • RTS522A Stopped working after inserting an old SD Card

    RTS522A Stopped working after inserting an old SD Card

    Hello there. I have an RTS522A reader that was working. It used to work perfectly fine up until recently, when I inserted an old 2GB SDSC card to read, and the system froze, rebooted, and now the reader does not read cards anymore.

    I swapped out the kext for the DEBUG version and put in the boot args msgbuf=10485760

    Here is my dmesg log attached rtsx.log

    Thank you very much! ~username11384

  • RTS5287 support

    RTS5287 support

    Hello there, I have an RTS5287 (aka RTL8411B) card reader, and I can't get it to work at all. Reading the known issues page, I've seen that the device is almost "killed" since the start. Is there anything I could do/provide to help enabling it? An IOReg maybe?

    Thank you!

    • Giovix92
  • RTS5260 Does not seem to work

    RTS5260 Does not seem to work

    The sd reader shows up in System Information, but does not show any sd cards I tested (16-128GB Kingston/Microcenter branded) in System Information or Disk Utility.

    Screen Shot 2021-10-20 at 3 12 05 PM

    rtsx.log Thank you for showing some love to users with PCIE SD card readers!

A Lilu plugin that makes System Information recognize your Realtek card reader as a native one
A Lilu plugin that makes System Information recognize your Realtek card reader as a native one

Realtek Card Reader Driver Friend Introduction A Lilu plugin that makes System Information recognize your Realtek card reader as a native one. Support

Nov 30, 2022
An USB Rubberducky example for ESP32-S2 module with SD Card 🦆
An USB Rubberducky example for ESP32-S2 module with SD Card 🦆

ESP32-S2 WUD-Ducky This project is an attempt to add USB HID to the default example provided with @AprilBrother's WUD (*), however it also supports an

Nov 14, 2022
Loads a signed kernel driver which allows you to map any driver to kernel mode without any traces of the signed / mapped driver.
Loads a signed kernel driver which allows you to map any driver to kernel mode without any traces of the signed / mapped driver.

CosMapper Loads a signed kernel driver (signed with leaked cert) which allows you to map any driver to kernel mode without any traces of the signed /

Nov 25, 2022
A FAT filesystem with SPI driver for SD card on Raspberry Pi Pico
A FAT filesystem with SPI driver for SD card on Raspberry Pi Pico

no-OS-FatFS-SD-SPI-RPi-Pico Simple library for SD Cards on the Pico At the heart of this library is ChaN's FatFs - Generic FAT Filesystem Module. It a

Nov 29, 2022
Macos-arm64-emulation - A guide for emulating macOS arm64e on an x86-based host.

macos-arm64-emulation Use the following guide to download and configure all of the necessary tools and files for emulating the macOS arm64e kernel. Th

Dec 1, 2022
Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL8821AU Chipsets

Click for USB WiFi Adapter Information for Linux 8821au ( 8821au.ko ) ?? Linux Driver for USB WiFi Adapters that are based on the RTL8811AU and RTL882

Nov 28, 2022
Linux Driver for USB WiFi Adapters that are based on the RTL8812BU and RTL8822BU Chipsets

Click for USB WiFi Adapter Information for Linux 88x2bu ( 88x2bu.ko ) ?? Linux Driver for USB WiFi Adapters that are based on the RTL8812BU and RTL882

Dec 6, 2022
Linux Driver for USB WiFi Adapters that are based on the RTL8812AU Chipset - v5.13.6

Click for USB WiFi Adapter Information for Linux A FAQ is available at the end of this document. Problem reports go in Issues. Problem reports should

Nov 26, 2022
Linux Driver for USB WiFi Adapters that are based on the RTL8811CU, RTL8821CU and RTL8731AU Chipsets - v5.12.0

Click here for USB WiFi Adapter Information for Linux A FAQ is available at the end of this document. Problem reports go in Issues. Include the inform

Nov 30, 2022
ESP32 software USB host through general IO pins. We can connect up to 4 USB-LS HID (keyboard mouse joystick) devices simultaneously.

esp32_usb_soft_host esp32 USB-LS pure software host thru general IO pins. Up to 4 HID devices simultaneously. board ~$3 :https://www.aliexpress.com/pr

Nov 25, 2022
ESP8266 software USB host through general IO pins. We can connect up to 2 USB-LS HID (keyboard mouse joystick) devices simultaneously.
ESP8266 software USB host through general IO pins. We can connect up to 2 USB-LS HID (keyboard mouse joystick) devices simultaneously.

esp8266_usb_soft_host Test for esp8266 usb host . Works with ESP-IDF v3.4 80MHz and 160MHz. WorkInProgress Test run with mouse & combined mouse & keyb

Sep 1, 2022
Tiny and portable usb host and device stack for mcu with usb ip

Tiny and portable usb host and device stack for mcu with usb ip

Nov 29, 2022
USB-C_PCB_experiments - USB-C ports made from a flex PCB and an ATtiny84A
USB-C_PCB_experiments - USB-C ports made from a flex PCB and an ATtiny84A

USB-C PCB Experiments This is part of an ongoing series of projects involving creative interpretations of the USB mechanical standards. You've probabl

Sep 5, 2022
Anotter USB temperature logger that can record up to four channels with thermocouple or NTCs connected via CDC directly or SCPI to USB.
Anotter USB temperature logger that can record up to four channels with thermocouple or NTCs connected via CDC directly or SCPI to USB.

temperature-logger Anotter USB temperature logger that can record up to four channels with thermocouple or NTCs connected via CDC directly or SCPI to

Nov 24, 2022
ESP32 Based ePub Reader
 ESP32 Based ePub Reader

ESP32 Based ePub Reader

Nov 24, 2022
An unofficial Qt-based client for Telegram messenger.

Kutegram Supported platforms Windows XP and higher (maybe even lower?) Linux Symbian 9.2-9.4 Symbian^3 Maemo 5 Fremantle MeeGo Harmattan Current featu

Oct 20, 2022
Utility to install kexts, Frameworks and PrivateFrameworks in the System of macOS. For macOS Monterey 12 and Big Sur 11
Utility to install kexts, Frameworks and PrivateFrameworks in the System of macOS. For macOS Monterey 12 and Big Sur 11

Command-Line-SnapShot-Mounter Credit: chris1111 Apple This utility uses the macOS terminal Command Line SnapShot Mounter is an utility that allows you

Oct 14, 2022
Linux USB driver for the MOTU AVB series interfaces

motu-avb Linux USB driver for the MOTU AVB series interfaces Kernel parameters: samplerate: set the samplerate (its currently fixed at module load) de

Nov 6, 2022
Windows kernel-mode driver emulating well-known USB game controllers.

Windows kernel-mode driver emulating well-known USB game controllers.

Dec 4, 2022