A New Laptop

Jul 05, 2025

I recently purchased a new laptop. To be more specific, I recently purchased some "new to me" parts for my existing laptop.

I own a Lenovo Thinkpad X280, a lovely little machine released in 2017, which I use as my primary device. Equipped with an i5-8350U, 8GB of RAM, and a 12.5" 1366x728 screen, it's more than enough for hacking on some code or browsing the Internet. It even has USB-C charging and Thunderbolt 3 support.

Dare I say it's perfect...

(A note to the reader: this is foreshadowing.)

When I purchased my laptop from the local recycling center, I made the mistake of not checking whether I could upgrade the RAM. While 8GB is more than enough for most workloads, sometimes one is required to sacrifice another 8GB of RAM to the browser $DEITY. Surely you can imagine the disappointment I felt when I opened the back of the laptop and discovered the RAM is soldered directly to the board. If I wanted to upgrade this laptop's RAM, I would have to replace the entire motherboard.

Thankfully, that's not too hard. The first result when searching for "x280 motherboard replacement" in DDG yields this, a guide from iFixit to replace the motherboard in a Thinkpad X280. Perfect, now we just need the motherboard.

One ebay purchase and a few business days later, and I had a second laptop in my hands. Granted, it didn't have a screen or come with more storage, but since I only wanted the replacement motherboard, I went with the cheaper route and bought the laptop for parts. As a bonus, I now have spare parts: ribbon cables, a cooling fan, a battery, and a (well-worn) backlit keyboard, should those ever need replacing. +1 for no e-waste!

After backing up my files, performing laptop surgery, and applying a fresh coat of thermal paste, the laptop was ready to go. Now equipped with an i7-8650U and 16GB of RAM, I powered on the laptop and it POSTed. Success! I adjusted some BIOS settings (I'm looking at you "Secure Boot") and slapped in a USB stick flashed with the latest release of FreeBSD.

One install later, and make -j $(nproc) buildworld without an existing /usr/obj clocks in at just under 90 minutes. Not bad for a "new" laptop from 2017.