Web hosting

Wednesday, August 1, 2012

If Only Reading Were Easier...

I recently came into possession of a MiGear eBook Reader. It's not the best eBook device in the world but I got it for a price that was hard to refuse. One of the things I've discovered is that while it makes a great video/photo viewer and music playback device it's actual eBook reading capabilities needed a bit of work (the zoom function doesn't work particularly well in the default firmware which means that a lot of scrolling needs to be done because the fonts are too large or the words are too small because the there neds to be greater magnification).

Like others I've been exploring the full capabilities of the device and looking at modifying/changing the firmware to fully exploit it. The device itself is based on the Rockchip RK2738 which is often used in MP3/MP4 music devices with the rest of the device relying on inexpensive and readily available PC electronics. It is also used in many eBook readers as well which means that as long as the reader is based on the same chip you can chop and change as you like. Moreover, while it is possible for you to end up with an (inexpensive in this case) paperweight there are existing provisions to activate a recovery mode of sorts by shorting pins 29/30 on the flash chip (Based on what I've read and done it seems to be very hard to 'brick'. The product itself seems to be hobbled by the firmware than the hardware.).


Moreover, while you may end up with the wrong language they (the various firmware revisions) all seem to be based on the same core which means that even if you end up seeing strange characters you can almost always set it back to any arbitrary language. The irony though is that while there is a firmware update utility you need to tweak it (Hardware IDs which can be obtained from 'lsusb' under Linux and 'Device Manager' in Windows) in order to get things right.


There's clearly no 'perfect firmware' out there at the moment though. I've ended up using firmware from another Chinese clone which oddly enough had better hardware (more RAM, Flash memory, FM radio, TV-out, and also a larger battery) than my device. This led to be explore the actual data sheets, various PCBs, and SDKs for this chip. Most of the time the data sheets indicated that only minor modifications/additions needed to be made to add these capabilities (I actually thought about adding more flash memory from a USB flash drive after discovering the physical size of the chips on the board and in my flash drive were identical. Try to format the flash using NTFS and not FAT16/FAT32 as it will be more resistant against potential filesystem corruption. You'll know why if you've compared these filesystems on USB flash drives previously and have not ejected properly.). While there doesn't seem to be support for Android/Linux, Lexand seemed to have released a device that uses Android/Linux and is also based on the RK2738 (here's hoping someone uploads the firmware).


While there are SDKs out there development doesn't seem to be simple especially for the 27xx series. A lot of information has needed to be reverse engineered (Rockchips don't seem to be interested in Open Source development at the moment based on what I've read.) and even then there seems to have been measures taken to reduce the chances of end user tampering. Files have clearly been 'packed' and possibly encrypted with 28xx/29xx series also having similar protection.

Even viewing hidden partitions/backing up the actual firmware itself was a seeming mystery with many people just guessing at what the magical filename should be to make the partitions magically appear (I used the following command sequence to figure this out, 'strings RK2738.img | grep -i tag > tags'. Mine was 'HTC_E01.Tag' though this will obviously depend on you having a copy of the image in the first place.).

Moreover, unlike the 26xx series you can't just modify files on the hidden partitions itself. You need to unpack the image, modify the files, repack it and write the firmware to make the changes 'stick',

mkdir /media/ebook
mount -o loop BSTE102.img /media/ebook/
umount /media/ebook/

else you'll need to use something like WinRAR or WinImage under Windows.

With the firmware being relatively tedious or difficult to modify I wonder whether something like Rockbox/OpenInkpot are more viable options given time and your desired use for your device...

Capitalist Liberalist Democracy Thoughts 3, Random Stuff, and More

On liberal capitalist democracy:  - before we go through this we need to preface this was the reasoning for this. Capitalism is literally...