SureWest IPTV

From MythTV Official Wiki
Revision as of 21:45, 20 June 2008 by Rkuris (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

What you need

  • SureWest Fiber IPTV
  • A Linksys WRT54G router that can be flashed with OpenWRT
  • An Amino or DVR settop box

Setting up the Linksys

  • 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 configuration, 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"
  • Fix up the Linksys firewall. Add this to /etc/firewall.user:
iptables -A input_wan -p udp --dport 2001 -j ACCEPT
iptables -A input_wan -p igmp -j ACCEPT
iptables -A fowarding_wan -p udp --dport 2001 -j ACCEPT
  • Modify the igmpproxy.conf:
phyint eth0.1 upstream  ratelimit 0  threshold 1
       altnet 172.19.0.0/16
phyint br-lan downstream  ratelimit 0  threshold 1
phyint wl0 disabled
phyint eth0.0 disabled
  • Start the igmpproxy (you will probably want to automate this in one of the startup scripts)

Cable Box Setup

  • 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
  • Switch your router to use IGMP v2 by adding this to firewall.user:
echo 1 > /proc/sys/net/ipv4/conf/all/force_igmp_version
  • Reboot the router
  • Tell your mythtv box to use IGMP v2 also. Exact instructions depend on your distro, but you can always echo to force_igmp_version as shown above.
  • Verify that you can watch video. Use "mplayer udp://225.1.100.1:2001" and watch SureWest ads for at least 10 minutes (not a joke; this is to make sure that the IGMP timeouts are all propogating properly)
  • Create an m3u file to correspond to the surewest channels. They use group 225.1.x.y where x=c/100 and y=c%100 (using 100 instead when the result is 0). For example, channel 1 is 225.1.100.1 and channel 255 is 225.1.2.55. Your m3u file should look like this:
#EXTM3U
#EXTINF:0,1 - LOOR001
#EXTMYTHTV:xmltvid=23309
udp://225.1.100.1:2001
#EXTINF:0,2 - WGNSAT
#EXTMYTHTV:xmltvid=17098
udp://225.1.100.2:2001
#EXTINF:0,3 - KCRA
#EXTMYTHTV:xmltvid=10388
udp://225.1.100.3:2001
#EXTINF:0,4 - KQCA
#EXTMYTHTV:xmltvid=10683
udp://225.1.100.4:2001
...
  • Set up a freebox IPTV tuner in mythtv. Use the m3u file you created.
  • Set up Schedules Direct for your listings. It sure would be nice to sniff the listings too, but Schedules Direct is cheap.