よりすすんだ内容 ― Raspbianの設定

 unbrickには、つぎのようなデバイスがくみこまれています。

これらのデバイスを有効にするには、Raspbianに追加で設定をする必要があります。

※ unbrick用に設定したRaspbianを書きこみずみのマイクロSDカードをエスリルから購入することもできます。 以下の手順は、じぶんでSDカードにRaspbianをインストールするばあいに必要になる手順です。

unbrickのデバイスドライバーのインストール

 unbrickでは、つぎのようなデバイスドライバーのインストールが必要になります。

インストール手順

 デバイスドライバーとユーティリティーは、ソースコードをGitHubから公開しています。

1. Raspbian Stretch with desktop imageをダウンロードする

 https://www.raspberrypi.org/downloads/raspbian/ からRaspbian Stretch with desktopをダウンロードします。

2. RaspbianのイメージをSDカードにかきこむ

 かきこみは、Etcherをつかうとかんたんです。

3. cmdline.txtとconfig.txtをSDカードにコピーする

 unbrick/boot/cmdline.txtとunbrick/boot/config.txtを、SDカードの/bootパーティションにコピーします。

4. unbrickを起動する

 unbrickに、SDカードをさしこみ、キーボード、マウス、ネットワークアダプターをつなげます。 準備ができたら、unbrickを起動します。 起動後、ネットワークアダプターの設定をしてください。

5. unbrickディレクトリーをホームディレクトリーにコピーする

 ターミナルをひらきます。 unbrickディレクトリーを/home/pi/unbrickにコピーします。

$ cd
$ git clone https://github.com/esrille/unbrick.git

※ Linuxをつかっていれば、手順3で、unbrickディレクトリーをSDカードの/rootfs/home/pi/unbrickにコピーしておくこともできます。

6. デバイスドライバーとユーティリティーをインストールする

 つぎのコマンドを実行します。

$ cd unbrick
$ ./install.sh

 install.shが完了したら、unbrickを再起動します。再起動後、アナログスティックやタッチスクリーンなどがつかえるようになります。

※ unbrick用のデバイスドライバーは、LinuxのDynamic Kernel Module Support(DKMS)をつかって管理しています。 Linuxカーネル内部のインターフェイスに変更がなければ、カーネルのアップデートに自動的に対応していきます。

/boot/config.txtの設定

液晶ディスプレイ

 Raspbianの標準のオーバーレイ(dpi24)を指定して液晶ディスプレイを有効にします。


/boot/config.txt

dtoverlay=dpi24
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0
framebuffer_width=800
framebuffer_height=480
framebuffer_depth=24
enable_dpi_lcd=1
display_default_lcd=1
dpi_group=2
dpi_mode=87
dpi_output_format=475175
hdmi_timings=800 0 40 48 88 480 0 13 3 32 0 0 0 60 0 32000000 6
display_lcd_rotate=2

参考: DPI (Parallel Display Interface)

I2C ブリッジ

 unbrickのI2CポートはRaspberry Piとはべつのマイコンにつながっています。 Raspberry PiとマイコンはUARTで接続しています。 このUARTをつかったI2Cブリッジの設定をします。

⚠︎ Raspberry PiのI2Cはクロックストレッチングをサポートしていません。 そのため、unbrickではこのような構成をとっています。

/boot/config.txt

dtoverlay=uart0,txd0_pin=32,rxd0_pin=33,pin_func=7
enable_uart=1
dtoverlay=eub_i2c

 I2Cブリッジは、つぎのsystemdサービスといっしょにうごいています。

マザーボード マルチファンクション デバイス

 unbrickのマザーボード上のデバイスをまとめて有効にします。 液晶ディスプレイのバックライトのあかるさを調整したり、タッチパネルを使用できるようになります。


/boot/config.txt

dtoverlay=eub_mobo

 タッチパネルのキャリブレーションは、つぎのファイルのTransformationMatrixで指定しています。

電源ボード マルチファンクション デバイス

 unbrickの電源ボード上のデバイスをまとめて有効にします。 電池残量を監視したり、アナログスティックをマウスとして使用したりできるようになります。


/boot/config.txt

dtoverlay=eub_power

※ 表示される乾電池残量は、スタンダードなニッケル水素2次電池を使用したばあいのめやすです。 じっさいの乾電池の残量とはかならずしも一致しません。

※ アナログスティックはunbrick内部では電源ボードにつながっています。

 電源ボードは、つぎのsystemdサービスをつかいます。 eub-poweroffは、Raspbianが電源off状態にはいったあと主電源をきるためのサービスです。

RTC (カレンダークロック)

 unbrickのRTCボードにI2Cブリッジでアクセスできるようにします。 デバイス ドライバーはRaspbianの標準のドライバーをつかっています。 オーバーレイ ファイル(eub_rtc)のみunbrick専用のものになります。


/boot/config.txt

dtoverlay=eub_rtc

 RTCのよみこみは、つぎのファイルで設定しています。

オーディオDAC

 unbrickのサウンド ボード上のオーディオDACを有効にします。


/boot/config.txt

dtoverlay=i2s-gpio28-31
dtoverlay=dtoverlay=eub_dac