Jp:Running Linux from an SD card

From Pandora Wiki
Revision as of 05:28, 21 June 2011 by Popz (talk | contribs)
Jump to: navigation, search

はじめに

ファームウェアの紹介ページで説明されているように、PandoraはSD card Flag gb.png からのシステム起動も可能です。このチュートリアルでは、ブートできるAngstromのオペレーティングシステムのコピーを使用して、SDカードを作成するために必要な手順を説明します。


ファームウェアのコピーを取得する

このトピック Flag gb.png で説明された、PandoraのNAMDからデータを取得するために使用できる方法があります。それは、単にtarファイルを抽出するだけで簡単です。

  • ここ (pandora-rootfs.tar.bz2 が何をするのか) Flag gb.png を見て下さい、そして公式のOpenPandoraのサイトから最新バージョンを入手して下さい。このファームウェアのバージョンが、不安定でテストされていないかもしれないことに注意してください!
  • また、SDカードのパーティションに、NAND上で動作するファームウェアをコピーすることができます。これは、以下の独自のセクションに示す通りです。

SDカードのパーティション

このステップはオプションです。

SDカードをいくつかのパーティションに分割したい場合(見て、Jp:Running Linux from an SD card#ブート用マルチパーティションSDカードの作成方法)は、パーティションテーブルを作成するために、Pandoraのcfdiskコマンドラインツールを使用することができます。Pandoraのファームウェア(Zaxxon HF5のような)は、FATパーティションをフォーマットするコマンドを持っていないことに注意してください、FAT/ext2/swapを使用する場合、後で別のシステム(Windows環境下で、ディスク管理ツールを使用)で、最初のパーティションをフォーマットする必要があります。

カードが左側のスロットにある場合:

sudo cfdisk -z /dev/mmcblk0

cfdisk -z は、クリーンなパーティションテーブルから始めます - 現在設定されているかを確認したい場合は、cfdisk /dev/mmcblk0を使用してください。

プライマリパーティションのみを使用してください(よって4分割までに限定です)。

ext2にSDカードをフォーマット

あなたは単一のext2パーティションを持つように、SDカードをフォーマットする必要があります; ext3 も同様[1] で、より信頼性が高い[2]です。あなたが好むなら、2番目にswapパーティションを持つことができます。GUIツールと同様に使用できるコマンドラインツールがあります。

コマンドラインを使用

正しいデバイスにアクセスしているのを確認してから、これらのコマンドラインツールを使用するように注意してください。あなたに尋ねることはありませんが、デバイス上のデータが破壊されます。このコマンドは、空のext2フォーマットされたファイルシステムを持つ、既存のパーティションに置き換えます(ほとんどのSDカードは、出荷時に単一のFATパーティションで設定されています)。/dev/mmcblk0p1 をあなたのSDカード(左のスロットで、firstパーティション)と仮定し、LABELNAME をパーティション名とします:

mkfs.ext2 -L LABELNAME /dev/mmcblk0p1

もしSDカードをフォーマットして問題が発生した場合、最初にそれをunmountしてみてください:

sudo umount /media/[LABELNAME of SD card]

GUIツールを使用

GUIツールを使用すると、誰かが使用する方法を指示する必要がないほど簡単です。今のところこれは読者のために、宿題として残しておきます(誰かが使用方法を書き込むまで)。

コピーとブート

SDカードにファイルをコピー

ダウンロードした(もしくは作成した)tar.bz2ファイルを持つディレクトリに移動(cd 実行)して次を実行:

sudo tar -xvjf <tarfile>.tar.bz2 -C <SD card>

Pandora上でこれを行う場合、<SD card> は /media/mmcblk0p1 のようになります(Pandoraの第一(左側)SDカードスロットの場合)。ラベルがない場合、Ubuntu上では /media/disk のようになります。また、このためのGUIツールを使用して試すことができますが、私は強運を持っていませんでした。

もしくはNANDからSDカードにファームウェアをコピー

以下は、パスワードを聞いてきます。すべてにsudoを使うのは無駄だろうと思ったので、すべての操作はroot権限が必要です。 root下にmountされた他のファイルシステム(カーネルの仮想ファイルシステム /proc および /sys 、そしてSDカードのような)と共に、root fsを別の場所("/mp")にmountします。これにより、SDのファイルシステムにNANDの内容のライブコピーを取ることができます。

sudo su
mkdir /mp
mount --bind / /mp
cp -va /mp/* /media/<SD card>
umount /mp
rmdir /mp
exit

boot.txtの設定

boot.txt(または、自動的にbootしたい場合はautoboot.txt)と呼ばれる新しいファイルを作成し、コピーして以下のテキストを貼り付けます。SDカードのrootのrootにそのファイルをコピーします。



boot.txt (公式ファームウェアサイトより Flag gb.png )

setenv bootargs debug root=/dev/mmcblk0p1 rw rootdelay=2 console=ttyS0,115200n8 vram=6272K omapfb.vram=0:3000K
ext2load mmc 0 0x80300000 /boot/uImage-2.6.27.46-omap1
bootm 0x80300000

注記: Hotfix 5 だと、boot.txt はこのようになる (uImageの名前は変更される):

setenv bootargs debug root=/dev/mmcblk0p1 rw rootdelay=2 console=ttyS0,115200n8 vram=6272K omapfb.vram=0:3000K
ext2load mmc 0 0x80300000 /boot/uImage
bootm 0x80300000

この boot.txt では、カードがext2でフォーマットされ、SDカードからカーネルをロードすると仮定していることも注意してください。ext2フォーマットされたSDカードから起動したくない場合は、 次を使って下さい boot.txt

setenv bootargs root=/dev/mmcblk0p1 rw rootdelay=2 vram=6272K omapfs.vram=0:3000K
ubi part boot && ubifsmount boot && ubifsload ${loadaddr} uImage && bootm ${loadaddr} && boot

この場合、ブートローダーが内部NANDメモリー上のカーネルを探して教えてくれます(テストが行われないことに注意)。

両方の boot.txt は、左側のSDカードスロット、最初のパーティションからブートしていると仮定しています。右のスロットから起動する場合には、"mmcblk0p1" から "mmcblk1p1" に変更しましょう。

ブート用マルチパーティションSDカードの作成方法

SDカードは、複数のパーティションを持つことが可能で、それらのいずれかからブート可能です。 例えば、以下のようにカード上に3つのパーティションがある場合:

  • パーティション1: FAT
  • パーティション2: ext2 (rootfsを配置する場所)
  • パーティション3: swap

1番目のパーティションのrootに(auto)boot.txtファイルを置き、U-Bootを2番目のパーティションからシステムをブートする正しい場所へ指示します。 これは、rootfsの場所を示すsetenvの "root" パラメータと、ext2loadの "mmc x:x" パラメータによって指示されます。 上記の例の場合は、以下のようなFATパーティションのrootにある (auto)boot.txt(Windows/ Macのコンピュータを使用して簡単に編集可能)が必要:

setenv bootargs debug root=/dev/mmcblk0p2 rw rootdelay=2 console=ttyS0,115200n8 vram=6272K omapfb.vram=0:3000K
ext2load mmc 0:2 0x80300000 /boot/uImage
bootm 0x80300000

注記: スロット番号は0(0は左のSDスロット、1は右のSDスロット)から始まり、パーティション番号は1から始まります!

おそらく同様に、FATパーティションのrootにカーネル (uImage) を置き、上記のようにブートするのに "ext2load" の代わりに "fatload" が使えます(これは、テストされていません!):

fatload mmc 0:1 0x80300000 uimage

システムのBoot

右肩ボタンを押しながらPandoraの電源を投入すると、SDカードから起動できます。(boot.txtの代わりにautoboot.txtを作成することを選択した場合、この手順は必要ありません) 。この場合未設定の画像になり、起動に少し時間がかかり、そして初回起動のダイアログが表示されることに注意してください。

NANDへのアクセス

一度SDからシステムを起動したあと、NANDのrootfsから起動したい場合があります。その時は以下のように行って下さい。

sudo mkdir /mnt/nand
sudo ubiattach /dev/ubi_ctrl -m 4
sudo mount -t ubifs ubi0:rootfs /mnt/nand

他の情報

システムにアクセス可能な領域を増やすために、SDカードを使用する代わりの方法は、 OS Extend Flag gb.png です。これは、rootファイルシステムが複数の物理デバイス上に存在することができます。

参考