Up hostapd の自動起動を設定 作成: 2021-10-05
更新: 2021-10-06


    自動起動の設定は,init を用いるのが従来のやり方であるが,いまはこれに替わって systemd が導入されている。
    以下,hostapd の自動起動を,systemd のやり方で設定する。


  1. hostapd のユニットファイル (systemd から hostapd を起動するための設定ファイル) /lib/systemd/system/hostapd.service の作成
    ──これは,既に作成されている ( hostapd のインストールのときに作成されている)。
      $ cd /lib/systemd/system
      $ ls -la hostapd.service
      -rw-r--r-- 1 root root 396 Apr 16 22:07 hostapd.service
      $ cat hostapd.service
        [Unit] Description=Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator After=network.target [Service] Type=forking PIDFile=/run/hostapd.pid Restart=on-failure RestartSec=2 Environment=DAEMON_CONF=/etc/hostapd/hostapd.conf EnvironmentFile=-/etc/default/hostapd ExecStart=/usr/sbin/hostapd -B -P /run/hostapd.pid -B [Install] WantedBy=multi-user.target

  2. /etc/systemd/system の中に,/lib/systemd/system/hostapd.service へのシンボリックリンク hostapd.service を作成
      $ cd etc/systemd/system
      $ ls -la hostapd.service
        (存在しない)
      $ sudo ln -s /lib/systemd/system/hostapd.service hostapd.service
      $ ls -la hostapd.service
        hostapd.service -> /lib/systemd/system/hostapd.service
      $ cat hostapd.service
        (/lib/systemd/system/hostapd.service の内容が表示される)


  3. systemd に,ユニットファイルの追加を通知する
      $ sudo systemctl daemon-reload
      これにより,/etc/systemd/system/multi-user.target.wants の中に,/lib/systemd/system/dhcpcd.service へのシンボリックリンク dhcpcd.service が作成される:
      $ ls -la /etc/systemd/system/multi-user.target.wants
        hostapd.service -> /lib/systemd/system/hostapd.service

  4. systemd に対する hostapd.service の status を確認
    ── "enabled" が,自動起動有効を意味する
      $ sudo systemctl status hostapd.service ● hostapd.service - Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator Loaded: loaded (/lib/systemd/system/hostapd.service; enabled; vendor preset: enabled) Active: inactive (dead) /lib/systemd/system/hostapd.service; enabled となっているので,これでよし。

      disabled になっているときは,つぎのコマンド:
      $ sudo systemctl enable hostapd.service Created symlink from /etc/systemd/system/multi-user.target.wants/hostapd.service to /etc/systemd/system/hostapd.service.

  5. 動作確認
      $ sudo systemctl start hostapd.service
      $ ps -ef|grep hostapd root 5256 1 0 13:17 ? 00:00:00 /usr/sbin/hostapd -B -P /run/hostapd.pid -B /etc/hostapd/hostapd.conf
      PC の「ネットワーク」で WiFi を「入」にする。
      アクセスポイントに「raspi」があることを確認。
      PC のターミナルの新規ウィンドウを開き,Raspberry Pi に WiFi で接続:
        $ ssh pi@10.10.10.1