Raspberry Pi2 に Arch Linux ARM をインストール

Arduino界隈が、この時勢にモメにモメているようですね。
欧州によくありがちな裏切り裏切られのパターンのようです。
詳しい記事はコチラ→http://makezine.jp/blog/2015/03/arduino-vs-arduino.html
私はもともと70MHz以下のコアにはあまり興味がありませんので・・・Arduinoはもう放っておきましょう。


最近mbedで遊ぶ時間がなくなり、しばらく電子工作に手を付けれていません。
学生の頃はお金がなくても時間があった! でも今はお金があっても時間がない!
週休4日を未来永劫完全保証強制するホワイトすぎる就職先ないかなぁ・・・。


raspberryPi2_1.png
raspberryPi2_2.png


それはそうとゴールデンウィークが近づいてきましたので、Rasberry Pi2を買いました。
買ったのはelement 14のバージョン(パッケージが違うだけなのかな?)
コレね→http://www.marutsu.co.jp/pc/i/267991/
どうでもいいけど Ras p berry なんですね。
ずっと Rasberry だと思ってました。



ゴールデンウィークにこれで遊ぶために、OSをインストールすることにします。
OSはド素人向けにNOOBSが用意されていて、
SDカードにzipを展開して起動すると、OSをインストールするメニューが表示される便利なやつです。
ダウンロード一覧にあった「Arch Linux ARM」を入れたかったのですが
Raspberry Pi2では「No support」となっており(2015.04.17現在)、たとえ選択してインストールしたとしても起動しません。
(せっかく時間かけてダウンロードしたのに・・・)
Arch Linux ARMの公式を見ると、Instllationの部分に何やらlinuxのコードが書いてあります。
つまり、自分で全部やれと。
内容をざっと列挙すると、

  1. SDカードに
    1. FAT32のパーティション100MBと、
    2. 残りすべての領域を使ったext4のパーティション

    を作って

  2. bootっていうマウントポイントににFAT32のパーティションをマウントして、
  3. rootにていうマウントポイントにext4のパーティションをマウントしてから
  4. 公式からPi2用のイメージをダウンロードして、
  5. rootのマウントポイント側に全部展開してから、
  6. rootのマウントポイント側にある、「boot」フォルダの中身を丸ごとbootのマウントポイント直下に移動(コピーじゃない)
  7. あとは両方アンマウントして
  8. SDカードをPi2の本体に差し込んで起動してね!
raspberryPi2_disk.png

って書いてある。
ここで「あ!よゆうじゃん!」とか言ってWindowsですべてできると思った?
(ヾノ・∀・`)ナイナイ
Windowsにcygwinをインストしていけるやん! → cygwinからSDにFAT32パーティションを作ることができない
WindowsのPowerShellとDiskpartがあるじゃん! → SDカードに複数のパーティションを作ることはできない
cygwinとDiskpartを合わせて一見最強に見える! → 一つ目のパーティションを作成したら詰む
Windowsにext4作成できるやつをインスト! → FAT32が検出された時点でetx4にドライブレターが割り当てできなくなる

疑うならやってみてください!

ということでWindows単体では無理だということが判明したので、どこかからLinuxの環境を調達しましょう。
一番お金がかからない方法だと、WindowsにVMware Playerを入れて、仮想ディスク作成して
RedHat系(FedoraとかScientificLinux)のLinuxのデスクトップ環境をインストール。
(CPUにVT技術入ってないと仮想化できないけどね)
Linuxの実環境が手に入ればこっちのもん。
ゲストOS(Linux)にSDカードを投げて、GUIからちゃちゃっとパーティションを作ってしまえます。

▲最終的にこんな感じになる
別にGUIで作らなくても、CUIから一個一個コマンドを打っていっても問題ありません。
(もちろんのことながら全部rootでやる必要があります。fedoraならsudoかな?)
それこそ公式のとおりにfdisk使ってSDカードにパーティションを切っていけば余裕。
ここで素直に書いてある通りにfdisk /dev/sdXとか打っちゃうのはガキ。
/dev/sdXは/dev/sdcとか/dev/sdeとかのSDカードに割り当たっているものを入れる。
fdisk -l のコマンドで一覧が表示できるので、どれがSDなのかは自分で確認しましょう。

私の環境ではSDカードは/dev/sdcでした。

# fdisk /dev/sdc

o <ENTER>
p <ENTER>
n <ENTER>
p <ENTER>
1 <ENTER>
<ENTER>
+100M <ENTER>
t <ENTER>
c <ENTER>
n <ENTER>
p <ENTER>
2 <ENTER>
<ENTER>
<ENTER>
w <ENTER>
まぁよくわかんない人はGUIでやれってこと。
パーティションを切ったら、フォーマットしないといけないけど、
そこから先はコマンドでやったほうが分かりやすい。
まんま公式のとおり(といっても/dev/sdXとかは違うけど)打ち込んでいけばOK。
私の環境ではパーティション1が/dev/sdc1
パーティション2が/dev/sdc2でした。

# mkdir root
# mkdir boot
# mkfs.vfat /dev/sdc1
# mkfs.ext4 /dev/sdc2
(しばらく時間がかかる)
# mount /dev/sdc1 boot
# mount /dev/sdc2 root
# wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
(しばらく時間がかかる)
# tar -xpf ArchLinuxARM-rpi-2-latest.tar.gz -C root
(bsdtarはtarコマンドで代用OK)
(なんか警告いっぱい出る)
# sync
# mv root/boot/* boot
# umount boot root
# rm -r boot
# rm -r root

あとはSDカードをアンマウントして(仮想マシンの電源を落として)、SD引っこ抜いてPi2に差し込んで起動!
余裕で起動してラズベリーが4つ並ぶのはいいんだけど、しんどいのはここからなんだよなぁ・・・。
SSH設定してユーザー作ってアップデートして・・・・。
うん・・・ゴールデンウィークになったら本気だす・・・。


コメントを残す