Tempted to switch full-time to Fedora, but I got some noob questions

Hi! It’s my first post on this forum, I hope I’m not doing anything wrong or any bad practices.

I’ve switched to Linux since November 2021, but I’ve been struggling to find out a distro that works for me. I was mostly a Linux Mint user, but their ancient packages were holding me back quite a lot to a rather frustrating degree, which made me wish to switch to a distro with newer packages. I’ve experimented with Fedora and EndeavourOS, and I liked both of them due to having expansive package repositories, but Fedora did a lot of things that I personally disliked which Endeavour didn’t, so I chose to go with Endeavour.

However… I’ve been really regretting that choice. Maintaining an Arch system is incredibly frustrating and torturous, because every time I so much as look at it wrong, something decides it no longer wants to stop working, and it’s a nightmare to fix it. I have a chronic history of having terrible luck with computers, plus I deal with very severe anxiety and depression, so trying to maintain EndeavourOS has been extremely unhealthy for me. I’m considering switching back to Fedora because I really want something that just works and gets out of my way instead of demanding constant attention and maintenance like Arch does, but… there’s still the issue of the things I experienced in my previous Fedora run that put me off from the distro:

  • Both the KDE and Cinnamon spins, on their default installation settings, used systemd-boot without asking me if I wanted it; I strongly prefer GRUB due to its better-looking stock appearance plus its ability to be visually customized.
  • It shipped without kernel headers; although I’m lucky enough to have an AMD GPU and thus don’t have to rely on Nvidia nonsense, I’m still unfortunately saddled with a Realtek Wifi USB that only works with their proprietary and closed-source drivers, meaning I need to make use of dkms, which requires kernel headers to work. When I installed Fedora earlier, I attempted to install the driver with dkms, but it errored due to not having kernel headers and they were not available in dnf’s repositories, meaning I had to go to a third-party website offering seperate kernel headers as .rpms. And then a new kernel version dropped and that website did not have headers for it, forcing me to stay on an outdated kernel for quite a while. I do not want to go through that again.
  • Passing a kernel parameter for my AMDGPU driver (by appending amdgpu.ppfeaturemask=0xffffffff to /etc/modprobe.d/amdgpu.conf) on Fedora did not unlock my AMD GPU’s parameters for tweaking and clocking, whereas it did for me on Endeavour. I heard that it was specifically a bug with Fedora’s 5.15 kernel drivers and that it’d be fixed on 5.16, but I’d like to hear confirmation that it works at least, because my GPU’s default clocks aren’t very good.
  • Certain applications, like Discord, completely ignored any and all custom icon themes and only used an icon baked into Discord itself. This has not been an issue on Endeavour.
  • Fedora just straight-up booted much slower than Endeavour did. It takes about 10-15 seconds for Endeavour to boot into the display manager’s login screen, while Fedora would remain on a loading screen for upwards of one minute. Likewise, it also took an eternity to shut down; Endeavour shuts down very quickly, while I’ve had Fedora sometimes take five minutes to power off.
  • Fedora also uses a lot more RAM; on a cold boot, it used over 1.8 GBs of RAM on Cinnamon and would often idle at over 5 GBs, while Endeavour always cold-boots around 800 MBs and idles around 4.7 GB at worst.

Is there any way to solve those issues? I really wish to move to something that’s actually stable instead of running into computer-breaking issues every other day, but I also don’t wish to deal with those problems either.

Other than those issues I had, I’ve also had some other questions:

  • It seems that, whenever a new kernel is installed on Fedora, older ones are stored and still show up on the boot menu. How exactly does it work? Does it only apply for generic Fedora kernels and thus custom-compiled kernels do not retain old versions? Does it only store up to a certain amount of kernels, or do they just continue indefinitely piling up with no upper limit? Are you able to change/set a specific limit you want, and/or manually delete specific kernels that are already installed?
  • What exactly are the default functions enabled out-of-the-box for btrfs? In my system with two drives (a boot SSD and a secondary HDD which uses ext4), am I able to create a small btrfs partition on the HDD and store all my btrfs snapshots in the HDD, or does it have to be on the boot drive or on an entirely-btrfs drive? Am I supposed to use a terminal command to set up the snapshots, or am I able to use a GUI tool like Timeshift for it? Would another GUI tool work better than Timeshift for btrfs snapshots?
  • Is there any way to make dnf’s search option better and more descriptive? I’m used to pacman and apt letting me know what packages I have installed when I search for them (by appending [installed] after the package’s name), while dnf does not tell me that at all.
  • Will Fedora Workstation and the Spins continue to be maintained in the future, or will they be abandoned in favour of Silverblue/Kinoite and their immutable OS model?
  • For those of you who play games on Fedora, have you had better gaming performance on it than on Arch? Part of the reason I’m being driven to switch is because several games have been acting extremely unstable (CP2077 sometimes runs at 47 FPS, and other times tanks hard at 16 FPS) or just outright break (FH5 events never load or the game straight-up crashes when opening or closing the in-game map; and CoreCtrl’s overclocking feature spontaneously decided to stop working, too), and I’m really hoping that using a more stable distro will yield better results.
  • People say that, on a point-release distro like Fedora and Mint, you have to “re-download” the entire distro when a new major update (like Fedora 36) is released; does that mean I actually have to download the F36 ISO and install it on my computer (losing everything in the process), or is it functionally just a really long system update done with sudo dnf update && sudo dnf upgrade?

I’m sorry in advance for the huge wall of text… I hope that people are able to shed some light on those issues and fears of mine, and I appreciate any help in advance.

3 Likes

You definitely do not need to download an iso when upgrading to a newer version of Fedora. I have a laptop that has been continuously upgraded from Fedora 25 to the latest via these upgrade instructions

4 Likes

A lot to unpack here :smiley:

I won’t be able to answer it all, but maybe a few of your questions.

First, are you sure you are on Linux since only November 2021? You have very specific questions that I never bothered finding the answer after 20 years on Linux :sweat_smile:

So, for the answers to your questions…

Sorry to start with an answer like this, I promise the rest should not look like that… :sweat_smile:
Is it really that important? I hear what you’re saying, but for the 5 seconds it’s displayed, I don’t really care. Also, I prefer to put my computer to sleep instead of rebooting it. So I don’t reboot it so often and thus don’t see this screen very often. I do like nice UXs and UIs, but the boot is not in my priority list when shopping for a distribution. At this level I prefer that the Fedora folks chose the software because it’s the best and not the prettiest one.

The package exists in DNF:

$ dnf list '*kernel*header*'
Last metadata expiration check: 0:13:39 ago on Fri 28 Jan 2022 05:32:20 PM EST.
Installed Packages
kernel-headers.x86_64                     5.15.4-200.fc35                @updates
Available Packages
kernel-cross-headers.x86_64               5.15.4-200.fc35                updates 
kernel-headers.i686                       5.14.9-300.fc35                fedora  

Edit 2: as others said, the package you need is not kernel-headers, but kernel-devel, sorry :wink:

Are you using Flatpak? I would advise to use it.
Isn’t Endeavour mostly using Flatpak already?

For the boot time, well again, I prefer to put my computer to sleep rather than shut it down, so boot time is not really an issue for me. I know other distributions are doing better, I honestly don’t care now. I used to, but now the out-of-the-box experience is way more important to me.

I did have the “5 minutes to power off” issue. It was back when I had both an SSD and two HDD in software RAID. Since I bought a 2TB M.2 SSD, I don’t have this issue anymore. An expensive fix, but a fix nonetheless :laughing:

The RAM situation is touchy. If you want a snappy experience, loading all you need in RAM is what you should have. Also, it’s not because it’s saying that it takes 5 GB of RAM that you only have the rest for the other apps. Part of this memory can automatically be freed if something more important is running. So in the end, you should not really care how much it takes, what’s important is if your apps are slowed down by it. I have 32 GB, I’d be OK with Fedora taking 32 GB right from the start as long as I wouldn’t feel any difference if I load a compiler, Blender or a game. For the RAM, what’s important is the end user experience. It’s often a Windows-user habit to look at the RAM taken by the OS. I do believe it’s different in Linux.

It’s rolling on the last 4 kernel installed. It’s a way to “roll back” in case the latest kernel release installed is not compatible with your hardware for some reasons. I find it to be a pretty nice feature, even though I didn’t have to use it for now, I’m glad to know it exists, just in case…

I think dnf list --installed is what you’re looking for. You can also a filter on the command line, don’t forget to use glob chars if you don’t know the exact name of your package (i.e. *).

I don’t think Silverblue is ready yet for replacing Fedora Workstation. It’s still experimental at this stage. I’ve heard very nice feedback though, so I’d be tempted to try it at least, but I’m using apps that need old techs (>_> Teams) so I’m afraid Silverblue will be a no go there, for now. Anyway, Fedora Workstation still has a lot of bright days ahead.

I don’t know. Since Fedora is pretty much a versatile distribution, I’m pretty sure there are a few other distributions out there that can squeeze out a few more FPS out of my GPU. I personally prioritize out-of-the-box experience over having the ultimate most performances. I trust each new Fedora release will be better than the previous overall.

I acquired an Asus RX 6700 XT recently, I can play CP2077 at a decent FPS (mostly 60 FPS) with the graphics options almost all at the maximum level. I did detect a loss of FPS when streaming with OBS at the same time, which seems logical since I encode with my CPU.

I use Steam through Flatpak, it works pretty well. As for stability, I think the amount of layers that can fail before reaching the distribution you chose is pretty high (i.e. native package or flatpak, does it use Proton? and which version? GPU vendor, drivers release, graphics API used, kernel release used, …). In the end, the most important for me is that, again, it works out-of-the-box most of the time. If it doesn’t and the fix takes more than an hour to find and execute, I’m out (I got other games to play, other projects to code, other hobbies to fulfill :wink:

I hope this helps, even though I’m conscious that we don’t have the same way of using Linux. I thought maybe seeing a different approach could help you prioritize what you really want in your next distribution.

Happy hunting! :wink:

Edit: I forgot this question:

As @tachoknight said in his answer, it’s not necessary. And if you don’t want to use command lines, GNOME Software actually shows a banner to propose you to upgrade to the latest release. It’s as simple as one click and a reboot.

4 Likes

Huh? Fedora does not use systemd-boot at all, in none of the Spins. It is included in the systemd package and sits there wasting space, but it is not actually what is installed to the UEFI. In fact, it cannot be because it does not support “secure boot”. Fedora uses shim, which chainloads GRUB2-EFI.

The kernel headers are in the kernel-devel package. The repositories contain a matching kernel-devel for the kernel version they ship.

Wrong answer. kernel-headers is not the package @simplytadpole is looking for, kernel-devel is. kernel-headers contains kernel headers for userspace, which are not suitable for building kernel modules.

3 Likes

Welcome to the community! Hopefully we can be of some help to you :slight_smile:

Primary questions:

Hmm, that’s news to me. I don’t use the spins but I thought the entire ecosystem (Server, Workstation, Spins) were all using GRUB (my Fedora Workstation does). I’ll check this in a VM; it’s interesting if the spins decided to diverge here but something sounds off with this.

There are several kernel packages within Fedora. The kernel-headers package includes the headers needed for userspace and glibc. For building kernel modules you’ll need the kernel-devel package.

The Fedora ecosystem likes to differentiate between runtime and development, so packages are broken apart to reflect this (if you’re missing headers for a specific package, package-devel will usually solve that).

Hmm, not to sure. I don’t do a lot of kernel work, so I’m not sure if you need to run dracut when making modprobe modifications. It’s been a while :confused:

How did you install this, e.g. manual tarball extraction, RPM, Flatpak, etc?

This sounds like there’s potentially a start/stop job hanging. During boot/halt press the Esc key and see if there’s a systemd job holding things up.

RAM usage is always a controvesial topic. A better discussion point would be are you experiencing problems where you are starting to swap or are you noticing specific applications/daemons using excessive memory that could be pointing to a memory leak?

Other questions:

  1. Kernel storage: By default Fedora keeps the latest three kernels installed plus a recovery zone. When you install a fourth, the oldest is removed. This number is configurable in /etc/dnf/dnf.conf via installonly_limit.
  2. BTRFS options: Unsure, I don’t do a lot of storage work and I haven’t spent the time I need to in order to really get to grips with BTRFS.
  3. DNF search: When using the list subcommand the output will break apart installed and available packges into different sections (the former listed first). The search subcommand just gives you everything, unfortunately. With list you can also choose what to list (available in dnf list --help).
  4. Workstation/Spin future: Until Silverblue leaves experimental status or a proposal comes down the line to stop development, assume they are here to stay.
  5. Gaming: I don’t game, sorry!
  6. Upgrade: Upgrades are handled with dnf system-upgrade, the documentation and release guides demonstrate how to use it very clearly (and it’s super easy!). During and after package upgrades you can see if there are any configuration changes you can make by searching /etc for *.rpmnew files, or if a package replaced your config (very rare) with *.rpmsave.
3 Likes

Welcome to Fedora. You seem to be pretty knowledgable for a self-proclaimed noob.

You could systemctl disable NetworkManager-wait-online and see if that helps boot times. Running systemd-analyze blame will show you other things that take a while. Use discretion on disabling services though.

Side note, I got an email on this topic, and that’s why I’m here responding now, did anyone else?

3 Likes

Yep, wasn’t expecting it! :smile:

1 Like

Also, have you looked into using rpmfusion? Bunch of extra packages in there, even critical things like ffmpeg, that Fedora won’t ship for various reasons. https://rpmfusion.org

1 Like

Wow! Long post!

I’ll pick…

You can easily install kernel headers with:

dnf -y install kernel-headers kernel-devel

I mean, the devel package is usually required as well. Commit it if you think you don’t.

1 Like

The reason for that is because, prior to switching, I spent months doing heavy research on how Linux works so I could figure out how to do stuff on my own and minimize my question-asking due to how hostile some people can be to Linux newbies. ^^’ (Sadly, it didn’t really help me fully circumvent that and I did still often get flamed and bullied by some elitists for not knowing how some stuff works or doiing some things “wrong”, but sadly life’s like that.)

I know it’s really petty of me, but I find it rather important for my preferences… I generally like my computer to look as pretty and tidy as possible, and I find GRUB to offer a very clean and neat UI while systemd-boot looks rough and unprofessional to me. That’s just my opinion, though ^^’

I don’t really use Flatpaks, I personally prefer to install everything manually ^^’ Plus, I heard the Flatpak version of Discord had game integration issues, but then again Discord’s integration on Linux is so terrible that it probably won’t be too much of a loss for me. Plus I guess it’ll be a nice opportunity to actually give Flatpaks a try ^^’

According to image searches on bootloaders, systemd-boot looks like this, which is fully identical to how my bootloader looked like on Fedora. Unless shim happens to look exactly like that as well, I was almost certainly using systemd-boot. Additionally, my SSD’s partitions were also weird, because I had both a 500 MB FAT32 Boot partition, and a 1 GB ext4 Boot partition on top of my 470 GB btrfs Root partition.

Will I have to install a matching kernel-devel package every time I update to a new kernel, or is there a way to make dnf automate that?

As mentioned in an earlier reply, my bootloader looked fully identical to systemd-boot’s, so unless they somehow deliberately themed GRUB to look like systemd-boot, I was almost certainly using the latter. Apparently, some of the Spins’ installers diverge from the vanilla GNOME Workstation’s installer, so its possible they decided to make them install systemd-boot by default or otherwise screwed something up? (The two redundant boot partitions make the latter a possibility.)

Do you recommend any newbie-friendly guides on how to use dracut to pass a kernel parameter? I find it pretty overwhelming ^^’

I enabled the RPM Fusion repos and installed it via sudo dnf install discord.

Oh, don’t worry, I was already aware of RPM Fusion! I mean, several apps I use (like Discord and Steam) wouldn’t be available without it :stuck_out_tongue:

Sorry, I have a bad habit of writing big walls of text ^^’

1 Like

On bootloaders, Fedora should be using grub everywhere. Check in /boot and see what’s there - if you have grub stuff, you’ve likely got grub installed. Try bootctl status to see if you’re using systemd-boot.

Of all the package managers dnf is the most intelligent. It will install new kernel-devel packages when kernel updates if you’ve chosen to install kernel-devel at any point, and autoremove old ones as necessary as kernel packages are rotated out. It keeps 3 and will never remove the one you’re using.

Your research paid off, then! :slight_smile: RPM Fusion is a huge benefit to most users.
I’ve historically found Steam to behave much better with the flatpak (via flathub) but have not used Steam myself in over a year. Maybe try it out and see if it works for you? For software that lives in the official repos, I tend to stay with dnf packages, but for proprietary software that doesn’t have a good track record, I try to use flatpak.

3 Likes

OK Ill see what I can remember to nail here, long one :smiley:

You arent going nuts, you were using systemd-boot. Fedora does not use it, you can use it tho, but the main issue you will run into is your bootloader will not get updated with new kernels automatically from the rpms as the scripts there are all for grub.

To edit grub parameters you can edit /etc/sysconfig/grub. I have a writeup on my site regarding amdgpu nonsense from back when I got my rx590 (https://www.schotty.com/EL_And_Fedora/amdgpu_Plus_Fedora/).

For flatpaks, yeah the theming gets wonky, there are ways to pass it in, I am not well versed in it, but you can map your themes dir to the flatpak. IIRC, that would need to be done for each flatpak. BTW, if you arent aware of flatseal, make yourself so if using any amount of flatpaks. Godsend.

Discord just sucks on linux. Its not you its them. I got a good chunk of my crowd over to mumble and use matrix for the chat related stuff. My crew and I are in agreement that when a proper voice plugin is there and viable (I don’t like jitsi), thats going to be our one stop shop going forward. As for Discord integrations, I did make it work out of curiousity, but I had to mostly manually tell discord what game I was in and even then it was wonky.

As for any kernel header stuff – install it, it will update as updates are available in the repo for your kernel series. If you do happen to have a new kernel but the old headers, its a repo lag – wait a bit and try again using a “sudo dnf --refresh update” to force a refresh.

On the dnf note – enable deltarpms and fastmirror plugins. Makes life a bit nicer.

HTH.
Andrew.

2 Likes

So looking back actually I think (emphasizing “think” here) you may be mixing up modprobe.conf and kernel command line syntax. The option amdgpu.ppfeaturemask is something you would specify for the kernel command in something like the grub config, not modprobe. I believe your /etc/modprobe.d/amdgpu.conf should look like this:

# Enable all power features for amdgpu
options amdgpu ppfeaturemask=0xffffffff

No dracut needed, I believe. Just a reload of the module (safely with a reboot considering this is a graphics driver).

I needed to go back and look at some of the ones I have on my system to get my memory back on this :laughing: Last I did this was for NVIDIA driver configs that then ended up in the actual RPM Fusion package and for nested virtualization.

For extra reference:

man modprobe.conf
man modprobe.d
modinfo <kernel_module> # e.g. modinfo amdgpu
2 Likes

Huh, I had no idea Steam worked better on Flatpak :o I always heard the Flatpak version of Steam was buggier. I hope Flatpak Steam supports alternate libraries on different drives…

Well, then I’m curious, why is it that I ended up with systemd-boot not once, but twice (as I reinstalled Fedora once) despite using the default installation? Are the Spins really configured to default to systemd-boot unlike Workstation? Is there any way I can install it with GRUB at all?

Agreed, Discord is barely functional on Linux. :confused: I actually tried out Matrix, but I found it so incredibly convoluted and confusing to use that it was even more of a hassle than Discord… I really wish we had a better and more intuitive FOSS Discord alternative. :c

I just looked it up, and thanks for letting me know! Vanilla dnf was so slow it was unreal. ^^’

1 Like

Matrix’s not perfect yet, but I find it really usable. The only convoluted part is the session verification. For some reason they decided that you can pass that on Element, but if you do you get a subpar experience. Fractal, for instance, decided that session verification was mandatory before being able to use the client. I think it’s a better behavior as it forces the user to do something that is not very difficult (I mean it’s basically flashing a QR code or comparing smileys), but the experience afterward is smoother.

Anyway, I encourage you to try Matrix a bit more (and join the #GamingOnLinux space and rooms :wink: ).

2 Likes

Oh, and as I understand it, the Realtek WiFi drivers are not actually closed-source or proprietary, they are just not included in the kernel (and will likely never be in that form, not because of licensing, but because the coding architecture and quality does not match the kernel maintainers’ expectations).

There is a rewritten driver for Realtek PCI WiFi in the kernel, but unfortunately, the USB WiFi chipsets are sufficiently different from the PCI ones for that driver to not be easily adaptable to the USB ones. So you are stuck with the vendor driver (unless you replace the USB WiFi stick with one supported by the kernel).

This is also particularly unfortunate because almost all of the WiFi USB sticks out there are using Realtek chipsets these days. There are only a handful ones with a Mediatek chipset, those are expensive, and some hardware vendors have switched from Mediatek to Realtek (probably for cost reasons).

1 Like

deltarpms is already enabled by default: https://www.spinics.net/linux/fedora/fedora-users/msg508092.html

1 Like

I suggest you try a few more distros. Maybe in a VM to get an idea what your want.

Decide on the lifecycle you would like, stability Vs freshness, desktop environment and package manager.

Some ideas:

  • openSuse has btrfs snapshots out of the box. You can choose tumbleweed (rolling) or Leap (yearly) and rollback whenever you break something. KDE or Xfce world be my go to
  • Manjaro for me has been a reasonably stable rolling release. Couole Xfce gives you some desktop stability. You could also add snapshots.
  • Maybe kubuntu or xubuntu which has short lifecycle and makes things easy to set up.

Apologies for not reading all the post, but hope this helps.

I performed an installation of the KDE and Cinnamon 35 GA Spins in UEFI configured virtual machines and both times they utilized GRUB post-install. Which ISOs were you installing from? The presence of grub should be enough to suppress systemd-boot, I can’t imagine Fedora installing without it.

1 Like

I think Fedora has more active services than those distros, for example most distros don’t ship with a firewall configured and running out of the box but Fedora has firewalld enabled by default.

Same. It was because I was subscribed to new posts to the #introductions tag. I don’t remember doing it manually. Maybe I misclicked it or got automatically subscribed because of something I don’t know/remember.

1 Like