1. 概要
Linux や Android などを動作させるアプリケーションプロセッサはネットワークへの接続は不可欠です。
さらに言うと、ワイヤーラインよりワイヤレス(WiFi)での接続は重要な要素になっています。
そこで、Intel SoCFPGA に Debian 9 や Ubuntu 18.04 をインストールし、USB Wireless Network Adapter (俗に言う WiFi ドングル) を使用し、WiFi に接続する方法を紹介します。
なお、USB WiFi Adapter は他の物でも可能とは思われますが、その場合、Kernel の Config 設定に変更が必要になる可能性があります。
今回は2つのデバイスで確認しました。
1つは随分昔に購入し机の中に眠っていたもの、もう1つは最近でも購入は可能で、千円以下で購入できるものです。
1-1. 適用条件
OS : Debian 9 / Ubuntu 18.04
Kernel : 5.4 以上
2. Kernel の作成
2-1. make の準備
Tool Chain や Kernel ソースを取得し、任意の Config 設定をします。
詳細はこちらを参照ください。https://rocketboards.org/
2-2. Wireless Network の設定
$ make menuconfig
メニューで Wireless Network の設定を有効にします。
下記の項目を Enable にします。
[*]Networking support
-*- Wireless --->
<*> cfg80211 - wireless configuration API
<*> Generic IEEE 802.11 Networking Stack (mac80211)
Device Driver
[*] Network device support --->
[*] Wireless LAN --->
<*> Realtek rtlwifi famiry of devices (NEW) --->
<*> Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter
[*] Staging drivers --->
[M] Realtek RTL8188EU Wireless LAN NIC driver
[*] Realtek RTL8188EU AP mode (NEW)
< RTL8188CUSを使用する場合 >
< RTL8188EUSを使用する場合 >
2-3. make の実行
$ make zImage
zImage が arc/arm/boot に作成出来たら、SD カードの FAT パーティションの zImage と置き換え、準備完了です。
3. Debian 9 への組み込み
USB ポートに USB WiFi Adapter を挿入して起動します。
3-1. USB の認識確認
USB WiFi Adapter が認識されていることを確認します。
# lsusb
3-2. IP アドレスの確認
# ip a
3-2-1. 起動ログの確認
# dmesg | grep fail
起動ログに下記のようなメッセージが表示されている場合、Firmware のインストールが必要です。
3-2-2. Firmware のインストール
一旦、Ethrnet ケーブルを挿入し下記でインストールします。
# apt install firmware-realtek
reboot します。
3-3. ネットワークマネージャの設定
3-3-1. デバイス一覧を表示
# nmcli dev
※ wlan0 が "unavailable" と表示されている場合は、下記のモジュールを削除してください。
# apt remove openresolv dhcpcd5
TYPE が wifi で STATE が disconnected のデバイスが存在している事を確認し、On にします。
# nmcli r wifi on
3-3-2. AP 一覧を表示
接続可能な AP の一覧が表示されますので、この中から接続する AP の SSID を調べます。
# nmcli dev wifi
3-3-3. AP に接続する
AP の SSID とパスワードを指定して接続します。
# nmcli dev wifi connect "<SSID>" password "<Password>"
3-4. 接続の確認
# ip a
# apt update
IP アドレスが取得出来ていて、ネットワークに接続出来ている事を確認します。
4. Ubuntu 18.04 への組み込み
zImage を置き換え、USB ポートに USB WiFi Adapter を挿入して起動します。
4-1. USB の認識確認
USB WiFi Adapter が認識されていることを確認します。
# lsusb
4-2. ネットワークマネージャの設定
4-2-1. デバイス一覧を表示
# nmcli dev
TYPE が wifi で STATE が disconnected のデバイスが存在している事を確認し、On にします。
# nmcli r wifi on
4-2-2. AP 一覧を表示
# nmcli dev wifi
4-2-3. AP に接続する
AP の SSID とパスワードを指定して接続します。
# nmcli dev wifi connect "<SSID>" password "<Password>"
4-3. 接続の確認
# ip a
IP アドレスが取得出来ている事を確認します。
4-3-1. 外部への接続確認
DNS の設定が書き換わってしまい、外部サイトへの接続に失敗する可能性があります。
# apt update
apt update で下記のようにエラーになる場合は以下の対処をしてください。
4-3-2. DSN 設定ファイルの変更
resolv.conf のリンク先ファイルを特定し、リンクを切り離してファイルをコピーします。
# ls -l /etc/resolv.conf
# rm /etc/resolv.conf
# cp /run/connman/resolv.conf /etc/
# vi /etc/resolv.conf
nameserver の後を "8.8.8.8" に変更します。
nameserver 8.8.8.8
4-3-3. ネットワークマネージャ設定の変更
ネットワークマネージャの設定ファイルの [main] セクションに "dns=none" を追加して DNS の書き換えを抑止します。
# vi /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile
dns=none
4-3-4. 接続の確認
Ping を打って外部への接続が正しく行われるか確認します。
# ping google.com
4-3-5. Reboot 後の再接続
Reboot すると DNS が書き換えられ、外部への接続が出来なくなる場合がありますが、再度 "4-3-2. DSN 設定ファイルの変更" を行う事で接続出来るようになります。