ReferencePlatforms/mobile-imaging-linux

From MozillaWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Install OS

I installed Debian 5 stable. The ethernet driver in debian package does not work for the intel gb card. I used a usb nic that is compatible out of the box.

I ran through the default options, setting timezone as appropriate. I selected Guided Partitioning -> Use Entire Disk -> All File in One Partition. When asked which software I wished to install, I selected only 'Standard system utilites'

The following assumes a user account called 'maemo'

At present, we think this computer can only be used for flashing N810s. We may or may not have to create a Fedora 12 version of this


Setup OS

su -
apt-get update
apt-get upgrade
apt-get install sudo build-essential python2.5 python2.5-dev linux-headers-`uname -r` openssh-server parted openssl git-core uuid-dev
apt-get build-dep mtd-utils

visudo
#add the line
%sudo ALL=(ALL) NOPASSWD: ALL
gpasswd -a maemo sudo

To get the built in ethernet to work, I downloaded the newest e1000e driver

wget http://downloadmirror.intel.com/15817/eng/e1000e-1.1.19.tar.gz
tar zxf e1000e-1.1.19.tar.gz
cd e1000e-1.1.19/src
make
su -c 'make install'
reboot

The version of mercurial in debian 5 is ancient. We need to install it from source

wget http://mercurial.selenic.com/release/mercurial-1.5.2.tar.gz
tar zxf mercurial-1.5.2.tar.gz
cd mercurial-1.5.2
python setup.py build
sudo python setup.py install

I would prefer the onboard chip to be eth0 and forget the usb ethernet adapter. I opened /etc/udev/rules.d/70-persistent-net.rules and deleted the line for the USB device and changed the PCI device to be NAME="eth1"

Configure the network card (reference). I used

cat >> /etc/network/interfaces << E
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp

Disable console logging:

  • create /etc/init.d/disable-console-errors.sh
#! /bin/sh

### BEGIN INIT INFO
# Provides:          sudo
# Required-Start:    $local_fs $remote_fs
# Required-Stop:
# Default-Start:     S 
# Default-Stop:
### END INIT INFO

case "$1" in
  start)
        echo '2^V^I2^V^I1^V^I2' > /proc/sys/kernel/printk
        ;;
  stop|reload|restart|force-reload)
        ;;
  *)
        echo "Usage: $N {start|stop|restart|force-reload}" >&2
        exit 1
        ;;
esac

exit 0
  • ^V^I is a tab
chmod a+x /etc/init.d/disable-console-errors.sh
update-rc.d disable-console-errors.sh defaults 99
/etc/init.d/disable-console-errors.sh start

Setup Mozilla Environment

hg clone http://hg.mozilla.org/build/tools
ln -s tools/buildfarm/mobile/n810-imaging
ln -s tools/buildfarm/mobile/n900-imaging
cd n810-imaging
mkdir empty
echo 'USE AN SD CARD' > empty/INFO
mkfs.jffs2 -r empty -o empty.jffs2 -e 128
rm -rf empty
wget http://samba.anu.edu.au/ftp/rsync/src/rsync-2.6.9.tar.gz
tar zxf rsync-2.6.9.tar.gz
cd rsync-2.6.9
./configure --disable-debug --prefix=/home/maemo
make -j4
make install
sudo cp ~/bin/rsync /usr/bin/rsync2
#obtain appropriate nokia flasher and RX-44 stock image
#you only need one of the flasher* programs, the one for your system.
#the static one is useful if you have libraries missing
openssl sha1 RX-44_DIABLO_5.2008.43-7_PR_COMBINED_MR0_ARM.bin flasher-3.0* flasher-2.0.macosx
#SHA1(RX-44_DIABLO_5.2008.43-7_PR_COMBINED_MR0_ARM.bin)= 5464ae20a17afdbd59633f3d36a2e63281fcd106
#SHA1(flasher-3.0)= e4e3b0b791dca7bc91c710fc3702f4d72f904e7a
#SHA1(flasher-3.0-static)= d28b5597649a3ae40579d50f651c5d73afee19f9
#SHA1(flasher-3.0.amd64)= c56f71b69acd8ed0c19757451e14ba4a59645c5f
#SHA1(flasher-2.0.macosx)= 484bb141dad18ea68f7618c4f07f549311caf9b5

IMPORTANT Newer kernels do not work properly when flashing the N810 firmware (flasher-3.0*). It is very important that you do not upgrade the kernel on the imaging machine.

If the machine complains about

request_module: runaway loop modprobe binfmt-464c

Then there is a Maemo SD card inserted into the computer. Remove all sd cards and readers and reboot

Setup mtd utils

git clone git://git.infradead.org/mtd-utils.git
cd mtd-utils/ubi-tools
make
cp ubinize ~/n900-imaging
cd ../mkfs.ubifs
make
cp mkfs.ubifs ~/n900-imaging



Set up Fremantle only Scratchbox

Download the scratchbox and sdk setup scripts:

http://repository.maemo.org/stable/5.0/maemo-scratchbox-install_5.0.sh
http://repository.maemo.org/stable/5.0/maemo-sdk-install_5.0.sh

Then run:

su - # become root
mkdir /scratchbox
SBDIR=/scratchbox
echo 0 | sudo tee /proc/sys/vm/vdso_enabled #MUST BE RUN on each boot or
                # be made permanent by echoing 'vm.vdso_enabled = 0'
                # to /etc/sysctl.conf and running sysctl -p as root
echo 0 | sudo tee /selinux/enforce
sh /home/maemo/scratchbox/maemo-scratchbox-install_5.0.sh -s $SBDIR -u maemo
sudo gpasswd -a $USER sbox
maemo-sdk-install_5.0.sh -s $SBDIR
#Accept License
#Select Option 4, Runtime+Dev+Dbg
#Select Continue
$SBDIR/login
sb-conf select FREMANTLE_ARMEL
exit
sudo ${SBDIR}/sbin/sbox_ctl start
#SB can be launched by 
${SBDIR}/login

Install required packages

fakeroot apt-get install python python-dev autoconf2.13 libidl-dev libpcre3-dev



fedora 12 image creator for n900s

Install fedora 12 then run:

su -c 'yum groupinstall "Development Tools"'
su -c 'yum install uuid-devel lzo-devel mercurial'
hg clone http://hg.mozilla.org/build/tools
ln -s tools/buildfarm/mobile/n900-imaging
git clone git://git.infradead.org/mtd-utils.git
su -
cd /home/jhford/
cd mtd-utils/ubi-tools
make
cp ubinize ~/n900-imaging
cd ../mkfs.ubifs
make
cp mkfs.ubifs ~/n900-imaging