Jump to content

Workaround for Ricoh card readers on Yosemite (PCI) Laptop


zzz
 Share

6 posts in this topic

Recommended Posts

Keywords:

Ricoh, PCI, SD, SDXC, VoodooSDXC, HSSDBlockStorage, T61, T61p, R61e.

 

Recently decided to get a T61p running Yosemite: Noticed a heap of people out in the cold with Ricoh based PCI card readers. 

 

I am no programmer, but I can google well and I do like to see how kernel extensions work with a bit of tweaking.

 

Noticed the HSSDBlockStorage.kext for JMicron based PCI cards exposes the PCI to JMB38X.kext

 

So I took a look at both kexts and a working kext for Mavericks for the "Ricoh Co Ltd R5C822 SD/SDIO/MMC/MS/MSPro Host Adapter [1180:0822] (rev 21)" (Perfect T61 Hacbook Bundle -Google -HackintoshOSX forums), added values from JMB38X.kext to VoodooSDHC.kext, added values from VoodooSDHC.kext to HSSDBlockStorage.kext and it loaded and read the cards, formatted etc.

 

I dont have source code for HSSDBlockStorage or coding knowledge, however AppleSDXC.kext is out there.  I have noticed Slice and Andy Val and a few over at OSXLattitude have been looking at Ricoh based cards. I am hoping this might shine some light. Who knows.

 

What I will say is I own a T61p from '07. Anyone who knows the backstory of Nvidia GPU's from back then knows that they are volatile - prone to atefacts and dieing. So I have to treat my computer with cotton wool, I have probably spent more time keeping this machine stable and looking at the console than most (no offence to those that do/don't).  If I didnt do GPU intensive tasks on a volatile GPU I would class this "hack" as OK to pass as a 100% working solution, but on this machine (untested on others -note: some bios's dont report IRQ's properly, FSB, etc etc) when I hit hi triangle counts I can get GPU errors with this "solution/hack". I attribute it to the way the PCIe is handing access to the VoodooSDHC kext.

 

I am talking very high stress situations though. I could run this machine with 0 errors with this hack and use cards IF I didnt tax the GPU to the extreme at times. I'd Imagine a more modern card would work just fine (this is a '07 machine with a GPU undervolt and with its core and clock matched to the gt 8600m 256mb DSDT patched to match - originally fx 570m).

 

What I am hoping is this will help the average user to enable Ricoh cards. Swap out the VoodooSDXC for one that works for you and check the values of the kexts to match yours up, or try a previously working other kext alongside HSSDBlockStorage. Maybe HSSDBlockStorage can be patched with a HEX editor to replace the strings to curb one console nag. Maybe sources for HSSDBlockStorage are out there somewhere.... Once again I am no Coder, just an enthusiast Hacker.

 

I have noticed some people out there using a solution using JMB38X.kext, VoodooSDHC.kext, and VoodooSDHC.kext for their systems already, for other cards. Maybe my method is better or worse.

 

I can do 3D modelling with these kexts, I just cannot game or run huge scenes. If you are willing to face a kernel panic and stress test, maybe theres a fix. I am hoping that this might open up a path to using AppleSDXC on its own - as I own the "Advanced 2503 Dock" and adding ricoh dev ven id's to it opens up this ricoh card reader on that piece of hardware.

 

Happy Hacking and I hope I have made some contribution here, if your ricoh reader is not the same be prepared to edit VoodooSDXC.kext, or try other kexts alongside HSSDBlockStorage looking at what i did inside both.

 

ZZZ

 

 

 

Edit:

 

Seems taking content from AppleSDXC.kext and putting them in the zip file attached called "VoodooSDHC.zip" was enough for my Ricoh device.

 

You will need to remove AppleSDXC.kext, fire up the console, use kextutility and observe any messages.

 

In my case it worked just fine, I was able to use 1.1d1 with:

	<key>OSBundleLibraries</key>
	<dict>
		<key>com.apple.iokit.IOPCIFamily</key>
		<string>2.0.0</string>
		<key>com.apple.iokit.IOReportFamily</key>
		<string>1.0</string>
		<key>com.apple.iokit.IOStorageFamily</key>
		<string>1.2.7</string>
		<key>com.apple.kpi.bsd</key>
		<string>9.0.0</string>
		<key>com.apple.kpi.iokit</key>
		<string>9.0.0</string>
		<key>com.apple.kpi.libkern</key>
		<string>9.0.0</string>
		<key>com.apple.kpi.mach</key>
		<string>9.0.0</string>
	</dict>
	<key>OSBundleRequired</key>
	<string>Local-Root</string>

At the end.

 

Archive.zip

VoodooSDHC.kext.zip

  • Like 3
Link to comment
Share on other sites

  • 3 months later...
  • 1 month later...

Thansk ZZZ,

 

It works like a charm on my DELL E6400 running El Capitan 10.11.2.

Perfect !!!!

 

Sorry, but I am a little confused what needs to be done. I'm running 10.10.5 on Latitude e6500. Can you please help me? Am I supposed to just drop in VoodooSDHC.kext in /S/L/E or should I drop it in /Extra/Extensions? And I should just remove AppleSDXC.kext from /S/L/E?

 

So that's just what I did. Card Reader does not show up under System Information. HOWEVER, when I insert card it mounts !!!

Now one issue. If I restart the machine or login / logout, Card mounts TWICE. Why?

 

PS On another note appreciate guide to install El Capitan on Latitude E6500/E6400

Link to comment
Share on other sites

  • 10 months later...
  • 1 year later...

I have 2 laptop dv9700, dv2700. Both are same sd card reader RicohR5C822(1180,0822) and run Yosemite. Installed kext above dv9700 working perfectly however dv2700 not working. When I inserted the card its not showing. I've check the kext load in IORegistryExplorer though. Anyone know how to fix? Thanks

IORegistryExplorer.png

Link to comment
Share on other sites

 Share

×
×
  • Create New...