AsusWirelessBridge
Cheapo ASUS Plus DirecTV Equals Wireless WIN
I've got a DirecTV HD receiver that I want to get on the net. The problem is it comes with just wired ethernet, no wireless, and running a cable to it is not convenient. I could buy one of those special 'xbox wireless adapters', but they cost like $125. It's more fun instead to install dd-wrt on a $30 wireless router and convert that to a bridge. Disclaimer: my idea of 'fun' may not match yours.
Finding a Router
The first step was to find a cheap wireless router to use. Here's a protip: if you search for `dd-wrt` on newegg you get a list of all the routers which support an alternative firmware.
You might be wondering why I don't just use the router's stock firmware. The answer is I probably could have, because I think it does support wireless bridging. However it's always more fun to hack on a device than to accept the defaults. Warning: I am an emacs user.
That above search quickly brought me to the ASUS WL-520GC router. It just supports 802.11b/g networking, not 802.11n - which is fine for my needs (although see my addendum below). Remember it's also important to check the dd-wrt wiki for any router you are thinking of buying, to get a sense of how complicated the install might be. In this case the install is mildly annoying, as you'll see later.
Ultimately I ended up buying one of these routers from Amazon because it was $28 and I have Amazon Prime (free 2-day shipping).
Installing dd-wrt
WARNING see my comments at the end of this article about selecting a dd-wrt version. The one listed here is reported to have performance problems.
Assuming you have a laptop that's already connected to existing wireless network, you can use a direct ethernet cable from it to the Asus router to do the initial dd-wrt install. That way you can stay on the net while you do the work. Also note that I'm assuming your existing network is not configured on 192.168.1/24. If it is, you will need to disconnect the laptop from your wireless network while setting up the new router, because the default address of the Asus router is 192.168.1.1 so that would conflict with your existing router.
As an aside, leaving your home network at the default of 192.168.1/24 is a terrible idea, for this and other reasons. Do yourself a favor and reconfigure your network for some other range.
First, connect the LAN1 port on the router to the ethernet port on your laptop. The following instructions are for a mac laptop but the basic network settings are the same for other platforms too.
On the mac, go to system preferences->network
. Choose ethernet
, then advanced
. Set configure IPv4
to Manually
. Use the following settings:
IPv4 address 192.168.1.6 Subnet Mask 255.255.255.0 Router 192.168.1.1
Click ok
. Back on main network preferences page, make sure airport
is still listed above ethernet
in the service order. If not, click the gear at the bottom of the network list, and choose set service order
. Then, move the ethernet interface below the airport interface. Otherwise, the system will set the default route to the internet over the ethernet, which you don't want because you are just configuring the Asus router, not making it your connection to the internet.
Click apply
to apply all settings on the network system preferences page.
Next, bring up a terminal (hard drive->applications->utilities->terminal
) and ping the Asus router with ping 192.168.1.1
. It should respond. If not, check if you accidentally connected the ethernet cable to the WAN port on the router instead of a LAN port. Also make sure the Asus router has power and blinkenlampen.
Use your web browser to connect to the web interface of the router at http://192.168.1.1
. The username is admin and the password is admin.
Click cancel
when prompted to start Quick Setup.
Click system setup
and then firmware upgrade
in the left navigation bar. This will give you the version of the existing Asus firmware, note this for later. Mine was 2.0.1.1.
Now you are ready to install dd-wrt on the device, following the instructions from the dd-wrt wiki.
First, get an older version of the Asus firmware. Unzip that file and get the firmware image WL520gc_2.0.0.8_EN.trx
out of the resulting folder.
This rigmarole is needed because current versions of the stock firmware apparently don't allow you to install dd-wrt directly, so you have to downgrade first.
Rename the file to WL520gc_2.0.1.2_EN.trx
. This needs to be a higher number than the existing firmware for the firmware loader to accept it as an upgrade.
Go back to the the firmware upgrade page of the router web interface at http://192.168.1.1
. Under new firmware file
choose the WL520gc_2.0.1.2_EN.trx
file you just renamed (remember it's actually version 2.0.0.8). Upload that file and wait for the router to reboot to the older version of the firmware.
Once the install completes the device will reboot. Go back to system setup->firmware upgrade
and confirm the firmware version is now listed as 2.0.0.8. You are now ready to actually install dd-wrt!
Now, download the micro version of dd-wrt 2.4 (note you should probably check for a newer version before blindly using that link). You do not need to rename this file, since version 2.0.0.8 of the stock Asus firmware will accept any firmware upgrade filename. Note you have to use the micro version of dd-wrt because this device only has 2MB of flash memory. What do you expect for $28?
Use the firmware upgrade interface to install the dd-wrt.v24_micro_generic.bin
firmware. If all goes well the router should come back up running dd-wrt in a few minutes. Note that the dd-wrt wiki talks a lot about power-cycling the device between each step. I didn't bother to do any of that and it worked just fine. YMMV.
Once the device comes back up, you should see the dd-wrt interface in your browser when you go to 192.168.1.1. The very first thing you must do is set up a router username and password. Do that.
Bridging
In the following instructions, primary router means your existing wireless router that is serving your internet traffic already.
After I had the router running dd-wrt, I followed the dd-wrt wireless bridge instructions to switch it from an access point to a client bridge. In client bridge mode, the router basically acts like a regular wired network switch connected t your primary router with an imaginary ethernet cable. This allows you to put devices like DirecTV boxes which only have wired ethernet onto your wireless network.
First, in the dd-wrt interface, go to wireless->wireless security
and set the security mode to match your primary router.
Under wireless->basic settings
, set the wireless network name and channel to match your primary route r. Set the wireless mode to client bridge
. Set 'ack timing' to 0 (unsure about that one, but that's what the directions say).
Save all that and hit apply
. Then, go to setup->basic setup
and set the local ip address to an unused address on your exiting network, such as 192.168.1.11. Verify that the subnet mask is 255.255.255.0, and set the gateway to your primary router, probably 192.168.1.1. Hit apply. Note that the device will act as a transparent bridge now, but will still be accessible through the web interface at 192.168.1.11 in case you want to check it's status or modify the configuration later on.
Setting up your DirecTV box
These are the instructions for the HR-21 and HR-24 DirecTV HD boxes, but I think most other DirecTV devices work similarly.
Now for the DirecTV configuration. Connect an ethernet cable from the jack on your DirecTV box to the LAN1 port on the Asus router. Hit Menu
on your DirecTV remote and choose Parental, Fav's & Setup
. Then go to System Setup -> Network Setup
. Fill out the network configuration as follows:
Address 192.168.1.12 Subnet 255.255.255.0 Gateway 192.168.1.1 DNS 192.168.1.1
Then, choose connect now
and wait for the box to test it's connection status. If everything checks out, you'll see a congratulatory message on your TV. Your DirecTV is now connected to the internet over a wireless bridge!
Note that when you are selecting a DNS server for a network device, you can always use Google's free DNS service at 8.8.8.8 if you want.
A Note on Selecting Network Addresses
Typical home wireless routers come preconfigured with the address 192.168.1.1, and are set up to serve DHCP addresses in some part of that class C range, like 192.168.1.100 through 192.168.1.253. When you are manually setting up devices on your network, pick addresses that aren't in the DHCP range, so that the router doesn't accidentally give them to other devices. In my example, you can safely use anything between 192.168.1.2 through 192.168.1.99. It's up to you to make sure you don't assign two devices to the same address in that static range.
Addendum
I've had this set up for a few days and it seems to work well for my primary purpose of enabling On-Demand movies on my DirecTV box. However, it is not working for the DirecTV `whole house dvr`. This is a new DirecTV feature that enables you to stream saved shows off one DirecTV box to another one on your home network.
I have two DirecTV boxes, each connected to a wireless bridge (the other is on a Linksys WRT54GL running dd-wrt as well). In my testing, recordings streamed from the one box to the other pause every few seconds consistently, rendering them unwatchable. The DirecTV boxes don't appear to do any stream buffering, so presumably my 802.11g network is just saturated. I also live in a large apartment complex with a lot of wireless networks, so there just may be too much radio interference in general for my devices to obtain enough bandwidth. I've tried the usual fix of changing wireless channels, to no avail. I suppose the solution might be to upgrade to 802.11n networking in the 5ghz band, which should be less crowded. Anyway, as I said I primarily set this up so I could watch on demand shows. With those, the DirecTV box first stores the video on the internal DVR, so live streaming performance isn't really a concern.
UPDATE My performance problems may be due to a bad build of dd-wrt. See the dd-wrt forums for details. I'm now testing the 15230 micro+ssh build instead. I'll report back on my findings.
UPDATE 2 Well I followed those instructions for installing a newer dd-wrt on the ASUS. Then I did the full 30-30-30 reset / power cycle routine. No difference. @redhotpenguin suggested I might want to look at the EnGenius 5ghz EOC5611P wireless client bridge instead. My suspicion is that I just can't push enough bits through the crowded 2.4ghz range with 802.11b/g networking to stream video properly. The existing setup is especially ugly if you consider that both of these DirecTV boxes has to talk through its own wireless bridge to the home router. A way for the boxes to talk directly to each other would be much more efficient, and doing that in the less crowded 5ghz range would be better yet.