You will need: * A Linux workstation (tested with Ubuntu Lucid and Debian Squeeze). This might also work with a Linux LiveCD. * the squashfs-tools and svn packages (and probably some others too...)
Generate the firmware from SVN
Download the firmware files from SVN
- To avoid messing up things, create a directory somewhere you will remember, for example:
mkdir ~/workinprogress cd ~/workinprogress
- Now, we are going to get the latest firmware files:
svn checkout http://e60-open.googlecode.com/svn e60-open-read-only
This might take a few minutes...
You have now all the required files to create a new firmware. You can modify the files you need in the directory "Binaires/squash-fsroot
".
Generate the firmware
This is actually very easy:
cd ~/workinprogress/e60-open-read-only/Binaires
chmod +x mkpackage make-E60FR.sh
./make-E60FR.sh
You will be prompted for your root password: this is normal, we have to be root to create some of the files.
This process will generate a firmware usable with the French (and Italian too?) version of the E60.
Before installing it, we strongly suggest that you read the Wiki entry on the rescue mode. This could be a good idea also to prepare now a valid firmware (i.e. a vanilla firmware from Samsung, properly renamed in order to be ready to use in case of a problem with your own firmware).
Generate the firmware from the Samsung-supplied distribution
Get the "10_E60.zip
" file from the Samsung Open Source Release Center and unzip it.
Extract from the existing firmware image
- Use "
unsquashfs
" to extract the "rootfs.bin
" file
Create your own rootfs
- Use "
mksquashfs squashfs-root/ rootfs.bin
" to create a "rootfs.bin
" image - Run "
make-E60FR.sh
" to create the firmware image - Run the following line to make the firmware recognized on a French E60 device:
perl -pi -e 's{\x51\x20\xE8\x04}{\x00\x10\x10\xF0}' E60FR-CP.bin
- Put the firmware on your device
Compile your own kernel
CC=/usr/local/arm/4.2.2-eabi/usr/bin/arm-unknown-linux-gnueabi-gcc \
AS=/usr/local/arm/4.2.2-eabi/usr/bin/arm-unknown-linux-gnueabi-as \
AR=/usr/local/arm/4.2.2-eabi/usr/bin/arm-unknown-linux-gnueabi-ar \
LD=/usr/local/arm/4.2.2-eabi/usr/bin/arm-unknown-linux-gnueabi-ld \
make zImage config_q60k