Michael – Michael Groff /blog Expand or Die Wed, 27 Dec 2023 16:25:07 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 Install Visio 2016 alongside Office 365 /blog/install-visio-2016-alongside-office-365/ Tue, 25 Feb 2020 04:40:24 +0000 /blog/?p=1015

Have you ever tried to install Visio 2016 on a computer that you already have Office 365 installed already and it gave you a “Click-to-Run” error? This error is fairly easy to get around and in this post I will teach you how.

First thing you will want to do is download the “Office Deployment Tool” and extract it somewhere. I prefer to do this on my Desktop or in my Downloads directory.

EDIT: I recently did this again and had to use this “Office Deployment Tool

Next, you will want to create the following “downloadconfig.xml” in the directory that you extracted the Office Deployment tool into. Inside that document, put in the following information (please edit for your version of Visio). For this install, I am installing Visio Professional 2016.

<Configuration>
  <Add OfficeClientEdition="64" >
    <Product ID="VisioProXVolume" PIDKEY="69WXN-MBYV6-22PQG-3WGHK-RM6XC">
        <Language ID="en-us" />
     </Product>
   </Add>  
</Configuration>

Once you have that done, you will want to run the following two commands from the root of the Office Deployment Tool Directory. One to download the needed files and the other to perform the installation.
Download:

.\setup.exe /download .\downloadconfig.xml

Install:

.\setup.exe /configure .\downloadconfig.xml
]]>
Home Lab 2.0 /blog/home-lab-2-0/ Fri, 01 Mar 2019 00:22:12 +0000 /blog/?p=927

This post will serve as the 10,000 ft overview of my environment and what it all consists of. I plan to follow up this post with a series of smaller posts breaking down my Home Lab into the following sections:

(as I update these blog posts, links will appear and become active)
  • Home Lab Servers & Storage
  • Home Lab Routing & Switching
  • Home Lab Access Points
  • Home Lab Surveillance
  • Home Cat6 Cable Wiring

Home Lab Servers & Storage

In this post I go into details about the server and storage that I use in my Home Lab environment.

The current hardware I use is:

  • Dell PowerEdge R710 SFF & LFF
  • Dell PowerEdge C2100
  • Dell PowerEdge CS24-SC (Essentially a 2950)
  • Dell PowerEdge R510 LFF

The operating systems that I use are:

  • VMware esxi 6.5
  • VMware esxi 6.7
  • Windows Server 2012 R2
  • Windows Server 2016
  • Windows Server 2019
  • FreeNAS 11.1 (U7 if you care)

I have purchased or otherwise acquired some Gen10 and Gen11 Dell PowerEdge Servers throughout my years in IT. I enjoy having a Home Lab to work in and learn new things without repercussions of really messing something up. In my environment, nuke and pave is not frowned upon at all. I do my best to say up-to-date and using the latest and greatest trial software, but due to the hardware I am running, that goal comes with some limitations.For instance, my C2100 servers simply cannot be upgraded beyond esxi 6.5. The processors are not compatible with esxi 6.7. However, I was able to upgrade my vCenter Server to 6.7 and still have it manage my 6.5 hosts.

Most of my servers are running Windows Server 2019, but some are still running 2016 as I havent had the time or need to update them. (Such as DC’s and DB’s)

My Storage devices are all PowerEdge Servers running FreeNAS. I set them up with FreeNAS and configure the iSCSI service for MPIO to my esxi hosts. I find it is a set-it and forget-it type of thing. I am subscribed to some FreeNAS emails and RSS feeds, so I look out for OS updates and install them accordingly.

Home Lab Routing & Switching

In this post I will cover all the networking equipment that I use in my home lab and how I use it.

The networking hardware that I use is:

  • Unifi USG-PRO-4 (Gateway)
  • Unifi US-24 (Switch)
  • Unifi US-8-150 (Switch)
  • 3 x Dell PowerConnect 7048P (Switch)
  • Netgear ProSAFE GS108Ev3 8-Port

For most of my networking equipment, I run Ubiquiti Unifi equipment. This is marketed as “Enterprise” networking equipment, but imho, it is far from “Enterprise”. I would place it solidly in the “prosumer” line of networking equipment. Dont get me wrong, their WAP’s are pretty awesome. But their switching and routing devices leave much to be desired. Their GUI is quite pretty and you can do enough to get by through it, but for really advanced setups, you are required to edit a json file. Often the editing of the json file is unsupported and a PITA the figure out.

For the rest of my networking equipment, I run some classic Dell PowerConnect switches. I run the 7048P’s. For the most part, I dont need the PoE feature, but for under $150 per switch, I couldnt not get the PoE feature. I just disable it on the ports where it is not needed. The language is pretty similar to Cisco so getting by in command line is my preferred way to manage these.

Oh, and I have a Netgear managed 8-port switch. This little guy has kept up with the other two brands of switches afaic. I like the little guy and it works great as an under the desk switch.

Home Lab Access Points

In this post I will cover the Access point that I use in my home, discussing wiring, port and physical placement.

The hardware access points I currently use are:

  • Unifi UAP-AC-PRO
  • Unifi UAP-AC-M-PRO
  • Unifi UAP-IW-PRO

For all my Wireless, I trust in the Ubiquiti Unifi line. They are a great “prosumer” product at a price that I can afford. And they definitely do their job for my home needs. I have even installed these at a few businesses with very solid results.

Home Lab Surveillance

In this post I will cover my Home Surveillance Solution using my Home Lab equipment.

Some of the equipment I use is as follows:

  • Home Server (Sometimes virtualized, sometimes standalone)
  • BlueIris NVR Software
  • Reolink IP Cams
    • RLC-410
    • RLC-411
    • RLC-420
    • RLC-423
  • HikVision IP Cams
    • DS-2CD2142FWD-IS 4MP
  • Ring Pro Doorbell

When I first got into the surveillance game, I was purchasing Hikvision IP Cameras from a specific re-seller in my area. Since then, Reolink has become quite a mainstream prosumer product and I can get them from Amazon. So as of late, all of my Reolink cams have been purchased from random amazon sales.

Overall I enjoy both cams, but prefer the Reolink branded cams over Hikvision.

As for the Ring Pro Doorbell. I got it because it’s easy for the wife to use and not answer the door if she doesn’t want to. I have it on a “security device” vlan, so it is segmented off. I actually do enjoy the device. It is nice having something in the cloud separate from Blue Iris.

Home Cat6 Cable Wiring

In this post I will go through what it takes to wire up your home with Cat6 cabling. This is currently an ongoing process for me and may be for some time yet to come.
The materials you will need to complete wiring in your house are as follows:

  • Cat6 cabling
  • RJ45 Cat6 Jacks
  • RJ45 Boots
  • RJ45 Crimping tool
  • RJ45 Punch Down tool
  • Cat6 Wall Plates with Jacks
  • Pull String

Wiring your house is a process. If you have unlimited amounts of money, then hire a company to do it and they will charge you a few grand to go in there and get it done. They will most likely run the cables in a manner that works, but is not tech approved bc they are dudes who just know how to run cables, not why they are run or consequences of how they are run. If you are like me where money is not an endless pit of fun and you like having control over things, then you will want to take on wiring yourself. Overall you can do this for a fraction of the cost compared to contracting it out, but it will be a lot of work and sometimes, a complete, PITA. If you live in Texas like me, only plan on doing this kind of work from late October through late April… It gets hot in there.

Overall, I have found wiring my house to be quite rewarding, both financially and emotionally. I am able to “put a stamp” on my work and be proud of what I have done.

]]>
WordPress Permissions for Windows /blog/wordpress-permissions-for-windows/ Tue, 26 Feb 2019 03:08:00 +0000 /blog/?p=662

So I have had this post sitting in the “Draft” stage for years now. Probably 3 or 4. I thought I was going to tackle this and set something definitively out there for some people to follow. And today I will finally do just that.

Here are the suggested WordPress file permissions for Windows:

RUN LINUX!

RUN LINUX!

RUN LINUX!

]]>
Identify Failed Port and Replace NIC /blog/identify-failed-port-and-replace-nic/ Tue, 26 Feb 2019 02:03:15 +0000 /blog/?p=958

This past week, I had a failed port one one of my C2100’s. The specific part was a Intel PRO/1000 VT Quad Port Gigabit PCI-E Ethernet Network Adapter (HM9JY). Now just one single port failed and I was using all 4 ports for iSCSI from my FreeNAS C2100 to my esxi cluster. Luckily I have 4 ports so naturally MPIO is configured and I didnt notice the failure immediately. I first noticed this in my cluster and also saw the port was failed in FreeNAS. Since there is no OMSA for BSD, I was unable to gather more information about the status of the port.

This is how I noticed the failed port on an esxi host

I went onto ebay and ordered the new part for $20 with free shipping. It came in today and I took some time to replace it this evening. It is a pretty simple process, I will walk you through it below.

The first things I am going to do is power off my server and then remove all the cabling from it. Some people choose to not remove networking when doing this, but I am running PoE switches, and even though PoE has been disable on the ports, I dont trust it. I remove all potential of electricity running through the system other than the CMOS and RAID batteries.

So, Power off your server, remove all the cabling, pull it out of the rack and remove the cover.

The new part looks like this. It will just slide right into a PCIe slot and I will screw it in.

Here we are with the top open.

I am going to pull out that part in the upper left hand corner to replace.

Here is the empty slot that we will plug back into.

The top device  is the one I pulled out and replace.

It is the top device due to the photo orientation and the fact that I pulled it out of the server. When I put it back in the server, it will “on the bottom”. I find placing NIC card below RAID card make it easier to unplug booted cables from the server.

Now that the NIC has been replaced, all iSCSI paths are available!

]]>
Populate list of all Steam Games /blog/populate-list-of-all-steam-games/ Tue, 17 Oct 2017 02:04:51 +0000 /blog/?p=875

I have updated this as of 12/27/2023 as a user came across this page and informed me the script I wrote is not long working. I have updated the script to work again.

Log into your steam account, navigate to your profile page and then the “Games” page and Select “All Games”. Open up the console (F12) and run the following bit of code:

// Open the console on the desired Steam profile page and run this script:

// Select all elements with the game name class
var gameNameElements = document.getElementsByClassName('gameslistitems_GameName_22awl');
var gameNames = '';

// Iterate over all selected elements and concatenate their text content
for (var i = 0; i < gameNameElements.length; i++) {
gameNames += (gameNameElements[i].innerText + '\n');
}

// Output the result
console.log(gameNames);

The above console script will generate the list same as before.

Deprecated - 2017 Version

I wanted to populate a list of all my Steam games for export into a txt file or csv. I came across this bit of code out on the net somewhere and can’t seem to find where I grabbed it from. I did not write this snippet, but i can verify that is does work.

Log into your steam account, navigate to your profile page and then the “Games” page. Open up the console (F12) and run the following bit of code:

var names = document.body.getElementsByClassName('gameListRowItemName');
var namesString = '';
for (var i = 0; i < names.length; i++) namesString += (names[i].innerText + '\n')

You will get a result similar to as follows:

3DMark
3DMark API Overhead feature test
3DMark Cloud Gate benchmark
3DMark Fire Strike benchmark
3DMark Ice Storm benchmark
3DMark Sky Diver benchmark
]]>
Configure and Run vCheck /blog/configure-and-run-vcheck/ Thu, 22 Jun 2017 20:16:50 +0000 /blog/?p=844

vCheck is a PowerShell HTML framework script that started with one guy, but is now a community driven and from what I have seen, it’s pretty neat.

vCheck can be configured to just run once, or as a scheduled task on a Windows box. It also offers the option of sending the report via email. With those two features coupled together, you can set up a daily environment scan to run an hour or two before you get to work each morning and have a nice HTML report in your inbox of what changed and/or broke since you left the night before.This tutorial covers the installation and configuration of the vCheck tool.

Programs Needed:

Download and Extract vCheck with Powershell:

$ZipPath = "C:\vCheck\vCheck-vSphere-master.zip"
$Destination = "C:\vCheck\"

IF (-not (Test-Path -Path "$Destination"))
{
    New-Item -Path $Destination -ItemType Directory -ErrorAction SilentlyContinue
}

iwr https://github.com/alanrenouf/vCheck-vSphere/archive/master.zip -OutFile "$ZipPath"
Add-Type -assembly "system.io.compression.filesystem"
[io.compression.zipfile]::ExtractToDirectory($ZipPath, $Destination)

Load PowerCLI (open the Program)
Login to vCenter Server

Connect-VIServer

– or –

Connect-VIServer VCENTER.DOMAIN.COM -User DOMAIN\Administrator -Password -SaveCredentials

Run vCheck ps1 file

& "C:\vCheck\vCheck-vSphere-master\vCheck.ps1"

- or - 

. "C:\vCheck\vCheck-vSphere-master\vCheck.ps1"

You will then be asked to respond to the following prompts:

# Report header [vCheck]:
# Would you like the report displayed in the local browser once completed ? [$true]:
# Display the report even if it is empty? [$true]:
# Use the following item to define if an email report should be sent once completed [$false]:
# Please Specify the SMTP server address (and optional port) [servername(:port)] [mysmtpserver.mydomain.local]:
# Would you like to use SSL to send email? [$false]:
# Please specify the email address who will send the vCheck report [me@mydomain.local]:
# Please specify the email address(es) who will receive the vCheck report (separate multiple addresses with comma) [me@mydomain.local]:
# Please specify the email address(es) who will be CCd to receive the vCheck report (separate multiple addresses with comma) []:
# Please specify an email subject [$Server vCheck Report]:
# Send the report by e-mail even if it is empty? [$true]:
# If you would prefer the HTML file as an attachment then enable the following: [$false]:
# Set the style template to use. [VMware]:
# Do you want to include plugin details in the report? [$true]:
# List Enabled plugins first in Plugin Report? [$true]:
# Set the following setting to $true to see how long each Plugin takes to run as part of the report [$true]:
# Report on plugins that take longer than the following amount of seconds [30]:

Connection settings for vCenter
# Please Specify the address (and optional port) of the vCenter server to connect to [servername(:port)] [192.168.0.0]:
# Maximum number of samples to gather for events [100000]:

General Information
# Set the number of days of DRS Migrations to report and count on [1]:
# Set the number of days of Storage DRS Migrations to report and count on [1]:

Windows vCenter Error Event Logs
# Set the number of days of VC Events to check for errors [1]:
# Set the number of days of VC Event Logs to check for warnings and errors [1]:

vCenter Sessions Age
# Enter maximum vCenter session length in hours [48]:
# Enter minimum vCenter session length in minutes (IdleMinutes) [10]:
# Do not report on usernames that are defined here (regex) [DOMAIN\\user1|DOMAIN\\user2]:

vCenter License Report
# Enable License Reporting? [$true]:

HA configuration issues
# HA Configuration Issues, do not report on any Clusters that are defined here [Example_Cluster_*|Test_Cluster_*]:
# HA should be set to ... [$true]:
# HA host monitoring should be set to ... [$true]:
# HA Admission Control should be set to ... [$true]:

HA VMs restarted
# HA VM restart day(s) number [5]:

DRS & SDRS Migrations
# Set the number of days of DRS Migrations to report and count on [1]:
# Set the number of days of Storage DRS Migrations to report and count on [1]:

Cluster Slot Sizes
# Number of slots available in a cluster [10]:

Datastore Consistency
# Do not report on any Datastores that are defined here (Datastore Consistency Plugin) [local*|datastore*]:

Clusters with DRS disabled
# Clusters with DRS Disabled, do not report on any Clusters that are defined here [VM1_*|VM2_*]:

QuickStats Capacity Planning
# Max CPU usage for non HA cluster [0.6]:
# Max MEM usage for non HA cluster [0.6]:

s/vMotion Information
# Set the number of days to go back and check for s/vMotions [5]:
# Include vMotions in report [$true;]:
# Include Storage vMotions in report [$true;]:

DRS Rules
# Display VM affinity rules? [$true]:
# Display VM anti-affinity rules? [$true]:
# Display HOSTaffinity rules? [$true]:
# Set DRS Rule name exception (regex) [ExcludeMe]:

Hosts Overcommit state
# Return results in GB or MB? [GB]:

NTP Name and Service
# The NTP server which should be set on your hosts [pool.ntp.org|pool2.ntp.org]:

VMKernel Warnings
# Disabling displaying Google/KB links in order to have wider message column [$true]:

Syslog Name
# The Syslog server which should be set on your hosts [syslogserver]:

Disk Max Total Latency
# Disk Max Total Latency Settings in Milliseconds [50]:
# Disk Max Total Latency range to inspect (1-24) [24]:

Lost Access to Volume
# Set the number of days of Lost Action Volume to report and count on [1]:

Check LUNS have the recommended number of paths
# Set the Recommended number of paths per LUN [2]:

ESXi Inode Exhaustion
# Set the ESXi filesystem free Inode threshold in percent [40]:

Host Profile Compliance
# Show detailed information in report [$true]:
# Show compliant servers [$false]:

Hosts with Upcoming Certificate Expiration
# How many days to warn before cert expiration (Default 60) [60]:

Datastore Information
# Set the warning threshold for Datastore % Free Space [25]:
# Do not report on any Datastores that are defined here (Datastore Free Space Plugin) [local]:

Number of VMs per Datastore
# Max number of VMs per Datastore [5]:
# Exclude these datastores from report [ExcludeMe]:

Datastore OverAllocation
# Datastore OverAllocation % [50]:
# Exclude these datastores from report [ExcludeMe]:

Datastores with Storage IO Control Disabled
# Do not report on any Datastores that are defined here (Storage IO Control disabled Plugin) [local]:

VSAN Datastore Capacity
# Set the warning threshold for VSAN Datastore % Free Space [85]:

VSAN Configuration Maximum Disk Group Per Host Report
# Enable VSAN Config Max Disk Group Per Host Reporting? [$true]:
# Percentage threshold to warn? [80]:

VSAN Configuration Maximum Magnetic Disks Per Disk Group Report
# Enable VSAN Config Max Magnetic Disks Per Disk Group Reporting? [$true]:
# Percentage threshold to warn? [50]:

VSAN Configuration Maximum Total Magnetic Disks In All Disk Groups Per Host Report
# Enable VSAN Config Max Total Magnetic Disks In All Disk Groups Per Host Reporting? [$true]:
# Percentage threshold to warn? [50]:

VSAN Configuration Maximum Components Per Host Report
# Enable VSAN Config Max Components Per Host Reporting? [$true]:
# Percentage threshold to warn? [50]:

VSAN Configuration Maximum Hosts Per VSAN Cluster Report
# Enable VSAN Config Max Hosts Per VSAN Cluster Reporting? [$true]:
# Percentage threshold to warn? [45]:

VSAN Configuration Maximum VMs Per Host Report
# Enable VSAN Config Max VMs Per Host Reporting? [$true]:
# Percentage threshold to warn? [50]:

VSAN Configuration Maximum VMs Per VSAN Cluster Report
# Enable VSAN Config Max VMs Per VSAN Cluster Reporting? [$true]:
# Percentage threshold to warn? [50]:

Checking Standard vSwitch Ports Free
# vSwitch Port Left [5]:

Checking Distributed vSwitch Port Groups for Ports Free
# Distributed vSwitch PortGroup Ports Left [10]:

vSwitch Security
# Enable Checking of vSwitch security settings? [$true]:
# Warn for AllowPromiscuous enabled? [$true]:
# Warn for ForgedTransmits enabled? [$true]:
# Warn for MacChanges enabled? [$true]:

Snapshot Information
# Set the warning threshold for snapshots in days old [14]:
# Set snapshot name exception (regex) [ExcludeMe]:
# Set snapshot description exception (regex) [ExcludeMe]:
# Set snapshot creator exception (regex) [ExcludeMe]:

Created or cloned VMs
# Set the number of days to show VMs created for [5]:

Removed VMs
# Set the number of days to show VMs removed for [5]:

VMs with over $vCPU vCPUs
# Define the maximum amount of vCPUs your VMs are allowed [2]:

VMs restarted due to Guest OS Error
# HA VM reset day(s) number due to Guest OS error [5]:

Guests with less than $MBFree MB
# VM Disk space left, set the amount you would like to report on MBFree [1024]:
# VM Disk space left, set the amount you would like to report on MBDiskMinSize [1024]:

Checking VM Hardware Version
# Hardware Version to check for at least [8]:
#Adding filter for dsvas, vShield appliances or any other vms that will remain on a lower HW version [vShield*|dsva*]:

VMs in inconsistent folders
# Specify which Datastore(s) to filter from report [local]:

No VM Tools
# Do not report on any VMs who are defined here (regex) [VM1_*|VM2_*]:

VM Tools Issues
# VM Tools Issues, do not report on any VMs who are defined here [VM1_*|VM2_*]:

Removable Media Connected
# VMs with removable media not to report on [APP*|ETC*]:

Single Storage VMs
# Local Stored VMs, do not report on any VMs who are defined here [Template_*|VDI*]:

VM CPU %RDY
# CPU ready on VMs should not exceed [10.0]:

VM CPU Usage
# VM Not to go over the following amount of CPU [75]:
# VM CPU not allowed to go over the previous amount for how many days? [1]:

Find VMs with thick or thin provisioned vmdk
# Report on disk formats that are not "thin" or "thick", which format is not allowed? [thick]:
# Specify Datastores to filter from report [local]:

Virtual machines with incorrect OS configuration
# VMs with incorrect OS Configuration, do not report on any VMs who are defined here [VM1_*|VM2_*]:

Powered Off VMs
# VMs not to report on [Windows7*]:

Unwanted virtual hardware found
# Find unwanted virtual hardware [VirtualUSBController|VirtualParallelPort|VirtualSerialPort]:

Mis-named virtual machines
# Misnamed VMs, do not report on any VMs who are defined here [VM1_*|VM2_*]:

VM - is my network connected?
# Only show NICs that are set to Connect at Startup [$true]:

Reset VMs
# Set the number of days to show reset VMs [1]:

Snapshot activity
# Set the number of days to show Snapshots for [5]:
# User exception for Snapshot removed [s-veeam]:

VMs with CPU or Memory Reservations Configured
# VMs with CPU or Memory Reservations, do not report on any VMs who are defined here [VM1_*|VM2_*]:

VM Logging
# The number of logs to keep for each VM [10]:
# The size logs can reach before rotating to a new log (bytes) [1000000]:

VM Tools Not Up to Date
# Do not report on any VMs who are defined here (regex) [VM1_*|VM2_*]:
# Maximum number of VMs shown [30]:

NonPersistent Disks
# Exclude all desktop virtual machines [^DV-|^MLB-]:

VMs Memory/CPU Hot Add configuration
# Should CPU hot plug be enabled [$true]:
# Should Memory hot add be enabled [$true]:

Site Recovery Manager - RPO Violation Report
# SRM RPO Violations: Set the number of minutes an RPO has exceeded to report on [240]:
# SRM RPO Violations: Only look for RPO events on VMs with these names: (regex) []:
# SRM RPO Violations: Report on unresolved RPO violations only? [$true]:

Once you have completed the prompts, the scan will run and a report will be generated.



		
]]>
Cmdlet for PowerCLI to load vCenter & esxi Hosts /blog/cmdlet-for-powecli-to-load-vcenter-esxi-hosts/ Wed, 24 May 2017 20:46:53 +0000 /blog/?p=822

Powershell & PowerCLI Prep

#Set Execution Policy

Set-ExecutionPolicy RemoteSigned

#Ignore SSL Certificates warnings

Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -WarningAction SilentlyContinue

#Connecting to server & save creds:

Connect-VIServer vCenter.DOMAIN.com -User DOMAIN\Administrator -Password -SaveCredentials

#Location to open up PowerCLI normally:

. "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"

CMDLET

function Load-PowerCLI
{
Add-PSSnapin VMware.VimAutomation.Core -ErrorAction SilentlyContinue
Add-PSSnapin VMware.VumAutomation -ErrorAction SilentlyContinue
Add-PSSnapin VMware.DeployAutomation -ErrorAction SilentlyContinue
Add-PSSnapin VMware.DeployAutomation -ErrorAction SilentlyContinue
& "C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\Scripts\Initialize-PowerCLIEnvironment.ps1"
Write-Host "================================================" -ForegroundColor White
Write-Host "
...connecting to vCenter servers
"
Connect-VIServer vCenter0.groffbox.com
}

BONUS:

Set the VMConsole to open correctly with Open-VMConsole Window

#Download and Install 32-bit Firefox, you NEED 32-bit
#Run:

Set-PowerCLIConfiguration –VMConsoleWindowBrowser “C:\Program Files (x86)\Mozilla Firefox\firefox.exe”

Now you can run Open-VMConsoleWindow

]]>
Retro Gaming on Raspberry Pi /blog/retro-gaming-raspberry-pi/ Mon, 06 Feb 2017 23:16:19 +0000 /blog/?p=222

I was recently asked to help someone build a “Retro Gaming System”. While thinking of the best way to do this, I figured that I would like to give them something that they can come back to and do this on their own; at anytime. There are plenty of other tutorials and ways to go about this, but this one is mine. Please leave any feedback through the site should you have any.

Parts List

Programs List

Both
Windows
Mac

SD Card Configuration

Download the latest version of Raspbian, you can use torrent or HTTP to download this. Torrent will be quicker, but will require another program.

The version at the time of this writing is Jesse. For this setup we will use the LITE version of Jesse as we do not need a Desktop GUI. This will help to save space on the SD Card among other things.

You can find the latest version on Raspberry Pi’s site.

Windows

Extract the zip that we just downloaded.

Install Win32DiskImager utility if you don’t have it installed already. (You can download it on the utility from the Sourceforge Project page)

Insert the SD Card into the PC.

Run Win32DiskImager and select:

  • Rapberry pi image we just extracted
  • SD Card’s Drive Letter

Select Write!

Safely Eject the USB Drive and remove it from the PC

Insert the SD Card into the Raspberry Pi.

Mac

Extract the zip that we just downloaded.

Insert the SD Card into the PC.

Follow this artcle provided by Raspberry Pi

Raspbian Initial Installation & Configuration

Plug a Keyboard into one of the USB slots, a Monitor/TV into the HDMI slot and an Ethernet Cable into your Raspberry Pi. We will be downloading packages from the internet and using SSH for some of this, so Ethernet is required. (Note: You can use WiFi if you want, but that will not be covered in this tutorial, more info here)

Power on your Pi by plugging the Micro USB Power Cable in.

You will see your Pi boot into a notification that the File System is being resized. This is an automated feature that expands the filesystem to take up your entire SD Card upon the first boot. The server will then reboot.

After the reboot completes, you can now login with the following credentials:

  • Username: pi
  • Password: raspberry

First things first, lets update that password, you can do so by entering the following:

sudo passwd pi

Here you will enter your new password twice to confirm it has been entered correctly.

Run

sudo raspi-config

Select – 1 – Expand Filesystem, Hit [Enter] and proceed through the steps to get back to the selection screen:

Generate proper locales. (This step is for persons with ANSI/USA Keyboards)

Select – 4 – Localisation Options > I1 – Change Locale > Deselect en_GB.UTF-8 UTF-8 and select en_US.UTF-8 UTF-8

Change the keyboard layout

Select – 4 – Localisation Options > I1 – Change Keyboard Layout Generic 101-Key PCOther English (US) > Enter > Enter

Select – 7 – Advanced Options >  A2 – Hostname Enter a new hostname for this Pi:

Select – 7 – Advanced Options >  A3 – Memory Split Change the value to 128 if you have a Pi 3:

Select – 5 – Interfacing Options >  P2 – SSH > Yes Enable SSH so we can access the Pi remotely:

Change anything else you see fit, select Finish and reboot your Pi:

After the reboot completes, log back in at the console one more time,

run

ip a

and get the IP from the Ethernet connection labeled eth0

Remember or write down that IP, then type in

logout

to logout.

Install RetroPie

From your computer, open Putty and enter the IP you got from the last step and click Open

If you receive a certificate warning, ignore it and proceed.

Enter your username and password to login. You will then see a nice blank screen as follows:

Time to update your Pi!

Run

sudo apt-get update && sudo apt-get upgrade -y

This may take take some time, so feel free to walk away for 5 minutes or so and come back.

Install the prerequisites for RetroPie:

sudo apt-get install -y git dialog lsb-release


Download the latest version RetroPie and begin the installation:

cd
git clone --depth=1 https://github.com/RetroPie/RetroPie-Setup.git
cd RetroPie-Setup
chmod +x retropie_setup.sh
sudo ./retropie_setup.sh

After this runs, a GUI portion of this install will begin.

When it comes to the following screen, Select OK. 

Select Basic Install Yes

This will run through an install, it will take some time.

Once that completes, select Configuration / Tools > 802 – autostart > 1 – Start Emulation Station at boot

 

Install drivers by selecting: Manage Packages Manage Driver Packages Install/Update all driver packages from binary

Finally, reboot the Pi!

ROM Installation

Windows

Now it’s time to move ROM’s you own, to the Pi. You don’t own any ROMs? Don’t worry, you’re resourceful and I have a link for you to Follow.

Install WinSCP if it is not installed already.

Run WINSCP.

Connect to your Pi with the IP from earlier and the password you configured as such:

Navigate to RetroPieroms and you will find a list of all the available systems that you can play.

For this tutorial, we will be dropping roms in:

  • megadrive (Sega Genesis)
  • n64 (Nintendo 64)
  • nes (Nintendo Entertainment System)
  • snes (Super Nintendo Entertainment System)

Now you will simply drag and drop your ROMs into the desired destination.

Once all the ROMs have finished moving, reboot your Pi and go back to it.

Mac

(to come at a later date…)

Time to Play!

If you have not rebooted since adding the ROMs, do so now.

sudo reboot

Now that your Pi has been configured and has ROMs on it, you are ready to configure your controller and start playing.

When your Pi reboots, if you set it up to auto-run as described, it should be up and running after the reboot.

 

Controller Configurations are as follows:

NES

Hold a Random Button to start.

RetroPie Controller
D-PAD UP D-PAD UP
D-PAD DOWN D-PAD DOWN
D-PAD LEFT D-PAD LEFT
D-PAD RIGHT D-PAD RIGHT
START START
SELECT SELECT
A A
B B
X [BLANK]
Y [BLANK]
LEFT SHOULDER [BLANK]
RIGHT SHOULDER [BLANK]
LEFT TRIGGER [BLANK]
RIGHT TRIGGER [BLANK]
LEFT THUMB [BLANK]
RIGHT THUMB [BLANK]
LEFT ANALOG UP [BLANK]
LEFT ANALOG DOWN [BLANK]
LEFT ANALOG LEFT [BLANK]
LEFT ANALOG RIGHT [BLANK]
RIGHT ANALOG UP [BLANK]
RIGHT ANALOG DOWN [BLANK]
RIGHT ANALOG LEFT [BLANK]
RIGHT ANALOG RIGHT [BLANK]

HIT A to finish!

SNES

Hold a Random Button to start.

RetroPie Controller
D-PAD UP D-PAD UP
D-PAD DOWN D-PAD DOWN
D-PAD LEFT D-PAD LEFT
D-PAD RIGHT D-PAD RIGHT
START START
SELECT SELECT
A A
B B
X X
Y Y
LEFT SHOULDER LEFT SHOULDER
RIGHT SHOULDER RIGHT SHOULDER
LEFT TRIGGER [BLANK]
RIGHT TRIGGER [BLANK]
LEFT THUMB [BLANK]
RIGHT THUMB [BLANK]
LEFT ANALOG UP [BLANK]
LEFT ANALOG DOWN [BLANK]
LEFT ANALOG LEFT [BLANK]
LEFT ANALOG RIGHT [BLANK]
RIGHT ANALOG UP [BLANK]
RIGHT ANALOG DOWN [BLANK]
RIGHT ANALOG LEFT [BLANK]
RIGHT ANALOG RIGHT [BLANK]

HIT A to finish!

N64 – (Mupen64plus)

Hold a Random Button to start.

NOTE: On this controller, I sacrifice the LEFT TRIGGER for SELECT so it can be used to exit the emulator in conjunction with the start button.
RetroPie Controller
D-PAD UP D-PAD UP
D-PAD DOWN D-PAD DOWN
D-PAD LEFT D-PAD LEFT
D-PAD RIGHT D-PAD RIGHT
START START
SELECT [BLANK]
A C-DOWN
B A
X C-LEFT
Y B
LEFT SHOULDER Z
RIGHT SHOULDER RIGHT SHOULDER
LEFT TRIGGER LEFT SHOULDER
RIGHT TRIGGER [BLANK]
LEFT THUMB [BLANK]
RIGHT THUMB [BLANK]
LEFT ANALOG UP ANALOG STICK UP
LEFT ANALOG DOWN ANALOG STICK DOWN
LEFT ANALOG LEFT ANALOG STICK LEFT
LEFT ANALOG RIGHT ANALOG STICK RIGHT
RIGHT ANALOG UP C-UP
RIGHT ANALOG DOWN [BLANK]
RIGHT ANALOG LEFT [BLANK]
RIGHT ANALOG RIGHT C-RIGHT

HIT A to finish!

Sega Genesis

Hold a Random Button to start.

RetroPie Controller
D-PAD UP NOT TESTED
D-PAD DOWN NOT TESTED
D-PAD LEFT NOT TESTED
D-PAD RIGHT NOT TESTED
START NOT TESTED
SELECT NOT TESTED
A NOT TESTED
B NOT TESTED
X NOT TESTED
Y NOT TESTED
LEFT SHOULDER NOT TESTED
RIGHT SHOULDER NOT TESTED
LEFT TRIGGER NOT TESTED
RIGHT TRIGGER NOT TESTED
LEFT THUMB NOT TESTED
RIGHT THUMB NOT TESTED
LEFT ANALOG UP NOT TESTED
LEFT ANALOG DOWN NOT TESTED
LEFT ANALOG LEFT NOT TESTED
LEFT ANALOG RIGHT NOT TESTED
RIGHT ANALOG UP NOT TESTED
RIGHT ANALOG DOWN NOT TESTED
RIGHT ANALOG LEFT NOT TESTED
RIGHT ANALOG RIGHT NOT TESTED

HIT A to finish!

Hotkeys and special buttons of Note

Key Description
SELECT + START Exit emulator.
SELECT + L1 Load state.
SELECT + R1 Save state.
THUMB LEFT Enable memory expansion pak.
THUMB RIGHT Enable rumble expansion pak.

Further RetroPie Configurations

ENJOY!

]]>
Powershell On Linux /blog/powershell-on-linux/ Fri, 19 Aug 2016 16:38:59 +0000 /blog/?p=635

You can now use Powershell with Linux Operating Systems!

See instructions below on how to set up your Linux distro with Powershell

Source

CentOS / RHEL

Install wget (if not already installed):

sudo yum install wget -y

Download PS to the temp folder:

wget -i /tmp/ https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell-6.0.0_alpha.9-1.el7.centos.x86_64.rpm

Install PS:

sudo yum install powershell-6.0.0_alpha.9-1.el7.centos.x86_64.rpm -y

Ubuntu 14.04

Install necessary packages:

sudo apt-get install libunwind8 libicu55

Download PS to the temp folder:

wget -i /tmp/ https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.14.04.1_amd64.deb

Install PS:

sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.14.04.1_amd64.deb

Ubuntu 16.04

Install necessary packages:

sudo apt-get install libunwind8 libicu55

Download PS to the temp folder:

wget -i /tmp/ https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb

Install PS:

sudo dpkg -i powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb

OS X 10.11

Download and run this with the GUI:

Powershell OS X Download

If you wish to use the terminal, first download the .pkg and run:

sudo installer -pkg powershell-6.0.0-alpha.9.pkg -target /

Running Powershell in Linux

Run “powershell” from the terminal.

Get-Command to list available commands

]]>
The Oregon Trail Deluxe (1992) on Windows, Linux & Mac /blog/the_oregon_trail_deluxe_1992_on_windows_linux_mac/ Fri, 12 Aug 2016 05:39:55 +0000 /blog/?p=592

Have you ever wanted to go back and play the Oregon Trail you grew up on?

Well it’s pretty easy to relive those childhood memories, just keep reading

Step 1: Download DOSBox and install it:

DOSBox Download

Step 2: Download Oregon Trail for Free:

Oregon Trail Download

NOTE: This website has a limit of 2 free games/day

Now unzip Oregon Trail to a location you can remember, I made a folder for it, C:\Old_Games

Step 3: Run Oregon Trail!

Open DOSBox on your system (Windows, Mac, Linux)

type in the following to mount your game folder to DOSBox:

mount C C:\Old_Games

“hit enter”

type in the following to navigate to the newly mounted drive:

 C: #

“hit enter”
now it depends on how you dropped your folder in C:\Old_Games, i renamed mine as follows:

C:\Old_Games\oregondlx

so now I will type in the following to run the game:

.\OREGON~1\OREGON.EXE

To run Full-Screen:

Key Shortcut: ALT + ENTER

Or you can edit your options file to automatically open DOSBox as follows (Windows, but I am sure Mac & Linux are similar):

Run/Open:

C:\Program Files (x86)\DOSBox-0.74\DOSBox 0.74 Options.bat

Edit the following line to say true:

OLD LINE: fullscreen=false

NEW LINE: fullscreen=true

You can also run these commands automatically by editing the “[autoexec]” section of the dosbox.conf file as follows:

NOTE: I would only suggest adding the lest 2 lines only if you intend to use this for Oregon Trail explicitly
[autoexec]
# Lines in this section will be run at startup.
# You can put your MOUNT lines here.
mount C C:\Old_Games
C: #
C:\Old_Games\oregondlx
.\OREGON~1\OREGON.EXE

If you want to avoid all the steps above and just play the game, simply navigate to the link below you can play the game inside on a webpage. This is useful when you don’t have Administrative rights to a computer.

 

Play Oregon Trail Online

]]>