Wednesday, December 11, 2013

Fixing the dead device

Time to fix our device again.
We now have a serial terminal and access to uBoot, so this should be doable.

The first thing we want to do is to transfer the stock image to our device. To do this we first need to install ckermit (since we already know that uBoot requires it for file transfer).

First thing we wont to try is booting from memory.
So with our serial cable connected, we press 4 during the uBoot sequence. This puts us in the uBoot bootloader console. We want to load the image from serial, and then boot into the image. Afterwards we want to do a firmware upgrade the normal way, to make sure all settings are correct. So we will have to make sure we have our firmware upgrade memory stick or memory card plugged in.

The procedure for upgrading is roughly something like this, and it might be a good idea to have the power plugged in, I didn't:

In console:

In kermit:
set line /dev/ttyUSB0 (or whatever your serial port is)
set speed 57600
set serial 8n1
set flow-control none
set file type bin
set carrier-watch off
set prefixing all
set modem none
c (to connect)

Power on the device
loadb 0x800000
(system waiting for file send)
Press ctrl+\ to
This is going to take a while (roughly 15 min)
bootm 0x800034 (this is our offset to the actual image)

The system boots, and starts the firmware upgrade to the official firmware. After the upgrade the device automatically reboots, and we are back to the standard firmware again.

So now we are back to the development part again. After looking at the kernel booting, I'm not even sure if I want to use this as base. We might be better of just basing it on OpenWRT or something similar. But then again, its fun to learn a bit more about uClinux.

If we really want to play with the device, I guess we will have to get ethernet connection and boot from tftp. The 15min of waiting every time I have to do a recovery starts to annoy me.

No comments:

Post a Comment