[TiVo Software Home] [Programs] [Cross-compiler] [Teletext]

TiVo Partition Support

I had some problems getting my Linux box to access the root and var partitions on my TiVo disk (see these posts to DealDatabase and SourceForge), so now that I've got it working, I thought I should publish the patches and procedure that I used.

Tiger's MFS Tools 2.0 CD works fine for me, but this meant that I had to boot off the CD to access the disk, which is cumbersome if you want to make many additions or have several TiVos to upgrade (so far I've done my own, a friend's, my mother's and my brother's). In particular, other programs installed on my PC (like my favourite editor) were not easily available when booting from the CD.

I have an old PC running Debian GNU/Linux 3.0 with the bunk-1 kernel update to 2.4.22, which allows access to disks larger than 137 GB. To add TiVo partition support, here is what I did.

  1. Downloaded the Kernel sources and extract into /usr/src. I used the 2.4.22 kernel sources, but it is probably best if you use the sources for your current kernel.
  2. Applied the TiVo partition support kernel patch.
    cd /usr/src/kernel-source-2.4.22
    patch -p1 < ../tivo-partition-support-1.patch
    
    This patch was part of the 2.4.20-4.15 kernel patch set from WOLK, but I extracted just the TiVo partition support part. Here are the relevant entries from the change log. I don't know where those patches came from originally, but they are similar to these RedHat 9 additions and, as far as I can tell, have identical functionality to the kernel on Tiger's MFS Tools CD, which I understand is based on Kazymyr's TiVo Boot CD. (I don't like including code without the original attribution, so I'd be grateful if someone can point me to the original source.)
  3. Edited kernel-source-2.4.22/Makefile to define "EXTRAVERSION = -2-686" at the top. This was done to keep the same kernel version, 2.4.22-2-686, as my existing one, so I didn't need to remake the kernel modules.
  4. Copied the existing kernel configuration (/boot/config-2.4.22-2-686 on my system) to kernel-source-2.4.22/.config and ran make menuconfig from the kernel-source-2.4.22 directory. Included the following features directly into the kernel (select the option and press Y). Previously the IDE support was in a module, but with that it seemed to ignore the IDE kernel options (bswap etc) I specified - perhaps this is only a problem when using initrd.
    1. ATA/IDE/MFM/RLL support ---> ATA/IDE/MFM/RLL support
    2. ATA/IDE/MFM/RLL support ---> IDE, ATA and ATAPI Block devices ---> Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support
    3. ATA/IDE/MFM/RLL support ---> IDE, ATA and ATAPI Block devices ---> Include IDE/ATA-2 DISK support
    4. File systems ---> Partition Types ---> TiVo partition map support
    Alternatively, make the following option changes in .config by hand:
    CONFIG_IDE=y
    CONFIG_BLK_DEV_IDE=y
    CONFIG_BLK_DEV_IDEDISK=y
    CONFIG_TIVO_PARTITION=y
    
  5. cd /usr/src/kernel-source-2.4.22
    make dep
    make bzImage
    cp -p arch/i386/boot/bzImage /boot/vmlinuz-2.4.22-2-686-tivo
    
    or whatever is an appropriate location and name for your kernel image.
  6. Added the following entry to my /etc/lilo.conf
    image=/boot/vmlinuz-2.4.22-2-686-tivo
            label=2.4.22-bswap
            read-only
            initrd=/boot/initrd.img-2.4.22-2-686-bunk
            append="ide=nodma hdb=bswap"
    
    and ran lilo. This is for a TiVo disk is installed on /dev/hdb (primary slave drive). Alternatively, you can leave out the append line and specify it on the command line when you boot the kernel. Of course this step is different if you use another boot loader like Grub.

[TiVo Software Home] [Programs] [Cross-compiler] [Teletext]

HTML 3.2 Checked... Best viewed with ANY browser! http://homepage.ntlworld.com/maxwells.daemon/tivo/partition.html last modified 27th March 2005 by
Tim <maxwells_daemon@ntlworld.com>