Monday, December 23, 2019

Saturday, November 9, 2019

Fedora Workstation 31 Setup Guide according to Jeremy

Although Fedora Workstation 31 has been out for about a month I only just got around to writing my own little setup guide. I'm not really sure this will be of benefit to anyone as it's the setup I use but being pretty general use it could helpful.

After initial installation Fedora will reboot into it's first time setup. Here you will following along and do as it asks. After you complete the tasks you'll be magically transported to the blank desktop that is Fedora Workstation 31!

From here the first thing I do is set up the Fedora Rawhide kernel with no debug stuff baked in. I need this kernel for my Radeon VII to not flip out with my two 144Hz monitors. I have been using it on my main machine for a bit and it's proved to be stable (strangely). Since it's been smooth sailing so far I've moved on to using this kernel on my other computers as well. Use the following two commands to add the kernel repository and update your Fedora install.
sudo dnf config-manager --add-repo=http://dl.fedoraproject.org/pub/alt/rawhide-kernel-nodebug/fedora-rawhide-kernel-nodebug.repo
sudo dnf upgrade
After the upgrade command finishes you'll want to reboot your computer to use the new kernel.

Once your computer reboots we'll continue by adding the RPM Fusion repositories. Add and configure them by using the below commands.
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf groupupdate core
sudo dnf groupupdate multimedia --setop="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin
sudo dnf groupupdate sound-and-video
killall -9 gnome-software
Now that RPM Fusion is set up I usually remove software I don't use from the initial OS installation.
sudo dnf remove rhythmbox libreoffice* gnome-photos gnome-weather gnome-maps
In addition to removing I also install a few bits not installed by default. I'll start off with Google Chrome.
Download Google Chrome from https://www.google.com/chrome/ making sure to get the rpm file for fedora. Once it finishes downloading you'll need to install it via the Software Program. You can just double click on the rpm file's icon in your file manager.
After Chrome I usually configure FlatHub access and install some programs.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub org.gimp.GIMP
flatpak install flathub org.inkscape.Inkscape
flatpak install flathub org.gnome.Games
flatpak install flathub com.mojang.Minecraft
flatpak install flathub org.libretro.RetroArch
 Once I'm finished with FlatHub's programs I move on to installing a few programs via dnf.
sudo dnf install wine winetricks gamemode.x86_64 gamemode.i686 lutris steam gnome-tweaks
After the previous command finishes I install lm sensors. This is so I can read proper data from my motherboard sensors. These include temperature, voltages and fan speeds.
sudo dnf install lm_sensors
sudo sensors-detect
The sensors-detect portion of the command finds what sensor chips are on your motherboard and configures them.

Next up is installing Gnome Shell extensions. I get them all from extensions.gnome.org.
Dash to Dock - https://extensions.gnome.org/extension/307/dash-to-dock/ 
TopIcons Plus Git - https://extensions.gnome.org/extension/2311/topicons-plus/ 
KStatusNotifierItem/AppIndicator Support - https://extensions.gnome.org/extension/615/appindicator-support/
No Topleft Hot Corner - https://extensions.gnome.org/extension/118/no-topleft-hot-corner/ 
Caffeine - https://extensions.gnome.org/extension/517/caffeine/ 
GameMode - https://extensions.gnome.org/extension/1852/gamemode/  
Appfolders Management extension - https://extensions.gnome.org/extension/1217/appfolders-manager/  
Desktop Icons NG (DING) - https://extensions.gnome.org/extension/2087/desktop-icons-ng-ding/
Freon - https://extensions.gnome.org/extension/841/freon/ 
cpufreq - https://extensions.gnome.org/extension/1082/cpufreq/
Once finished with the Gnome Shell extensions I'm pretty much finished. All that's left is to log out and log back in using the 'GNOME with xorg' option.

Wednesday, November 6, 2019

Red Hat Enterprise Linux 8.1, a little information from neofetch

I saw RHEL 8.1 was released yesterday and was curious about some general information. I was looking for stuff like what kernel version, gnome version and so on. I downloaded the developers ISO, installed it in a VM and updated it. Below are a few screen grabs of the information I was looking for.


Above is the output from 'neofetch'. This pretty much contains the information I was looking for. Below is the output from 'uname -a'. This is the kernel after updating to whatever was available to update on 11.06.2019.


And finally here is the details tab from the gnome settings program.

Thursday, October 3, 2019

Feral Gamemode and Fedora Linux 31 beta

Feral Interactive's GameMode is a snazzy little utility which runs in the background and configures Linux's CPU settings for gaming. The below information is cut and pasted straight from GamneMode's github page.
GameMode is a daemon/lib combo for Linux that allows games to request a set of optimisations be temporarily applied to the host OS and/or a game process.
GameMode was designed primarily as a stop-gap solution to problems with the Intel and AMD CPU powersave or ondemand governors, but is now host to a range of optimisation features and configurations.
Currently GameMode includes support for optimisations including:
  • CPU governor
  • I/O priority
  • Process niceness
  • Kernel scheduler (SCHED_ISO)
  • Screensaver inhibiting
  • GPU performance mode (NVIDIA and AMD), GPU overclocking (NVIDIA)
  • Custom scripts
I've been using GameMode on Fedora 31 since the beta was released and have had splendid results while gaming. To install GameMode on Fedora 31 beta use the following dnf command.
sudo dnf install gamemode.i686 gamemode.x86_64
It's important to install both the 64bit and 32bit versions otherwise you will not be able to use GameMode with Lutris game launcher or with 32bit Steam games. Lutris automatically picks up on GameMode's installation and configures your games accordingly but Steam does not. To use GameMode with Steam you have to manually configure each game to use it. Luckily it's not to difficult. In your Steam game's properties you'll want to click the "SET LAUNCH OPTIONS..." button and enter 'gamemoderun %command%' into the box (see below). After this GameMode will run while playing and end when you exit your game.



In addition to the utility itself I've been using the Gamemode Gnome Shell extension for a visual queue when GameMode is active. While not necessary to use GameMode I do get warm fuzzies from seeing the icon light up green while playing a game.

See! Warm fuzzies!

Although Fedora's dnf command will install GameMode for you below is their githib page with additional information and source code.

https://github.com/FeralInteractive/gamemode

Saturday, August 10, 2019

Radeon VII crashes under Linux Kernel 5.1.0+

UPDATED: Read comments.

I recently acquired a Radeon VII video card for my Linux box. Sadly, it's been a huge pain in the arse to get working stably. I get hard system lockups when trying to drive my two display port monitors at 1440p @ 144Hz. Interesting enough it's not an instant lockup. First the screen will freeze then I get the screen blinking once to black. After a few seconds I return to the desktop with a complete hard lockup. I must reboot the system via the reset button for it to function again.

I've tried Fedora 30 with updated stock mesa and git mesa from che's copr, RHEL 8.0 with official AMD pro drivers version 19.20, Ubuntu 18.04.2 with official AMD pro drivers version 19.20, and finally Ubuntu 19.10 beta with stock mesa. Every system exhibits the exact same behavior (lock up, black screen, hard lock).

The only information I've found on this subject is a bug report from bugs.freedesktop.org (link below).

Radron VII crash bug on bugs.freedesktop.org

It's seems the problem stems form Linux kernels above version 5.1.0. Sadly, I've had the problem with every kernel since Fedora 30's original 5.0.x release.

The only work around I've found is to run the refresh rate at 120Hz on both monitors (instead of the desired 144Hz). The resolution can remain the native 2560x1440. This setting has provided a little more stable, although still not perfect. I also have to use the Wayland session to get halfway smooth desktop performance. Xorg is choppy and just feels chunky.

On a positive note the Radeon VII simply rocks in OpenGL and Vulkan performance. Every game is beautiful with ultra smooth FPS. As long as I keep the refresh rate below 120Hz, of course. Anything higher results in the above described lockup. Windows games under wine/proton and DXVK are super smooth as are the native games I've tested.

Over all I'm pleased with my Radeon VII card. I am willing to wait for the proper kernel bugs to be hunted down and squished.

Wednesday, March 27, 2019

Lets install The Vulkan for AMD graphic cards on The Ubuntu 19.04, bitch!

For my own sanity I'm documenting how to enabled The Vulkan on The Ubuntu 19.04. I used information form linuxconfig.org to make The Vulkan happen.
sudo apt install libvulkan1 mesa-vulkan-drivers vulkan-utils mesa-vulkan-drivers mesa-vulkan-drivers:i386
And that's it (mostly). If you want you may install the latest MESA drivers via the below PPA. It's not necessary but I guess it can't hurt (can it?). Each line is a separate command.
sudo add-apt-repository ppa:oibaf/graphics-drivers
sudo apt update
sudo apt upgrade

Wednesday, March 20, 2019

YO! Lets compile GameHub on Fedora 29

Welcome back, true believers! On today's episode of Spider-Man and his Amazing Friends we are exploring the compilation of the GameHub game launcher. GameHub is a game launcher supporting Steam, GOG.com, Humble Bundle DRM free games, and the Humble Trove. It has a really slick layout and oodles of configuration options for native and WINE based Windows games. But enough with the pleasantries, let's begin this action packed episode of Spider-Man and his Amazing Friends!

We will want to start out with the dependencies needed by Fedora 29 to successfully compile GameHub. Type or copy/paste the following into a terminal.
sudo dnf install vala-devel vala granite-devel webkit2gtk3-devel json-glib-devel sqlite-devel polkit-devel cmake ninja menson libgee-devel libsoup-devel libxml2-devel libXtst-devel libX11-devel
After the dependencies install we want to track down one more library needed to compile. This is libmanette. Manette doesn't seem to be available for Fedora 29 so I went to Fedora Rawhide to the package. Below are the steps involved in obtaining the package and installing it.

Go to https://pkgs.org/download/libmanette and click on the fedora link. You will want to download the libmanette-0.2.2-1.fc30.x86_64.rpm. Next use the following rpm command to install the package. Double clicking and installing the rpm via Gnome's Software application will not work.
sudo rpm -Uvh libmanette-0.2.2-1.fc30.x86_64.rpm
Once Manette is installed we will begin the compile process. Use the below commands to obtain the GameHub source and compile the code. Each line is a separate command.
git clone https://github.com/tkashkin/GameHub.git
cd GameHub
meson build --prefix=/usr -Ddistro=generic --buildtype=debug
cd build
ninja
sudo ninja install
After all the dust settles you should find GameHub installed and ready to go.

Excelsior!



Thursday, March 14, 2019

Gamepad workaround for Steam Play Proton on Fedora 29

On recent builds of Steam Play's Proton I've not been able to use my gamepad under any games which use Proton's WINE based compatibility layer. In early betas of Proton my gamepads worked fine so I knew it was possible. I poked around my system checking for what might be causing Proton to not detect any connected gamepads. Using the terminal command 'lsmod' I noticed the 'xpad' kernel module was loading. I recalled historically 'xpad' could interfere with some gamepads even though it appears to work for most applications. I figured I'd give the alternative userspace driver xboxdrv a try instead. From my days of using a XBOX 360 wireless controller with the wireless dongle I remember using xboxdrv for better support and greater options.

I went about installing xboxdrv via the following command.
sudo dnf install xboxdrv
After installation finished I wanted to set xboxdrv to start at boottime. I did so using the following command.
sudo systemctl enable xboxdrv
And finally you'll want to start xboxdrv so you can begin using your gamepad right-away without a reboot. Use this command to fire it up.
sudo systemctl start xboxdrv
Next time you connect your compatible gamepad you should be able to use it with Steam Play games.

For this how-to I used a SONY Playstation Dualshock 4 wireless controller connected via Bluetooth. It should also work for a legit XBOX 360 controller setup. I am not so sure about a XBOX ONE S controller as I couldn't get xboxdrv to recognize it being connected. This is via Bluetooth or USB.
 

OBS Studio 23.0.2+git with AMD Hardware Encoding - Fedora 29

After the long and winding road of attempts at getting hardware encoding working on my AMD VEGA 64 graphics card I have finally reached the final destination! That's right! I have hardware encode working. I know, I know. Many others have had it working before but I've never been able to find much information about getting it working in OBS Studio. Much less a readable how-to. I compiled OBS from source to include several of the included plugins but was able to use standard Fedora 29 packages otherwise.

I'll not dilly dally any longer. Here is my mostly complete how-to.

The following instructions are for FEDORA 29 only. Your mileage may vary on other Fedora versions.

First start off by installing dependencies needed by Fedora 29.
sudo dnf install gcc gcc-c++ gcc-objc cmake git libX11-devel mesa-libGL-devel libv4l-devel pulseaudio-libs-devel x264-devel freetype-devel fontconfig-devel libXcomposite-devel libXinerama-devel qt5-qtbase-devel qt5-qtx11extras-devel libcurl-devel systemd-devel ffmpeg luajit-devel swig python3-devel ffmpeg-devel qt5-qtsvg-devel ImageMagick-devel mbedtls-devel libva-devel ImageMagick-libs libva-vdpau-driver 
After you have your dependencies in order you'll want to download the source for OBS Studio via git.
git clone --recursive https://github.com/obsproject/obs-studio.git 
 After you have your source downloaded you'll want to enter the source directory and create your cmake build directory.
cd obs-studio ; mkdir build ; cd build
With the build directory made and entered you'll want to use the following cmake command to configure the OBS Studio source.
cmake -DCMAKE_PREFIX_PATH=/usr -DUNIX_STRUCTURE=1 ..
Hopefully cmake finishes without error so you'll be ready to compile. As far as I remember the above dependencies should be enough to get you going. Next you'll want to build the source.
make -j<the number of CPU threads you have>
After the 'make -j' you will want to put the number of CPU threads you have. As an example if you have a 4 core plus hyperthreading system you'll have 8 threads. So you will use 'make -j8'. This will speed up the compilation time. If you don't care about speed you can use plain old 'make' with no options.

When the build finishes without error you'll be ready to install OBS Studio into it's final resting place. To do so type in the following command.
sudo make install
At this point you are mostly ready to go. All that remains is configuring OBS Studio to use the FFMPEG VAAPI plugin for hardware encoding. To do so you'll want to start up OBS and click on the 'Settings' button in the lower right corner of the main window.  Next click on 'Output' from the left hand column. This is where you'll set the FFMPEG VAAPI plugin to encode.

First under 'Output Mode' you'll select 'Advanced' from the drop down menu. After 'Advanced' is selected it'll open up more options than before. Next refer to the below image for the settings I used to enable stable hardware encoding. I run a 2560x1440 monitor resolution so I needed to set the 'Rescale Output' to 1920x1080. Pay attention to the 'Encoder' drop down menu, this is where you toggle between hardware and software encoding.

Click for bigger view
Originally when using software encoding I'd sit at about 30% CPU usage when encoding at 1080p @ 60FPS on my RYZEN 7 1700x system. After configuring FFMPEG VAAPI hardware encoding I sit at about 2% while streaming with the same settings to Twitch.

If any of the above doesn't work for you please feel free to leave me a comment and I'll do my best to help you through your issues.