Adding a USB port to the ThinkPad X1 Nano (the hard way)
jcs.org
jcs.org
https://www.reddit.com/r/homelab/comments/lx7d8f/pfsense_len...
Apparently it's possible to add the pcie device identifier to the whitelist, but it looks like a very fiddly process and I didn't really care about the minor issues resulting from the cruder approach:
https://www.reddit.com/r/Lenovo/comments/dcf0lw/comment/fbpy...
No idea if any of that works on the X1 Nano, but you never know.
> Unfortunately, Lenovo continues to implement a stupid network card whitelist that IBM started over 20 years ago on its ThinkPad models. If the card in the M.2 slot is not advertising a known PCI vendor and product ID in the whitelist contained in the BIOS (now UEFI firmware), the ThinkPad will refuse to boot.
Why?? Are there legitimate reasons for this sort of design behavior other than anticompetitiveness?
This is quite plainly nonsense. Every other manufacturer allows WiFi adapter replacements because every module on the market must be individually FCC certified.
Technically, the claim does make sense under a creative interpretation of the FCC rules. I think the real reason is likely so you'll buy replacement FRUs from Lenovo under your enterprise support contract, as well as ensuring you use a module that is known to work reliably with the software stack shipped on the machine.
Basically yeah, its an anticompetitive measure.
The former means that the assembly is assumed to meet UL specifications; the second means that it has been inspected by UL and confirmed that the assembly actually does meet specifications.
Making sure that things meet specifications is the entire point of the building department's inspections.
They likely wanted to just make sure that you hadn't done that. (And to do that, they had to send some fellows whose time was very expensive, because it takes long experience to build up an intuition for these things to the point that you're confident enough in your answer to not have to bother with the "measure everything and plug-and-chug the dynamics in a simulator" step.)
When I see situations like this, it's often because someone on the other side, or someone related, benefits from the arrangement. They would never admit so, but that's how things tend to turn out like that.
Unfortunately, Lenovo is actually correct in how the laws are written.
Whether or not they would get in trouble for it is a different question. I wouldn’t be surprised if they were put on notice for something 20 years ago by an over eager FCC person and they took the lesson to heart. Once a company gets threatened for something they rarely go back, even if other companies are getting away with it.
Perhaps every other OEM are running antennas through the case that have exactly the gain you'd expect on the bands you'd expect; while Lenovo are using better-than-average antenna designs together with lower signal amplification to achieve the same SNR with lower total power consumption.
If that's the case, then swapping out the wi-fi card for one that hasn't been programmed for below-standard signal amplification, will get you a system that's above the FCC limits.
My own ThinkPad absolutely has independent slots for WiFi and cellular cards, and they look similar but they aren't even electrically compatible. (One is a mini PCIe with PCI Express and without USB, and the other is mini PCIe with USB and without PCI Express.)
https://www.theverge.com/2013/12/29/5253226/nsa-cia-fbi-lapt...
Around COVID times, my then employer got stuck with about 40,000 devices, 30% of which had undetectable, counterfeit memory that would eventually cause a complete failure. Replacement was a $80M lesson for that vendor.
I reflashed the BIOS to kill the whitelist, but I'm left with a bigger problem. The WiFi slot offers PCI, but not USB. The WWAN slot has USB, but not PCI.
I ended up tapping into the original Bluetooth connector to steal the USB lines and route them back to the PCI connector.
I had some issues at first with the device not enumerating reliably, but it eventually settled down.
Now I have WiFi 6 and Bluetooth 5. Unfortunately the WiFi frontend is extremely bad (it's a Chinese knockoff) and I have pretty bad signal strength even literally on top of the router. But it works well enough and my Bluetooth headphones now work more than 10ft away from the machine.
The major problem is that the only WiFi 6 card available in mini PCIe is knockoff Intel AX210 cards. I suppose that's fair, mPCIe is basically obsolete these days. Unfortunately I don't have space for a M.2 or other adapter. Maybe I could build a custom express card
Still boggles my mind that people praise ThinkPads as an option for those looking for repairability and upgradability while casually talking about the built-in BIOS whitelist designed to block all that.
To me that means an instant black ball.
It's cool hackers are patching this out, but this anti-consumer feature should not be present in the first place in something people recommend.
Flashing the BIOS is also usually well documented.
I wish the BIOS flashing was not needed tbh, but at least it’s possible.
Sony laptops were the worst: Sony has elitist culture when it comes to miniaturization and engineering excellence, which manifests as unsolderable gapless tiny solder pads in case with PCBs. Fujitsu is better: they love to get creative with their own testing criteria that results in excessively hot laptops that relies on keyboard typing surfaces as heatsinks. Toshiba designers seem to be smart and rational people who understands that no one cares if they double sided everything. Dell is just thick and heavy while not particularly durable and occasionally being annoying with proprietary accessories. HP seem to have every hardware and software imported into their ERP and that can be annoying sometimes like having HP-only bugs.
ThinkPads don't have that kinds of things. They note on Hardware Maintenance Manual(HMM) that all removed screws must be discarded and replaced with their beautiful urethane coated and thread locked screws, and they still haven't made value of ~220 as default for `/sys/devices/platform/i8042/serio1/serio2/sensitivity`, and that's it.
Which other brands?
They only do it there, on the cheap-ass notebooks they don't care.
White-box suppliers/resellers like Clevo or Walmart, or more recent entries like Microsoft, Huawei, Razer, Valve, etc might not have it across the lineup. Whitelist feature also invites people break root of trust; that might be an alternate concern for those brands too.
No BIOS whitelist, antenna connectors that run up into the screen where the front bezel is plastic (allowing good reception), and plenty of room for an adapter. Grabbed a cheap adapter and AX210 card and stuck them in there and it all just works and so now it's equipped with BT and wifi better than is in my 13-years-newer X1 Nano.
Nobody is selling computers that are fully open. Even Framework uses a closed firmware.
In our modern capitalist hellscape, you sometimes have to settle for the least worst option. The BIOS whitelist on older thinkpads is completely trivial to defeat, and apart from that they are incredibly durable and repairable machines. The T530 came out in 2013, and has been my daily driver for near 10 years, after buying it used for $100. I'd say that kind of longevity is more than worth the effort of flipping some bits in a BIOS image.
If you want to draw hard lines like this, then you've ruled out absolutely every machine produced in the last 30 years. Nothing is fully open. You simply have zero options.
If you want non-obscure HW you'll have to go back to pre-microcode days of processors roll out your own.
Is this modularity mostly an incidental side effect of part reuse and corporate serviceability for Lenovo's benefit rather than ours? Sure. But hacking isn't always about what things were designed to do - it's about what they can do.
you can't just say this without giving us more details... MOAR!
Aside from sourcing the parts, the screen part was actually harder: this combination of screen, lid, and webcam is not officially supported, so the drilling and hacking I had to do for that was not documented. Unfortunately the foam tape I used to brace the screen in the correct left-right position seems to have slipped, as the screen is no longer properly centered... oh well!
(Alternatively, the AX200 cards from the usual sources have a lot less of a back-alley Shenzhen feeling than the AX210 cards I've looked at. Perhaps that's a safer option.)
In my experience this has not been true at all now that most Logitech mice use LE ("Bluetooth Smart") rather than BT. The only advantage the RF dongle has is that it works without an OS.... or on an OS without a BT/LE stack, like here.
One exception to the "no BT/LE stack" case is the combo of Apple input devices paired with Macs or hackintoshed generic PCs with a handful of Broadcom-based BT chipsets used by Macs. macOS flips some bit on those cards that tells them to keep Apple peripherals paired at all times, which allows you to type and mouse around in the pre-boot environment and subsequently-booted OSes without drivers even on old BIOS-based machines which can't load EFI drivers.
Never seen anything for BLE; my wild guess is that Apple now simply puts a BT stack on their UEFI. Not too far-fetched.
But it doesn't really help the noOS use case, since you still need a BT stack with UI _somewhere_ in order to pair your keyboard for the first time.
Not really, Logitech actually uses the LE PHY even for their "RF" protocol, at least since the Logitech Bolt controller which is what TFA is talking about. You can sniff Bolt traffic with a LE sniffer.
> The minimum latency of BLE is 7.5ms (fastest connection interval in the spec) while ESB can be in the 100s of microseconds
This makes for an average 4ms of latency, which matches what Logitech advertises. Then USB is then going to introduce 5-10ms at the very least...
The transceiver probably does use more power than a fingerprint reader, especially if the reader is idle, but likely not enough to worry about.
It can care about how much power is being used, since the upstream 3.3v power supply -- whatever it may consist of -- is a finite thing.
But power is not the same as voltage. A device running from 5v does not necessarily use any more or less power than one that runs from 3.3v does. We don't have enough data to quantitatively know if power consumption is problematic or not for this particular instance, but I very strongly suspect that it is not an important concern here.
Finally, computers (and computer-like things) definitely do care about signal voltage. But USB signalling voltage is the same regardless of supply voltage, with USB 2 working between ~0v at the low end and at most 440mV at the high end, and tolerating up to 3.6v for compatibility with previous versions -- by specification. So that's not an issue.
Tl;dr, it's fine. And the author did a fantastic job of executing this hack very, very cleanly.
I think I myself would have taken the easy route and found a good place to run a bodge wire for 5v, and maybe even stripped the Logitech adapter out of its housing for some good old fashioned soldering fun, but everyone has their own proclivities.
Is this still true of modern Bluetooth 5.0 LE devices? Not sure about latency, but battery life seems to be extremely good now days. I get at least half a year out of a charge, on a mouse I use nearly every day.
https://jcs.org/2021/01/27/x1nano
and
https://www.lenovo.com/us/en/p/laptops/thinkpad/thinkpadx/th...
It's a really clean job though.
A suitably heavy weight will solve that problem.