2017/01/18修正
ラズベリーパイ3にシリアルコンソールでログインしたい。
少し古い情報だと、ラズベリーパイ3はオンボードのBluetoothの影響で、すこし複雑な設定を行う必要があるとなっているが、最近のラズベリーパイ3向けのカーネルでは、config.txt
にenable_uart=1
とすることで使用できる。
ここではYoctoProjectのmeta-raspberrypiでシリアルコンソールを使用する方法について記述する。
USB-シリアル変換モジュール
最近のPCはシリアルポートを搭載しているものが少ない。、シリアルポートがないPCを使用する場合は、USBポートをシリアルとして使用するためにUSB-シリアル変換
を行う必要がある。
変換モジュールとラズベリーパイ3の接続
秋月の変換モジュールはUSBポートからの給電で動作することができるため、ラズベリーパイとはTXD
とRXD
を接続するだけで使用できる。
変換モジュールのジャンパを次のようにショートさせる。
ジャンパ | 接続 | 説明 |
---|---|---|
J1(3ピン) | 1-2間をショート | I/O電圧を3.3V |
J2(2ピン) | ショート | USBバスから5Vを給電 |
これらは購入時そのままのはず。
ラズベリーパイ3との接続を次に示す。
ラズベリーパイ3側の使用ピンを示す。
ピン | GPIO | 機能 |
---|---|---|
8 | GPIO14 | UART0_TXD |
10 | GPIO15 | UART0_RXD |
14 | - | GND |
GNDはピン14の他にも複数あり、どれに接続してもよいが、接続し忘れると悲しいことになる。
Linuxの作成
今回はmortyブランチで作業する。
ベース環境の取得
$ git clone git://git.yoctoproject.org/poky.git -b morty $ cd poky $ git clone git://git.yoctoproject.org/meta-raspberrypi
meta-raspberrypiはまだmortyブランチがないのでmasterを使用する。
oe-init-build-envの読み込み
下記を実行する。
$ cd ~/rpi3 $ source poky/oe-init-build-env
これにより、クロスコンパイルに必要な環境変数が設定され、ビルドディレクトリに移動される。
meta-raspberrypiをビルド対象に追加
次のコマンドを実行する。
$ bitbake-layers add-layer ../poky/meta-raspberrypi
local.confの修正
次の行をlocal.confの先頭の方に追加する。
MACHINE ?= "raspberrypi3" DL_DIR ?= "${HOME}/work/yocto/downloads" ENABLE_UART = "1"
ENABLE_UART = "1"
でシリアルコンソールが有効になる。
bitbakeの実行
$ bitbake rpi-basic-image
SDカードの作成
$ sudo dd if=tmp/deploy/images/raspberrypi3/rpi-basic-image-raspberrypi3.rpi-sdimg of=/dev/sdb bs=40M
/dev/sdb
はSDカードのデバイス。環境により変更が必要な場合がある。
動作確認
作成したSDカードをラズベリーパイ3に挿入後、PCのUSBポートと変換モジュールを接続して、PC上でminicomなどを起動する。この時フロー制御は無効にしておくこと。
この状態でラズベリーパイ3に電源を入れるとログイン画面が表示される。