Upgrading Framework 13 to AMD Ryzen 7 from 11th gen Intel

2024-03-01

Today I upgraded my work laptop, a Framework 13, from the 11th gen Intel i7 board to the AMD Ryzen 7 7840U, which recently became available again for order to Australia. I was able to keep my entire Debian 12 installation, without modification. The process overall went mostly very well. I ran into four(ish) issues:

When uninstalling the 11th gen Intel board, after removing all the screws, and attempting to pull the board up from the bottom corners, as the guide instructs, the centre bottom of the board would not come up. At this point, the guide warns that the board should lift out without resistance, unless a previous step was missed. So I went over all the previous steps, and there was nothing I missed. Because the bottom two corners would lift, I wanted to see if the top of the board would lift. This is probably stupid, and I don't recommend doing this because I would not be surprised if there is some slight overlap of some part of the chassis and a piece of the board, that lifting the board from the back could cause damage to either the delicate board components or some piece of the chassis. In any case, I did it, and the back of the board did lift very easily up, so easily that I could see that it was just the bottom of the centre of the Intel board that was stuck. So I gently pulled the board up from the back corners, monitoring to make sure the board never flexed. And indeed, I was able to easily remove the board this way.

I checked over and over trying to find if there was something on the bottom of the board or that area of the chassis that could explain this "stickiness", but I found nothing. And no, the laptop has never had an unfortunate encounter with any sodas or other sticky liquids, it was totally clean inside, apart from some dust. What I think happened, was that some piece of metal tape surrounding the post of the bottom centre mainboard screw had its adhesive pull through and slightly attach itself to the board rather than the chassis. I think this because the tape was slightly pulled off the chassis on the left side of the post. Using the spudger on Framework's screwdriver, I pushed it back down, and it seems fine now. The board and the chassis don't seem to have any negative side effect of this, but I also could not find any mention of this on the forums... Though, as the laptop I would have used otherwise was occupied having its guts removed (😛), I didn't look very hard. Browsing the web on my phone is about the last thing I like doing. Anyway, I'm glad it turned out alright.

The next hiccup was immediately after finally removing the 11th gen Intel board. When I was installing the new mainboard into the chassis, the top left of the AMD mainboard would not sit flush. I did not in the end discover what was preventing it from sitting flush, but jiggling it back and forth for a while eventually led to a (worryingly loud) "click" (or maybe... a disconcerting "snap"). After that, the board sat flush. I was dead worried. It was not a sound I am comfortable hearing from delicate electronics. I pulled the board back out and braced myself to see a snapped component on the bottom of the board. But nope! Everything fine. I put it back in, screwed it down, reconnected everything, and prayed it would work. After a suspiciously long hanging boot with nothing on the screen (but the power light turning on), I just pushed the power off and back on again. It lives!

Then I ran into the next problem: no boot device. *Ugh*. For a moment I was worried I'd somehow botched the SSD reinstallation (despite that being essentially fool-proof), but after giving it just a few more seconds of thought, it was obvious to me that it was probably just a bootloader issue. I don't fully know how UEFI/GRUB/etc all work together, but I just had a hunch that was probably it. Luckily, I had a Debian 12 USB stick floating around anyway, so I popped it in and ran the recovery media installation under the advanced options of the net installer's boot menu. Get through all the menus, mount the root device (thank you, Debian, for using sensible LVM partition names), and run the re-install GRUB option. Perfect! Reboot, and my SSD is detected, the normal boot process starts.

And then it hangs. I didn't see any of the systemd modules "waiting", but because I'd seen it happen before on my Raspberry Pi where the NetworkManager-wait-for-network service causes boot hangs, I thought maybe that was the issue, as it was the only service that didn't say it was finished starting that jumped out at me as the potential cause. I thought maybe the wifi card was acting funny, so I plugged in an ethernet cable, but then got logs about missing firmware, probably caused by the USB-C hub I use for ethernet. Aha! And also, of course! Like, duh! Missing firmware! Well, okay, easy enough. I popped the Debian 12 net installer back in, ran through the menus to mount the root partition, and got a root shell. apt update, apt install firmware-linux (after trying linux-firmware and having apt not find it), and a reboot. Too easy. It turns out the hint was that SDDM actually started, but I suppose some display driver wasn't installed for the new AMD graphics, and so X11 (or Wayland?) wasn't keen on displaying on the screen (whereas the TTY-style boot log was fine, because they almost always are anyway).

And yeah! All is well now. I booted back up, and everything is perfect. The only two things I noticed that were not exactly as I expected were that my home wifi did not automatically connect, and I needed to re-enter the passphrase (maybe the passphrase is somehow tied to the mainboard?), and that the screen brightness was on full blast, and I almost never have it up there, especially now that I have the matte screen. But whatever, that's fine, just two little weird things that are easy to write off as caused by new hardware (maybe the screen identifier changed because of the new board-side connector, so the display settings from the last boot didn't apply, etc).

From what I've read, there are a few bugs here and there with Debian 12 on the AMD boards, so I'll need to go back and read the forums to see if I need to do anything to address those, but all in all this was only slightly less straightforward than I expected. Considering I've swapped out basically all the important components of the computer, and it almost just worked, and probably would have gone a smidge smoother if I'd pre-installed firmware. Maybe it's placebo, and I did nothing to time anything for this, but it feels like it boots ever so slightly faster. Which would make sense, I mean this AMD Ryzen 7 chip is a whole heap of a lot faster than the 11th gen i7... even if in the grand scheme it's hilarious to identify any meaningful difference in capability. The main thing I'm looking forward to and hoping for with this upgrade is a bit better battery life. We'll see if that pans out.

Anyway, for the rest of the day I want to see about getting the old Intel board fitting into the external mainboard case, which I ordered along with the new AMD board. Something's not quite right, and the board isn't sitting all the way down on the right side, so I'm not able to put the cover back on flush. I'm pretty sure the issue I'm running into is this one, which a user in the Framework forums has shared a solution for (and luckily, was the solution I was going to try if I couldn't find any info), so I'll break out my pocket knife and see if I can't wrestle it in there (just kidding, it will go gently). This board will replace a Raspberry Pi that is just slightly too underpowered and unreliable for what I want to do with my home network, and theoretically won't run that much more expensive, energy wise. We'll see...