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