↑↑↑ Home ↑↑ Hardware ↑ Iliad  

System description

Versions -- Specifications -- Display -- Internal partitions -- Boot sequence -- IDS -- Package manager

Versions

There are two major version of the Iliad, the "consumer" features of which differ little. Besides, there is the Book Edition, which is a version 2 Iliad without WLAN.

The most important improvement of the second version from a hacker's point of view is that it can boot an alternative Linux kernel and initrd which allow replacing the primary kernel and booting from a CF card.

Telling the versions apart is relatively easy for an unmodified system. The software version of the version 2 Iliads is at least 2.11. It can be viewed in the Iliad settings, is contained in the registry /mnt/settings/registry/registry.xml (XML path /iLiadRegistry/version/registry, near the top) and in the version of the Linux kernel (look at /proc/version or run uname -a). (The Book Edition is obviously distinguished by its silver colour.)

If the software or kernel has been upgraded, the version of the device is slightly harder to find out. /proc/sysset/hwrev seems to contain the hardware revision of the device or possibly the Delta ASIC; for my Book Edition Iliad, this is 7. A binary flash configuration region is available under /proc/sysset/raw. You can display it with the following command:

hexdump -C /proc/sysset/raw

The first byte indicates the version of the sysset region itself (0x05 for my Book Edition); it contains a device name in ASCII at offset 16 ("ER0150" for the Book Edition); and there is an ASCII date farther down ("2008051616:43" for my device). Alternatively you could look at the modification dates of preinstalled executables or configuration files: The version 2 is supposed to have started shipping in September 2007, and the Book Edition files have modification dates in March 2008.

Specifications

Most of this can be found on the iRex website and/or Wikipedia.

The electronics market research firm iSuppli has published a list of the electronic components of the Iliad.

The Iliad's display

The Iliad's main claim to technological superiority is its display, which is larger than that of competing devices and can represent 16 grey levels instead of the usual 4. iRex have developed a custom chip, the Delta ASIC, to make that possible. Suspicious as I am, I wanted to see whether the effort was really worth it. I created a test image with greyscale areas and ramps and displayed it on the Iliad. You can see the result here:

The ramps are displayed as 16 clearly distinguished grey levels, and the areas have visibly different brightness. (Click on the image to see a larger version; it is better visible in reality than in the photo.) So the effort of creating a custom ASIC was worth the trouble.

Internal flash RAM partitions

The Iliad's system is installed on the internal flash RAM, which has a size of 229 MB. Its associated Linux device is /dev/tffsa. It is partitioned as follows:

  [ root  [ protected  free  settings ] ]

The first partition is a primary partition, while the other three are logical partitions sharing an extended one. Here is an overview of what they are for:

Device Mount point Size [kB] Content
/dev/tffsa1 / 74542 Linux system installation + applications
/dev/tffsa5 /mnt/protected 27742 System upgrade
/dev/tffsa6 /mnt/free 131326 Data partition (50 free classics on Book Edition)
/dev/tffsa7 /mnt/settings 598 User preferences, links to last documents, etc.

The data partition has a FAT16 file system so it can be exported to Windoze boxes, the others have Ext2 file systems.

The protected partition can be used for upgrading the system, and was the only way to do that on version 1 of the Iliad (see here).

Boot sequence

The following was pieced together from the iRex reflash howto, which can be downloaded here, and the boot console dump from this forum thread.

Normal boot

  1. The boot loader starts up and loads the Linux kernel from one of the flash chips which are not accessible by the system later.
  2. The kernel bootstraps, helped by the initrd (initial RAM disk) which contains proprietary kernel modules to be loaded.
  3. If the operating system or file system upgrade flag is set and the corresponding gzipped file is present, perform the upgrade (see here).
  4. Run init scripts to start system services.
  5. One of the last init scripts to be run is a symbolic link to /home/root/start.sh. This starts all important programs, such as the daemons handling the busy LED and the page bar, the window manager, the power manager and the content lister.

Custom boot / system upgrade

This alternative way of booting is activated by pressing the Connect button on the top right of the device before switching it on and holding it for 3 to 5 seconds after flipping the switch. The alternative boot process allows upgrading the firmware or booting an alternative system. This feature was not available on version 1 of the Iliad.

  1. The boot loader starts up and loads the secondary Linux kernel from one of the flash chips which are not accessible by the system later.
  2. The kernel bootstraps, helped by the secondary initrd (initial RAM disk) which contains proprietary kernel modules to be loaded.
  3. If a CompactFlash card is present and carries the appropriate file system and content, one of the following will be done:
  4. If the CF card contains a FAT file system and has a file config.txt and a directory images in its root directory, the kernel, initrd and/or system partition will be upgraded or restored (see here).
  5. If the CF card contains an Ext2 file system and has a file config.txt in its root directory which only contains the line "boot", it becomes the new root directory (via a chroot), and a system installation on the CF card is booted instead of the one on the built-in flash memory.

iDS packages

IDS packages are content or system upgrade packages provided by iRex for the Iliad. They are automatically downloaded from the iRex server when the Iliad connects to the internet (and when content has been purchased or upgrades are available). The activation of shell access for developers is also performed by an iDS package.

IDS packages are retrieved from the server by the download manager /usr/bin/downloadMgr. In the case of upgrade packages, the data is saved to /tmp and installation scripts to /etc/post_download/todo. Content packages would probably install the data into the data partition, so that it can be viewed.

For upgrade packages, the download manager uses /usr/bin/post_download.sh to execute the install scripts and move them to /etc/post_download/done along with their output. For the shell access package and possibly other upgrades, the last of them initiates a reboot.

The ipkg package manager

ipkg is a package manager optimised for small and embedded systems. Its usage instructions can be viewed by running it without arguments; they are also on the web here.

ipkg packages are used for the system installation on the Iliad (including upgrades), and some community software packages also use them. In the latter case, the software package typically consists of the package and a shell script which uses the ipkg command to install it.

If you want to unpack ipkg packages on your computer, you can use this shell script. Do not use the ipkg-unbuild Python script provided on the ipkg site, which contains so many bugs even someone as ignorant of Python as me can see them. Iliad packages are ar archives containing two gzipped tar archives, data.tar.gz and control.tar.gz. The first contains the files to be installed (with paths relative to the root directory), the second metainformation and possibly install scripts.


TOS / Impressum