Hi folks,

I just upgraded my workstation from an Intel Core 2 Duo to an AMD Phenom X4, and I figured I'd share some notes in case anyone else does this down the line (this is primarily commentary on Intel->AMD). It's a combination of a narrative and some random thoughts on the process.

First of all, I think some context is appropriate here. The rationale behind my upgrading systems is that rendering the book would take a long period of time (5 minutes, now down to 2 minutes and 31 seconds), and after rebooting this afternoon due to a problem with my UPS, I would either have windows that wouldn't update/render correctly, or the screen would flicker anytime that I moved my mouse. This system uses components from SVN-20190728, and was working fine before restarting - pointing to a likely hardware problem (just in case, I installed another DE this afternoon, with my choice being XFCE). This flickering was causing my left eye to twitch (and I'm blind in my right eye, so limited vision in the left eye is a huge dealbreaker). While searching for a replacement graphics card (thanks for the suggestion Bruce) I found a system sitting on my shelf in my storage room that I had repaired for someone who refused to pay for it a couple of years ago - an AMD Phenom X4-based HP EliteDesk.

I know that moving from one CPU type/architecture can be really tough, especially considering that things are often compiled (GMP/libffi are recent examples) for the exact processor in use unless specified otherwise. In my case, since I was using an Intel Core 2 Duo, GMP and libffi had been compiled for the 'core2duo' architecture.

The next step after moving my hard drives and putting a RAM upgrade in (there was no way I was living with 4GB of RAM) was to make sure that the system still booted. Currently, I have an NVIDIA GeForce GT 1030 and an ASUS Wireless + Bluetooth adapter (although I'm using ethernet, didn't want to mess with too much). After powering my system up and getting through GRUB, LFS booted - to almost none of my services starting. This wasn't a problem though - each one of them mentioned libffi.so.6.0.4 and illegal operation errors in their logs and coredumps. Suspects primarily included accounts-daemon, NetworkManager, and colord.

After that, I made sure that a test compile of Chapter 6 in LFS' build instructions worked, specifically "echo 'int main(){}' > dummy.c" and "cc dummy.c". I knew that if this didn't work, there was going to be no compiling a new version of libffi - most likely because of GMP. I lucked out in this case, as GMP was working properly. I remember reading reports on lfs-support a long time ago about GMP causing illegal operation errors when moving across CPU brands/types like I did here. A simple recompile of libffi from LFS later, and a quick restart, and I'm off to the races... except, without a network adapter...

When moving systems, one of the things you always should make sure that you do is update the network configuration so that you have a working network interface. I use systemd, but have dhcpcd installed to manage my network interfaces and have systemd-networkd disabled. This simplifies my network configuration - a "systemctl disable dhcpcd@enp4s0 && systemctl enable dhcpcd@enp3s0 && systemctl start dhcpcd@enp3s0" did the trick. I did reboot after this because I wanted the rest of my services to come up properly without having to bring them up manually.

I will note that this system isn't without flaws - it has one major flaw. GDM is extremely slow. I'm on 3.32 though, and I remember reading that 3.32 had problems with NVIDIA cards after the Pascal series. I ended up disabling gdm and bringing up Plasma, my preferred DE (working dark mode and HiDPI scaling), and that worked fine. My performance is much better and I have some transparency effects that I wasn't aware existed. Everything is much more responsive too, and my graphics card's HDMI-based Audio is working great). A long time ago, we discussed problems with rust-using applications and CPU architectures - I'm tempted to say that this is no longer a problem because Firefox and Thunderbird both started up without a problem.

My point at the end of this email is primarily to remind people that if you move your BLFS installation to another set of hardware, you should recompile libffi if you encounter problems with programs giving out illegal operation errors. One program that is extremely important that refuses to come up unless you do this is pkttyagent. Recompiling libffi will fix these problems. Another thing that you should be prepared to deal with is having to change drive assignments around in /etc/fstab because the kernel might initialize drives in a different order depending on your hardware (I plugged my boot drive into SATA0 and my /home drive into SATA1). On that note, always make sure that you have at least basic storage drivers built in for your hardware so that you can boot... thankfully, if you're using SATA, Platform AHCI support should be enough since AHCI drivers are mostly generic (unless you have a RAID controller or some kind or specialty hardware - at least in my experience). From there, expect to potentially have to build in support for your new hardware (I lucked out - all of the hardware for my system was built in already. I normally build in support for extra graphics cards and network adapters if I know that I have one in use somewhere). Of course you'll have to modify your network configuration too, but if all goes well, you shouldn't have any major problems.

Overall, I call this a success. I hope this helps someone out there

Have a good night!

- Doug

--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to