Raspbian (Raspberry Pi) を FA の現場で使うための、基本的なセットアップ方法を公開しています。

主な設定内容

ファイルシステムを変更する

高耐久な microSD カードを利用するだけでは、突然の停電に耐えられません。Raspbian for FA のセットアップでは、ファイルシステムを Btrfs に変更することで、ソフトウェアの耐障害性を高めています。

不安定な処理を止める

標準の Raspbian は一般的なパソコンと同じで、少しくらい不安定な状態でも動き続けるように設定されています。Raspbian for FA のセットアップでは、メモリ不足や I/O エラーの時には Raspberry Pi を再起動する設定とすることで、不安定な動作を避けるようにしています。

細かいところまで最適化する

ionice に対応する I/O スケジューラ設定、無線LANの省エネ制御を自動的に無効化する udev 設定、閏秒問題を避ける NTP 設定など…Raspbian for FA のセットアップでは、FA の経験が浅い IT 技術者では見逃してしまうような細かい部分まで、FA 向けに最適化しています。

標準の RaspbianRaspbian for FA
ファイルシステムext4Btrfs
ionice 対応
Locale en_GB.UTF-8 C / ja_JP.UTF-8
ウォッチドッグ
メモリ不足発生時の動作OOM Killer再起動
TCP再送タイムアウト15分以上約100秒
無線LAN省エネ制御無効化
I2C 通信速度安定化
スワップファイル無効化
NTPサーバー設定[0-3].debian.pool.ntp.orgtime.google.com
.xsession-errors 無効化

セットアップ方法

以下の URL で Raspbian for FA のセットアップスクリプトを公開しています。
https://sakilabo.jp/fapp/raspi-setup-fa.sh

  1. Raspberry Pi を用意してください。
    最新のセットアップスクリプトは Raspberry Pi 3 B で動作を確認しています。
  2. 電源障害対策機能を備えた microSD カードを用意してください。
    推奨品は SanDisk SDSDQAF3 (XI) です。 → Mouser で検索
  3. microSD カードに、2019年9月26日リリースの Raspbian Buster または Buster Lite を書き込んでください。
    - https://downloads.raspberrypi.org/raspbian/images/raspbian-2019-09-30/
    - https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-09-30/
    イメージの書き込みには balenaEtcher を利用すると、zip ファイルをそのまま書き込みできるので便利です。
  4. SSH 接続できるようにしてください。/boot パーティションに ssh ファイルを作るのが簡単です。
    - https://www.raspberrypi.org/documentation/remote-access/ssh/README.md
    > 3. Enable SSH on a headless Raspberry Pi (add file to SD card on another machine)
  5. Raspberry Pi を起動し、SSH でログインしてください。
  6. 任意のディレクトリでセットアップスクリプトをダウンロードしてください。ダウンロードしたスクリプトには実行権限を設定しておきます。
    $ curl -O https://sakilabo.jp/fapp/raspi-setup-fa.sh
    $ chmod a+x raspi-setup-fa.sh
  7. セットアップスクリプトを実行してください。
    セットアップには3つの動作モードが用意されています。
    - International: $ sudo ./raspi-setup-fa.sh intl
    - Japanese: $ sudo ./raspi-setup-fa.sh jp
    - さきラボ: $ sudo ./raspi-setup-fa.sh sakilabo
  8. 最初のセットアップが終わると Raspberry Pi の電源が切れます。microSD カードを取り出してください。
  9. ファイルシステム変換を Btrfs に変換します。 → ファイルシステムの変換方法
  10. Btrfs になった microSD カードで Raspberry Pi を起動し、SSH でログインします。
  11. もう一度 [7] のセットアップを実装します。

制限事項

  • Btrfs はスワップファイルに対応していません。仮想メモリが必要な場合は swap パーティションを作成する必要があります。
  • ext4 の拡張属性を対象とした処理 (chattr コマンドなど) は動作しません。