I recently purchased a ZBook 14u G6 laptop. It's really nice and I hope it will last me a while, but there was one problem with it: It doesn't have an SD card reader. Instead, it has a smart card reader, and a sim card slot, but I didn't pay for those upgrades so the slots are just filled in.
I came up with a plan to use the extra space offered by the missing smart card reader for an SD card reader. A slot was already present in the body of the laptop, and it was just about thick enough to fit a full SD card inside - more on that later.
It was a challenge to find a way to put an actual SD card reader and wire it up. HP designed this laptop to support LTE services, so there's an extra M.2 B-keyed slot inside designed for a LTE modem. I didn't pay for that upgrade, so I get to use this empty slot for whatever I want.
The extra M.2 slot is up there on the top left, and the smart card slot is that plastic piece on the bottom right. It extends further underneath the battery. It's quite cramped to add stuff in here, but I decided to go for it anyway.
It took a bit of searching, but eventually I found this, a M.2 MicroSD reader.
It's not perfect: the m.2 slot of course doesn't line up with the smart card slot, and I want full SD capabilities, not just microSD. So I needed some sort of extension cable that goes from microSD to full SD. I ended up buying this, in the 60cm length. If I were to do this again, I would have gotten the 48cm version instead - the length would be just about perfect.
My plan was to take the extension cable, break open the plastic casing (so that it will fit under the battery) and route it across the laptop over to the PCIe module. Here is what I ended up doing:
You can see how I had to take some detours with the cable to get rid of the extra length. There was just barely enough clearance to fit the slot under the battery:
You can also see the snug fit with the smart card slot - however it was a little too snug. I basically had to hammer the SD card in. So, I took a drill to it:
I just very slightly widened the slot. It's not noticeable from more than a few inches away.
After all that, I can now insert an SD card into my laptop! But does it work?
At first, it didn't. I decided to take a look into the drivers. The module uses an Alcor Micro AU6621 chipset, and it just received mainline support in Linux 5.0. There was also a Windows driver available for download. At the time, I was using the Clear Linux kernel, which for some reason didn't include the alcor_pci module, so the reader didn't work. After switching to the mainline kernel, the SD card reader worked! There is one issue I'm still running into, and this may be fixed as the driver matures, but the system is unable to detect if an SD card is inserted or removed. If I put in an SD card or take one out, I have to unload and reload the alcor_pci module, and then it will detect the change. I don't mind this, because if I'm connecting an SD card I'm going to be using the laptop anyways, it's not like I won't be able to run 1 command. At the end of the day, it works, and so now I can prepare prints for the school's Prusa i3 MK3S's without having to find a USB adapter.