Page 1 of 5 123 ... LastLast
Results 1 to 15 of 67

Thread: Custom Kernels

  1. #1
    Join Date
    Aug 2004
    Posts
    4,085

    Custom Kernels

    These are custom kernels built from the TiVo provided linux sources.

    Why would you want to use a custom built kernel?
    • Because you can. Perhaps it will give you a sense of superiority over the HR20 users.
    • For additional capabilities not included in the stock kernels, e.g. a journaled file system.
    • For improved performance. In particular, turning CONFIG_NETFILTER off and turning CONFIG_NET_FAST_TCP on seems to help network performance.


    kernel-build.tar.bz2 holds the script, patches and kernel config files for building 8.1 and 8.1.1 TiVo linux kernels. You'll also a need a toolchain if you want to build kernels yourself. This is the one I use.

    All kernels have no initrd and are, obviously, not signed with the TiVo signing key. That means they are suitable for use on a PROM mod'd tivo, or as a monte target kernel. They won't boot directly on unmodified hardware.

    All kernels are compiled with ext3 built in, CONFIG_NETFILTER off, and CONFIG_NET_FAST_TCP on. You will want to replace /sbin/iptables, as described here if you use these kernels. Otherwise, you might see crashes when the tivo software tries to load iptable rules.

    Note that on the TGC01 (SA DT) and Gen05 (Series3) platforms, if you use the built in ethernet, you'll need to use the included drivers with these kernels. The factory stock drivers are not compatible with a kernel compiled with CONFIG_NETFILTER off.

    Series2: traditional Series2 platforms
    Gen04: "Series 2.5" -- 5xx modesl
    TGC01: StandAlone DualTuner
    Gen05: Series3
    Gen06: TiVoHD -- see this

    Jump ahead to here for 9.4.1 Gen05 and Gen06 kernels:
    Attached Files Attached Files
    Last edited by Jamie; 07-28-2009 at 07:47 AM. Reason: update Gen06 link to newest

  2. #2
    Join Date
    Jan 2007
    Posts
    46
    Jamie,

    What's the difference between the Series 2 kernel in the above post, and the one here?

  3. #3
    Join Date
    Aug 2004
    Posts
    4,085
    Quote Originally Posted by tsanga View Post
    Jamie,

    What's the difference between the Series 2 kernel in the above post, and the one here?
    The former was built from the 8.1 tivo linux kernel sources, while the later was built from 7.2 sources. There may be some slight differences in kernel options used too.

    Functionally, they are probably pretty close to the same, but if you are running 8.x, I guess I'd choose the 8.x kernel over a 7.x kernel. I run these 8.x kernels myself.

  4. #4
    Join Date
    Jan 2007
    Posts
    46
    Can I monte into any kernel version? In other words, do I have to correspond software version to corresponding kernel? I was under the impression that 6.x has to be matched with either a 3.1.5 or 7.2.2 kernel. Or maybe with a monte, it doesn't matter.

  5. #5
    Join Date
    Aug 2004
    Posts
    4,085
    Quote Originally Posted by tsanga View Post
    Can I monte into any kernel version? In other words, do I have to correspond software version to corresponding kernel? I was under the impression that 6.x has to be matched with either a 3.1.5 or 7.2.2 kernel. Or maybe with a monte, it doesn't matter.
    The main constraint is that linux kernel version matches (e.g. 2.4.20) and that the platform is compatible (e.g. not use a Gen04 kernel on a Series2, and vice versa).

    The only killhdinitrd 2.4.20 kernels are 3.1.5 and 7.2.2-oth.K1, which might be where you got the idea.

    Everything since 5.x has used a 2.4.20 kernel. Even the new TiVoHD is still running a 2.4.20 kernel.

  6. #6
    Join Date
    Jan 2007
    Posts
    46
    Got it. Thank you much.

    Edit: Found out the hard way which one works. Heh....
    Last edited by tsanga; 07-31-2007 at 10:52 PM.

  7. #7
    Join Date
    Nov 2002
    Location
    St. Louis
    Posts
    67
    Since I'm not seeing a "support" thread for this Jamie, I'll ask in here -

    My Tivo died. Again. So I'm starting over (third time in 5 years...yuck). When I ran killhdinitrd on the AlphaWolf 62small.mfs restore image, I had two kernels - one that the killhdinitrd program didn't recognize, and a 3.1.1c that identified itself and kernel 2.4.4.

    So the question is basically thus - I am pretty sure I can monte to this with impunity, but with the filesystems I have in place, is there any simple way to convert to ext3? I spend my life on FreeBSD and OSX anymore, so my impression is that I'd have to tar up the existing ext2 tivo filesystem (I'm booted from the MFS Tools CD atm) ie tar -z --create --file /nfs/share/elsewhere/tivo.tar.gz /mnt/tivo, store it elsewhere, then do a new mkfs /dev/hda7 (which is the root of my tivo's filesystem) for this to be really useful.

    Am I right about this? For extra credit, is there a one-stop shopping link for drivers that work with these kernels? ie - USB2 supported NICs, and umass? Seeing as you're saying these are 2.4.2, and my tivo claims to be 2.4.4, I have concerns about existing kernel drivers not working, and I have a set of usb drivers sitting here, and I'm not 100% confident now that they are 2.4.4 or 2.4.2.

    (I've since confirmed that the drivers I have are for 2.4.2 - so presuming you give me the "yes sir!", I'll monte from 2.4.4 to 2.4.2, and load the drivers from here:

    http://www.dealdatabase.com/forum/sh...ad.php?t=38167 <- Jamie USB2 Backport Drivers

    )

    Hopefully this saves questions from other onlookers! Also need to confirm that this kernel is "okay" for 6.2. It's the only restore image I have handy, and it's for a DirecTivo.
    Last edited by Numbski; 09-10-2007 at 08:49 AM.

  8. #8
    Join Date
    Aug 2004
    Posts
    4,085
    Quote Originally Posted by Numbski View Post
    Since I'm not seeing a "support" thread for this Jamie, I'll ask in here -

    My Tivo died. Again. So I'm starting over (third time in 5 years...yuck). When I ran killhdinitrd on the AlphaWolf 62small.mfs restore image, I had two kernels - one that the killhdinitrd program didn't recognize, and a 3.1.1c that identified itself and kernel 2.4.4.

    So the question is basically thus - I am pretty sure I can monte to this with impunity, but with the filesystems I have in place, is there any simple way to convert to ext3? I spend my life on FreeBSD and OSX anymore, so my impression is that I'd have to tar up the existing ext2 tivo filesystem (I'm booted from the MFS Tools CD atm) ie tar -z --create --file /nfs/share/elsewhere/tivo.tar.gz /mnt/tivo, store it elsewhere, then do a new mkfs /dev/hda7 (which is the root of my tivo's filesystem) for this to be really useful.

    Am I right about this? For extra credit, is there a one-stop shopping link for drivers that work with these kernels? ie - USB2 supported NICs, and umass? Seeing as you're saying these are 2.4.2, and my tivo claims to be 2.4.4, I have concerns about existing kernel drivers not working, and I have a set of usb drivers sitting here, and I'm not 100% confident now that they are 2.4.4 or 2.4.2.

    (I've since confirmed that the drivers I have are for 2.4.2 - so presuming you give me the "yes sir!", I'll monte from 2.4.4 to 2.4.2, and load the drivers from here:

    http://www.dealdatabase.com/forum/sh...ad.php?t=38167 <- Jamie USB2 Backport Drivers

    )

    Hopefully this saves questions from other onlookers!
    It's 2.4.20, not 2.4.2.

    You can convert an ext2 file system to ext3 in place with tune2fs. It's fast and easy. tune2fs is part of e2fsprogs. A mips build can be found here.

    You don't want root to be ext3 if your initial boot kernel (pre monte) doesn't have ext3 support though. It won't be able to mount the root file system to do the monte.

  9. #9
    Join Date
    Nov 2002
    Location
    St. Louis
    Posts
    67
    Well shoot. I was hoping to fix things up so that if the power failed, the thing would be back up right quick because it didn't need to fsck the root filesystem. oops. So there is really precious little benefit to ext3 on the tivo. Oops.

  10. #10
    Join Date
    Aug 2004
    Posts
    4,085
    Quote Originally Posted by Numbski View Post
    Well shoot. I was hoping to fix things up so that if the power failed, the thing would be back up right quick because it didn't need to fsck the root filesystem. oops. So there is really precious little benefit to ext3 on the tivo. Oops.
    Leave root ro then and make a separate file system, running ext3, for your hacks. The tivo software never runs e2fsck on the root file system IIRC, since it is always suppose to be readonly. Ext3 can also be handy for /var, prevent it from getting rebuilt due to corruption and e2fsck failures after a hard powerdown.
    Last edited by Jamie; 09-10-2007 at 04:28 PM.

  11. #11
    Join Date
    Nov 2002
    Location
    St. Louis
    Posts
    67
    Ah, that's good to know. Thanks Jamie!

  12. #12
    Join Date
    Dec 2005
    Posts
    14
    The Gen04 custom kernel doesn't work with my prom-modded 540 and 9.1 software, and reboots just after the "almost there" splash. The relevant console output seems to be:
    Code:
    iptables v1.2.6a: can't initialize iptables table `filter': iptables who? (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.
    assert: Tmk Assertion Failure: 
    assert: TmkServer, line 379 ()
    Tmk Fatal Error: Activity TvBusProxy <100> strayed!
    Full console output is attached. This kernel worked great before I upgraded to 9.1. When I used a 9.1 kernel with initrd replaced, it worked fine. I thought I read elsewhere that the custom TGC01 kernel was working with 9.1 software, but wanted to give you a data point for the 540.
    Attached Files Attached Files

  13. #13
    Join Date
    Aug 2004
    Posts
    4,085
    Quote Originally Posted by katiebear00 View Post
    The Gen04 custom kernel doesn't work with my prom-modded 540 and 9.1 software, and reboots just after the "almost there" splash. The relevant console output seems to be:
    Code:
    iptables v1.2.6a: can't initialize iptables table `filter': iptables who? (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.
    assert: Tmk Assertion Failure: 
    assert: TmkServer, line 379 ()
    Tmk Fatal Error: Activity TvBusProxy <100> strayed!
    Full console output is attached. This kernel worked great before I upgraded to 9.1. When I used a 9.1 kernel with initrd replaced, it worked fine. I thought I read elsewhere that the custom TGC01 kernel was working with 9.1 software, but wanted to give you a data point for the 540.
    Works fine, if you stub out iptables. These kernels have netfilter turned off, to gain a little more speed, and since 7.x, tivo's will crash with such kernels unless you replace iptables, as described here.

    I added a note about this to the first post of the thread to help out the next person who might run into this.
    Last edited by Jamie; 10-19-2007 at 10:55 AM.

  14. #14
    Join Date
    Mar 2005
    Posts
    233
    Is the S3 kernel compatible with the TiVoHD, or is a Gen06 build required? I tried the S3 on my TiVoHD and didn't make it to the AlmostThere screen. I'm gonna go back and double check my prom patch and dig out my linux box (been a while since I built a kernel), but I thought I'd post here first.

    Edit: I think my prom patch is correct. My patched MD5 is 65897F032305885B62A5FC48E682A62F, using a standard gzip.
    Last edited by jkozee; 10-25-2007 at 10:48 PM.

  15. #15
    Join Date
    Aug 2004
    Posts
    4,085
    Here's the Gen06 kernel built from the 8.1.7 sources with an updated build script.
    Attached Files Attached Files

Posting Permissions

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