Upgrading Server 2016 to 2019 – Fixing “This version is not current / Windows 10” Error

Recently I started running through several of my Windows Server 2016 builds to do in place upgrades to Windows Server 2019.

During the install process, I would run into an error stating Windows 10 This Version is not current.
After reading several articles and patching all systems to current, I still ran into there error while trying to upgrade. I even tested several release builds of Windows Server 2019 media from Microsoft to no avail.

The Fix!

At the end of the day, no matter the version of Windows Server (Data Center, Standard, Core etc), the resolution was to disconnect the network cable. You can possibly get away with removing the gateway from the network settings, but for the most part you want to assure the machine has no internet connectivity.
In my case, as these are VM’s, I just disconnected the network adapter and re-ran the setup from the start.

RetroPie – Expanding storage on your SD card.

Most RetroPie images you download wont take advantage of all the free space on your SD card, so how do you expand the partition to utilize the remaining space?
raspi-config is the option we are looking for!

This menu can either be accessed from the main menu once everything is booted.

First Navigate to the RetroPie Settings menu

From here you can access raspi-config

It is also possible to access this menu from command line and an SSH session.

For instructions on getting your RaspberryPi connected to WiFi and setting up SSH, take a look at our other Tutorials;
Configuring RetroPie to connect to WiFi with no keyboard or display.
Configuring RetroPie for SSH with no keyboard or display.

Once you are at the command prompt running the following command will load up the raspi-config menu.

sudo raspi-config

Once in the raspi-config menu, you will want to navigate to
(7) Advanced options
(A1) Expand Filesystem

This will all be pretty automatic, it will grow the file system to take up the remaining space on your SD card.
Once complete, choose OK at the reboot warning, Finish and then allow the device to reboot.

Once rebooted your Retropie setup will utilize all available space on your SD card for ROMs and other data!

Installing Pixel Desktop Environment on RetroPie for Raspberry Pi.

Extend the capabilities with your RetroPie device by adding a full blown Desktop environment for web browsing and other applications!
It’s actually fairly easy, and used to be included with RetroPie, Pixel Desktop Environment (formerly known as LXDE).

From either an SSH session, or directly at the console of your Raspberry Pi, you first want to load up the RetroPie-Setup Script. (To enable SSH, follow our guide)

First we want to run the RetroPie-Setup script, to do so you can use the following;

cd ~/RetroPie-Setup
sudo ./retropie-setup.sh

Once in the RetroPie-Setup screen, we want to navigate to;

Configuration / Tools
Raspbiantools
Install Pixel desktop environment

You may be prompted to install dependencies, if so be sure to choose Yes or OK.
Once complete, you will be able to find Pixel under the Ports menu!

Installing Unified Remote for Raspberry Pi

I recently started using Unified Remote fro several of my Media Center devices and other computers through out my home, this includes my security console as well as all TVs and some various other devices.
I have a Raspberry Pi Zero W that I’ve configured for use as a portable desktop PC, and is perfect for traveling and hotel stays, yet I didn’t want to lug around a keyboard and mouse or additional hardware.

Enter Unified Remote!

It turns your cell phone into a keyboard, mouse, game controller or other remote control functionality! It does require a server component to install on each device you wish to control, but lucky for us there is a Raspberry Pi version.

To install, you can follow these simple command lines to get everything up and running.

wget -O urserver.deb http://www.unifiedremote.com/d/rpi-deb
sudo dpkg -i urserver.deb

Once installed, you may need to start the service for the first time.

sudo /opt/urserver/urserver-start

After the service has been started, you can either navigate to the management console on the Pi itself via http://localhost:9510/web or with the IP address of your Raspberry Pi device http://<IPAddress>:9510/web

This console will allow you to configure WiFi, Bluetooth and WebUI connectivity, set passwords and other functionality.

If you aren’t booting to a desktop environment, and instead booting to something like RetroPie, you may need to set the service to start with rc.local.
To do so, you can do the following.

sudo nano /etc/rc.local

And add the following line, being sure to include the & at the end.

sudo /opt/urserver/urserver-start &

Sources:
Installing Unified Remote on Debian via CLI
Unified Remote home page

Configuring RetroPie for SSH with no keyboard or display.

Accessing your RetroPie project over SSH allows you to configure drivers, software and settings with out having a keyboard or even a screen connected to your Raspberry Pi.

You can enable SSH from the Boot folder of the SD card, first we must put the SD card in our computer and open the Boot folder.

Create a file in this folder called ssh with NO extension (no .txt, no .conf, no extension)

Once this file is created, you can boot your RetroPie Raspberry Pi build and access the device over SSH to do the work and configuration you need to.
If you are a Windows user, be sure to check out PuTTy to access the device over SSH.

The default hostname for Retropie is, retropie
And the default username and password are pi / raspberry

If you would like to setup your WiFi in the same way, check out our WiFi guide.

Configuring RetroPie to connect to WiFi with no keyboard or display.

Looking to connect your RetroPie project to your WiFi, but have no display or keyboard connected? RetroPie allows us to place a file called wpa_supplicant.conf in the boot folder of the SD card.

Connect your SD card to your computer and open the Boot folder.

Create a file called wpa_supplicant.conf in this folder, I use notepad++ to assure compatibility with the RetroPie OS.
For best results, set the End Of Line conversion to Unix (LF)


And add the following text, be sure to modify the settings to match your network and location.

country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

# RETROPIE CONFIG START
network={
    ssid="Your-network-name"
    psk="Your-network-password"
}
# RETROPIE CONFIG END

Save this file and your ReptroPie device should now boot and connect to your network.
By default the device name is retropie , and you should be able to locate this on your network.

This is assuming you are using WPA and RetroPie 4.1 or higher for your build.

For more RetroPie network options, check out the Official RetroPie WiFi Setup Guide

If you wish to configure SSH on your device as well, Check out this guide.

Manually updating Plex on FreeNAS, including PlexPass versions. -PMS_Updater.sh

Are you running Plex Media Server on FreeNAS as a plugin, but don’t like waiting for the updates from FreeNAS?
PMS_Updater for FreeNAS is exactly what you need!

PMS_Updated allows you to update the FreeNAS Plex install from CLI with out waiting for the plugin updates from the devs, the updater will connect to your specified jail, download the most recent version of Plex and run the update if needed.

To do so, first we need to either access our FreeNAS console, or login via SSH. (for Windows users, check out Putty)
Once logged into your FreeNAS server, you want to determine what Jail number your Plex server is installed in, to do so execute the following

jls

You will get an output of Jails installed, choose your Plex Server. In this example mine is 1.
Our next line with log into that Jail to update Plex, so be sure to use the number from the jls command above.

jexec 1 csh

The first time you run this, you may need to install the following.

pkg install ca_root_nss
pkg install wget
pkg install perl5

Once in the Jail, we can download the PMS_Update script

fetch -o PMS_Updater.sh https://raw.githubusercontent.com/mstinaff/PMS_Updater/master/PMS_Updater.sh

Or for PlexPass use

fetch -o PMS_Updater.sh https://raw.githubusercontent.com/luluhoc/PMS_Updater/master/PMS_UpdaterPLEXPASS.sh

After the appropriate updater is downloaded, make sure to modify the permissions for the file to execute correctly.

chmod 755 PMS_Updater.sh

And then execute the script.

./PMS_Updater.sh -vv -a

You should now be on the latest version of Plex, you may need to start your Plex Server in the FreeNAS plugins page.


For a list of known issues and bugs, please check the Issues Page from the Author of this script.
At the time of writing this article (3/23/19), there are 2 known bugs with the current release.


Forcing an update when all else fails

A few times the script above has failed me, to get around I still execute the jexec for the jail I wish to update.

jexec 1
fetch -o PMS_Updater.sh https://raw.githubusercontent.com/luluhoc/PMS_Updater/master/PMS_UpdaterPLEXPASS.sh
chmod 755 PMS_Updater.sh 

And I then use WinSCP to copy the install files over to the plex jail location. The installers can be downloaded from Plex.tv and choosing FreeBSD.

And then execute the following command. (Just be sure to name the downloaded Plex server files to PlexBuild.tar.bz2)

./PMS_Updater.sh -l PlexBuild.tar.bz2 -vv -a

How to determine what RaspberryPi you have from Command Line

Do you have a Raspberry Pi, yet aren’t sure exactly what make/model or hardware you have? The following will show you exact details about your device.
From a command line, or SSH session into your Raspberrry Pi, run the following command.

cat /proc/cpuinfo

And look for the line that states – Revision, this can then be cross checked with the list below.


RevisionRelease DateModelPCB RevisionMemoryNotes
BetaQ1 2012B (Beta)?256 MBBeta Board
0002Q1 2012B1.0256 MB
0003Q3 2012B (ECN0001)1.0256 MBFuses mod and D14 removed
0004Q3 2012B2.0256 MB(Mfg by Sony)
0005Q4 2012B2.0256 MB(Mfg by Qisda)
0006Q4 2012B2.0256 MB(Mfg by Egoman)
0007Q1 2013A2.0256 MB(Mfg by Egoman)
0008Q1 2013A2.0256 MB(Mfg by Sony)
0009Q1 2013A2.0256 MB(Mfg by Qisda)
000dQ4 2012B2.0512 MB(Mfg by Egoman)
000eQ4 2012B2.0512 MB(Mfg by Sony)
000fQ4 2012B2.0512 MB(Mfg by Qisda)
0010Q3 2014B+1.0512 MB(Mfg by Sony)
0011Q2 2014Compute Module 11.0512 MB(Mfg by Sony)
0012Q4 2014A+1.1256 MB(Mfg by Sony)
0013Q1 2015B+1.2512 MB(Mfg by Embest)
0014Q2 2014Compute Module 11.0512 MB(Mfg by Embest)
0015?A+1.1256 MB / 512 MB(Mfg by Embest)
a01040Unknown2 Model B1.01 GB(Mfg by Sony)
a01041Q1 20152 Model B1.11 GB(Mfg by Sony)
a21041Q1 20152 Model B1.11 GB(Mfg by Embest)
a22042Q3 20162 Model B (with BCM2837)1.21 GB(Mfg by Embest)
900021Q3 2016A+1.1512 MB(Mfg by Sony)
900032Q2 2016?B+1.2512 MB(Mfg by Sony)
900092Q4 2015Zero1.2512 MB(Mfg by Sony)
900093Q2 2016Zero1.3512 MB(Mfg by Sony)
920093Q4 2016?Zero1.3512 MB(Mfg by Embest)
9000c1Q1 2017Zero W1.1512 MB(Mfg by Sony)
a02082Q1 20163 Model B1.21 GB(Mfg by Sony)
a020a0Q1 2017Compute Module 3 (and CM3 Lite)1.01 GB(Mfg by Sony)
a22082Q1 20163 Model B1.21 GB(Mfg by Embest)
a32082Q4 20163 Model B1.21 GB(Mfg by Sony Japan)
a020d3Q1 20183 Model B+1.31 GB(Mfg by Sony)
9020e0Q4 20183 Model A+1.0512 MB(Mfg by Sony)

The above is obtained from eLinux.org

Using GPIO Pins for Joysticks and Buttons in ReptroPie

Having worked somewhat more than a little bit with PinkyPi and PinkyPi Pro, I had to figure out how to get the buttons and joysticks to work with the display hat buttons. These were wired to GPIO pins on the Raspberry Pi.

This is where mk_arcade_joystick_rpi comes into play, designed to work with buttons and joysticks connected to the GPIO pins on the RaspberryPi.
You can use this in items such as our PinkyPi project, DIY handhelds and Minicades as well as full upright Arcade cabinets!

(Taken from the git page)
It is written for 4 directions joysticks and 8 buttons per player. Using a MCP23017 extends input numbers to 16 : 4 directions and 12 buttons.
It can read one joystick + buttons wired on RPi GPIOs (two on RPi B+ revision) and up to 5 other joysticks + buttons from MCP23017 chips. One MCP23017 is required for each joystick.

But for 1 player and in 2 player need situations, the setup is fairly simpleI


Installation

Download the installation script :

mkdir mkjoystick
cd mkjoystick
wget https://github.com/recalbox/mk_arcade_joystick_rpi/releases/download/v0.1.4/install.sh

Update your system :

sudo sh ./install.sh updatesystem
sudo reboot

You must reboot before the next step :

sudo sh ./install.sh

Loading the Driver

For a single player setup, use the following.

sudo modprobe mk_arcade_joystick_rpi map=1

Or for a 2 player setup, use the following.

sudo modprobe mk_arcade_joystick_rpi map=1,2
Single Player Pin layout
2 Player Pin layout

There are several other options for pin settings and mappings, that can be found in the GitHub for the original project

Auto load the driver at Start up

sudo nano /etc/modules

and add this line at the bottom to load the driver :

mk_arcade_joystick_rpi

Then create the following file /etc/modprobe.d/mk_arcade_joystick.conf :

sudo nano /etc/modprobe.d/mk_arcade_joystick.conf

and add the following line with your mapping configuration :

options mk_arcade_joystick_rpi map=1

Testing and troubleshooting

Before we start into RetroPie, you can do a test and verify the output and functionality of each button.

To test player 1 or a single player setup, use;

jstest /dev/input/js0

To test player 2 on a 2 or more player setup, use;

jstest /dev/input/js1

The same if you have more players, just increase the “js#” value at the end.

You can then see an output of all your buttons and their status, off is default and when the button is active they goto on.

Once everything checks out, load up RetroPi and run through the controller configuration.
You may need to reset your configuration if you have already had an existing controller setup.

Using Etcher to write a Raspberry Pi image to SD card.

Did you download an image or .img file for your Raspberry Pi and you are not sure how to get it running, are you creating a RetroPie game console for Raspberry Pi and you are looking to flash RetroPie to an SD card?

First things first, download balena Etcher and run through its install. Once installed we can continue to flash our image.

Once you have the image you wish to use, such as;

Raspbian or Noobs
RetroPie
OctoPi
Or our PinkyPi images

And then launch balena Etcher and insert your SD card into your computer.
Once Etcher loads, click “Select Image” and browse to the .img file you have and wish to flash to your SD card, in our example I used OctroPi.


Next you can choose your SD card drive, it does attempt to auto detect any SD cards inserted into your PC, so if you have more than one you must specify what device to write to.


Last, click Flash, and it will start writing data to the SD card, depending on the size of the image and speed of your SD card this can take several minutes.

If you wish to do the reverse, and make an image or .img from an existing Raspberry Pi install on an SD card, check out our tutorial on using Win32DiskImager for just that task.