Page 1 of 2 12 LastLast
Results 1 to 15 of 25

Thread: Uma6 RID on 4.x Thinktank

  1. #1
    Join Date
    Dec 2003
    Posts
    24

    Uma6 RID on 4.x Thinktank

    This thread is only to discuss what has, and hasn't worked when trying to attempting to develop a 4.x RID solution. Please respect my wishes and keep this thread any personal "opinions", "theories" and mud-slinging, because we only have a few days left to prove we can beat the bounty.
    If only I could figure out how to make my TiVo remote work in reality....

  2. #2
    Join Date
    Dec 2003
    Posts
    24

    5.x Kernel and Modules with 4.x software

    I have tried this method with no success.

    Without using SetTivoConfig (search forums for background on this method), tivoconfig.o was unable recognize the board, and the kernel was not set up to properly handle the hardware's memory settings (could use a custom kernel, but you'd end up with the same problems as below).

    When using SetTivoConfig, the modules 5.x load, but when attempt to use any 4.x application that interacts with the hardware, the application fails miserably and system crashes (due to the different structure of the modules - look at the kernel's headers to read more on).
    If only I could figure out how to make my TiVo remote work in reality....

  3. #3
    Join Date
    Dec 2003
    Posts
    24

    4.x Kernels and Modules with 4.x Software

    Hit and miss, but I think this is the best/only method that warrants effort.

    Without SetTivoConfig, the machine fails miserably at the 4.x tivoconfig.o module (similar to using the first 3.x S2 dtivo software on a uma6).

    With SetTivoConfig, the system loads i2c and other modules properly, with all other minor applications properly interacting with the system's hardware. The only problem comes when loading the brcmdrv-rb.o modules loads where the error message given is "No such device" when hitting the init_module function within the kernel.

    When using a boardID spoofed by SetTivoConfig, the uma4 hardware init values work properly for all the non- audio/visual modules. Which leads me to believe that only the tivoconfig.o and brcmdrv-rb.o modules need to be patched. tivoconfig.o either requires an addition to the listed boardid's that jumps back to using uma4's init values, while brcmdrv-rb.o needs some minor tweaking to properly init the RID hardware. The best place that I think to start looking for patch points, is to compare the non-rid and rid 3.x software modules versions. Since 4.x came out before RID hardware, it's header structure seemed almost equivalent to the non-RID 3.x software; where adding functionality would be a matter of understanding what compiled module code to add.
    If only I could figure out how to make my TiVo remote work in reality....

  4. #4
    Join Date
    Dec 2003
    Posts
    24

    3.x Kernel and Modules on 4.x software

    Didn't test to much with it because I was already sick of testing and wanted to enjoy my tivo.

    Non-RID 3.x
    Without SetTivoConfig - never tried
    With SetTivoConfig - never tried

    RID 3.x
    Without SetTivoConfig - I believe I tried to boot it once, and had problems with using 4.x applications with due to the modules slightly different structure. Should be great place to start playing around, but I don't have too much time lately.

    With SetTivoConfig - never tried, probably should have given it a shot though.
    If only I could figure out how to make my TiVo remote work in reality....

  5. #5
    Join Date
    Jan 2002
    Posts
    1,777
    tivoconfig.o just provides a trivial character device interface to the GetTivoConfig/SetTivoConfig kernel functions (in linux/arch/mips/tivo). I highly doubt that it needs to be patched.

  6. #6
    Join Date
    Jul 2003
    Posts
    111
    Quote Originally Posted by Soopaman
    Hit and miss, but I think this is the best/only method that warrants effort.

    With SetTivoConfig, the system loads i2c and other modules properly, with all other minor applications properly interacting with the system's hardware. The only problem comes when loading the brcmdrv-rb.o modules loads where the error message given is "No such device" when hitting the init_module function within the kernel.
    The module is probably getting the chip device id and version # and comparing it to a list of known chips and then returning -ENODEV if not found. Maybe you can patch the routine to look for the correct chip id. Do you have a list of the broadcom chips and what is compatible with what? Maybe you can use one that is close. In the disassembly, I've seen comparisons to numbers that look like chip ids. I don't have RID hardware. Good luck.

  7. #7
    Join Date
    Aug 2004
    Posts
    47
    Could someone with a 3.x RID DTivo do a "ls -l /dev" capture it as a text file and post it.

    I want to compare the Major/Minor device numbers of the broadcomm driver to that of a standard 4.x running on my HDVR2.

    Also, If someone could post the dmesg when you "insmod -f brcmdrv-rb.o" and the system crashes. Does the module load? Does the Tivo crash when tivoapp starts. Please post your dmesg. You should use the SetTivoConfig as described above before loading.

    Thanks, I don't have a RID unit but I would like to help solve this problem.

  8. #8
    Join Date
    Aug 2003
    Location
    Southlake, Texas
    Posts
    277
    Quote Originally Posted by Woody Allen
    Could someone with a 3.x RID DTivo do a "ls -l /dev" capture it as a text file and post it.
    here are the 'important ones...' from a 3.1.1c RID tivo.

    Code:
    crw-rw-rw-    1 0        0         90,  10 Feb 11  2004 mswitch4v
    crw-rw-rw-    1 0        0         90,   6 Feb 11  2004 mswitch4a
    crw-rw-rw-    1 0        0         90,   9 Feb 11  2004 mswitch2v
    crw-rw-rw-    1 0        0         90,  17 Feb 11  2004 mswitch2e
    crw-rw-rw-    1 0        0         90,   5 Feb 11  2004 mswitch2a
    crw-rw-rw-    1 0        0         90,   8 Feb 11  2004 mswitch0v
    crw-rw-rw-    1 0        0         90,  16 Feb 11  2004 mswitch0e
    crw-rw-rw-    1 0        0         90,   4 Feb 11  2004 mswitch0a
    crw-rw-rw-    1 0        0         90,   0 Feb 11  2004 mswitch0
    crw-rw-rw-    1 0        0          1, 100 Feb 11  2004 console
    crw-rw-rw-    1 0        0         91,   0 Feb 11  2004 tivoconfig
    crw-rw-rw-    1 0        0         96,   0 Feb 11  2004 oslink2
    crw-rw-rw-    1 0        0         95,   0 Feb 11  2004 oslink
    crw-rw-rw-    1 0        0         90,  20 Feb 11  2004 mswitch0vsync
    crw-rw-rw-    1 0        0         90,  28 Feb 11  2004 mswitch0vbi
    crw-rw-rw-    1 0        0         90,  28 Feb 11  2004 mswitch0i
    crw-rw-rw-    1 0        0         99,   0 Feb 11  2004 i2c
    crw-rw-rw-    1 0        0         97,   0 Feb 11  2004 fan
    crw-rw-rw-    1 0        0         96,   2 Feb 11  2004 dtune2
    crw-rw-rw-    1 0        0         95,   2 Feb 11  2004 dtune
    crw-rw-rw-    1 0        0         96,   7 Feb 11  2004 ddl2
    crw-rw-rw-    1 0        0         95,   7 Feb 11  2004 ddl
    crw-rw-rw-    1 0        0         96,   3 Feb 11  2004 cam2
    crw-rw-rw-    1 0        0         95,   3 Feb 11  2004 cam
    crw-rw-rw-    1 0        0         96,   1 Feb 11  2004 apg2
    crw-rw-rw-    1 0        0         95,   1 Feb 11  2004 apg
    crw-rw-rw-    1 0        0        105,   0 Feb 11  2004 vsched0
    crw-rw-rw-    1 0        0        108,   0 Feb 11  2004 ppp
    crw-rw-rw-    1 0        0        127,   2 Feb 11  2004 mixaud2
    crw-rw-rw-    1 0        0        127,   1 Feb 11  2004 mixaud1
    crw-rw-rw-    1 0        0        127,   0 Feb 11  2004 mixaud0
    crw-rw-rw-    1 0        0        101,   0 Feb 11  2004 kfir
    crw-rw-rw-    1 0        0        102,   0 Feb 11  2004 input
    crw-rw-rw-    1 0        0        103,   1 Feb 11  2004 cobra1
    crw-rw-rw-    1 0        0        103,   0 Feb 11  2004 cobra0
    crw-rw-rw-    1 0        0         30,   7 Feb 11  2004 brcmvid
    crw-rw-rw-    1 0        0         30,   4 Feb 11  2004 brcmrec
    crw-rw-rw-    1 0        0         30,   5 Feb 11  2004 brcmplay
    crw-rw-rw-    1 0        0         30,   3 Feb 11  2004 brcmmgs
    crw-rw-rw-    1 0        0         30,   6 Feb 11  2004 brcmdma
    crw-rw-rw-    1 0        0         30,   0 Feb 11  2004 brcm0
    crw-rw-rw-    1 0        0         30,   2 Feb 11  2004 bcmpcm
    crw-rw-rw-    1 0        0         30,   1 Feb 11  2004 bcmgfx
    crw-rw-rw-    1 0        0         30,  54 Feb 11  2004 psirec1
    crw-rw-rw-    1 0        0         30,  44 Feb 11  2004 psirec
    crw-rw-rw-    1 0        0         30,  31 Feb 11  2004 pespvr
    crw-rw-rw-    1 0        0         30,  42 Feb 11  2004 pesaudio
    crw-rw-rw-    1 0        0         30,  53 Feb 11  2004 brcmrecdata1
    crw-rw-rw-    1 0        0         30,  43 Feb 11  2004 brcmrecdata
    crw-rw-rw-    1 0        0         30,  52 Feb 11  2004 brcmrec1
    crw-rw-rw-    1 0        0         30,  15 Feb 11  2004 brcmpcm2
    crw-rw-rw-    1 0        0         30,  14 Feb 11  2004 brcmpcm1
    crw-rw-rw-    1 0        0         30,  51 Feb 11  2004 besstartcode1
    crw-rw-rw-    1 0        0         30,  41 Feb 11  2004 besstartcode
    crw-rw-rw-    1 0        0         30,  50 Feb 11  2004 besrec1
    crw-rw-rw-    1 0        0         30,  40 Feb 11  2004 besrec
    crw-rw-rw-    1 0        0         30,  30 Feb 11  2004 bespvr
    crw-rw-rw-    1 0        0         30,  16 Feb 11  2004 bcmpax
    crw-rw-rw-    1 0        0         30,  17 Feb 11  2004 mp2
    crw-rw-rw-    1 0        0         30,  18 Feb 11  2004 ac3
    crw-rw-rw-    1 0        0        127,   0 Feb 11  2004 ircatch0
    crw-rw-rw-    1 0        0        126,   0 Feb 11  2004 irblast0
    lrwxrwxrwx    1 0        0               6 Feb 11  2004 mpeg0v -> pespvr
    lrwxrwxrwx    1 0        0               8 Feb 11  2004 mpeg0a -> brcmplay

  9. #9
    Join Date
    Jul 2003
    Posts
    111
    Remember the fun is in the journey.

    I don't have a RID unit. I believe we want to use the 3.1.1c driver as that has code to handle the new chip. So gather all the appropriate tools(tmesis/drnull's disassembler script, IDA, cross-compiler). I believe you have to document the user/ABI interface by looking at the disassembly and looking at the ioctl() calls to major devno 30 devices from tivoapp and dssappAV. This will be useful in developing a veneer driver. In the 3.1.1c driver, it makes a call to register_chrdev(30,"bcm7030stb",&fops). One possibility for the veneer driver is to register using major devno 30 and patch the original driver to register under 31 and have the veneer driver call the real driver.

    Good luck.

  10. #10
    Join Date
    Aug 2004
    Posts
    47
    Quote Originally Posted by EvilJack
    here are the 'important ones...' from a 3.1.1c RID tivo.
    Thanks for posting these. However, there seem to be some important ones missing.

    Would you kindly post the entire list.

    Thanks

  11. #11
    Join Date
    Jun 2004
    Location
    Central FL
    Posts
    6
    Quote Originally Posted by Woody Allen
    Thanks for posting these. However, there seem to be some important ones missing.

    Would you kindly post the entire list.

    Thanks
    Here is from a 3.1.1e rid unit

  12. #12
    Join Date
    Aug 2004
    Posts
    47
    The 4.x /dev contains the following special device file that 3.x does not contain:

    Code:
    104,  0  Jun 12  2004 router_client
    Last edited by Woody Allen; 11-07-2004 at 06:22 PM. Reason: Incorrect theory

  13. #13
    Join Date
    Aug 2003
    Location
    Southlake, Texas
    Posts
    277
    Quote Originally Posted by Woody Allen
    The 3.x /dev posted above contains the following special device file that 4.x does not contain:

    Code:
    104,  0  Jun 12  2004 router_client
    ...huh.... which post has a /dev/router_client?

    jack

  14. #14
    Join Date
    Aug 2004
    Posts
    47
    Actually, I messed up my printouts of the two - they look almost identical.

    4.x has the /dev/router_client

    Here is the 4.x /dev listing:

  15. #15
    Join Date
    Feb 2004
    Posts
    152
    Quote Originally Posted by Woody Allen
    Actually, I messed up my printouts of the two - they look almost identical.

    4.x has the /dev/router_client

    Here is the 4.x /dev listing:
    One of the differences between 3.1.1 and 4.0 is this section of rc.arch:

    function loadRouter () {
    /sbin/insmod /lib/modules/router.o
    }

    I would expect that this device is created by this module.

    I'm very skeptical that the broadcom driver cares about the router config.

Posting Permissions

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