Well, I finally got DD-WRT flashed to my Rosewill RNX-EasyN4 router!
I can't thank bsanborn enough for his extremely generous and well articulated replies to my questions. (Thanks again.)
The keys to my success here were several...
(1) Serial Port Pinout. The serial port pinout on the motherboard is (referencing my photos): Pin3=RX, Pin4=TX, Pin5=GND and Pin6=PWR.
(2) Wiring Header to Serial Port. I first soldered a 6-pin header block to the serial port. (I used one made by "Molex," the company which developed the ubiquitous Molex power connector found on every computer power supply cable on the planet. Theirs is a more robustly-made version of the more common "breakaway" header blocks.) Then I wired the TX, RX and GND conductors from my USB-serial adapter cable to Pins 3, 4 and 5, respectively on the serial header block. (Note that the TX conductor was wired to Pin 3, and the RX connector was wired to Pin 4, on the serial header. So, the connections were: TX-RX, RX-TX and GND-GND. The PWR pin was not used. Note: bsanborn asked me to mention that some serial cables are configured such that a TX-TX and RX-RX connection must be made. That was apparently the case with his cable.) I should also mention that I used a USB-serial adapter cable made by FTDIChip, along with their published drivers. The particular model I used was a USB-serial cable, with a built-in 5V to 3.3V (TTL) converter. Again, I don’t know that this type of cable is absolutely necessary, but others on these forums have stated that to use a standard 5V-5V USB-serial cable can fry the delicate electronics on the router motherboard.
(3) Serial Console. As advised by bsanborn, I set up the USB-serial adapter cable to use a transfer rate of 57600 kbps, with 8 data bits, 1 stop bit, no parity and no flow control. The 57600 kbps transfer rate was key -- my serial adapter cable did not work at any other speed. (Certain other cables run at 115200 kbps.) I set these parameters using the Putty console program. (A tip: once you have made the proper serial port settings, save them as the default. That way, if you need to close and re-open the program, Putty will remember your settings, thereby saving you precious minutes and brain cells.)
(4) Acquiring the Flash Screen. Once connected to the serial console on the router with Putty running, I disconnected the router power supply, and then reconnected it. Immediately upon reconnecting the power to the router, I starting pressing the "2" key repeatedly. (Sometimes, this step needed to be repeated in order to get the console to communicate the "2" to the router at the right time.) The "2" option is the one on the RNX-EasyN4 (or Senao ESR-9752) router board which allows for firmware ("system code") to be sent to the Flash chip via TFTP. If the "2" option is sent in time to the serial port, then the following screen comes up on the console:
2: System Load Linux Kernel then write to Flash via TFTP.
Warning!! Erase Linux in Flash then burn new one. Are you sure?(Y/N)
As you might expect, I then hit "Y" and then Enter.
(5) Configuring and Starting TFTP. Prior to proceeding with the console, I configured and started the TFTP server. First, I plugged an Ethernet cable into one of the router's LAN ports, and the other end into the network adapter on my computer. Next, I set the network adapter to an IP address of 192.168.99.2. (I could have used any number in the 192.168.99.xx subnet, other than .8 or .9. The reason will be clear in a moment.) I set the subnet mask to 255.255.255.0, and left the gateway and DNS addresses blank. After that, I configured and started the TFTP server. I used the Solar Winds TFTP server, which is both free and very simple in layout. Before starting, I turned off the WiFi radio on my computer. (I also suspended antivirus and firewall, although I am not certain that that was necessary.) Upon starting the TFTP server, I confirmed that it was "bound" to the network adapter's IP address (192.168.99.2). I set the "root" for the server as "C:\," and placed a copy of the console firmware (firmware.bin) in the C:\ root directory. Then I started the TFTP server by hitting “Start” on the General screen of the program.
(6) Here Comes the Flash. Going back to the console, the following appeared on the screen:
Please Input new ones /or Ctrl-C to discard
Input device IP (192.168.99.9) ==:
The prompt is asking for the IP address of the router. And that (as the prompt itself indicates) is "192.168.99.9". So I typed that address after the : prompt, and then hit Enter.
The following then appeared on the screen:
Input server IP (192.168.99.8 ) ==:
The prompt here is asking for the IP address of the TFTP server. I had already bound the TFTP server to my computer network adapter's IP address (explained above), and that became the IP address of the server. So, I typed that address (192.168.99.2) after the : prompt, and then hit Enter.
Next, the following appeared on the console screen:
Input Linux Kernel filename (uImageESR-9752-rosewill) ==:
This is an easy one. The firmware (at least in this case) is "firmware.bin." As it had already been placed in the defined root directory for the TFTP server, all the prompt is asking for here is the name of the firmware. So, I typed "firmware.bin" after the : prompt, and then hit Enter.
(7) Voila! Success! After hitting the final Enter in the console window, things started to happen. The flash process took only about three minutes, but to ensure that I did not end the flash session too soon, I set a timer for five minutes. After that, I confirmed the existence of DD-WRT on the router by hitting Enter a couple of times in the console window, and received the following prompt:
DD-WRT v24-sp2 std (c) 2009 NewMedia-NET GmbH
Release: 03/24/10 (SVN revision: 14144)
Remembering that the DD-WRT default username and password are "root" and "admin," respectively, I entered these parameters, and got the following screen:
____ ___ __ _______ _____ ____ _ _
| _ \| _ \ \ \ \/ / /| _ \ |_ _ _| __ _ |___ \| | | |
|| | || ||____\ \ /\ / / | |_) | | | \ \ / / __) | |_| |
||_| ||_||_____\ V V / | _ < | | \ V / / __/| __ _ |
|___/|___/ \_/\_/ |_| \_\ |_| \_/ |_____| |_|
Jan 1 00:00:20 login: root login on 'console'
BusyBox v1.13.4 (2010-03-24 11:01:00 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.
So far, so good.
(8 ) Wrapping Up. I then unplugged the router, and let it sit for 30 seconds. Following that, I plugged in the router again, and performed the infamous "30-30-30" hard reset. I don't know that this step is absolutely necessary, but many on these forums swear by it, so I did it. Thereafter, I reset the Ethernet adapter on my computer to DHCP, opened up a browser window (I used 32-bit Internet Explorer 8.xx), and entered "192.168.1.1," the default subnet and IP address for DD-WRT. (The screen took a bit to come up.) When asked for a new username and password, I entered them, and was now in the GUI for DD-WRT.
(9) A Subsequent Flash. I should mention that after flashing the initial "firmware.bin" to the router via the serial console, I then uploaded a later "Webflash" build of the firmware. Using DD-WRT's Administration/Firmware Update screen, I uploaded the firmware file, and then hit "Upgrade." The screen started counting down from 300, which is another way of saying that five minutes is a good rule-of-thumb time period to allow for flashing. (I have found in other instances that the countdown window can cease before completion, so I set a separate five minute timer.) After flashing was complete, I unplugged the router, waited 30 seconds, and then plugged it in again. Everything was working perfectly. (I should mention that purists on these forums recommend another 30-30-30 hard reset even after flashing via DD-WRT’s GUI interface, but I have never found that step to be necessary.)
(10) Other Concerns and Considerations. There is some mention on these forums that Windows Vista and 7 are not good OS's for flashing. (Something to do with the way they handle TCP.) I used 64-bit Windows 7, and encountered no issues. Also, there is some discussion regarding the need to run the console and/or TFTP sessions as an "Administrator." Again, I found this step unnecessary.
I hope this rather longish post may be of some help to other “noobs” like myself who are still learning the whys and wherefores of DD-WRT, particularly in the area of initial flashing. We have many experienced EE’s and computer programmers on these forums, all of whom provide valued guidance to others. It is not, however, necessary for anyone to be an expert in these fields – rather, what is required is a working facility with many of these disciplines, and above all a willingness to learn and to make mistakes (which is tantamount to learning).
A final comment or two… I corresponded with Brainslayer, who finally replied and stated that it was NOT his intention to treat the Senao/Engenius ESR-9752 as a “professional” platform, which would necessitate activation. Anyone who now checks the router database will note that this model router appears as the only Senao router which does not require activation. Given that clarification, and the fact that now several of us have gotten the Senao firmware to successfully run on this Rosewill router, I would like to ask Brainslayer (or any of the forum moderators who may have better access to him) to list the Rosewill RNX-EasyN4 in the router database as having support with DD-WRT. That would make it the first Rosewill router to be so designated.
When I get a bit more motivated, I will craft a guide to the procedure outlined above, for inclusion in the DD-WRT Wiki. Until then, my sincere thanks again to all who helped me learn the various pieces of this puzzle. And in particular, a hearty handshake to bsanborn, who was most gracious and generous with his help and guidance. Smile