milliAmp

the website of Alex Taylor

Windows 7 64-bit on an Aluminium Macbook Pro

There are many people who have had problems installing install Windows 7 64-bit on many older EFI based machines like the Aluminium Macbook Pro. The problem manifests itself in Vista SP1 64-bit.

There are a few articles around detailing why this is and many more showing how to solve it.

The problem is around the fact that the Windows Bootloader doesn’t seem to treat ISO9660 file version numbers correctly. To make a disc work and boot in EFI mode on these machines, you need to rebuild the ISO with ISO9660 version numbers suppressed.

However, all of these solutions required running Windows utilities to recreate the ISO. As I recently installed a new harddrive in my Macbook Pro I didn’t have a version of Windows installed that I could rebuild the ISO with.

I decided to find if I could create a compatible bootable Windows 7 DVD using only tools that are runnable under Mac OS X.

I used an article from jowie.com as a reference. It describes how to recreate the ISO with the fix using a 3rd-party Windows utility “Imgburn”.

I downloaded the latest version of “cdrecord” (formerly “cdrtools“) which includes the latest version of “mkisofs“, a *nix utility for creating ISO files with advanced options.

I managed to find the correct set of arguments to create a bootable DVD. DVD-RWs are my friend, although it only took 4 or 5 tries.

My machine is running Mac OS X Snow Leopard but I don’t see anything that won’t work on Leopard. These steps require the Mac OS X Developer Tools to be installed.

If you’re at this post, you may have already burned a copy of the Windows 7 DVD ISO (or a copy of Windows 7 Retail). I did, so I got the files for recreating the ISO from the DVD, you may choose to simply extract the contents of the ISO to a folder on your harddrive instead.

If you choose to use a folder, replace occurances of “/Volumes/GRC1CULXFRER_EN_DVD” with the folder you extracted the DVD to.

Here are the steps I took:

  1. Put the Windows 7 DVD in the drive or extract the ISO.
  2. Download the latest version of cdrecord from:
    http://freshmeat.net/projects/cdrecord/
  3. Extract the archive and run the following from Terminal:
    make
    make install
  4. Once again from Terminal:
    cd /opt/schily/bin/
    ./mkisofs -N -UDF -iso-level 4 -no-hfs -U -V GRC1CULXFRER_EN_DVD -no-emul-boot -b efi/bcd -c boot.catalog -o windows7rc.iso /Volumes/GRC1CULXFRER_EN_DVD

  5. Now burn the new ISO to a disc. You can use Disk Utility, Toast or any other ISO burning tool to do the job
  6. If you haven’t already, make sure you have either free unpartitioned space or a spare partition to install Windows on to.
  7. Reboot your machine, hold down Option to bring up the boot menu
  8. Insert the DVD into the drive (if it isn’t in there aleady).
  9. Select the Windows CD, Windows 7 should now boot without problems
  10. That is it.

    Once Windows 7 is installed, insert a Snow Leopard disc to install the 64-bit Boot Camp drivers. If you don’t have Snow Leopard, you can download the latest Boot Camp drivers from Apple’s download section.

Back into Web Design

Screen-shot of the new design for Aimee's Website

Screen-shot of the new design for Aimee's Website

It has been a long time since I’ve actually designed a website/theme from start to finish, mocking it up, slicing and implementing it. I did one over the last few days for my girlfriend Aimee and realised how out of practise I am. It wasn’t really my CSS skills lacking but in Photoshop I really am not the most imaginative person. Anyway, I got an idea one night for a theme for Aimee’s website and got up in the morning and mocked it all up.

I never got around to fixing it in Internet Explorer, I don’t imagine it works correctly, for one, I didn’t put in the IE PNG Fix, and I definitely used 24-bit transparent PNGs in there. However, it works in Safari, Firefox and Opera and that seems to be all the Aimee cares about so that is that for now, maybe some fixes another day.

I put it live this afternoon, it could definitely use a few tweaks and finishing touches but I think I’m happy with how it came out.

Aimee is planning on moving around the structure of her site, which is using WordPress. In that respect the navigation isn’t particularly useful at the moment and the front page is going to be a static page rather than her blog.

Also, I got bored near the end and put a weird little Easter egg into the theme, try double-clicking the wings.

Into The Ground

After having a rather hilarious conversation at work last week about someone being able to literally punch another “into the ground”, I decided it would be an interesting experiment to buy intotheground.com and then make a small system that showed a phrase in large letters that ended in “into the ground”.

I wrote a small PHP Script to turn the hostname into a phrase, popped in Google Analytics and bingo, a weird, crazy, phrase thing.

http://i.want.to.punch.you.intotheground.com/

Decided to add a small “make your own” box at the bottom too.

Caller ID laziness

At my house, we have a VoIP line provided by Xnet. In my house, I have a small QoS router that has two POTS plug that allow my to plug my normal phones into the VoIP line. What is even better is that the Caller ID that comes with the line also gets displayed on the phones I have.

As I’m incredibly lazy, I set about finding a way for my computer to tell me who was calling when the phone rang instead of having to find the cordless phone (or run to the corded one if it was flat) to check who was calling. I have set an option in the control panel at Xnet that sends me an email whenever someone rings my home, which includes the Caller ID but alas, it still takes the email about 30 seconds to arrive in my inbox (I check my email every 1 minute) so it didn’t really help to know who it was before I picked it up.

It turns out that the router’s status page displays the state of the VoIP line and also the last number that called it. Bingo! I whipped up a little PHP CLI script that polled the router’s status page for when the status was “Ringing” and captured the phone number displayed there.

I then added a piece of AppleScript that interfaces with Address Book on MacOS X which could translate a phone number into a name if that number was in the Address Book.

The last piece of the puzzle was to utilise the command line program called growlnotify to send out a Growl notification and made it send out to the two laptops in the house.

I placed this script on the Mac Mini I have connected in the lounge and set it running. A few bug fixes later and I now have Growl alerts show up on my laptop screen within about 3 seconds of my home phone ringing saying exactly who is ringing.

All in the name of laziness.

If anyone is interested, I can post the utility. The VoIP router I designed it for is the Linksys SPA-2102.

WordPress 2.7 and Fluency Admin 2 Plugin

WordPress 2.7 has a redesigned admin panel that goes a long way to making WordPress more usable. When I upgraded to WordPress 2.7 and deactivated the old Fluency Admin plugin I had installed to make the old admin more usable, I wanted to have a play around with the new WordPress 2.7 Admin style. Unfortunately, it didn’t take me long to find a whole raft of things I didn’t like about it. For one I found the navigation clumsy and inconsistent in its “javascripty” interactions, and I really don’t like collapsing drawers like they have in the navigation now.

So I went hunting and found that Dean Robinson had released a new version of his Fluency Admin plugin rewritten from the ground up for the new version of WordPress. After reading what the plugin changes and why on Dean’s website I knew I’d love it. So, I installed it and… wow. I loved the things Dean did with Fluency Admin 1 in previous versions of WordPress and was suitably impressed with what he did with this one. 

Check out Dean’s page about the plugin for some screenshots. One thing I’m, really loving is similar to a function Habari has. Habari has quick keyboard shortcuts for all the major functions in the menu, and now with this plugin, WordPress Admin has something similar. 

On a side note, the upgrade to WordPress 2.7 went very smoothly, I have WordPress installed the “subversion way” so one “svn switch” command then one Upgrade page visit and boom, all done.