Ubuntu: Serial level access to your Linksys WRT1X00AC/S

ubuntuWhether you are updating the official LinkSys router firmware or taking it a step further and installing open-source firware like OpenWrt, serial level access to your Linksys router is the most dependable way of guaranteeing a connection.

And if you have tried to flash the firmware via the web admin interface and after a reboot you cannot get web access again, then you have no choice.  You have to be able to plug directly into the router’s serial interface and troubleshoot.

The serial port does not have an external connector, so you must open the case to get access.  Here is a good walk through with pictures for the WRT1900AC.  If you are using the later version WRT1900ACS, then the engineers at Linksys have made life a bit easier because you only have to remove the front blue half and the serial port will be accessible, as shown in the pictures below.

wrt1900acs_only_2feet_circled

 

You may notice some discrepancy between the pinout for TX/RX I show above versus the page I referred to earlier.  The RX/TX as I have shown above is labeled in the standard fashion where it is relative to this device.  In other words, pin 2 is the receive pin for this router, and pin 4 is the transmit pin for this router.

The colors I refer to above are based on the adafruit USB to TTL Serial cable.  There are many USB to TTL serial cables available on Amazon, but I trust adafruit, especially given my experience of trying one of the cheap cables from Amazon and having it not work.

If you are connecting this cable to a Windows box, it is a bit more complicated because you have to install the proper driver to support USB to Serial communication from Prolific.

But luckily for those of using Ubuntu, it is just a matter of plugging the USB side of the cable into you host.  Upon doing so, you can see it by:

ls -l /dev/ttyUSB*

Now it is just a matter of opening a connection with a terminal program.  This needs to be done as root so that you have access to the device.

Screen is a very small and light terminal program, and a great way to quickly validate that your connection works.

sudo apt-get install screen -y
sudo screen /dev/ttyUSB0 115200,cs8,-ixon,-ixoff,-istrip
If you prefer putty, that is fine also, but again you must make sure this is running as sudo/root
sudo putty /dev/ttyUSB0 -serial -sercfg 115200,8,n,1,N
If you press the <ENTER> key, you should see something similar to the screenshot below.  You now have direct access to your Linksys router.
serialconnection_madewith_screen

If you see junk characters coming back from screen or putty with these settings, press the power button on the router and then power it back on.  Although you may initially believe the issue is with UTF8 encoding/terminal type/serial settings, I think the actual issue is just that the ttyUSB device gets into a strange state.

REFERENCES

Prolific driver for Windows10

http://www.totalcardiagnostics.com/support/Knowledgebase/Article/View/92/20/prolific-usb-to-serial-fix-official-solution-to-code-10-error

how to inhibit driver update by windows
Windows 7 and 8 prolific driver download
lead through of tftp and serial connection video
link to putty serial profile

 

diff between factory and sysupgrade version
https://forum.openwrt.org/viewtopic.php?id=34572

openwrt guide
http://www.jauu.net/2015/03/03/complete-openwrt-guide/

USB to serial communication is tricky in Windows 10 where the latest version does not work and then Windows Update continually tries to overwrite the older driver.  You can see instructions on the adafruit page.