[ music | Lady Gaga – I Like It Rough ]
Used to use a 2011 Mac Mini as a pfSense-based router here. I had the thunderbolt to gigabit ethernet adapter, and it worked fine, but I wanted something else. No real reason, no good excuse, but I lied to myself and said a second gen Core i5 (2415M, doal core at 2.3GHz, Sandy Bridge) wasn’t “enough”. And I wanted something “less hacky” than a thunderbolt ethernet adapter. Also, it ran warm, I really did want something to run cooler.
Enter a Dell 3020M micro form factor PC. It had an i5-4950T, quad core, ran at 3.3GHz, Haswell, and had a gigE port and internally an m.2 slot for a wifi card. It was A/E keyed, not M keyed (I’ll complain about m.2 keys later) so trying to find an ethernet card to fit in that slot was a trip. And also, the card slot is only really compatible with 30mm length cards.
After several months of searching for an A/E keyed card, I finally found a reasonably priced card! However, it’s 60mm long, and the slot has absolutely no room past 30mm due to the audio ports and the front of the case/chassis.
So I eventually thought I’d found a solution, an A/E keyed m.2 extender! I didn’t look closely enough, and missed that it actually goes from A/E key on the slot side to M key on the card. Useless for this use case.
Enter the Dremel.
This is nothing a little soldering (well, desoldering) can’t cure! I had to remove the audio out and mic in jacks, so I desoldered them and mounted the card. The removed audio jacks allow the 60mm card to extend past the 30mm slot, and the 30mm screw hole keeps the card in place. Then I took a 6 inch CAT6 cable, cut off one of the jacks, fished it through a hole in the back of the chassis, and snapped on an EZ-SnapJack. I actually really like these as there’s no punchdown tool needed. I also removed the casing from the SSD, as it’s entirely useless, it doesn’t even make contact with the tiny card for heat dissipation. Also, losing the case and the drive caddy that it mounts into makes the interior a lot roomier. The cable comfortably goes over the SSD and out the back where the EZ-SnapJack is, and after these photos a little hot glue secured it to the rear of the case.
However, the card is too long to fit in the case, now. This is nothing a Dremel can’t cure! It ruins the stock exterior aesthetic I wanted, but a gaping hole in the front does improve airflow. The hole in the case also allows the 60mm card to extend past the boundaries of the 30mm slot.
It ain’t as pretty as I wanted, but I got everything else. Dual PCIe gigabit ethernet cards in a tiny form factor, and a faster machine for pfSense.
Post Script. On M.2 keying. IT’S STUPID AND UNNECESSARILY COMPLICATES THINGS. Look at this chart at Wikipedia, it’s insane. This is the same BS we have gone through in the IT world for decades. We needlessly add complexities to things that we think we need to “differentiate” when the differentiation serves no purpose. Serial ports were a mess, with 9 pin and 25 ports doing the exact same thing with the only difference being the physical connector. And different devices could have a male or female version of that connector, with no one real standard being followed. It was common to need a couple of different adapters on your cable to hook up two pieces of equipment. USB started with the A and B connector, which exploded into A and a whole world of B side connectors, finally coming to sense in the USB-C connector. Why does it matter which side of the cable goes where? It doesn’t. Whoever designed VGA cables understood that.
All you need in an M.2 slot is a single key to prevent M.2 SATA drives from being plugged in. That’s it. Everything else is PCIe and it doesn’t matter if wifi cards have a different notch from a USB card or a serial card, etc. “But what if it uses four lanes, or two?” Then it uses the lanes that are there, or it doesn’t. the connector doesn’t care, and the user doesn’t care. Keying should only be used to differentiate between electrically incompatible ports. Can you imagine if USB had notches for flash drives and ethernet adapters?