Quick notes/intro for router debugging and rooting. Including tools, terms, and tactics.
UART is a serial protocol used for interecting with the system. May return a shell, and or access to the filesystem. Seperate from JTAG.
Enumerate Pinout [Multimeter]
- Voltage fluctuates at boot1 from 0 to 3.3/5.5v
- Constant low value below VCC and above GND
- Voltage is constant 0, has 4 traces in a crosss shape2
- Normally not used to if device already powered, should not fluctaute
1 Fluctuation is caused from the debug messages being sent.
2 Testing continuity of GND to other pins, shows other pins that may be grounded
Square outlined pin, normally is "pin 1"
Used for on-chip-debugging, generally allows for access to a GNU Debugger (GDB) for the JTAG host. Pinout for hidden console may be found with JTAGenum/JTAGulator. Then access GDB with a Bus Pirate or Shikra USB-to-Serial devices and debug applications using OpenOCD software.
Accessing Serial Consoles
sudo dmesg | grep -iC 5 usb
sudo screen -L /dev/ttyUSB0 115200
Alternatively, use the Arduino IDE serial console. Useful when input is off with the screen utility
In the screen command, 115200 is the baud rate of the serial communications
The baud rate can be determined using -
Hardware Physical Tools
Identifies JTAG & UART pinouts.
Identifies JTAG pinouts
FT232RL - USB to Serial, Use SOIC8 Clip to dump firmwarez
FT232H(Q) - USB to Serial
RS-232 Generic Adapter4
USB to Serial
1 JTAGenum Setup Tutorial:
2 Bus Pirate Pinout Information
3 Shikra Pinout [UART] D0 - TX, D1 - RX
See also, Adafruit FT232H Breakout -
4 Male DB9: GND - Pin 5, TX - Pin 3, RX - Pin 2