How to use InstantCake with QEMU on any *NIX OS (Including Mac)

Discussion in 'TiVo Upgrade Center' started by stealthdave, Mar 16, 2011.

  1. stealthdave

    stealthdave New Member

    3
    0
    Jan 19, 2005

    Advertisements

    My first generation Philips HDR112 TiVo recently died... again. I've actually resurrected this TiVo about 4 times now by just replacing the hard drive, and I'm definitely getting my moneys worth out of the Lifetime Service package. A couple of years back I bought a copy of InstantCake, which made the restoration process a whole lot easier. But when I went back to restore it this time around, I discovered that I no longer had any PCs with 2 IDE ports (they're all SATA now), and InstantCake expects the upgrade drive to be in a very specific location. After a good amount of fiddling I came up with an easy to implement solution to the problem using QEMU.

    The solution works by placing the drive that you're updating into an external enclosure and mapping the dev node from the host machine to the guest machine in QEMU. InstantCake thinks everything is in the right place, and the update runs smoother than ever. Some big advantages to using this method are:

    • NO futzing with the internals of your machine! No need to open the case at all!
    • It works on ANY *NIX system that runs QEMU, and possibly even Windows
    • Works on nearly any PC configuration, even ones without IDE ports, including laptops!
    • Should work with ANY PROCESSOR!!! QEMU can emulate the entire processor, so you should be able to use your old PPC Mac if you want to. (I've only tested on x86 processors, so caveat emptor on this one.)
    For my setup, I used Ubuntu 10.10 and a FireWire 400 enclosure. USB enclosures should also work just fine. You'll need:
    1. A working PC or Mac computer
    2. QEMU (I used version 0.12.5 which is in the Ubuntu repository, but any version that supports the -drive option should work)
    3. External drive enclosure for IDE based hard drive
    4. CD or disc image for InstantCake

    The procedure is as follows:

    1. Connect your external drive to your computer and determine what "node" it's attached to.
      • For Mac OS X, use Disk Utility. Right-click or CTRL-click on the ROOT DEVICE (not a partition) of your external drive and find the Disk Identifier, e.g. "disk1", "disk3", etc.

        From this, your Device Node will be /dev/rdisk3
      • On Ubuntu, launch System -> Administration -> Disk Utility and select your external drive. The Device Node will be listed underneath Volumes in the right side of the app. On my computer, it was /dev/sde.

      If you are using a physical InstantCake disk, repeat the process to find the dev node for your InstantCake disk.
    2. UNMOUNT any mounted partitions from this drive, but do not disconnect! This is to ensure that you don't have two systems trying to access the disk at the same time.
    3. Launch QEMU from the command-line with the following command:
      Code:
      qemu -drive file=[COLOR="Red"][B]InstantCake.iso[/B][/COLOR],index=0,media=cdrom -drive file=[COLOR="red"][B]/dev/sde[/B][/COLOR],index=2,media=disk,format=raw,if=ide
      If you're using a physical InstantCake disk, replace InstantCake.iso with the dev node for that disk.
    4. Follow the prompts from InstantCake and wait.

    On Mac OS X, you can use kju-app {dot} org (sorry, I'm not allowed to post links yet) in place of the command-line by doing the following:

    1. Create a new PC in Q as Q Standard Guest
    2. In the General tab, uncheck Enable Networking
    3. In the Hardware tab, select:
      • No Floppy
      • No Hard disk
      • No CD-ROM
    4. In the Advanced tab, place the following in the QEMU Arguments window:
      Code:
      -drive file=[COLOR="Red"][B]InstantCake.iso[/B][/COLOR],index=0,media=cdrom -drive file=[COLOR="red"][B]/dev/sde[/B][/COLOR],index=2,media=disk,format=raw,if=ide

    I haven't tested this in Mac OS X, but I've used QEMU extensively in the past, and this should work just fine.

    You can also use this method with MFSTools or any other disk that requires you to boot and dedicate your entire machine to the process. You can use kqemu virtualization if you want, but InstantCake has such a low processor requirements that even emulating the entire machine didn't slow anything down.

    I hope this helps others who are trying to keep their old TiVos alive. These machines are real workhorses, and they're worth keeping around even in the hi-def era.

    - Stealth Dave
     

Share This Page

spam firewall

Advertisements