[小ネタ]Raspberry Piをコマンドラインでセットアップしてみた

Raspberry Piを設定するために使用するraspi-configコマンドをコマンドラインで実行し、Raspberry Piをヘッドレスでセットアップする方法についてご紹介します。
2021.06.09

はじめに

データアナリティクス事業本部の藤川です。
Raspberry Piを使ったことがあれば、一度は実行していると思います。Raspberry Piを設定するために使用するraspi-configコマンドがあります。 CUIでもカーソルキーで項目を移動して設定変更できる、割とリッチなUIが提供されています。

このraspi-configコマンドですが、引数にnonintを付けて実行すると、コマンドラインで実行できることが分かりました!

今回は、raspi-configコマンドをコマンドラインで実行し、Raspberry Piをヘッドレスでセットアップする方法についてご紹介します。

やってみた

Raspberry Pi OSの起動方法

CLIブートを有効化

  1. CLIブートを有効化します。
    sudo raspi-config nonint do_boot_behaviour B1
  2. リブートします。
    sudo reboot

GUIブートを有効化

  1. GUIブートを有効化します。
    sudo raspi-config nonint do_boot_behaviour B3
  2. リブートします。
    sudo reboot

確認方法

  1. CLIブートかGUIブートか確認します。
    raspi-config nonint get_boot_cli
    状態 返却値
    CLIブートの場合 0
    GUIブートの場合 1

カメラ

有効化

  1. カメラを有効化します。
    sudo raspi-config nonint do_camera 0
  2. リブートします。
    sudo reboot

無効化

  1. カメラを無効化します。
    sudo raspi-config nonint do_camera 1
  2. リブートします。
    sudo reboot

確認方法

  1. 接続されているカメラが有効か確認します。
    raspi-config nonint get_camera
    状態 返却値
    カメラが有効な場合 0
    カメラが無効な場合 1

I2C

有効化

  1. I2Cを有効化します。
    sudo raspi-config nonint do_i2c 0
  2. 次のエラーが表示されますが、無視して構いません。
    modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/5.4.79+/modules.dep.bin'
    modprobe: FATAL: Module i2c-dev not found in directory /lib/modules/5.4.79+
  3. リブートします。
    sudo reboot

無効化

  1. I2Cを無効化します。
    sudo raspi-config nonint do_i2c 1
  2. リブートします。
    sudo reboot

確認方法

  1. I2Cが有効か確認します。
    raspi-config nonint get_i2c
    状態 返却値
    I2Cが有効な場合 0
    I2Cが無効な場合 1

参考

こちらのリポジトリ(GTK version of raspi-config)の「rc_gui/src/rc_gui.c」を開くと、次のような記述があります。
他にも多くの設定を扱えますのでお試しください。

/* Command strings */
#define GET_CAN_EXPAND  "raspi-config nonint get_can_expand"
#define EXPAND_FS       "raspi-config nonint do_expand_rootfs"
#define GET_HOSTNAME    "raspi-config nonint get_hostname"
#define SET_HOSTNAME    "raspi-config nonint do_hostname %s"
#define GET_BOOT_CLI    "raspi-config nonint get_boot_cli"
#define GET_AUTOLOGIN   "raspi-config nonint get_autologin"
#define SET_BOOT_CLI    "raspi-config nonint do_boot_behaviour B1"
#define SET_BOOT_CLIA   "raspi-config nonint do_boot_behaviour B2"
#define SET_BOOT_GUI    "raspi-config nonint do_boot_behaviour B3"
#define SET_BOOT_GUIA   "raspi-config nonint do_boot_behaviour B4"
#define GET_BOOT_WAIT   "raspi-config nonint get_boot_wait"
#define SET_BOOT_WAIT   "raspi-config nonint do_boot_wait %d"