I wanted to install a clean virtual instance of Windows 8 after purchasing the $40 upgrade from the Windows website, and encountered the dreaded “Windows 8 Pro Upgrade Product Key can’t be used to activate Windows after a clean install” when attempted to activate it.  Doing a quick Google search, I stumbled upon a great write up at the Microsoft answers website here.  Thanks to the expert tutelage of “BinaryInk” I was able to successfully work around the issue.

The instructions, are as follows:

  1. Run the registry editor (regedit) 
  2. Find the following key: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\OOBE 
  3. Change the value for ‘MediaBootInstall’ from 1 to 0 
  4. Open an elevated command prompt (run as admin) 
  5. Run the following command: slmgr -rearm 
  6. Reboot

Using the above instructions, Windows 8 was successfully activated after the reboot.  Thanks BinaryInk!

Recently had to roll out a new Zoneminder install for a client using ESXi 5.1. Instead of using Viktor Petersson’s ESXi appliance (which I’ve used in the past but is outdated and no longer developed), I created a fresh, fully updated Zoneminder virtual machine template. You can use this .OVA vm template with any flavor of VMware you wish, not just ESXi. This virtual machine is up to date as of the writing of this blog post (9/23/12). It includes Ubuntu 32-bit 12.04.1 LTS and Zoneminder 1.25.0 (see bottom of post for upgrade instructions to 1.26+). Additionally, it has version 9 of VMware tools preinstalled as well.  You can have a fully configured Zoneminder install in minutes using my virtual appliance.  In ESXi, simply load the vSphere client, go to File and select Deploy OVF Template and point it to the downloaded file. If using the .OVA with any VMware product other than vSphere/ESXi, you’ll need the OVF Tool located here. I’d recommend using at least 512MB of RAM, and at least 20GB of disk space if you plan on recording video.

Download the ZoneMinder VMware Appliance Template from Sourceforge

Template tested with the following versions/flavors of VMware: ESXi 5.1, ESXi 5.0 Update 2, Fusion 4 for Macintosh

Config details:

Admin username is zmadmin, as is the password.
MySQL Root password is zmadmin as well.
The Zoneminder web interface username and password is admin.
There is no root password set for Ubuntu.

Access Zoneminder’s web interface at http://YOURIPADDRESS/zm 

The appliance, once deployed will get an IP and DNS via DHCP.  You can change the IP to static by altering /etc/network/interfaces:

sudo nano /etc/network/interfaces

Change the following lines: 

# The primary network interface
auto eth0
iface eth0 inet dhcp

To (where x.x.x.x is your desired gateway and static IP):

# The primary network interface
auto eth0
iface eth0 inet static
address x.x.x.x
gateway x.x.x.x

Add your fully qualified name to the /etc/hosts file:

sudo nano /etc/hosts zoneminder.yourdomain.com zoneminder
x.x.x.x zoneminder.yourdomain.com zoneminder

Optional: Add your DNS servers for name resolution (the defaults are Verizon’s DNS at and

sudo nano /etc/resolvconf/resolv.conf.d/tail

Changing “nameserver” entries to whatever your internal DNS servers are. The file defaults are:


Presto! You have a shiny new Zoneminder install!  Enjoy and let me know what you think in the comments section below.

Note: this VM template doesn’t include the Cambozola Java jar, which enables viewing of live streaming (montage) via Java.  To install it:

cd /tmp
sudo wget http://www.charliemouse.com:8080/code/cambozola/cambozola-latest.tar.gz
tar xvfz cambozola-latest.tar.gz
sudo cp /tmp/cambozola-0.93/dist/* /usr/share/zoneminder
You may need to update the 0.93 portion of the above line if you download a newer version of Cambozola.

In the ZoneMinder web interface, under Options, Image, make sure to check the OPT_CAMBOZOLA box to enable it.


My disk is full and MySQL won’t start, how can I purge recordings to get ZM working again?

cd /usr/share/zoneminder/events
sudo rm -rf *
sudo reboot

How can I make the VM disk bigger?

Option 1 (recommended):
Run VMWare Converter to duplicate a deployed Zoneminder VM and increase the size during the conversion process.

Option 2: gParted
1. Remove any snapshots.
2. Increase the VM disk size in vSphere.
3. Use the gParted Live CD to resize the partition.

To fix “Shared Data Size Conflict in Shared_Data for monitor” in your logs, see this blog:

http://lachlanmiskin.com/blog/2012/06/24/zoneminder-shared-data-size-conflict-in-shared_data-for-monitor/ to properly set the architecture to 32-bit.  This is a Zoneminder bug.

To install the latest version of the VMware tools: Right click host, Guest, Install/Upgrade VMware Tools.  Select “Automated Tools Upgrade” with the “–default” as the “Advanced Options”

Screen Shot 2013-06-22 at 10.03.36 AM

Upgrading to ZoneMinder 1.26+

Upgrading to the latest version of Zoneminder is a simple process of executing the following commands in the specified order:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:iconnor/zoneminder
sudo apt-get update
sudo apt-get dist-upgrade

The last command above will prompt you several times for the ZoneMinder upgrade.  Answer in this order: Y,Y,Y, Enter, Enter, Y,Y
Ignore the warning about stopping Zoneminder as it will already be stopped.

If you’d like to see the Zoneminder upgrade process looks like and how I answered the interactive upgrade questions, click here.

Important: Sometimes Zoneminder upgrades will destroy your symlinks.  Perform the following commands to reestablish these symlinks:

sudo /etc/init.d/zoneminder stop
sudo ln -s /var/cache/zoneminder/events /usr/share/zoneminder/events
sudo ln -s /var/cache/zoneminder/images /usr/share/zoneminder/images
sudo /etc/init.d/zoneminder start

Lastly, after the upgrade your Zoneminder won’t automatically start.  To fix this:

sudo nano /etc/init.d/zoneminder

Add “sleep 15” before the zmfix -a line as pictured below (see arrow) and reboot.


You can upgrade to future versions by simply typing the last command (sudo apt-get dist-upgrade) as you have already added the repository for ZoneMinder.  Just make sure to add the sleep command above when upgrading.

Tagged with:  

Modifying ghettoVCB to run on VMware ESXi 5.1

On September 14, 2012, in Technology, by Mike Waldron

UPDATE: William Lam has put out a 5.1 compatible version of ghettoVCB.  Click here to download!

I went to roll out a new VMware server, grabbing the fresh ESXi 5.1 build. When implementing ghettoVCB I observed that the /bin/busybox location is no longer valid, and that rc.local is no longer editable. Not only that, but because William Lam hasn’t yet updated ghettoVCB to include the 5.1 version, the script won’t even run on 5.1. Turns out the rc.local injection needs to happen in “/etc/rc.local.d/local.sh”.  Also, because busybox has moved you need to change the injection script as follows:

/bin/kill $(cat /var/run/crond.pid)
/bin/echo "0 6 * * 0 /vmfs/volumes/backups/ghettoVCB/ghettoVCB.sh -a > /vmfs/volumes/backups/Logs/backup.log" >> /var/spool/cron/crontabs/root
/usr/lib/vmware/busybox/bin/busybox crond  

And you need to place the script above in “/etc/rc.local.d/local.sh” versus the old “/etc/rc.local” file.

Additionally you’ll need to modify the version check part of ghettoVCB.sh as follows (see bold portion):

        ESX_VERSION=$(vmware -v | awk '{print $3}')
	if [[ "${ESX_VERSION}" == "5.0.0" ]] || [[ "${ESX_VERSION}" == "5.1.0" ]]; then
        elif [[ "${ESX_VERSION}" == "4.0.0" ]] || [[ "${ESX_VERSION}" == "4.1.0" ]]; then
                ESX_VERSION=$(vmware -v | awk '{print $4}')
                if [[ "${ESX_VERSION}" == "3.5.0" ]] || [[ "${ESX_VERSION}" == "3i" ]]; then
                        echo "You're not running ESX(i) 3.5, 4.x, 5.x!"
                        exit 1

The above steps got ghettoVCB running for me on 5.1.
UPDATE: William Lam has put out a 5.1 compatible version of ghettoVCB.  Click here to download!

Tagged with:  

I’ve recently been moving many clients to Office 365, and ran into a small problem for a particular client when performing a migration from an existing in-house Exchange server. Many users in the domain were failing migration, and gave the following error:

Failed to update one of the recipient properties. Couldn’t find a user or contact with identity “/o=Company/ou=First Administrative Group/cn=Recipients/cn=user”

This error in my case was caused by the manager field in the Active Directory being populated with the “user” common name (CN) quoted above.  Removing/clearing the manager field fixed the issue and once the migration batch was re-run the users got migrated just fine.  You can find the “Manager” field for a user in the “Organization” tab in Active Directory.

Thanks to Marcel at the MS Community forums for posting the fix!


Using Emoji with Mac Messages or iMessage for Lion

On August 17, 2012, in Fun, Technology, by Mike Waldron

Yes, it’s very possible to use Emoji with iMessage without any special add-ons or app purchases.

While in Messages for Mac or iMessage, hit Command + Option + T (or select Edit, Special Characters from the Messages Menu) to bring up the “Special Characters” menu and select Emoji on the left.  I’ve confirmed that iPhone users can see the Emoji characters on their devices just like you are using it from your iDevice.


Tagged with:  

Some USB Ports Not Working on Hackintosh – FIXED!

On August 2, 2012, in Technology, by Mike Waldron

I recently upgraded my Dell Precision 390 hack build to Mountain Lion.  Only 2 of the four USB ports were working in the rear, while in Lion they all worked fine.  Then I remembered that I almost always remove AppleHPET.kext from my Hackintosh builds.  Sure enough that was all it took.

Delete AppleHPET.kext (this is frequently a problematic kext when it comes to customac builds).
Ironically, I first found this fix way back in Leopard to fix slow USB speeds.

Using Finder, copy the Kext to the desktop or somewhere as a backup. Better be safe than sorry!
sudo rm -r /System/Library/Extensions/AppleHPET.kext

Make sure to update your kext cache as well.

All ports working – yay!

Web Hosting