The motives behind this was to
- Understand my system better (working with UEFI, Secure boot, etc)
Simplify my developing experience, as most of my stuff runs on
- Not send tons of telemetry to Microsoft
- Make my system configurable to my liking (eg. stuff going on in r/unixporn)
I downloaded the KDE spin of Fedora 36 since I had some previous memories with KDE distros in Virtualbox and then live-booted to it. It was exactly what I thought it would be but KDE was looking overwhelming and less polished (the defaults) to me. So I then tried out the GNOME one, Fedora 36 Workstation, and it was pretty much what I'd like to use and be productive daily without spending days to customize it to my liking. GNOME simply has better UI defaults, IMO. The one thing I noticed was that Wi-Fi was not behaving normally. The connection dropped randomly, then the Wi-Fi card would disable and re-enable. I thought this would need work and moved on. Much much later, I found out that the builtin kernel drivers for Realtek Wi-Fi cards are not the best ones and that I need a custom one. Also, no hate for KDE, I like them and their app ecosystem.
Before going any further, it was necessary for me to backup my
stuff. For my programming projects, I ran
npkill to remove
node_modules which I don't need in the backup. There
was also one Python project using
venv which was
contributing a big chunk to the backup size. For that, it received
the same treatment except here the
.venv directory was
removed. I decided to test brotli for backups, and so ran these:
tar -cvf Programming.tar Programming/ brotli -j Programming.tar
Which gives a
Programming.tar.br and gave decent
results compression wise, I'd say. For backing up keys, I followed a
similar procedure. I created the following directory structure:
keys-backup/ ├── gpg └── ssh
ssh/, contents of
~/.ssh were tossed
gpg/, I followed
this excellent guide
to export my GPG keys. The resulting directory:
keys-backup/ ├── gpg │ ├── priv.asc │ ├── pub.asc │ └── trustdb.txt └── ssh ├── config ├── gh_codespaces.id_ed25519 ├── gh_codespaces.id_ed25519.pub ├── github.id_ed25519 ├── github.id_ed25519.pub ├── id_ed25519 ├── id_ed25519.pub ├── known_hosts ├── known_hosts.old ├── srht.id_ed25519 └── srht.id_ed25519.pub
This was then converted into a
.tar.br using the
commands used previously. These
.tar.br files were then
copied to MEGA and a flash drive.
For pictures and videos, I didn't really had much pictures to backup, most of them were screenshots that can be safely left behind; didn't need them. I had videos of some work that I had done in school, so they and the remaining pictures went into a 7-Zip archive which was then transferred to the flash drive.
Windows recovery drive
I was ready to jump ship, but before that, I decided I would make a Windows recovery drive, just in case. So I ordered this flash drive and in the mean time, read up on other things regarding installing Fedora. After it came, I immediately created a Windows recovery drive on it. It took almost 16 gigabytes of space and took almost 3 hours to complete. If the recovery drive isn't used for a long period of time, I will eventually clean it and start using it for normal usage.
Decisions to be made
To secure boot, or not to secure boot, that is the question.
From previous sections, it was clear that I needed to install a custom driver, and also read that it'd be a little different procedure to install it. To do this on a secure boot enabled system, you can either
- Don't secure boot and install the driver
- Enroll your own keys in the MOK and sign the driver before installing it
Some sources convey that Secure Boot might be one of Microsoft's shenanigans, while some suggest legitimate reasons to use it. So turning to Fedora, its said in the docs that it supports Secure boot, so time to go ahead. Also, one of the "issues" posted on a custom Realtek Wi-Fi driver I was eyeing, they claimed the driver can be installed on Secure Boot and also kindly offered advice on how to install it. This all boils down to one conclusion: not bad at all to install with Secure Boot enabled.
No. I wanted my full drive for Fedora.
The Fedora Workstation image I previously live-booted from will be the one from which I can install Fedora. This image was stored in an old Transcend 4GB JetFlash-400 flash drive which was chilling in dust. For HP laptops, I had to spam F9 during the boot process to interrupt it and choose a boot device. This is not similar to changing the boot device order since that changes it permanently while this is only for the current boot. Nevertheless, I booted to Fedora successfully and then proceeded with the installation process.
Most of what I did is shown in this excellent tutorial by Adam Turner, with a little bit of difference in some steps. I also chose "Custom Storage Configuration" like Adam does in the video. Since I had a bit of exposure to data partitions, I made no mistake in yeeting the Windows partitions and installing a brtfs layout on the whole SSD. There was also an option to encrypt my drive with LUKS, which I did. With that, it had correctly identified my keyboard layout and time zone, so was time to begin the installtion. It hardly took 10 minutes, and after that I was straight into my laptop running Fedora. As someone who has hardly had exposure to devices running Linux distros bare-metal IRL, this was unbelieveable for me! Yay!
As I was vibing with my new Fedora installation, curiously checking out the built-in apps, browsing the internet on Firefox. Ah yes, the point where it all was meant to break. The builtin driver started its usual shenanigans and I was no longer able to even ping a domain.
Installing a custom driver
I had came across lwfinger's excellent Wi-Fi driver meant for rtw88 Realtek network cards. Technically my network card also falls under rtw88, so I decided to try this one, maybe it will fix the issues I was having. So I followed the steps for Secure Boot systems given in the README and then rebooted. I confirmed the driver was active but alas, the problems persisted. I then decided to uninstall this driver, and this is where I messed up. I'm not sure where it went wrong, but now I couldn't figure out what to do.
Installing the other custom driver
Since I had not upgraded the kernel, this was the perfect chance to fix this. After upgrading the kernel, I then installed Tomás Pinho's driver which is specifically made for Realtek RTL8821CE network card. Following the instructions given in the README, I was able to install this driver. Minor differences in the process installation were:
- Following the GitHub issue instructing how to sign the module
I shut down the laptop, came back after some time, and booted it, hoping this one will solve the issue. And it did! Wi-Fi back to normal, I could now browse the Internet, run updates, do stuff. Life back to normal.
More things I did to make stuff work
I intend this section to be a "living section"; keeping track of things I did to make stuff work. This might eventually get moved to a seperate, living document.
Firefox was not playing videos. From the solutions mentioned on
ffmpegdid the trick.
- Bring back the system tray in the top bar.
snd-hda-intel's model to
headset-micvia modprobe to make headset mic working again.
For some reason OBS outputs poor recordings when using the
FFMPEG VAAPIencoder, so to make it print better, albeit more huge recordings, use CQP for "Rate Control" with QP=30 (works fine enough for my use case).
Because I have installed a custom Wi-Fi driver, some non-fatal
error messages are expected, but ABRT decided to let me know every
single time about it. Due to this, there are 520 error reports in
ABRT at the time. Reading the manpage of
abrt-oops.conf, setting the option
yesdoes the trick.