Leapster Explorer How To Extract Files

From eLinux.org
Revision as of 16:23, 22 June 2010 by Nirvous (talk | contribs) (Created page with 'These instructions explain how to mount the firmware found in the lfp files typically handled by LFConnect in Linux. Download the lfp file that contains the Leapster Explorer …')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

These instructions explain how to mount the firmware found in the lfp files typically handled by LFConnect in Linux.


Download the lfp file that contains the Leapster Explorer firmware from LF: http://lfccontent.leapfrog.com/lexplorer/downloads/packages/LST3-0x00170029-000000.lfp

This file can be read using any file archiving package (zip format).

When you read it it, you will find a number of files to extract.

We will focus on the largest one, called 10485760,688,erootfs.ubi

Rename this to erootfs.ubi

$mv 10485760,688,erootfs.ubi erootfs.ubi

The file is in the ubifs format, so a number of steps are required to mount it.

(There may be better ways to do this, but the method below is what worked for me.)


First create a simulated NAND device (this one is 256MB):

$ sudo modprobe nandsim first_id_byte=0x20 second_id_byte=0xaa third_id_byte=0x00 fourth_id_byte=0x15

$ cat /proc/mtd

dev: size erasesize name mtd0: 10000000 00020000 "NAND simulator partition 0"


Next, attach it to a mtd device:

$ sudo modprobe ubi mtd=0


I had to detach it prior to formatting it:

$ sudo ubidetach /dev/ubi_ctrl -m 0

$ sudo ubiformat /dev/mtd0 -f erootfs.ubi

ubiformat: mtd0 (nand), size 268435456 bytes (256.0 MiB), 2048 eraseblocks of 131072 bytes (128.0 KiB), min. I/O size 2048 bytes

libscan: scanning eraseblock 2047 -- 100 % complete

ubiformat: 2048 eraseblocks have valid erase counter, mean value is 1

ubiformat: flashing eraseblock 455 -- 100 % complete

ubiformat: formatting eraseblock 2047 -- 100 % complete


Then, reattach it.

$ sudo ubiattach /dev/ubi_ctrl -m 0

UBI device number 0, total 2048 LEBs (264241152 bytes, 252.0 MiB), available 0 LEBs (0 bytes), LEB size 129024 bytes (126.0 KiB)


Make a target directory, and mount the device.

$ mkdir temp

$ sudo mount -t ubifs ubi0 temp

$ cd temp

/temp$ ls

bin erootfs.md5 flags linuxrc mnt2 sbin test var

boot etc LF mfgdata opt srv tmp www

dev Firmware lib mnt proc sys usr

/temp$


Happy 'Exploring'!