Banana Pi
メーカーのウェブサイト より:
- Banana Pi はオープンソースのシングルボードコンピュータです。Android 4.4, Ubuntu, Debian, Rasberry Pi イメージ, Cubieboard イメージなどを動作させることができます。AllWinner A20 SoC を使っており、1GB DDR3 SDRAM が搭載されています。
BananaPi は ARMv7-A アーキテクチャで作られたミニマルなコンピュータです。詳細は プロジェクトのページ や 技術仕様書 を見て下さい。
Allwinner SoC を使うため、Banana ボードはドキュメントがよくまとまっている Sunxi Linux カーネルが動作します。ハードウェアやカーネルに関連することについては、Sunxi Wiki も参照してください。
目次
イントロダクション
この記事は Raspberry Pi のページが元になっています。さらに、この記事は詳しい手順を解説したセットアップガイドではなく、あくまで読者が既に Arch 環境をセットアップした経験があることを前提とします。Arch の初心者はビギナーズガイドを読むようにしてください。特にユーザーの作成やシステムの管理などについてよくわからないときは必読です。
Arch Linux ARM のインストール
ソースのダウンロード
まず、あなたのボードに合わせて適当なイメージをダウンロードします。Banana Pro で Banana Pi 用のイメージをインストールことも可能ではありますが、無線のサポートなどの機能は含まれていません。
こちらの Pi 用の Arch / LXDE ディストリビューション のように、カスタマイズされたイメージを使うこともできます。
インストール
Banana Pi のドキュメント を見て下さい。Arch Linux イメージ をダウンロードして、展開し、SD カードに書き込む必要があります。SD カードの容量が 4GB 以上あるときは、parted
などのツールでファイルシステムをリサイズできます。
ネットワーク
SSH
デフォルトで SSH デーモンがインストールされるようになっています。デフォルトのログインデータは:
タイプ | ユーザー名 | パスワード |
---|---|---|
Root | root
|
bananapi
|
User | bananapi
|
bananapi
|
X.org ドライバー
Banana Pi 用の X.org ドライバーは xf86-video-fbdev パッケージでインストールできます。
トラブルシューティング
HDMI 1080p 解像度
デフォルトの 1280x720/60Hz から 1920x1080/60Hz に解像度を変更する方法は2つあります。
手動で解像度を変更
利用可能な HDMI 解像度を確認:
# cat /sys/class/graphics/fb0/modes
適当な解像度に変更、例:
# echo "D:1920x1080p-60" > /sys/class/graphics/fb0/mode
起動時に自動的に解像度を設定
uEnv.txt
のカーネルパラメータを編集して script.bin
に必要なパラメータを記述する必要があります。script.bin
はバイナリファイルのため、Sunix をツールを使ってバイナリファイルを script.fex
テキストファイルに変換して、変更を加えてから、script.bin
に再変換してください (Sunxi fex ガイド, Sunix カーネル引数, スレッド を参照):
$ cd $HOME $ mkdir $HOME/boot $ sudo mount /dev/mmcblk0p1 $HOME/boot $ cp $HOME/boot/script.bin $HOME/script.bin $ pacman -S sunxi-tools $ bin2fex $HOME/script.bin $HOME/script.fex
作成された script.fex
を好きなエディタで編集します。[disp_init]
セクションを探して以下のパラメータを変更・追加してください:
screen0_output_mode = 10 fb0_framebuffer_num = 3 fb0_scaler_mode_enable = 0 sunxi_fb_mem_reserve = 32
変更を保存したら、fex2bin
を実行してから、script.bin
をバックアップして置き換えます:
$ $HOME/sunxi-tools/fex2bin $HOME/script.fex $HOME/script.bin $ sudo cp $HOME/boot/script.bin $HOME/boot/script.bin.backup $ sudo cp $HOME/script.bin $HOME/boot/script.bin
バックアップの作成後、root 権限で $HOME/boot/uEnv.txt
の disp.screen0.output_mode
を変更できます:
disp.screen0.output_mode=10:1920x1080p60
ブートパーティションをアンマウントして再起動したら、1080p/60Hz になっているはずです。
アイドル状態でディスプレイがオフになった後にオンにならなくなる
一定時間アイドル状態が続いてディスプレイがオフになった後、オンに戻らなくなる問題が発生する場合、DPMS を無効化することができます。その後、以下の X11 引数をディスプレイマネージャの適当な設定に追加してください:
-s 0 -dpms
例えば、SLiM を使っている場合、/etc/slim.conf
を編集します:
xserver_arguments -nolisten tcp vt07 -s 0 -dpms
デバイスを再起動したときなど、何らかの理由でディスプレイがオフから変えられなくなったとき、一時的に解像度を変更することでオンにすることができます:
# echo "D:1280x720p-60" > /sys/class/graphics/fb0/mode # echo "D:1920x1080p-60" > /sys/class/graphics/fb0/mode
ベンチマーク
実際に接続されているハードウェア (例: HDD) によって、ベンチマークの値は変わってきますが、Banana Pi のパフォーマンスを知るのにある程度は役に立つでしょう。
SATA HDD
2つの異なる外部 HDD (3.5インチ、外部電源) を SATA-L と eSATA-I ケーブルで Banana Pi に接続しています。読み書き速度は dd のものです (3回実行した平均):
HDD 1 (2 TB) | HDD 2 (4 TB) | |
---|---|---|
読み取り速度 | 81.8 MB/s | 115.5 MB/s |
書き込み速度 | 37.6 MB/s | 39,4 MB/s |
ネットワーク
Allwinner A20 SoC に制限があるため、BPi はギガビットイーサネット NIC の理論値の帯域幅を完全に使うことはできません。それでも BPi は約 510 MBits/s を出すことができます。
ベンチマークは iperf
を使って実行しました (3回実行した平均値)。クライアントの BPi とサーバーはギガビットイーサネットによってギガビット対応のスイッチに接続しています。