修改Nokia 770的Root Image

来源:互联网 发布:淘宝开店考试在哪里 编辑:程序博客网 时间:2024/06/06 17:41

原文:http://guoyong.org/2006/11/06/285

修改Nokia 770的Root Image

假设当前工作目录是$HOME/nokia_770

1. 下载最新的image文件,OS 2006 edition v. 2.2006.39-14

www.maemo.org/downloads/nokia_770

2. 下载Linux下的更新工具flasher-2.0

maemo.org/downloads/d3.php

3. 下载用于生成jffs2映像的shell脚本

stage.maemo.org/svn/integration/trunk/rootimagescr…

3. 安装mtd-tools,因为需要它提供的mkfs.jffs2和sumtool这两个工具

$ sudo apt-get install mtd-tools

或者(你需要先安装wajig)

$ wajig install mtd-tools

4. 首先从官方的image文件里解压出rootfs.jffs2这个文件

$ mkdir SE2006_image
$ cd SE2006_image
$ sudo ../flasher-2.0 --unpack /
   -F ../SU-18_2006SE_2.2006.39-14_PR_F5_MR0_ARM.bin

5. 挂载上一步得到的rootfs.jffs2

$ sudo modprobe mtdblock
$ sudo modprobe mtdram total_size=65536 erase_size=256
$ sudo modprobe jffs2
$ sudo modprobe loop
$ sudo losetup /dev/loop0 /
   $HOME/nokia_770/SE2006_image/rootfs.jffs2
$ sudo dd if=$HOME/nokia_770/SE2006_image/rootfs.jffs2 /
   of=/dev/mtdblock0
$ sudo mkdir /mnt/jffs2
$ sudo mount -t jffs2 /dev/mtdblock0 /mnt/jffs2

6. 从/mnt/jffs2获得rootfs的内容,以便修改

$ mkdir myRootFS
$ cd myRootFS
$ sudo tar czf - /mnt/jffs2 | tar xvzf -

7. 卸载/mnt/jffs2

$ sudo umount /mnt/jffs2
$ sudo losetup -d /dev/loop0
$ sudo rmmod jffs2
$ sudo rmmod loop
$ sudo rmmod mtdram
$ sudo rmmod mtdblock

8. 现在可以做一些修改了,比如给/etc/apt/sources.list添加一些更新源,更改/usr/sbin/gainroot和/etc/sudoers以便获得root权限,添加中文字体等等,或者添加一些软件包

9. 重新将修改后的rootfs做成image

$ cd myRootFS/mnt/jffs2
$ sudo tar czvf $HOME/nokia_770/myRootImage.tgz .
$ cd $HOME/nokia_770
$ sudo ./tar2jffs2.sh myRootImage.tgz

10. 将修改过的root image写到770上

$ sudo ./flasher-2.0 --rootfs myRootImage.jffs2 /
   --flash-only rootfs --flash --reboot
flasher v0.8.1 (May 30 2006)

Suitable USB device not found, waiting

用USB线接入你的770,然后开机。一切正常的话,可以看到类似这样的信息:

Found device SU-18, hardware revision 1602

同时,770的屏幕上也可以看到更新的进度条。更新结束后,会自动重新启动。

Ref:

  1. maemo.org/maemowiki/HOWTO_FlashLatestNokiaImageWit…
  2. maemo.org/maemowiki/ModifyingRootImage
  3. maemo.org/maemowiki/HowDoiBecomeRoot