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

障害に強いファイルシステム

電源障害に対応するためには、単に高耐久な microSD カードではなく、電源障害対策機能のある microSD カードを利用する必要があります。しかし、それだけでは不完全です。Raspbian for FA のセットアップでは、ファイルシステムを Btrfs に変更することでソフトウェアの耐障害性を高めています。

確実なエラー処理

標準設定の Raspbian は一般的なパソコンと同じように、メモリ不足状態では不安定な動作をする可能性があります。Raspbian for FA のセットアップでは、メモリ不足のような軽微なエラーでも 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
ウォッチドッグ
メモリ不足発生時の動作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 を用意してください。
    Raspbian for FA は Raspberry Pi 2 B / 3 B / 3 B+ で動作を確認しています。
  2. 電源障害対策機能を備えた microSD カードを用意してください。
    推奨品は SanDisk SDSDQAF3 (XI) です。 → Mouser で検索
  3. microSD カードに、2019年4月8日リリースの Raspbian Stretch Lite を書き込んでください。
    - https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2019-04-09/
    イメージの書き込みには balenaEtcher を利用すると、zip ファイルをそのまま書き込みできるので便利です。
  4. Raspberry Pi を起動し、ログインしてください。
  5. 任意のディレクトリでセットアップスクリプトをダウンロードしてください。ダウンロードしたスクリプトには実行権限を設定しておきます。
    $ curl -O https://sakilabo.jp/fapp/raspi-setup-fa.sh
    $ chmod a+x raspi-setup-fa.sh
  6. セットアップスクリプトを実行してください。
    セットアップには3つの動作モードが用意されています。
    - International: $ sudo ./raspi-setup-fa.sh
    - Japanese: $ sudo ./raspi-setup-fa.sh jp
    - Sakilabo: $ sudo ./raspi-setup-fa.sh sakilabo

セットアップは以下の流れで進行します。

セットアップスクリプトを実行
 ↓
セットアップのメッセージに従って再起動
 ↓
セットアップスクリプトを実行
 ↓
セットアップのメッセージに従って電源OFF
 ↓
ファイルシステム変換 → ファイルシステムの変換方法
 ↓
起動、セットアップスクリプトを実行
 ↓
セットアップ完了

制限事項

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