Steam Play

I have been using a Linux Desktop machine as my primary computer for many years now. The applications I use day to day are mostly open source and run natively on Linux or through WINE.

Games though have always been an issue. In recent years more games are being released that run natively on Linux. I will now only buy games that run on Linux, no matter how much I might want to play them. But what about the games I already own?

In particular Galactic Civilizations 3. I paid (more than I would do normally) to be a founder for this game. I did so because I enjoyed the previous instalments that I played on Windows and this would entitle me to future expansions for the game at no extra cost. It sounded like a bargain, especially as at the time there was talk of Linux support. Alas the Linux version never materialised and I had to result to booting my old Windows machine in order to play.

I have played the game very little over recent years due to needing to move into a different room and boot another machine to play on a small monitor. Today I stumbled across a post in my news feed about https://www.protondb.com. Proton is a tool built into Steam to allow Windows games to run on Linux. Protondb.com contains a searchable database of users results of attempting to run Windows games on Linux. Galactic Civilisations 3 was in the list as having Gold level support. Digging into the user reports things get better. Over the past 3 months with Proton 3.7-8 users have rated support at the highest Platinum level and a few of the results were using the open source AMD drivers (which is what I use).

Time to give it a go. I followed the Steam instructions on how to enable Steam Play in the Steam Client. From there I was able to download and install the game.

Launching the game for the first time a launcher window appeared showing other games by the same developer. I was then able to launch into the game and found that it worked :).

Then I ran into a problem. Not with the game but with the launcher. To adjust the graphics settings in the game requires the game to be restarted. However the launcher turned into an invisible window. I could click on it. I could see its contents when I looked at the Gnome workspaces overview. I just couldn’t see it when it was maximised. This obviously makes launching the game a problem.

I found the solution in this post. Adding “/nolauncher” run option for the Advanced Startup options for the game inside the Steam Client. The game now starts without any issues.

The only way to know for sure that it works correctly will be to play a few games. I’m now off to “force” myself to play a few games for “research” purposes.

HDMI Monitor Problem & Fix

The recent warm weather had made using my 3 monitor configuration a little uncomfortable. To make things a little more bearable I decided to turn off two of the monitors to reduce the amount of heat output into the room. I disabled the monitors using the display settings in Gnome 3.28. All was working well.

Today I attempted to re-enable the screens and here a problem arose. Whilst my DVI connected monitor powered up correctly and could be managed in display settings, the HDMI connected monitor could not. The HDMI cable was exchanged and the monitor confirmed to be working by connecting to a laptop. I had begun to suspect a faulty HDMI port on the graphics card. No amount of powering down and rebooting would solve the issue. However the monitor would display the BIOS screens and boot process up to and including the login manager. The only point at which it would fail to display anything was upon logging into Gnome.

Some research pointed to a monitors.xml file. This can be found in the users home directory ~/.config/monitors.xml. Opening this in a text editor and reviewing the contents showed that it had become corrupted. It showed monitors connected multiple times to different inputs. In the past some of this information would have been correct, but as my monitor connections have changed the file had not been kept up to date.

I removed the file, since it gets automatically regenerated, then logged out of my session. On logging back in my HDMI monitor became enabled again and working alongside the others. I was then able to tweak the display settings to have them all back to my desired configuration.

Stable System?

I think I can finally say I have a stable system once again. After the RMA replacement of my Ryzen CPU to fix the “Performance Marginality Problem” I noticed that I was still getting some regular system lockups/freezes when it was left idle.

How long this secondary issue has been present I am unsure. Over the summer I had been using the machine but turning it off after use as it was keeping the room a little too warm. I probably didn’t notice the idle issue as I wasn’t leaving it idle. Any occasional occurrences of problems I attributed to the old CPU.

The current workaround has been to disable the C-States in the BIOS. It appears when the system is idle it is going into a low power mode but for some reason this isn’t happening correctly. At this time I’m unsure if this is related to the BIOS itself or Fedora 26 running a 4.13 kernel.

I have upgraded both BIOS (AGESA 1.0.0.6b) and kernel over the past few months so I will have to test again when one of them changes. Next week Fedora 27 is released, it will likely ship with a 4.13 kernel but 4.14 should follow shortly after. A BIOS with AGESA 1.0.0.7 might arrive before the end of the year.

For the time being I will settle for a little additional power usage and no crashing.

Ryzen PC Backup

I finally decided to perform a backup of my new Ryzen PC running Fedora 26. Normally I wouldn’t leave it too long between backups especially if I have made significant changes. My new PC presented me with a little bit of an issue, I couldn’t run my backup software.

I tend to use Clonezilla to take/restore system images. I’ve used it for years and it has been working well for me. That was until I tried to boot it on my Ryzen system. It was hanging with tpm_tis and tpm_crb errors.

The arch wiki states that “Support for TPM 2.0 is still incomplete (both on the kernel and in userspace), and no known work flow for TPM2 exists at the moment.”

It would appear that I had enabled the TPM option in the bios and I have TPM 2.0 hardware.

The Workaround
Clonezilla 2.5.2-20 (Debian – Kernel 4.11.11-1+b1)

  1. Disable TPM in the bios.
  2. Boot from a CD (non-uefi) and run Clonezilla in graphics safe mode.
  3. Having successfully booted Clonezilla, perform backup as normal.
  4. On completion of the backup re-enable the TPM hardware in the bios.

Fedora 25

This evening I arrived home from work and began to update my machines to the latest version of Fedora. I am pleased to say the update has gone smoothly. This has been the easiest update I think I have had in recent years.

Now the bad. Wayland has become the default display server replacing X11. It works, by which I mean I have a usable display. The bad is that it has broken my workflow. I have a few simple scripts that tweak my environment. These have always loaded when the display server starts. Ok, how do I do this with Wayland? I did some reading. The issue has been known about for 2 years, Bug 736660. The workaround for the moment is to logout and then log in with an X11 session. Logging into the X11 session everything works again and I can continue. Hopefully issues like this will get resolved quickly.

Fedora 24

This week I have been updating my machines to run Fedora 24. Two out of 3 updated without any issues and continue to run normally. One machine however has decided to cause me some issues.

My old Toshiba X200 laptop had followed the upgrade instructions to the point where it needed to reboot. So I rebooted the machine and left it to do its work. Returning some time later expecting it to have completed I was disappointed to see it stuck doing nothing. After some investigation it appeared I was getting an error to do with an Invalid PCI ROM Header, the value didn't match what was expected. I couldn't boot the machine without this occurring and left me scratching my head for a bit. There doesn't appear to be an obvious solution online. Others have reported similar issues but apart from seeing the error their machines have fully booted.

I decided to try adding a few flags to my kernel boot parameters. Finally I go one to work. Adding "pci=norom" seems to have done the trick and allowed the machine to continue to update. I won't know until the upgrade is complete if I will need to add this option back in permanently. But hopefully it won't be anything more than that.

Termux – Custom Prompt

Termux is a terminal emulator and Linux environment for Android. I wanted to customise my prompt in the same way that I have done on my desktop/laptop machines. Ordinarily I would have a .bashrc in my home directory where I would make the changes to the prompt (PS1). However Termux doesn't recognise this.

I found a reference to configuring this: http://blog.ataboydesign.com/2015/12/01/termux-is-the-one-for-android/

Following this method the changes to PS1 are made in "/data/data/com.termux/files/usr/etc/bash.bashrc". I had been successfully using this method for a while with no ill effects. That was until today when I realised an update to Termux had overwritten the changes. Not what I wanted.

So after some searching I have found a solution that should survive future updates. In your Termux home directory save the following as ".profile". This will be run when Termux is started and make Termux look for a ".bashrc" file in the home directory.

# .profile
if [ -n "BASH_VERSION" ]; then
  # Echo msg to indicate file is run - can be removed later
  echo "Profile load.bashrc"
  # include .bashrc if it exists
  if [ -f "$HOME/.bashrc" ]; then
  . "$HOME/.bashrc"
  fi
fi

Create and edit ".bashrc" with any custom options. Exit and restart Termux and your custom configuration should be loaded.

New Projects

This month I have started a couple of new projects. It began as one but soon split. The primary project was to make use of a 128x64 I2C OLED display. It has been sitting on the side for a few months after an impulse purchase. It soon became apparent that I needed a way to generate static images for the screen. Although there were programs out there that would convert a bitmap image into the hex code I needed, many were for Windows. So I decided to have a go at converting it myself.

So new to my GitHub repo are:
DN2015-001 – An interface for the SSD1306 OLED Display Driver
DN2015-002 – A bitmap to hex converter for use wwith DN2015-001

Both projects are under development at the moment. How much they develop will depend on how my experimentation with the OLED display goes.

The Big SSD Research Post

Intel730Series

Introduction

This article was written at the end of 2014. Most of the content will remain relevant in the future but there may be aspects which become outdated as hardware and usage practices evolve.

I have purchased an Intel 730 Series 480GB SSD with the intention of using it in my Fedora desktop machine. There are many articles online that discus how to configure an SSD, what to put on it, which partition structure to use, which mount options etc. I wanted to set the drive up to get the best out of it and my system as a whole. What follows are the results of my research and the decisions I have made based upon it. The writing style is based on my own note taking and primarily for my own reference. It is my hope that it posting it here that it may be of use to others.

What do I put on my SSD?

There are many posts/articles online asking this question and the answers to them vary. What became apparent immediately was the age of some of the discussions. Information from 3-4 years ago based the decisions on drive size (32-128GB).

An SSD with a limited amount of capacity is often set-up along side a traditional HDD.

A typical partition layout for a smaller SSD & HDD:

1
2
3
4
5
6
7
8
9
SSD:
    /boot
    /
HDD:
    swap
    /var
    /tmp
    /home
    /data

/boot & / are the main operating system and program partitions/directory structure. SSD's are sometimes referred to as 'boot drives' as by having the OS and applications on it would allow the system to boot and respond faster.

Swap wouldn't be placed on the SSD as if you were frequently using the swap space you would be putting additional wear onto the SSD.

/var contains log files from the syslog daemon. Frequently wrting small amounts of log data increases SSD wear. /tmp in much the same way has small temporary data that increases wear. /home is occasionaly placed on the SSD depending on the space required by the user. The HDD would be used for music, photos, large files and other user generated data.

SSD's have been increasing in size over time and the space limitation isn't such an important factor. What does remain in the considerations of the amount of data being written to an SSD.
Continue reading "The Big SSD Research Post"

SSD Research

I had a spot of luck this week when I purchased an early Black Friday deal on Thursday evening. I wasn't intending to buy anything but I knew when the deals were starting and decided to have a look. I am currently awaiting delivery of an Intel 730 Series 480GB SSD. I had seen this earlier in the year (around March) and it looked a nice drive but too expensive. A 50% price reduction can change my mind.

SSD's are fragile little things, they only have a limited number of write cycles and need to be looked after. I am planning on using the drive in my main Fedora Linux desktop (which is good as this particular drive runs too hot for a laptop). I decided to research the usage of SSD's as I want it to be reliable and I want to get the most out of it in terms of performance. What I hadn't factored in was the amount of decisions that can be made.

Log files are small amounts of data that are frequently written to HDD/SSD. On my re-purposed chromebook I have disabled most of the logging as it isn't a critical system for me. I want logs for my desktop, so as I plan on having both an SSD and a HDD in the same system I can move the logs to the HDD. This was something I was expecting and reading up on. It was then I uncovered some notes about Firefox cache. Firefox (and other browsers) cache small files to disk in much the same fashion as log files. This opened up a whole new branch of ideas. Do I put the cache in RAM and lose in on reboots? Do I sync the RAM to disc with a script? Do I move the entire browser profile to RAM and sync that? Where is the cache in the first place? It appears that you can just as easily move that cache to a HDD as to RAM and it really depends on where your user profile is in the first place.

As I sit here writing this I probably know more about SSD's than I ever wanted to know. What I am finding is that I still need to know more. Some choices I have partially made, others not. I have a little more time until the drive arrives to make my mind up. I think I might wait until after Fedora 21 is released and do a clean install. Until then, more research.