* RaspberryPiのUART(シリアルポート)を有効にする [#t14b7eb1]
 
 対象はBluetooth内蔵のRaspberryPi 3 Model-Bと同ZeroWです。
 
 * 下準備 [#lceaae94]
 下記全てが終わってsshでログインできるところまで完了しているとします。~
 - Raspbian stretchイメージをSDカードにコピー
 - /boot/wpa_supplicant.configの作成
 - /boot/ssh.txtの配置
 
 * raspi-configでuartを有効にする [#m2d6e175]
 
  $ sudo raspi-config
 
 メニューが出たら、次の順で進んでゆく
 
  5 Interfacing Options  Configure connections to peripherals
  ↓
  P6 Serial      Enable/Disable shell and kernel messages on the serial connection
  ↓
  Would you like a login shell to be accessible over serial?
  <NO>
  ↓
  The serial login shell is disabled
  The serial interface is enabled
  <OK>
  ↓
  Would you like the serial port hardware to be enabled?
  <YES>
  ↓
  <FINISH>
 
 これでUARTが有効になりました。~
 このやり方ならUARTをコンソールにせずユーザに解放する設定になるはずですが、念のため確認します。
 
 * /boot/cmdline.txtの確認と編集 [#web94049]
 
  $ sudo nano /boot/cmdline.txt
 
 nanoエディタで開くとこんな感じになっています
 
  wc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=PARTUUID=01b0b38f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
 
 この文字列の中から、
 
  console=serial0,115200
 
 が存在したら削除します。~
 
 このとき、この例文をそのままコピペしないこと。~
 root=のところはUUIDになっているので、ここが現物と違っていると起動できなくなります。~
 
 また、末尾に
 
  plymouth.ignore-serial-consoles
 
 が無かったら追加します。
 
 最終的にこんな感じになると思います。(root=のところ以外)
   wc_otg.lpm_enable=0 console=tty1 console=serial0,115200 root=PARTUUID=01b0b38f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
   wc_otg.lpm_enable=0 console=tty1 root=PARTUUID=01b0b38f-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
 
 
 Ctrl-X → Y [Enter]で、保存してnanoエディタを終了します。
 
 * /boot/config.txtの編集 [#u6cb1fc4]
 
  $ sudo nano /boot/config.txt
 
 一番下に
 
  # GPIO serial enable for pi3 & pizerow
  dtoverlay=pi3-disable-bt
 
 を、追加します。(uartを占有したいのでBluetoothを無効にする設定です)~
 同時に、次のとおりuartがコメントアウトされていないか確認しておきます。
 
  # Enable uart(/dev/ttyAMA0)
  enable_uart=1
 
 さらに、
 
  #dtparam=i2c_arm=on
 
 が、あったら#を外して
 
  dtparam=i2c_arm=on
 
 に書き換えておきます。これでI2Cも使えるようになります。~
 ここまででUART(とI2C)が使えるようになりますが、同時にBloetoothが無効になります。~
 BluetoothとUARTは同時に使えないからです。
 
 どうしてもBluetoothを使いたい人は、USBにBluetoothドングルを挿しましょう。~
 何が使えるかはわかりません。
 
 * gettyを停止させます [#v15f6828]
 
 次の2つを実行します。
 
  sudo systemctl stop serial-getty@ttyAMA0.service
  sudo systemctl disable serial-getty@ttyAMA0.service
 
 これでUARTが完全に解放されました。~
 ここから/dev/ttyAMA0が自由に使えます。
 
 * ユーザーpiがdialoutグループに登録されているか確認します [#h5b296be]
 
  $ grep dialout /etc/group
  dialout:x:20:pi
 
 こうなればOK~
 パーミッションも問題ありません。
 
 一度RaspberryPiを再起動してから、/dev/ttyAMA0を使う作業をしましょう。

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS