tjtag-pi is a fork of tjtag with support for Raspberry Pi which eliminates the need for a PC with parallel port. See acidice333's fork for running on RPi 3.
Be warned that incorrect usage can lead to a point of no return
situation. Before you do anything besides what is described here, please
do research on how to use this tool. A good starting point is the
excellent and cautionary guide.pdf written by the HairyDairyMaid, the
original author. Always backup before flashing.
- A Raspberry Pi (I've only tested model B as of late 2013)
- Dual female jumper wires to connect GPIO pins to WRT
- Pins soldered on the JTAG header on WRT
- Beverege to enjoy afterward
-
Hook up the two boards as per the diagram in
wiring.jpg -
Power up your WRT
-
Checkout the code, compile and run it
$ cd ~ $ git clone git@github.com:oxplot/tjtag-pi.git $ cd tjtag-pi $ make pi $ ./tjtag -probeonlyIf it gets stuck, try using
/noemwoption.
If at this point, your SoC and flash is recognized, you're all set. Enjoy your beverage and look for an appropriate guide that explains how to use tjtag to revive/upgrade your router's firmware.
- If you have issues with reliability of your connection, you can slow
down the speed of tjtag by using
/delay:Ncommand line option.Nis the amount of time to delay flipping the clock signal. The higher the value, the slower the transfer rate. - Due to bit-banging nature of the operation of tjtag, various things
affect the transfer speed. The one with most degrading effect is the
progress output. Therefore it is recommended to use
/silentcommand line option and redirect outputs to/dev/null(ie using&> /dev/null), after having made sure everything works OK.