0
0

NANOPI NEO3 Wifi追加して、WiFI/LAN接続可能にする

Posted at

NanoPi NEO3にWifi追加する際、苦労した件、問題の症状と解決策

目的の設定が完成するまでに様々な苦労がありました。Raspiをはじめ、その他SBCの設定に苦労される方にとっても役立つかと思い記載します。
主に次のような問題が発生し、様々な方法をネットの情報を元に試しました。

  • 起動後にWifi接続できない
    WPA_Supplicant.confの確認と、WPA_Supplicantサービスの無効化で解決、恐らく起動時には、wifi デバイスが認識されていないためと思われます。
  • 起動後 iwconfig を見ると、SSIDが設定されていない
    Raspiでは、簡単に同じ環境を構築できるが、Nano Piで出来ないのは、恐らく、Wifiが内蔵ではなく。外付けUSB WiFiのためのと思われます。wpa_supplicantサービスの開始時には、wlan0が認識されていないことが原因と思われます。
  • 自動起動時LANが接続されていないとWiFi接続できない、LANケーブルを接続するとWifiが接続できるが、LANケーブルを切断するとWiFiも切れる
    router gwがwlan0に設定されないため、wlan0は起動しているが、接続できない状態になっていると思われます。起動後、手動でwpa_supplicantを実行するとwifi接続できます。例えば:
qiita.rb
sudo killall wpa_supplicant
sudo wpa_supplicant -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf
  • LANはstatic ipになるが、Wifiにstatic ipアドレスを指定できない
    /etc/network/interfaces.d/wlan0 にstaticを記載しても反映されない。
  • dhcpcdをやめてNetworkManagerで設定しようとしたができなかった

ゴール

NanoPi NEO3には、Gigabit LANが搭載されていますが、Wifiを追加して、LAN/WiFiどちらからも接続するようにして、デバイスをバッテリパックでも稼働できるネットワークカメラ化します。

WiFiは、USB2.0 Pinを使って接続します。Wifi アダプタは、KIMWOOD 2022を使いました。

USB2.0 PINとWifi アダプタを接続

WiFiには、Realtek Semiconductor Corp. USB3.0 802.11ac 1200M Adapterを搭載した、Wifi アダプタを使います。

こちらのWiFi アダプタも動作しました。
wifi-adpt.jpg

![NanoPi_NEO3-layout.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/568972/1328f1e6-31

USB2.0ピンとWifi ドングルを接続するためのUSBケーブルを作成する必要があります。

USB2.0

Pin# Name
1 GND
3 DP1
5 DM1
7 5V

接続は、次のようになります。
SUB.jpg

NanoPi NEO3インストール

OSイメージのダウンロード

rk3328-sd-freiendlycore-lite-focal-6.1-arm64-20231129.omz.gzを下記のサイトからダウンロードし、起動用のMicro SDカードを作成します。

USBカーブル、下が試作で上は量産用に作ったものです。

USB-Cable.jpg

PCからの接続

作成したMicro SDカードを挿入し、DHCPサーバのある環境にLANケーブルを接続後、NanoPi NEO3を起動します。

接続したipアドレスを探し、PuttyからSSHで接続します。デフォルトのID/パスワードは、pi/piです。

  • Angry IP Scanner, Putty をインストールしておくと便利です。

初期設定

アップデートの適用と、よく使うモジュールをインストールします。

qiita.rb

sudo apt-get update
sudo apt-get upgrade

sudo apt-get install libudev-dev libv4l-dev libjpeg8 libjpeg8-dev 
sudo apt-get install libusb-1.0-0-dev freeglut3-dev
sudo apt-get install usbutils

タイムゾーン設定、ntp、ホスト名の設定

qiita.rb
sudo timedatectl set-timezone Asia/Tokyo

sudo systemctl status systemd-timesyncd.service
sudo vi /etc/systemd/timesyncd.conf
// NTP=行を編集
[Time]
NTP=ntp.nict.jp
//サービスの再開
sudo systemctl daemon-reload
sudo systemctl restart systemd-timesyncd.service

// ホスト名の設定
sudo vi /etc/hostname
sudo vi /etc/hosts

OS バージョンの確認

qiita.rb
cat /etc/os-release

NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal

DHCPCDの導入と設定

dhcpcd をインストールして、Static ipをLANおよびWifiに設定します。
例: LAN側 192.168.1.251, WiFi側 192.168.3.144

qiita.rb

sudo apt install dhcpcd5

sudo vi /etc/dhcpcd.conf
# static 以下を追記
interface eth0
static ip_address=192.168.1.251
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

interface wlan0
static ip_address=192.168.3.144
static routers=192.168.3.1
static domain_name_servers=192.168.3.1

重要
dhcpcd.confにwlan0を記載してもwlan0は設定されません。/etc/network/interfaces.d/wlan0 を作成してください。

qiita.rb
sudo vi /etc/network/interfaces.d/wlan0
//以下を記載
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
  address 192.168.3.144
  netmask 255.255.255.0
  gateway 192.168.3.1
  wpa-conf /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

wpa_suppliacntの設定

/etc/wpa_supplicant/wpa_supplicant-wlan0.confを作成編集して、Wifi接続のための設定を行います。例:

qiita.rb
sudo vi /etc/wpa_supplicant/wpa_supplicant-wlan0.conf

//以下を記載
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP
network={
    ssid="mySSID"
#    psk="12345678"
     psk=password-encrypted
     proto=WPA RSN       
     key_mgmt=WPA-PSK WPA-EAP
}

pskの暗号化は、以下のコマンドで得ることができます。例:

qiita.rb
sudo wpa_passphrase mySSID 12345678

wpa_supplicantサービスを無効にします。wlan0用のwpa_supplicantを起動後少し待ってから開始するように後で設定します。

qiita.rb
sudo systemctl stop wpa_supplicant
sudo systemctl disable wpa_supplicant

一旦、再起動してLANがstatic ipで接続されることを確認してください。

qiita.rb
sudo reboot

Wifi接続の設定

再起動後、sshで接続できたら、USB2.0 pinにWifiアダプタを接続します。
lsusbコマンドで正しく認識されていることを確認してください。

警告
認識されない、sshが切断されるなどの場合は、USBケーブル配線の間違いの可能性があります。

qiita.rb
sudo lsusb
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 002: ID 0bda:b812 Realtek Semiconductor Corp. USB3.0 802.11ac 1200M Adapter
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

wpa_supplicantの起動

qiita.rb
sudo wpa_supplicant -u -W -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant-wlan0.conf

重要
ドライバエラーの場合、以下のようなエラーが表示されます。
wpa_supplicant.conf failed to add supported operating classes IE

-Dwextの代わりに、-Dnl80211 として試してください。

怒らく、この時点で、PC側からping 192.168.3.144 (WiFi 側ipアドレス )への接続が確認できると思います。

wlan0用 wpa_supplicantサービスの編集

qiita.rb
sudo vi /lib/systemd/system/wpa_supplicant@.service

// 以下の行を編集
ExecStart=/sbin/wpa_supplicant -u -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -W -Dwext -i%I

// nl80211の場合
ExecStart=/sbin/wpa_supplicant -u -c/etc/wpa_supplicant/wpa_supplicant-%I.conf -W -Dnl80211 -i%I

実行と確認、正常に実行されることを確認します。

qiita.rb
sudo systemctl start wpa_supplicant@wlan0
sudo systemctl status wpa_supplicant@wlan0

wlan0用 wpa_supplicantの自動起動の設定

wifi-start.serviceの作成と登録

qiita.rb
sudo vi /lib/systemd/system/wifi-start.service
//以下を記載
[Unit]
Description=Wireless Network Start

[Service]
Type=oneshot
RemainAfterExit=true
ExecStart=/bin/bash /opt/wifi-start/wifi-start.sh

[Install]
WantedBy=multi-user.target

自動機能の設定

qiita.rb
sudo systemctl enable wifi-start.service

wifi-start.shの作成

qiita.rb
sudo mkdir /opt
sudo mkdir /opt/wifi-start
sudo vi /opt/wifi-start/wifi-start.sh

//以下を記載
#!/bin/bash

sleep 20
systemctl start wpa_supplicant@wlan0

これらの設定スクリプトを下記Githubにアップしました。
https://github.com/Taisuke-S/wifi-start-master

以上で設定が完了です。再起動してすべての接続を確認してください。
LANのみで起動、WIFiのみで起動、WiFi/LANで起動、LANを切断...など各種組み合わせを確認してください。

qiita.rb
sudo reboot

あとがき
出来てしまえば、設定は単純ですが、ここに行きつくまで1カ月ほど試行錯誤しました。同じ問題に遭遇した方のお役に立てれば幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0