All posts by adam

Audio Fix for Mass Effect on Steam for Linux

I’m a few days late for N7 day, but I figure this information is useful nonetheless!

I’ve always done my Mass Effecting on XBox 360 or XBox One. But now that Steam has many Windows games working on Linux, I figured: what heck, let’s start over again there! (I’m not the only one who plays Mass Effect on loop right? Bueller? Bueller?)

Everything worked like magic right from the get-go, except audio. You’ll probably get sound from the corporate logos, but nothing when you play the game. If you try to turn off hardware audio in the settings, which is culprit, Mass Effect will dutifully turn it back on again.

So, by way of the Arch Linux forums, here’s the fix:

Open up a terminal window.

Make a copy of the existing config, just in case:

cp ~/.steam/steam/steamapps/common/Mass\ Effect/Engine/Config/BaseEngine.ini ~/Desktop/

Edit the configuration file:

gedit ~/.steam/steam/steamapps/common/Mass\ Effect/Engine/Config/BaseEngine.ini

Scroll down to the section with the heading: [ISACTAudio.ISACTAudioDevice]

Copy and paste these two lines right below the heading:

DeviceName=Generic Software
UseEffectsProcessing=False

And that’s it! Fire up Mass Effect, and you should get audio.

Rescuing Fedora When EFI Grub Goes Bad

On a very ordinary day I decided to upgrade my Plex server from Fedora Server 27 to version 29. When I rebooted, Grub failed to find anything bootable. Then my day stopped being ordinary.

Luckily I snapshotted the VM first, since figuring this out involved restoring and trying again more times than I’d like to admit. But enough of my story of woe. If you’re here, you just want to know how to fix grub!

The relevant information is in Fedora’s official documentation, but I’ll give you the quick version of what worked for me: https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems

Likely you rebooted before noticing something was wrong. If this was a VM that you have a working snapshot of, restore the snapshot and skip ahead to “Fixin’ Time!”. If not, boot a Fedora live DVD, choose rescue, then option 1 to mount all of your partitions.

Once mounted, follow the on-screen instructions to chroot into your mounted partition.

Fixin’ Time!

Make sure /boot and /boot/efi are mounted. If not, this fix won’t work.

sudo -s

mount /boot && mount /boot/efi

If you’ve got a standard installation like mine, you won’t have the grub tools installed, so install them.

dnf install grub2-efi-x64 shim-x64

Now the magic step.

grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Important Note!

Do NOT run grub2-install. This is not for EFI systems and will end up with getting nothing but a blank Grub prompt.

Finally, reboot.

reboot

That’s it! You should have a working Grub menu now. If not, you may need to try some of the additional steps listed in Fedora’s documentation linked above.

SSLStream Failure with .Net 4.x in Unity 2018.1

When Unity 2018.1 was released I jumped (perhaps too quickly) to using “.Net 4.x Equivalent” for the scripting runtime version under “Build Settings->Player Settings.”

Everything ran fine in the Unity Editor, but socket reads would silently fail after a few seconds on iOS.

I use SSLStream and SSLStream.Read() in a while loop running under its own thread. This runs without any issue using IL2CPP under the .Net 3.5 runtime, but fails almost immediately under iOS using 4.x.

I’m not sure what the exact problem is, but a forum post on unity.com seems to indicate that TLS related functions aren’t going to be fully ready using the .Net 4.x runtime and IL2CPP until 2018.2:
https://forum.unity.com/threads/questions-around-tls-support-on-2018-1.524917/

Either way, if you come across this issue, simply reverting back to .Net 3.5 seems to resolve the problem.

Upgrading to PostgreSQL 10 on Centos 7

Here’s a quick rundown on upgrading a very simply configured PostgreSQL 9.x server to PostgreSQL 10 running on Centos 7.

First, and this goes without saying, backup your server!

In these examples, I’m using upgrading from PostgreSQL 9.5. If you’re upgrading from a different version, just replace 9.5 and 95 wherever you see it with your appropriate version number.

Install the repo RPM for PosgresSQL 10

sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

Install PosgreSQL 10

sudo yum install postgresql10-server

Stop Postgresql 9.5 and Postgresql 10

sudo systemctl stop postgresql-9.5.service && sudo systemctl stop postgresql-10.service

Initialize the PostgreSQL 10 database

sudo su postgres
cd ~/
/usr/pgsql-10/bin/initdb -D /var/lib/pgsql/10/data/

Migrate your database from the 9.x version to 10

/usr/pgsql-10/bin/pg_upgrade --old-datadir /var/lib/pgsql/9.5/data/ --new-datadir /var/lib/pgsql/10/data/ --old-bindir /usr/pgsql-9.5/bin/ --new-bindir /usr/pgsql-10/bin/

Make any necessary changes to postgresql.conf . I’d recommend making the changes to the new version rather than copying over postgresql.conf from 9.5, since there are a bunch of new options in the PostreSQL 10 version of the file.

You can view your 9.5 configuration with:

nano /var/lib/pgsql/9.5/data/postgresql.conf

You can make your changes to the 10 configuration with:

nano /var/lib/pgsql/10/data/postgresql.conf

If you need to connect from other servers, make sure to change:

#listen_addresses = 'localhost'

to (apostrophes may not survive copy/paste, may want to hand enter)

listen_addresses = '*'

(or whatever is appropriate for you)

Now do the same with pg_hba.conf

View the old configuration

nano /var/lib/pgsql/9.5/data/pg_hba.conf

Edit the new configuration

nano /var/lib/pgsql/10/data/pg_hba.conf

Start the server

systemctl start postgresql-10.service

Analyze and optimize the new cluster

./analyze_new_cluster.sh

If everything is working, set the PostgreSQL 10 service to start automatically

systemctl enable postgresql-10

If you wish to remove PostgreSQL 9.x and its data

./delete_old_cluster.sh
exit
sudo yum remove postgresql95-server
sudo yum remove pgdg-centos95

That should do it!

Fixing 404 Errors on WordPress with Let’s Encrypt

Since my SSL cert was nearing expiration, I thought it would be a good idea to give Let’s Encrypt (free SSL certs!) a try.

Let’s Encrypt has a helper app called certbot that will configure Apache for you automatically. The really nice thing about certbot is that it will also (via crontab) renew your cert and configure Apache to use the new cert. This is useful, since Let’s Encrypt certs expire every 90 days.

To use certbot effectively, you need an Apache configuration that’s setup the way your distro expects. Mine was not (I hand ported the configs from Ubuntu), so I figured it was a good time to reinstall Apache with the default configs, then run certbot (official instructions here: https://certbot.eff.org/ ).

This initially seemed to work great, but I quickly noticed all of my subpages returned 404 errors. WordPress works best when you allow it to configure a .htaccess file to do URL rewrites. Allowing URL rewrites via .htaccess requires some additional configuration in your ssl.conf file.

sudo nano /etc/httpd/conf.d/ssl.conf

Add the following just before </VirtualHost> at the very end of your config.

<Directory /var/www/html/>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Thanks to Mike McMurray who posted the instructions at: https://mike.mcmurray.co.nz/2017/01/08/wordpress-permalink-404-with-https/

 

Fix: Office Updates and Malwarebytes

If any of you are big fans of Malwarebytes (and why wouldn’t you be?) you may be experiencing crashes in Office 2013 and 2016 under Windows 10.

Microsoft has identified the problem: https://support.office.com/en-us/article/Fixes-or-workarounds-for-recent-issues-in-Word-for-Windows-bf6bf17c-2807-4871-83ce-e337ae8f0b86?ui=en-US&rs=en-US&ad=US

The workaround is to use the latest beta of Malware Bytes: https://forums.malwarebytes.com/topic/200230-malwarebytes-version-310-beta-available-for-download/

Hope this helps!

Enabling HDR for XBox One with Samsung 4K TV

(Skip to the bottom for the instructions after my tale of woe)

Yesterday I setup a new 4K Samsung UN65KU650D TV with HDR.

Of course the 1st thing I did was to hook it up to XBox One to see it in all its 4K HDR glory! Once I selected the correct HDMI input, XBox One automatically recommended switching to 4K (very cool!). I also wanted to make sure it was also displaying in HDR.

I went to Settings > All settings > Display & sound, then chose Advanced video settings > 4K TV details as described here (https://support.xbox.com/en-US/xbox-one/console/checking-your-tv-4k-hdr-capabilities-on-xbox-one-s).

While 4K HDR was detected, HDR could not be found at any refresh rate and was therefore disabled for Video and Games. (Lots of yellows and reds, not nearly enough green checkboxes)

As you can imagine, my heart sank! But fear not, this is just some silliness on Samsung’s part, I imagine for compatibility with devices that don’t support HDR.

By default, this Samsung TV has HDR disabled for all inputs. To enable it for your XBox One (or other HDR device):

1) Turn on the TV and turn off whatever device will be using HDR.

2) Hit the Home button on your remote to bring up the menu
4khdr13) Choose the Settings icon (looks like a gear or cog)4) Choose Picture
4khdr35) Choose Expert Settings
4khdr46) Choose HDMI UHD Color
4khdr57) Choose the HDMI input you are using for your XBox One or other HDR capable device and select “On”.
Click “Close”
4khdr6 8) Turn your XBox One (or whatever) back on.
Go to Settings > All settings > Display & sound, then choose Advanced video settings > 4K TV details
It should now look like:
4khdr7
9) (Optional but highly recommended) Play Mass Effect: Andromeda in all its HDR glory!

Create 1 Frame Animations in Unity 3D

I was looking to make a 1 frame animation in Unity and wasn’t able to find a guide. In case anyone is curious, this is what I did:

When making a multi-frame animation, you can simply select all of the frames in a sprite and drag them to the prefab. This creates the animation for you. However, if you drag just one frame from the sprite, it will add it as a sprite renderer.

If you would likeĀ  a 1 frame animation from that sprite, right click the frame you want in the Unity Editor and click Create->Animation

Ta da! You’ve now got a 1 frame animation.

Installing Network Policy Server from PowerShell

Recently I encountered a strange error where I couldn’t install Network Policy Server from the Server Manager.

Rather than fight with Server Manager, I punted and installed it via PowerShell. The installation that way worked without an problem.

Run PowerShell as Administrator

Run:

Import-Module Servermanager

Run:

install-windowsfeature -name npas-policy-server -IncludeManagementTools

That’s it!

Fix: Unable to Auto-Update WordPress 7.1-7.2

When attempting to upgrade WordPress 7.1 to 7.2 I received the following error:

The update cannot be installed because we will be unable to copy some files. This is usually due to inconsistent file permissions.: wp-admin/includes/update-core.php

A little Binging around and I found the solution here:
https://aaronjholbrook.com/wordpress-permissions-update-error-resolved/

Just in case that site goes down, here’s what to do:

SSH into your web server and run the following 3 commands:

Reset the permissions of all files to 664:

find /path/to/site/ -type f -exec chmod 664 {} \;

Reset permissions of directories to 775:

find /path/to/site/ -type d -exec chmod 775 {} \;

Reset the group to the apache group

chgrp -R apache /path/to/site/