I currently own the following:
- Samsung LNS4095D 46" LCD display.
- Antek Fusion Case
- MSI K9NBPM2-FID Motherboard
- Athlon 64 X2 4200+ (65W) with 512MB RAM
- Maxtor SATA 200MB Hard Drive
- PCHDTV HD-5500 Capture Card
Most of my stuff shipped on November 14, 2006. I started doing the basic installation on November 16th. My initial bootup attempt was to boot from a flash memory stick, since I have no DVD nor floppy to boot from. Setting up a LiveUSB media stick was a huge challenge.
I started off with SureWest Broadband but found that they used an Amino AmiNET110 box, which is an IPTV box. For HDTV, you only get composite outputs, no digital signal. Back in 2006, support for IPTV was really limited, so I switched to Comcast Cable. They are use a Motorola DCT-6200 Cable Box with firewire support that's been in mythtv forever. This worked really well for almost two years. (Of course, Comcast dug a trench on the day after Thanksgiving, cutting my Surewest fiber and leaving me without internet access for days, but that's another story).
In June of 2008, I decided to investigate the IPTV support for Surewest. It's clear their DVR is lacking but their signal is awesome. I spent some time in early June sniffing their network and checking what was going on.
I had a spare Linksys WRT54G so I decided to set that up as a IGMP router. This was challenging because most of the kernels you find out there don't enable multicast routing. I had to build my own kernel with multicast routing to get this working. Here's an overview of the process:
- Per the OpenWrt Build Instructions, check out the latest kamikazi product.
- Patch the sources by adding multicast routing using the following patch:
--- target/linux/generic-2.4/config-default (revision 11461) +++ target/linux/generic-2.4/config-default (working copy) @@ -208,7 +208,9 @@ CONFIG_IPV6=m # CONFIG_IPX is not set CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_MROUTE is not set +CONFIG_IP_MROUTE=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y CONFIG_IP_MULTICAST=y CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_NF_AMANDA=m
- Make the kernel and flash it to your router. During config, include igmpproxy and tcpdump.
- After booting the router on the new kernel, modify the /etc/config/network file so you can bridge your old cable box:
config switch eth0 option vlan0 "2 3 4 5*" option vlan1 "0 1 5"
- Get your cable box MAC. You need it to fool SureWest that everything is coming from your registered MAC. Reboot the router, then run tcpdump -n -i eth0.1 -v then plug the router into port 1 (now on vlan1 from the config change). The mac address will appear when the cable box attempts to boot from your box.
- Set the router's WAN mac address in /etc/config/network like this:
config interface wan option ifname "eth0.1" option macaddr 00:xx:xx:xx:xx:xx option proto dhcp
- Plug the old feed from SureWest into your router's WAN port and the cable box into port 1. Reboot, and make sure the TV still works. You should see the router pick up a SureWest IP address in the 10.x.x.x range.
- At this point, you now have access to the digital stream as it passes through your router. However, you'll need to run igmpproxy to forward the multicast packets to the rest of your network. Edit /etc/igmpproxy.conf as follows:
The balance of these instructions are just notes, and need more work... sorry!
- Turn off the rp_filter (reverse packet filter)
- Edit the firewall to enable forwarding of UDP packets on the linksys
- Check your multicast routes to make sure they are correct
- Set your cable box to channel 1. On my box, this is IP 22.214.171.124.
- Hack mplayer or mythtv to support rtp protocol version 1 with SureWest hacks (coming soon!)