Friday, October 17, 2008

Hacking the cork out of the WebTV 2 RM4100's ass

Yeah, I dont blog. Blow me!

I have an MSN WebTV 2 model RM4100. Not because MSN WebTV is a worth while service, or because I am compelled to e-mail and browse the interweb from my TV, I have an Xbox running linux for that, and that can at least run nmap. The WebTV 2 Model RM4100 runs on all standard intel hardware. Here is some info on it:
  • Intel Celeron 733MHz CPU
  • Intel 830M northbridge
  • Intel 82801DB (ICH4) southbridge
  • SMSC LPC47M192 Super I/O
  • ST M50FW080 8-Mbit (1Mbx8) Firmware Hub (FWH) flash memory
  • 128MB PC133 SDRAM on board
  • USB 2.0 ports
  • 2 Ultra-ATA/100/66/33 IDE channels (no connectors)
  • 64MB Compact Flash via IDE controller (upgradeable)
  • Integrated 10/100 Intel 82562ET LAN On Motherboard (LOM)
  • Integrated 2D and 3D graphics with AGP 4X interface
  • Conexant CX25873-13 High Performance Video Encoder
  • Composite and S-Video outputs (can deliver either NTSC or PAL video)
  • Sigmatel STAC9767 AC’97 2.3 20-Bit audio controller
  • Integrated Conexant CX81801-94 SmartV.XX V.92, V.34, V.32 data modem
  • IR receiver for remote / keyboard via MCU on LPT bus
  • Operates at 12V at 2.5A max draw
Everything about that should make your ePenis grow a little. There are more hardware mods to add in more USB, sound input, HDD, Optical, PS/2, and even PCI, however that will take a lot of serous soldering skill. HDD/Optical, USB, and Audio is a breeze, dont expect me to get PCI working anytime soon, but it is one of my main goals. Its all standard intel hardware, meaning any x86 compiled OS will run. Unfortunately that it not the case. First off the thing runs off a custom BootROM that doesnt even closely resemble a PC BIOS. It natively boots a custom build of Windows CE 5. A few brilliant fuckers have been working on a LinuxBIOS replacement, and to most extent have the unit working as a full featured PC that is very Linux capable. However, I am not a stinking linux fanboy, and if you even MENTION Ubuntu running on this thing ill slap you with a week old wad of bologna!

The main hurdle to overcome is the ST M50FW080 8-Mbit (1Mbx8) Firmware Hub (FWH) flash memory. Not only is is obsolete, the OEM disavows even making it. It had a VERY short life span, probably due to some critical flaws. FWH was created mainly for BIOS operations in which only small parts of the contents on Flash need to be changed, rather having to reflash the WHOLE thing over and over, just to flip a few bits around here and there. Its has a really nice style to it, much more efficient than having to deal with a whole Electrical Erase and Reflash just to put in 1k of modified code.

Here is the problem. The M50FW080 has gone the way of most geeks and dorks sex life, either non existent or so rare chances of it ever getting some kind of 3rd party support is slim to none. You might as well play LoZ for the CDi instead, that will be more available to you.

Now I have a Willem EEPROM Programmer. Thats like having a desperate fuck buddy on speed dial... that still doesnt like anal. It will not work with the M50FW080. So here is my theoretical solution:

  • WEB TV2 RM4100 BIOS slot now has a PLCC 32 Pin Socket.
  • I got my hands on some compatible SST 49LF008A FWH ICs.
  • Flash the PC BIOS to the 49LF, and see if its brings the RM4100 back to life
  • If the chips are not pin compatible, build a PCB Rebuild to make it so
In the long run I am looking to make a replacement BIOS for this fucker that can run a slightly modified PC BIOS, which I have but yet to configure. I also have some schematics here for a very inexpensive LPT based LPC FWH Programmer. That way if you dont want to spend the $50+ on a Willem to program this one chip just ONCE, or deal with a hot flash (pull a BIOS from a PC with compatible hardware while its on, while running a BIOS flashing utility) then just hit the parts bin to make this cheap ass programmer.

I just got my sample FWH 8Mbit ICs from SST in today. Im on a busy schedule so I dont know when I will get a chance to set up and perform the operation. I also have some PLCC 32 pin sockets on the way just in case i need to make the rebuild kit. This is looking pretty good so far. The only downside to any of this would be if the LPC Programmer wasnt compatible with the chips I have here. Then the lot of you are boned until someone comes by with a solution besides a hotflash.

Even if you are a total techno'fuckwit you should have enough scope by now to understand that out of the box using nothing more than a simple serial cable and some software know how, you can turn this thing into a moderately useful Linux machine that can run off 12V @ 2.5A. Either set top box, car'puter, media center, navigation center, internet appliance, or in my case, a future control node for a Wifi Death Ray.