Results 1 to 15 of 30

Thread: Killhdinitrd SA S2 24004A with 7.2

Threaded View

Previous Post Previous Post   Next Post Next Post
  1. #1
    Join Date
    Jan 2005
    Posts
    1,008

    Killhdinitrd SA S2 24004A with 7.2

    Since it seems a rite of passage to post one's experiences/results, here are mine. I had to glean information from various threads and I figured it might help some folks embarking on this to have most of it in one place. My specific unit is the 24004A with software rev. 7.2.1 but this will work for 240040 and any other tivos that begin with 240.

    I don't want to preach but some words of wisdom. Read, learn, understand what you are doing. Read the killhdinitrd release thread here and also the killhdinitrd support thread here.

    Map out your plan, make notes. Make sure you have a FAT/FAT32 partition on your PC. This pre-planning will make things a LOT easier. Some familiarity with linux/unix helps too. You will need a boot cd and a proper kernel that already has killhdinitrd applied to it or one you will apply yourself. The folks at PTVUpgrade have a boot disk with pre-modded kernels for $5 here Or if you already have the correct kernel you can use the free lba48 boot disk at the same URL. You will also need some tools - one great source is Alphawolf's All-In-One binaries for the series2 found here. You also might want some other utilities found at sourceforge here.

    The following assumes you already have the boot cd, tools and most importantly the kernel you will be using. You surely should have made a backup image and tested it before you start - see Hinsdale's howto here for pointers. Also, since we are installing telnet and ftpd, I assume you have a USB ethernet adapter. I have used the older Linksys 100M and also the Netgear FA120. For a list of compatible adapters see tivo.com. Some details may have been left out, you are hereby warned...

    I chose to use a 3.1.5 kernel that already had killhdinitrd applied to it; many are now using the newer "7.2.2-oth.K1" killhdinitrd kernel which supports DHCP without additional modules. See notes below on DHCP.

    Now on to the goods...

    -----Hack TiVo SA S2 "240"-----

    1. Attach your tivo hard drive to your pc as "secondary master" and boot from ptvlba48 cdrom; your tivo hard drive should show up as /dev/hdc in the boot messages (dmesg). The following is based on my tivo hard drive located in the secondary master position (/dev/hdc); if you have your tivo drive in another location, edit accordingly. You can generally mount the 4th, 7th and 9th partitions on a tivo drive; sometimes either the 4th or 7th doesn't exist (especially after an mfstools backup/restore).

    Check what your current "root" is:

    bootpage -p /dev/hdc

    *output will either be hda4 or hda7 - mine was /dev/hda4 and we'll use that throughout; if your root is /dev/hda7 you will need to adjust accordingly.

    Make a mount point and mount the drive

    mkdir /mnt4
    mount /dev/hdc4 /mnt4

    2. Now dd in the killhdinitrd kernel to the appropriate partition

    If result of Step 1 was "/dev/hda4" then dd if=/path/to/vmlinux.px of=/dev/hdc3
    If result of Step 1 was "/dev/hda7" then dd if=/path/to/vmlinux.px of=/dev/hdc6

    3. Write new bootpage params to kernel

    bootpage -P "root=/dev/hda4 dsscon=true console=2,115200 upgradesoftware=false" -C /dev/hdc

    --those are capital P & C; it should be hda4 or hda7 depending on bootpage -p output; the 'root=/dev/hda[4or7]' should always be hda as it is the Primary Master IN THE TIVO! It should never be any letter other than a. The /dev/hdc after the -C is the letter of tivo hard drive when it is installed in your PC.

    4. Edit IPTABLES

    Two ways to do this:
    a.
    cd to /sbin on mounted "root" partition; i.e., cd /mnt4/sbin

    mv iptables iptables.old
    echo -e '#!/bin/bash\nexit 0' > iptables
    chmod 755 iptables

    *That's a zero above - \n (newline) exit 0 - your file should look like this when done:

    #!/bin/bash
    exit 0

    *Doublecheck it, this is the source of many errors...

    b. Easier way to "fix" iptables...
    insert the command:
    iptables -F
    Early in your rc.sysinit.author - see below...

    5. Create rc.sysinit.author

    cd to /etc/rc.d on mounted "root"; i.e., cd /mnt4/etc/rc.d
    touch rc.sysinit.author
    chmod 755 rc.sysinit.author
    vi rc.sysinit.author
    #!/bin/bash
    export PATH=$PATH:/hacks
    iptables -F
    tnlited 23 /bin/bash -login &
    setsid /bin/bash --login -i</dev/ttyS2&>/dev/ttyS2&
    tivoftpd&

    6. Move in some hacks

    --I like to have my utils right in bin--
    cp /path/to/ls /mnt4/bin
    cp /path/to/vi /mnt4/bin
    cp /path/to/setsid /mnt4/bin
    chmod 755 (all of the above) --do this for each

    --Make a directory for your hacks on the root partition--
    *Most people recommend you put your hacks in the root because the /var directory can be overwritten by tivo

    mkdir /mnt4/hacks --this name should match what you typed in rc.sysinit.author
    cp tivoftpd /mnt4/hacks
    chmod 755 /mnt4/hacks/tivoftpd

    7. Notes on USB network drivers and 8.x Software

    With the release of 8.x software, there is an apparent incompatibility between the stock tivo network drivers and the killhdinitrd kernels - reference 8.1 and my NIC thread. The incompatibility can be resolved by using Jamie's Backport Drivers. You'll need to copy the "host" drivers as well as the specific driver for your USB NIC. Read Jamie's README and look at your /etc/hotplug/usb.map for more info.

    *Finish

    cd /
    umount -f -a -r
    halt

    You should now have tivo booted with serial bash, telnet and tivoftpd running. Whatever else you want to do you should be in good shape.

    **Notes on DHCP
    The DHCP client (dhclient) does not work correctly with a killhdinitrd 3.1.5 kernel on 7.X software; read why here.
    Two solutions, use a static IP address entered in the Tivo GUI - navigate through "Network Settings" and enter a static ip address that matches your subnet. Or, if you would like to regain DHCP functionality with the 3.1.5 kernel, read how here.
    You can can also use the "7.2.2-oth.K1" killhdinitrd kernel with built-in DHCP support.

    ***Notes on Serial Bash/Channel Changing***

    If you plan on using the tivo serial port + cable to change channels, as with the Motorola cable box, you will need to disable the 'setsid /bin/bash --login -i</dev/ttyS2&>/dev/ttyS2&' line by placing a comment symbol (#) in front of this line or deleting it all together. Directing /bin/bash to the serial port will screw up your channel changing and cause the tivo to reboot when you try to change channels.

    ***Last but not Least - Serial Output***

    I spent more time working on getting serial cable output than anything else. Here's what finally worked for me - I used the serial cable from 9th tee, with a radioshack null modem adapter plus a radioshack female-to-female gender changer. You could also make your own serial cable with instructions here. I had a lot of problems getting output and it only worked when I used the "setsid" utility in Alphawolf's binaries (link above) and included the line above in rc.sysinit.author. For general help with serial console output see here; The specific thread I used in reaching my solution with setsid is here. The bonus is you end up with serial bash in case someday you need to get in for repairs and you don't have telnet...

    Best of luck, hope it helps and feel free to question, comment, etc.

    Peace, out.
    Last edited by ScanMan; 04-25-2007 at 10:55 AM. Reason: Add comments on USB network drivers and 8.x s/w

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •