2016/05/21

[bbg]BegleBone Green用のLinuxを作ろう

BeagleBone Greenが届いたので、Linux環境を作ろう。
話があっちこっち飛んで、済まんね。

 

作ろう、と書いたものの、サイトの通りにやるだけだ。
https://eewiki.net/display/linuxonarm/BeagleBone+Black
Greenは、BeagleBone(無印)とBeagleBone Blackのどちらに近いのかわからんかったが、Blackの方に近いようだ。

  • CPU
    • BBG : AM335x 1GHz (Cortex-A8)
    • BB : OMAP3530 720MHz (Cortex-A8)
  • RAM
    • BBG : 512MB
    • BB : 256MB
  • FLASH
    • BBG : 4GB
    • BB : 256MB

こ、このくらいにしておくか・・・。
今の人はこれを見ると「どっちも遅いやん」と思うかもしれないけど、私が学生の時なんて研究室にIntel 200MHzのマシンが来て「うおー」って思った記憶があるくらいだから、けっこう感慨深いのだよ。
GHzなんてほんの最近という気がする。
歴史の年表で、地球の誕生から近代までの人口を折れ線グラフにしたものがあるけど、あのイメージだ。


まず、パソコンで動くLinux環境を用意する。
私はWindows10でVirtualBoxを使っている。
Xubuntu14.04なのだが、あまりバージョンは気にしなくてよかろう。
そこまでできれば、上から順番にやるだけだ。

[ARM Cross Compiler: GCC]
書いてあるまま。

[Bootloader: U-Boot]
書いてあるまま。

[Linux Kernel]
checkoutをどれにするか迷うが・・・私はorigin/am33x-v4.4にした。
スクリプトを動かすとmenuconfigが出てくるので、好きにする。
何もしなくても大丈夫じゃないかね。
ビルドし終わると、「Script Complete」の次にexport文が出力されるので、それをコンソールで実行させるのがよい。
私の場合では「export kernel_version=4.4.10-bone10」を実行した。

[TI BSP]
git branchをrebaseしていないなら使うな、と書いてあるから、スルーしてみよう。

[Root File System]
debianかubuntu、あるいはsmall flashから選べるようだ。
私はubuntuにした。

[Setup microSD card]
まず、lsblkで様子を見てみる。
VirtualBoxだと、メニューの「デバイス>USB」からSDカードを指したデバイスを選んでおかないと見えない。SDカードだとFATフォーマットされていそうだから、Linuxが認識していればデスクトップなどにマウントできそうなアイコンが表示されるかも。
lsblkすると、デバイスとサイズが表示されるので、SDカードのサイズらしきものを見るとよい。
心配なら、一度抜いてからlsblkし、挿してからしばらくしてlsblkし、増えたやつがそれだと思えばよいのではなかろうか。
そのデバイスを、exportする。
うちはsdbだったので、

export DISK=sdb

とした。

そして、ddで全部zeroにしたあと、install bootloader。
えっ、これもddなの?
いままではMLOもu-boot.imgも、VFATのパーティションを作ってコピーしていたのだ。
まあ、時代が変わったということかね。

そのあと、sfdiskのバージョンを調べて、それによって変える。
うちのは2.25以下だったので、下の方(--unitがある方)を実行。
mkfs.ext4のバージョンも1.42以下だったので、下の方を実行。
フォーマットが終わったら、/media/rootfsにマウント。

[Backup Bootloader]
ほう、ここでMLOとu-boot.imgをSDカードにコピーですか。
そのコピーも、本番で使うのでは無く、バックアップの意味合いのようだ。

[Dealing with old Bootloader in eMMC]
既存のeMMCにあるブートローダをクリアしたくない場合は、/media/rootfsにuEnv.txtを置くことで回避できるらしい。
でも、この後でもuEnv.txtをコピーする工程があるのよねぇ。

[Install Kernel and Root File System]
ここに出てくるexportの説明が、前の「Linux Kernel」のビルド後に出てくる話だ。

[Copy Root File System]
やるだけ。

[Set uname_r in /boot/uEnv.txt]
少し前にuEnv.txtが重なる、と書いたが、パスが違うな。

[Copy Kernel Image]
[Copy Kernel Device Tree Binaries]
[Copy Kernel Modules]
[File Systems Table (/etc/fstab)]
[Networking]
ひたすらやるだけ。
Networkingはnanoでテキストエディタが開くので、その次の「auto~」をまるまる貼り付けて、Ctrl+x、Y、Enter、などとして上書きする。viでもなんでもよいだろう。

[Networking: Using a shared SD card with Multiple BeagleBone]
何か知らんが、alwaysとeth0が見えたので、どのBeagleBoneに挿してもネットワークがeth0で見えるようにしてくれるとかか?

[Remove microSD/SD card]
syncしてumount。


さて、これでSDカードの準備はできたのだが、どうしたものか。
BeagleBoardの場合は、NANDにある方で起動していたので、USERボタンを押しながら起動させてSDカードを見ていたのだが。

image

あまり考えず、BBG上のJ1コネクタにUSBシリアル変換ケーブルを挿した。
そして電源ON!
・・・うん、SDカードから起動してくれた。
おめでとう、私!

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。