All posts by Banfi

Back to the Amiga – Pt. 1

Well with Retro being the new thing I thought it was time to get my Amiga 1200 singing and dancing again and also document all the things I’ve done to make it work.

For a start the amount of things they have improved on the Amiga scene since 1999 has peaked my interest up again.

If you don’t know what the Amiga is the Wiki page here goes through the lot : https://en.wikipedia.org/wiki/Amiga

I will publish various Parts to this series when I get time to write about them, but to start you off this is Part 1 which shows you what you require to get your Amiga to output to VGA

What do you require to start?

First you will need a Commodore Amiga A1200

If you just want to use the system to play games from Disk and want to use this with a VGA monitor you only require the following extra equipment:

GBS8200 CGA/EGA/VGA converter – This can convert the Amiga’s RBG output and to work on VGA out.
A 680 ohm resistor to create this lead and Heat-shrink to make it neat.
Amiga DB23 to VGA Adapter to pull apart for the lead to the GBS8200
Optional but Recommended : Wemos D1 Mini Pro ESP8266 – This allows you to make the GBS8200 better by using the application GBS Control
On how to build the hardware for GBS Control the instructions can be found on there Wiki – https://github.com/ramapcsx2/gbs-control/wiki/Build-the-Hardware

GBS8200 Setup for Video Output to VGA

Creating the DB23 to GBS Lead – the GBS8200 comes with a lead which can be soldered straight to a the pins of the DB23 connector – the Wiring diagram below shows you which wires need to be connected – Yellow and Brown are not used in this setup and can be removed by pressing in to the rectangle tab and pulling the wire out.

GBS-82XX-cable

The 680 ohm resistor is soldered inline on the grey wire and heat-shrink is applied to keep it protected

The grey wire with the resistor soldered
Cable tidy mesh used around the completed wire

GBS8200 + ESP8266 (Optional but recommended)

If you build the optional GBS Control unit, the ESP8266 joins on to the GBS8200 like the following pictures and gives you finer control (via. a webpage) and better picture output whilst using the GBS8200

GBS Control Webpage
The Amiga A1200 outputting a Disk Based game via the GBS8200 + ESP8266

ACA1231 on OS3.1.4.1

After installing Amiga OS3.1.4.1, I’ve noticed that the 68030.library and MMU support with ACATune does not work correctly on my older ACA Card.

Running ACATune -status shows that the ACA1231-41Mhz card is being detected as a ACA1230-28Mhz card with not features enabled.

To fix this problem please follow the guide below

1 : To check if you have a problem with your ACA Accelerator card, Open up a Shell and type acatune -status

I have a ACA1231 but in ACATune it’s coming up as a ACA1230 with the wrong clock speed and also no features enabled.

2: Download the latest version of Mu680x0Libs – http://aminet.net/package/util/sys/Mu680x0Libs and extract to a folder, In there run the Install in the Install folder – I picked Novice Level and let it install where it wanted

3: Once installed, Copy the ACAInit file from the Mu680x80Libs/Libs/MMU folder to your Libs:MMU

4: Now edit the file ENVARC:MMU-Configuration and add ACAInit to the line before ;that’s all folks!

5: Turn the Amiga off and wait a few seconds, then back on. Once it’s booted try ACATune -status to make sure it’s working OK

Solarwinds – An exception occurred during polling processes. Error: Invalid class – Using WMI or RPC to poll

in Solarwinds SAM I was getting this error when trying to check for a running Process using Solarwinds Agents + WMI

After a bit of digging I found that on the computer in question, Opening windows Performance Monitor would give the error

Unable to add these counters:

\Memory\Available MBytes
\Memory\% Committed Bytes In Use
\Memory\Cache Faults/sec
\Memory\Cache Faults/sec
\PhysicalDisk(*)\%Idle Time
\PhysicalDisk(*)\Avg. Disk Queue Length
\Network Interface(*)\Bytes Total/sec”

The problem is that some of the WMI Querys have been disabled on the computer so will need to be reenabled
Following this technet article : https://social.technet.microsoft.com/wiki/contents/articles/19374.windows-performance-monitor-unable-to-add-these-counters.aspx fixed my issue

Short instructions on how to fix

Open CMD as administrator
CD C:\Windows\System32
lodctr /r
CD C:\Windows\SysWOW64
lodctf /r
lodctf /q
This will query the Performance Metrics library’s installed on the machine
Copy this list in a notepad and check for items that are disabled
For each disabled entry you will need to run the command lodctr /e:<provider name>

Once done you should be able to use your monitor in Solarwinds

Teamspeak in Amazon AWS EC2

Well for a little 30 minute project I decided to see how well TeamSpeak v3.9.0 runs in Amazon AWS EC2 t2.micro instance.

This project is based on the Reddit Guide https://www.reddit.com/r/DotA2/comments/2he801/how_to_easily_setup_your_own_free_teamspeak/
and this GazBlog Guide – https://www.gazblog.com/2018/12/setup-teamspeak-3-server-on-ubuntu-18-04/
but the instructions needed changing slightly due to Teamspeak differences and also I wanted the firewall and SSH access secured.

My reasons for this is ever since i3d stopped hosting Teamspeak getting a good UK server has proved hard so having a AWS server as a backup / used as our main comms server would be helpful.

Amazon offer 12 months free of a t2.micro instance the cheaper t2.nano is not free at the moment

To try this out for yourself you will need to sign up to Amazon AWS EC2 Services using the following link : https://aws.amazon.com/free


Fill in your details for a Personal account and verify with a Debit or Credit Card

Once signed up go to your AWS Console – https://console.aws.amazon.com/console/home
Select the region you want to host your server on – I used London as I’m based in the UK

Select ‘Launch a virtual machine with EC2’

Search for Ubuntu Server 18.04 LTS

Select t2.micro ‘Free tier eligible’

Next configure your Instance Details – I left all settings at Default
Next Add Storage – I used SSD with 8Gb’s of space for /dev/sda1

Next create a Network security group to allow TeamSpeak traffic and also Private SSH traffic back to your Home IP – I called my Group ‘ Teamspeak Server Firewall’

Now click Review and Launch – If you get a error can’t launch, wait another 10 minutes as your account may be waiting verification from Amazon.

Once launched – Change the first dropdown box to “Create a new pair” and give it a name like “Teamspeak-Access” and hit “Download Key Pair”. Then hit “Launch Instances”

Move you private Key to somewhere safe – as without this you won’t be able to SSH in to the instance

Connecting to SSH

Now I used Putty to connect to the instance – but there is a Java Client as well which can be used.
To use PuTTY, Amazon have some instructions here – https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html?icmpid=docs_ec2_console
PuTTYgen has to be used to save your Key in to a accepted Putty format

To use the Java Client (Not tested as I don’t have Java) – you need to select connect with Java SSH client. Set the Private key path as the location you saved you key pair and tick Store in browser cache. Then hit Launch SSH Client
Accept the terms for everything, Press Next a few times. When the MindTerm screen opens, hit “Enter”

Connected!

Setup Teamspeak 3 server on Ubuntu 18.04

Run the following via SSH to upgrade your Distro
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Next create a user to run Teamspeak using the following command
sudo adduser --disabled-login teamspeak
sudo su teamspeak
cd /home/teamspeak

Run the following commands to:
Download Teamspeak, extract it and tidy up.
wget https://files.teamspeak-services.com/releases/server/3.9.0/teamspeak3-server_linux_amd64-3.9.0.tar.bz2
tar xvfj teamspeak3-server_linux_amd64-3.9.0.tar.bz2
cd teamspeak3-server_linux_amd64
cp * -R /home/teamspeak
cd ..
rm -r teamspeak3-server_linux_amd64
rm teamspeak3-server_linux_amd64-3.9.0.tar.bz2
touch .ts3server_license_accepted

Next start the TS3 Server with the following command
./ts3server_startscript.sh start
It should start up – copy out the text that spits out as it will contain your access token and Server Query admin account details – Don’t lose it!

Press Enter to return to the command prompt
Finally stop the server and Exit the Teamspeak user with the following commands
./ts3server_startscript.sh stop
exit

Now we will create a restart script using systemd to restart it on boot.
Run the below command (This should open a blank pape)
sudo nano /lib/systemd/system/ts3server.service

Copy the below and paste it:

[Unit]
Description=Teamspeak Service
Wants=network.target

[Service]
WorkingDirectory=/home/teamspeak
User=teamspeak
ExecStart=/home/teamspeak/ts3server_minimal_runscript.sh
ExecStop=/home/teamspeak/ts3server_startscript.sh stop
ExecReload=/home/teamspeak/ts3server_startscript.sh restart
Restart=always
RestartSec=15

[Install]
WantedBy=multi-user.target

Now we need to save it
Press CTRL and X together, then Press Y

Now we need to enable it, by typing in the following command
systemctl enable ts3server.service

Type the following to reboot you server
sudo reboot

Connecting to the TeamSpeak instance

Connect using your Public DNS bookmark – for example ec2-somedetails-.eu-west-2.compute.amazonaws.com

Then claim ownership using the Teamspeak client with your access Token (Right click – Manage Virtual Server)

And the performance seems great

MDT / SyncThing / SnipeIT / API Asset Tracking / Logmein One2Many

I’ve been working on a system to deploy a Master Windows 10 image from MDT to remote sites that have no direct LAN to LAN connection. And also update the Asset Registry at the same time.

MDT / WDS / PXE Server

The MDT / WDS / PXE server is hosted on the HQ LAN, this can only PXE / Litetouch computers on the same LAN.

SyncThing

SyncThing SyncTrayzor makes it possible to share the DeploymentShare which hosts the MDT image with other sites by making a receive only sync on the remote file servers. Setup the DeploymentShare$ on the remote site as you would be on the local LAN and install Deployment Workbench / ADK for completeness.

This gives the Option to use the LiteTouch script to upgrade computers remotely

SnipeIT + API

SnipeIT is a free open source application for asset management – by itself it’s a manual process to enter assets and track them. It does have an API to use however which allows you to automate this process.

Marksman creates a new asset in SnipeIT from the local computer details but cannot update an asset already in the system.

Recon (Created by me but unreleased as of yet) updates the asset details in SnipeIT from the local computer details.

This can be run as a one off, inside the Litetouch process (So when a computer is imaged the asset details are automatically put in to SnipeIT).

Logmein One2Many

Logmein One2Many allows you to run an exe file on all controlled computers, so putting in Marksman and Recon you can update your computer asset database with one click.

NTP on a domain controller

This code sets the peerlist to the UK pools, resyncs it up and restarts the w32time server.

w32tm /config /manualpeerlist:"0.uk.pool.ntp.org,0x8 1.uk.pool.ntp.org,0x8 2.uk.pool.ntp.org,0x8 3.uk.pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update

w32tm /resync /rediscover
w32tm /query /source
net stop w32time && net start w32time

w32tm /resync /nowait
w32tm /config /syncfromflags:domhier /update
net stop w32time && net start w32time

And on a Hyper-V domain this usually does the trick to get the clock syncing with NTP

w32tm /config /manualpeerlist:"0.uk.pool.ntp.org,0x8 1.uk.pool.ntp.org,0x8 2.uk.pool.ntp.org,0x8 3.uk.pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update

w32tm /resync /rediscover
w32tm /query /source
net stop w32time
net start w32time
w32tm /query /configuration

Import to Active Directory Users from PowerShell

Another quick script to Import data from a CSV back in to Active Directory on a domain controller

# Import AD Module             
Import-Module ActiveDirectory 

#Get Admin accountb credential

$GetAdminact = Get-Credential
$DomainOU = GET-ADDomain | Select-Object -ExpandProperty UsersContainer

#Store the CSV in a table
$Users = Import-CSV c:\temp\ExportADUsers\Update.csv

foreach ($User in $Users)
{
           
#Search in specified OU and Update existing attributes            
 Get-ADUser -Filter "SamAccountName -eq '$($User.'Logon Name')'" -Properties * -SearchBase $DomainOU | Set-ADUser -GivenName $($User.'First Name') -Surname $($User.'Last Name') -DisplayName $($User.'Display Name') -Title $($User.'Directorate') -Description $($User.'Directorate') 

if (($User.'Account Status' -eq 'Disabled') ) {
#Search in specified OU and disabled accounts as required
 Get-ADUser -Filter "SamAccountName -eq '$($User.'Logon Name')'" -Properties * -SearchBase $DomainOU | Disable-ADAccount
 }

}

"Done"