View Single Post
Old 03-11-2016, 10:08 AM   #18
Junior Member
st3v3 began at the beginning.
Posts: 3
Karma: 10
Join Date: Mar 2016
Device: various prs
Solutions for various PRS-T1 troubles


I obtained a prs-t1 through Ebay. It had evidently been rooted at
some point, and a restore to had not been entirely
successful. The dictionary would work after a 'cold' start, but
freeze after returning from the first 'standby'. So would other
functions, including the usb.

Studying other people's work made clear that running e2fsck on
several partitions would likely solve these issues, but the firmware itself appeared to be not entirely reliable.
Taking the prs-t1 back to seemed to be the best way
forward. This can be done, but there are a few hurdles to jump:

For starters, the prs-t1 won't accept update packages with a version
number older than the one currently running the device. And while the
Overrides this limitation, it fails to adjust the version number.
So after using it the prs-t1 will be running 1.0.05, but tell you it's
still on 1.0.07, if that's what you had to begin with.

More importantly, merely installing the restore-set won't solve the
issues mentioned. And at least for me it added a few of its own,
like making usb completely unusable except via that brilliant recovery

The solution is to manually adjust the version number to,
then run e2fsck on partitions mmcblk2p9, mmcblk2p10 and mmcblk2p6, and
finally install PRS-T1_Updater_1.0.05.11130.exe in the usual way.


First the usual warning: I did everything described here and it all
went smoothly, never a hint of serious trouble. But that's no guarantee.

Copy the '/OS firmware' directory from rupor-rescue.7z into the
root of a (FAT-32 formatted, 4GB or larger) microSD-card. Switch
off the prs-t1, put the card into its slot, then switch it on while
keeping the 'home' and 'menu' buttons pressed until the 'opening
book' progress bar reaches 100%. This brings up the recovery
console, and also allows usb access to the prs-t1's internal storage.

Now connect the device to your pc's usb port, start a terminal
emulator like minicom (with -s option), and set the serial device
name (Serial port setup -> Serial Device) to /dev/ttyACM0.
Hit 'enter', then type 'root' and 'enter' at the login prompt.

Next, the command 'mount' will show you that the sd-card is mounted

[root (ttyGS0)]# mount
/dev/mmcblk0p1 on /initrd/mnt/sd type vfat (ro,relatime,fmask=0022,dmask=0022,codepage=cp437, iocha)

So remount it:

[root (ttyGS0)]# mount -o remount,rw /dev/mmcblk0p1 /initrd/mnt/sd

Then make a backup image of the internal storage on the sd-card:

[root (ttyGS0)]# dd if=/dev/mmcblk2 of=/initrd/mnt/sd/mmcblk2.img

This will take a while, and there is no 'progress bar'. I didn't
time it, but would guess up to about an hour. Just start the command
and walk away to do something else, checking back occasionally.
There is no risk of the prs-t1's battery running down, as it is
being recharged by your pc - which by the way must not be allowed to
go to sleep. When done, you'll see something like

3825664+0 records in
3825664+0 records out

Appear on your screen. Close the connection: ctrl-d to log out,
ctrl-a z q to stop minicom. Disconnect the usb, hit first the
prs-t1's reset and then the powerswitch to reboot, and switch it off.

Then take out the microSD and feed it to your pc. Make a copy of
mmcblk2.img and use a hex-editor to do a search & replace in 'text'
mode: there are four instances of '' (or whatever
version number is shown by 'settings -> about -> device information'
to replace with ''. I used Bless for this, which is
available for Debian variants of gnu/linux. My source for much of
the above, a posting by edclark on
Used HxD on a Windows box.

Next, copy the modified mmcblk2.img to the microSD. This would also
be a good time to download
Which contains Unzip to find a usable
version of e2fsck, and copy it to the microSD as well.

Put the card back into your prs-t1, again bring up the recovery
console, make the usb connection and log in using your terminal
emulator. Remount /initrd/mnt/sd as before, and replace what's in
the internal storage of the prs-t1 with the modified image:

[root (ttyGS0)]# dd if=/initrd/mnt/sd/mmcblk2.img of=/dev/mmcblk2

Again this will take a while. When dd has finished, use e2fsck to
check and repair three file systems with this string of commands:

[root (ttyGS0)]# cd /initrd/mnt/sd/
[root (ttyGS0)]# busybox chmod +x e2fsck
[root (ttyGS0)]# e2fsck -v /dev/mmcblk2p9
[root (ttyGS0)]# e2fsck -v /dev/mmcblk2p10
[root (ttyGS0)]# e2fsck -v /dev/mmcblk2p6

The original source for this: "Fix filesystem errors and bad blocks"
Advises to use badblocks as well, for a read-only check of the
internal storage hardware. I tried it first as above, without badblocks,
and found that the changes e2fsck had made were sufficient to cure
the freezing dictionary and associated trouble completely!

A good thing, because the 'wear levelling' done by flash memory
controllers seems likely to make a bad blocks list inaccurate, as
discussed here:

So I never ran badblocks, fearing that it might take a great deal
of time with nothing to show for it.

Next, download the version update package:

Unzip it, find the 'PRS-T1 Updater.package' and use the usb
connection to copy it to the READER directory on the prs-t1's
internal storage. Then log out, disconnect and reboot the prs-t1
as before. Check that the version number in 'settings -> about ->
device information' is now '' as intended.

Finally, switch off the prs-t1, remove the microSD and switch it on
while keeping the 'home' and 'menu' buttons pressed until the boot
screen is shown. The update should proceed normally, resulting in a
fully functional prs-t1 version
st3v3 is offline   Reply With Quote