LeapFrog Pollux Platform: Firmware

From eLinux.org
Revision as of 09:55, 3 February 2012 by Jrspruitt (talk | contribs) (Explorer UBI)
Jump to: navigation, search

Summary

Over the years there has been a handful of revisions to the LeapFrog Pollux Platform Firmware. The Didj started on Linux Kernel version 2.6.20, which involved 2 versions over its lifespan the 2008 and 2009 versions. With the release of the Leapster Explorer the Kernel was upgraded to 2.6.31 and has since seen multiple updates, the latest being the LeapPad Explorer release.

The root file system or userspace has also seen some major upgrades, while most of it is not Open Source software, as in the UI or Flash Lite player, the basic programs are. They contain everything you'd expect to find on a Linux OS, echo, ls, vi, etc, etc.

This page contains various links to tutorials and information on the Firmware. While Didj was vastly different, it can be upgraded to run the new Linux version. This is recommended as most of the Linux work is being done with the latest firmware version. You can find links to older version information in the depreciated section. The updated firmware versions usually end up including whats been added, so often times it will be easier to just move to the latest, but they are there if you need them.

Kernel

CBF File Format

Latest Firmware Version LF-Linux-2503-20110602-1237

Rootfs/UserSpace

This is where to find generic Linux tutorials and information based on the latest LeapFrog Linux firmware, for LeapFrog User Interface specific information please refer to your particular device's page.

SDL

Depreciated

LF-Linux-8291-20101026-1425


Create Root Filesystem Images

Explorer UBI

Explorer uses UBI for its rootfs. To create the image from a rootfs you've built first you need to create the ubi.ini file, that describes your ubi image. Create a regular text file, ubi.ini and paste these settings:

[ubi_rfs]
mode=ubi
image=ubifs.img
vol_id=0
vol_size=87349248
vol_type=dynamic
vol_name=ubi_rfs
vol_alignment=1
vol_flags=autoresize

You shouldn't need to change anything, as the Explorer is rather particular about the settings. Next you'll run the commands that actually build it. Here ubi.ini is the file you just created, ubifs.img is a temp file you can delete once you are done, and your_erootfs.ubi is the name of the rootfs image that will be created.

sudo /usr/sbin/mkfs.ubifs -m 2048 -e 129024 -c 677 -r /path/to/rootfs ubifs.img
sudo /usr/sbin/ubinize -o your_erootfs.ubi -p 131072 -m 2048 -s 512 -O 512 ubi.ini

mkfs.ubifs

  • -m - Minimum I/O unit size
  • -e - Logical Erase Block (LEB) size
  • -c - Max LEB count
  • -r - Path to root filesystem
  • ubifs.img - Temporary image file.

ubinize

  • -o - Output file
  • -p - Physical Erase Block (PEB) size
  • -m - Minimum I/O unit size
  • -s - Minimum I/O size for UBI headers, eg. sub-page size
  • -O - VID header offset from start of PEB
  • ubi.ini - UBI image configuration file.

Didj JFFS2

The Didj uses a jffs2 image for it's rootfs, this is pretty easy to make. Once you got your rootfs created, run:

mkfs.jffs2 -p -r /path/to/rootfs -e 128 -o your_erootfs.jffs2
  • -p - Pad to erase block size with 0xFF
  • -r - Path to root filesystem
  • -e - Physical Erase Block (PEB) size, refer to NAND datasheet.
  • -o - Output file.