N810の内蔵メモリは256MB。
色々インストールすると、結構すぐに一杯になってしまいます。
Internal Memory Cardは2GBもあるのに…と悔しがっていたら、
KimitakeさんがInternal Memory Cardをルートファイルシステムにする方法を教えてくださいました。(感謝!)
以下の3つのサイトを参考にしつつ、実際に試してみます。
Boot from MMC for N800 - Kimitake's bloghttp://kimitakeblog.net/item/500Booting from a flash card - maemo.org wikihttp://wiki.maemo.org/Booting_from_a_flash_cardPartitioning a flash card - maemo.org wikihttp://wiki.maemo.org/Partitioning_a_flash_cardこの先の手順で使用するいくつかのパッケージはデフォルトで設定されているリポジトリには入っていないものがあります。なので以下のリポジトリをパッケージマネージャから追加しておいてください。
Catalogue name : Maemo Chinook
Web address : http://repository.maemo.org/
Distribution : chinook
Components : free non-free
ついでに
maemo Extrasも
Disabledのチェックを外しておきましょう。
ここから先、全ての作業は
rootで実施してください。
rootの取得は
opensshをインストールするのが一番簡単だと思います。
(作業もみんなリモートから出来ますし)
まずはパーティショニングのために
e2fsprogsをインストールします。
apt-get install e2fsprogs
パーティショニングの対象となるInternal Memory Cardを
umountします。中身はきれいさっぱり消してしまうので、必要なファイルがあれば別の場所にコピーしておくのをお忘れなく。
umount /dev/mmcblk0p1
ではパーティションを切りましょう。
sfdisk /dev/mmcblk0
するとディスクの現状態が表示され、最後に
/dev/mmcblk0p1 :
と表示されていると思います。これが第1パーティションの設定プロンプトになります。第1パーティションは512MBのVFATにしたいので、以下のとおり入力します。
/dev/mmcblk0p1 :1,16384,6
/dev/mmcblk0p1 1 16384 16384 524288 6 FAT16
太字の部分が入力した内容です。
同様に第2パーティションも設定します。こちらは残り(約1.5GB)のext2です。
/dev/mmcblk0p2 :16385,,
/dev/mmcblk0p2 16385 61439 45055 1441760 83 Linux
第3、第4パーティションは設定しないので何も入力せずにEnterを押してください。私の環境だと何故か第3パーティションが出来てしまうんですが、気にしないことにしています。
最後にディスクに書いていいか聞かれますので、yを入力します。
Do you want to write this to disk? [ynq] y
これでパーティショニングは完了したので、一度再起動します。
reboot
第1パーティションは自動でマウントされている(はず)ので、umountします。
umount /dev/mmcblk0p1
先ほど作成したパーティションをフォーマットします。
mkdosfs /dev/mmcblk0p1
mke2fs /dev/mmcblk0p2
続いて
bootmenuをインストールします。
まずはインストールで必要になる
wgetと
tarをインストールしましょう。(
tarは標準で入っている
busyboxのものだとうまく行かないのでこちらのバイナリを使用します)
apt-get -y --force-yes install wget
mkdir -p /home/user/bin
cd /home/user/bin
wget http://www.nmacleod.com/nokia/bin/tar
chmod +x tar
bootmenuをダウンロードし、ファイルを展開します。
cd /home/user/bin
wget http://fanoush.wz.cz/maemo/initfs_flasher.tgz
tar zxvf initfs_flasher.tgz
cd /home/user/bin/initfs_flasher/
bootmenuをカスタマイズするために、設定ファイルを記述します。
cp bootmenu.conf.n8x0.example bootmenu.conf
vi bootmenu.conf
内容はこんな感じにしました。
(先々を考えてExternal memory cardからもboot出来るようにしてます)
# bootmenu customisation file
# timeout for automatic selection when no key is pressed
MENU_TIMEOUT=3
# menu items
MENU_MIN=1 # first item index
#no need to redefine
#MENU_1_NAME="Internal flash"
#MENU_1_ID="flash"
MENU_2_NAME="Internal MMC card, partition 2, ext2"
MENU_2_ID="mmc2"
MENU_2_DEVICE="${INT_CARD}p2"
MENU_2_MODULES="mbcache ext2"
MENU_2_FSTYPE="ext2"
MENU_2_FSOPTIONS="noatime"
[ -d "/sys/block/${INT_CARD}/${MENU_2_DEVICE}" ] || MENU_2_NAME="(${MENU_2_NAME}) N/A"
MENU_3_NAME="External MMC card, partition 2, ext3"
MENU_3_ID="mmc1"
MENU_3_DEVICE="${EXT_CARD}p2"
MENU_3_MODULES="mbcache jbd ext3"
MENU_3_FSTYPE="ext3"
MENU_3_FSOPTIONS="noatime" #",data=writeback"
[ -d "/sys/block/${EXT_CARD}/${MENU_4_DEVICE}" ] || MENU_4_NAME="(${MENU_4_NAME}) N/A"
MENU_4_NAME="Power off (when not on charger)"
MENU_4_ID="off"
#last item index, change if you add/remove items
MENU_MAX=4
initfsを作成します。
./initfs_flash
途中で色々聞かれますが、全部
yesと答えてしまってOKです。
作成にはそこそこ時間がかかります。のんびり待ちましょう。
最後に
rebootを求められるので、素直に従いましょう。
再起動したら、デフォルトのブートデバイスを設定します。
chroot /mnt/initfs cal-tool --set-root-device ask:mmc2
内蔵メモリにある現在のシステムを全てInternal memory cardにコピーします。
mkdir /mnt/mmc2
mkdir /mnt/internal
mount /dev/mmcblk0p2 /mnt/mmc2
mount -t jffs2 /dev/mtdblock4 /mnt/internal
/home/user/bin/tar cf - -C /mnt/internal . | /home/user/bin/tar xvf - -C /mnt/mmc2
コピーが終わったら
umountして再起動しましょう。
umount /mnt/mmc2
umount /mnt/internal
rmdir /mnt/mmc2 /mnt/internal
reboot
うまく行っていれば再起動後に
bootmenuが出てくるはずです。
Internal MMC card, partition 2, ext2を選択してEnterを押してください。
(押さなくても3秒でタイムアウトして起動してくるはずですが)
さて、ルートファイルシステムが大きくなったか確認してみましょう。
df -h
/dev/mmcblk1p2 1.4G 245.6M 1.0G 19% /
こんな感じに表示されればOKです。(他にもいろいろ出ますが)
ちょっと気になる事が1つ。内蔵→Internal Memory Cardとシステムを移動すると、ディスクの使用量が倍くらいに跳ね上がってしまうんです。これってファイルシステムのブロックサイズの問題とか、そういう理由なんですかね?まぁそれを補って余りあるくらいパーティションサイズは大きくなるのでいいんですけど。
上記の作業中、もし運悪くN810が起動しなくなってしまった場合(私も一度なりました)は、慌てず騒がず本体の初期化をしましょう。初期化用のツール(本来の用途はSoftware Updater)は以下で提供されています。
Nokia USA - Software update - Nokia N810 supporthttp://www.nokiausa.com/A4686323ツールをダウンロードしてインストールしたら、
1.N810の電源を切る(切れなければ電池抜く)
2.十分に充電したらACアダプタを外す
3.Software Update Wizardを導入したPCにUSBケーブルで接続する
4.Swapキー(左側の四角が2つ重なったアイコンのヤツ)を押しながら電源ON
5.PC側でSoftware Update Wizardを起動する
6.指示に従ってアップデート開始
とすれば元に戻ります。Don't panic!
ちなみに戻しの手順はいつもこちらのページを参考にさせていただいております。(感謝!)
サルにもわかるN810(OSアップデート) - 一口! - Yahoo!ブログhttp://blogs.yahoo.co.jp/hinoe_uma66/12835323.htmlEnjoy! ;-)