UbuntuとRaspberry Pi 3をシリアルで接続したい。ディスプレイやネットワークを使わず、Raspberry Pi 3(のコンソール)を使いたい。Windows 10ではドライバをインストールする必要があったが、Ubuntuでは何も必要なかった。「Ubuntu でラズパイとシリアル接続」の通りにやったらなんの問題もなく接続できた。
手順
RasPiでは、Bluetoothを潰してシリアルを使う設定に
Raspberry Pi 3 シリアルコンソール&シリアル通信が詳しく解りやすい。
/boot/config.txt
末尾にdtoverlay=pi3-miniuart-bt
を追加した。
上記サイトでは、enable_uart=1
を追加している。私は設定しなくてもシリアルコンソールが使えた。設定しなくても自動で認識するのかもしれない。
安定させるためには、core_freq = 250
も設定したほうがいいみたい。設定しなくてもシリアルコンソールは使える。私としては、リアルタイム性の確認をしたいので、後で追加することとする。
/boot/cmdline.txt
1行目は、末尾のquiet splash plymouth.ignore-serial-consoles
を削除した。
編集前(購入直後)
dwc_otg.lpm_enable=0
console=serial0,115200 console=tty1
root=PARTUUID=f8d5a75e-02 rootfstype=ext4
elevator=deadline fsck.repair=yes rootwait
quiet splash plymouth.ignore-serial-consoles
編集後
dwc_otg.lpm_enable=0
console=serial0,115200 console=tty1
root=PARTUUID=f8d5a75e-02 rootfstype=ext4
elevator=deadline fsck.repair=yes rootwait
# これも設定したが要らないかもしれない。
dhci_bcm2708.enable_llm=0
console=serial0,115200
は削除しなくてもシリアルコンソールは使えている。
serial-getty@ttyS0.service
を止めなくてもシリアルコンソールは使えている。
RasPiとホストをUSB-TTLケーブルで接続する(ホスト)
Ubuntuでデバイスが認識されているか確認する。
ls -al /dev/tty* | grep USB
# /dev/ttyUSB0
ls -l /dev/serial/by-id/
# usb-Prolific_Technology_Inc._USB-Serial_Controller_D-if00-port0 -> ../../ttyUSB0
sudo chmod 666 /dev/ttyUSB0
ターミナルを用意する(ホスト)
sudo apt install cu
接続(ホスト)
sudo cu -s 115200 -l /dev/ttyUSB0
# 終了するときは「~.」と入力。