June 14, 2025

Fedora 42 -- fresh install on trona

I just finished a major hardware overhaul on trona, replacing everything except the motherboard, cpu, and memory. Now I want to upgrade to F42. I could do a DNF upgrade, but I really want to move my system disk from a 1T sata to a 256G mSATA card. I'll put the F41 install on the 1T drive on the shelf for a backup.

The current install on that 1T drive has:

root@trona:/# df .
Filesystem     1K-blocks     Used Available Use% Mounted on
/dev/sda3      527322552 31234996 469227628   7% /

/dev/sda1        2048       4095       2048     1M BIOS boot
/dev/sda2        4096   67112959   67108864    32G Linux filesystem
/dev/sda3    67112960 1140854783 1073741824   512G Linux filesystem
/dev/sda4  1140854784 1953523711  812668928 387.5G Linux filesystem

root@trona:/# mount | grep sda
/dev/sda3 on / type ext4 (rw,relatime)
/dev/sda2 on /boot type ext4 (rw,relatime)
/dev/sda4 on /home type ext4 (rw,relatime)
Note that there is no swap (I would like an 8G swap on the new setup).
Also I see no reason to have a separate /home on the new drive.

Put the XFCE spin iso onto a flash stick

This is:
-rw-r--r-- 1 tom tom 2323779584 Jun  5 13:11  Fedora-Xfce-Live-42-1.1.x86_64.iso
We just use "dd" with a big "bs=" to copy it there.

Boot from the stick and do the install

I plug in the stick, then reboot. As I remember from past experience, the BIOS won't discover the stick if you plug it in after boot.
This BIOS wants a DEL key to enter the BIOS.

The BIOS in fact does discover the stick and defaults to booting from it. (It has two entries, "UEFI: USB USB Hard Drive" and "SanDisk Cruzer 8.01". I leave it on the first and it all boots up OK.

I tell it to test media and start Fedora 42 Live.
Once the live session starts, I find the bottom icon that says "Install to Hard Drive". I double click this, and after a longer wait than I expected, the Fedora install dialog starts.

All the work in in the "Install Destination" where I find sdb to be the TS256 mSATA drive in the list. I select it and also select "custom" partitioning, then use the "+" button to add partitions:

/boot/efi 1M (it bumps this up to 50M)
/boot 1G
swap 8G
/ 555G (it trims this to 230G)
I have to be alert and change the partition type for / from Btrfs (whatever that is) to a standard partition with ext4.

I set up the root and tom users, then start the install. It takes only about 8 minutes, so most of the time is spent doing trial and error with the Install Destination dialog.

Finishing up

Things get confusing. The screen goes dark for quite a while, then after about a 1 minute wait, it comes back again with a button in the lower right that says "finish installation". This takes me back to the live CD session.

I pull the USB stick and cycle power. It comes up in Fedora 42. The default entry in the BIOS is "Fedora" (the second is my old F41 install which it simply labels "Samsung EVO". But I never got to set my IP number (static IP). I does have a usable IP number it got via DHCP.

Get things back to where I can use them again

I edit fstab and set things up to mount /u1 and /u2.
I make /home/tom a link to /u1/home/tom.
I edit /etc/passwd and /etc/group and change the uid/gid for tom

Now I am unable to login as tom. After some head scratching, I remember. The accursed selinux. It needs to be disabled, erradicated, annihilated.

edit /etc/selinux/config -- SELINUX=disabled
grubby --update-kernel ALL --args selinux=0
After this reboot. And now I can login as tom! More times than not, weird problems get fixed by getting rid of selinux.

Thunderbird and chrome

Thunderbird is easy "dnf install thunderbird". It finds my prior mail setup and just works.

I am using firefox, which got installed without effort as part of Fedora. It lets me do searches to sort out issues, like this one.

Chrome is more tricky. And it has some idea of a profile for machine "trona", so I really need to get my static IP set up before it will work.

dnf -y install fedora-workstation-repositories
dnf config-manager setopt google-chrome.enabled=1
dnf -y install google-chrome-stable

Set my static IP

cp /oldroot/etc/hosts /etc/hosts
hostnamectl set-hostname trona
nmcli con down "Wired connection 1"
nmcli con add type ethernet con-name Wired ifname eno1 ip4 192.168.0.5/24 gw4 192.168.0.1
nmcli con del "Wired connection 1"
nmcli connection show
ifconfig -a

Back to chrome

I type "google-chrome" to launch it from the command line, which les me see error messages. I get a long message:
The profile appears to be in use by another Google Chrome process (4882)
on another computer (trona.mmto.org).
Chrome has locked the profile so that it doesn't get corrupted.
If you are sure no other processes are using this profile,
you can unlock the profile and relaunch Chrome.
Of course this leaves you asking "how do I unlock the profile".
What works is to do this:
cd /home/tom/.config/google-chrome
rm -rf Singleton*
After this, I can launch google-chrome

Make links in thunderbird go to chrome (unsolved)

This used to work. First I check that chrome is my default browser. I go to xfce settings, then "default applications". It shows that chrome is my default browser.

Next I try various things using Thunderbird settings. At the very bottom of settings on the right is a button to open the all powerful config editor that some tips tell you to use.

I remove and install thunderbird, thinking that perhaps the problem was because google chrome wasn't in place yet when I first installed it. This does not help.

Get my temp logger going

dnf -y install python3-wxpython4
dnf -y install python3-numpy
dnf -y install python3-ephem
dnf -y install ruby
Then I need to copy rc.local into /etc/rc.d
cd /oldroot/etc/rc.d#
cp rc.local /etc/rc.d
systemctl enable rc-local.service
systemctl start rc-local.service
systemctl status rc-local.service
I get a long error when I give the "enable" command, but "start" does work.

My server listens on port 2001, and I bet that the firewall is blocking this. Indeed, I get data with the firewall off (systemctl stop firewalld)

systemctl start firewalld
firewall-cmd --add-port 2001/tcp
firewall-cmd --permanent --add-port 2001/tcp
firewall-cmd --list-ports
OK, that is working fine now. I reboot to ensure that rc.local is getting started up as it should be. It is!! The command "temps" is a handy way to check as it does a "tail -f" on the temperature log file.

Updates

I run "dnf update" and get a new kernel among other packages (407 total). So, we need to reboot again, and we do.

/opt

Previous work has created /opt/google, so:
cd /u1/opt
mv google google_f41
mv /opt/google .
cd /
rmdir opt
ln -s /u1/opt opt
Note that the old /opt had /opt/google/earth

Nvidia driver

Even with my new whiz-bang RTX 3060 card, things are pretty slow with the default nouveau driver that a fedora install gives you by default. So we need the official nvidia driver.
dnf -y install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
dnf -y install https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
dnf install akmod-nvidia
After this we need to reboot.

I can tell whether or not the nvidia driver is running by how my python "temp_plotter" GUI behaves. With nouveau it is choppy and leaves trails of little windows when I resize. With nvidia it is smooth and responsive.

Uninstall Davincei resolve

I reboot and select F41. Interestingly I don't need to fiddle with BIOS boot settings to do this. Grub now shows me the option of booting to F41 from sda3, which is somewhat surprising, but it does work.
cd /u1/Resolve/DaVinci_18.6
./DaVinci_Resolve_18.6.6_Linux.run -u
It give and error telling me I need to install zlib. I try to install it and dnf tells me:
Package "zlib-ng-compat-2.2.3-2.fc41.x86_64" is already installed.
DaVinci gives me the tip:
Use SKIP_PACKAGE_CHECK=1 to bypass the system package check.
So I use this:
export SKIP_PACKAGE_CHECK=1
cd /u1/Resolve/DaVinci_18.6
./DaVinci_Resolve_18.6.6_Linux.run -u
This works. It tells me that it is removing it from /opt/resolve.

I still have a script in ~/bin/resolve that runs /opt/resolve/bin/resolve.

After this short sojourn into f41, google-chrome is once again confused and I need to do this:

cd /home/tom/.config/google-chrome
rm -rf Singleton*
Note that every time I do this, I loose cookies, passwords, and a lot that I would rather not loose. It causes inconvenience and wasted time. I read some more about this and the advice is to just remove the SingletonLock file, but this is hardly different from what I did.

xfce4-sensor-plugin

This is an easy DNF install, but configuring them is tricky. First click on an empty part of the panel to get a menu, select panel, add new items, then select "Sensor plugin". They pop up at the far right. You can have more than one. I go for three. Then click on each one, find properties, and be sure to check the box that says "show" or nothing will happen. I use one for each nvme card and one for the CPU.

Note that you can type "sensors" at the command line and get more than you probably want to know.

Haskell

dnf -y install ghc
77 packages

Printer -- super easy

su
system-config-printer
I click on "Add", select "Network Printer" and select the first entry that says "Brother printer". There are two entries (who knows why), the first is "driverless IPP". Click finish and it just works.

Google Earth

I could try to download an up to date version and/or RPM, but I am going to just try to resurrect what I had running under F41. This is in /opt/google/earth -- or would be except that I copied the entire /opt/google directory to /opt/google_f41 and started from scratch with /opt/google when I installed chrome. So I will do this:
su
cd /opt
cd google_f41
tar cvf ../google_f41.tar .
cd ..
mv google zzz
mv google_f41 google
cd google
mv chrome chrome_f41
mv ../zzz/chrome .
cd ..
rmdir zzz
So now my old google earth is available as /opt/google/earth and I can do what I did back when I installed F39, as follows:
su
cd /bin
ln -s /opt/google/earth/pro/googleearth-bin
ln -s /opt/google/earth/pro/googleearth google-earth-pro
Now, as tom, I can type "google-earth-pro" at the command line and it just works.

crontab for user "tom"

This is/was the file "/var/spool/cron/tom". I copy this from my backup copy of the F41 root.
su
cd /var/spool/cron
cp /u2/root_f41/var/spool/cron/tom .
chown tom:tom tom
As tom I use "crontab -e" to make a trivial change and this should be Ok

The /u8 mount and backups

I used to have a cron.daily script to use rsync to backup from /u1 to /u2. Now /u8 is my 8T WD ultrastar which will hold stuff from /u1 and /u2

The first thing to do is to copy the file /etc/cron.daily/tjt_backup from the copy in my backup copy of the F41 root.

This simply runs the file /u1/Backup/trona_mirror which is owned by (and can be edited by) tom -- but runs as root thanks to cron.

I modify this file so it mirrors both /u1 and /u2 to /u8 and give each rsync its own exclude file.

I decide to run the /u1 mirror only weekly, but backup /u2 at least daily. I put files into /etc/cron.daily and /etc/cron.weekly

Kicad

dnf install kicad pulls in 95 packages.

TODO

X nvidia driver
X xfce4-sensors-plugin, needs config
X google-earth
X uninstall Resolve
install Resolve studio
X arm cross compiler - build hydra
X m68k cross compiler
 - stuff to diskless boot my sun3/280
dhcpd setup
--
X /opt
mount /u8
get backup mirror running
X get thunderbird links working
try again to get dnf cron working right.

Have any comments? Questions? Drop me a line!

Adventures in Computing / tom@mmto.org