This post has been a long time coming. It is time. This is a breakdown of what it has taken and what I have learned (so far) to get Linux running on my newest computer the MSI Alpha 15 A3DD.

tldr; The “Solution”

What I’ve learned

What I have learned so far has been a few things. I’ve learned more about what systemd is and how to get to the logs it generates. I’ve learned how to / where to find the documentation on those random kernel boot parameters that people will say “hey try adding this random thing to your kernel boot parameters”. And I’ve learned I always like to have at least three things in lists where I’ve started off each item with the same word or “words”.

Systemd

I learned that systemd has a boot manager like grub in it’s umbrella. Who knew? I think I’ve even used it once while hopping distro’s to see if one was a “magic bullet” before finally finding some good experience to draw from.

I also learned that systemd’s logs can be accessed through “journalctl” and that they can tell you (sometimes) if something goes wrong with your hardware (WiFi, video card, etc). If you’ve never ran that command on your system, give it a go and look through it! I think it uses less or something and therefore uses vi commands like “shift + g” to to take you to the bottom immediately or “g + g” to take you to the top as well as ’/mySearchString` to search.

journalctl -b1 was useful because it would only show you the logs from your previous boot (which may have crashed).

Kernel Boot Parameters

I got really tired of not knowing what I was trying when people on random forum posts had suggestions for how to fix certain things with kernel boot parameters. I finally had enough and found out there’s a website that documents these parameters! that place is - funnily enough - kernel.org the Linux kernels official website. Go figure.

For example I learned what runpm does from the developer GPU section for amdgpu. Which I needed nearly everytime I booted (it seemed worse when I was not hooked up to power) the screen would just freeze. Booting with this feature turned off stopped that.

Something else I learned not from the official documentation but in a few other places is that everything is a file in Linux. No really, nearly everything. For example I was having problems with random brightness changes happening (but only after I had changed the brightness using the keyboard). Some random person on the internet (who goes by saedlar93) suggested changing the value of a kernel parameter live by running a shell command - something like echo 0 > /sys/module/video/parameters/brightness_switch_enabled - at which point I thought “you can do that?”. The same poster suggested “try running this. If you stop having problems then make it permanent by adding video.brightness_switch_enabled=0 to your kernel boot parameters. I then ran an ls /sys/module/video/parameters and noticed something interesting… that thing was a”file” called report_key_events. From previous research I had done, I found out I could stop the random brightness changes from occurring by adding an xorg.conf file that ignored key presses that came from the video bus. I couldn’t find any real documentation on this specific parameter so I experimented. And yup, it makes it so I don’t get random brightness changes. Yay! Extrapolating on the example this guy gave, I added video.report_key_events=0 to my grub conf and it became permanent.

The reason I needed this kernel parameter at all and I didn’t stick with the xorg way was because I didn’t want to use xorg. I wanted to use the wayland protocol instead. When running on wayland, xorg conf files don’t do anything. The kernel parameter was a lucky find indeed.

Other

I also had some WiFi problems where the connection would just die randomly. With running on the latest kernel I haven’t seen any of that. It’s been 3 days so far, which is the longest I’ve gone without having WiFi problems yet!

I’ve also noticed slightly better battery life. But it could just be in my head.

For the curious, as of this writing I’m running Fedora Workstation 32 and I’m on kernel 5.7.12.

Conclusion

This was not an easy experience, however I don’t regret it. I learned a lot more about Linux and I became much more comfortable with troubleshooting my own problems than I have ever been before. Through some miracle of fate, up until now, I’d been able to solve nearly every problem I’ve encountered in Linux through a quick search that turned up an answer with instructions in the top results. This was arduous but I’m happy with the results.