HumansXドキュメントセンター 公式サイトへ ↗

2.1_ネットワークと Bluetooth の設定

本章では、開発ボードの有線・無線ネットワーク設定の変更方法について説明します。

有線ネットワーク:RDK X5(>= 3.3.0)

開発ボードの有線ネットワークはデフォルトで静的 IP 設定になっており、初期 IP アドレスは192.168.127.10です。以下の方法で静的モードと DHCP モードを切り替えることができます。

[shell]静的 IP 設定の変更

開発ボードの静的ネットワーク設定は/etc/NetworkManager/system-connections/netplan-eth0.nmconnectionファイルに保存されています。address1フィールドを変更することで静的 IP 設定を変更できます。route-metriはネットワーク優先度の設定で、700に設定しているのは有線ネットワークの優先度を下げるためです。有線と無線のネットワークが同時に有効な場合は、無線ネットワークが優先されます。

sudo vim /etc/NetworkManager/system-connections/netplan-eth0.nmconnection
[connection]
id=netplan-eth0
uuid=f6f8b5a7-9e23-49b2-a792-dc589b3d3e88
type=ethernet
interface-name=eth0
timestamp=1754294545

[ethernet]
wake-on-lan=0

[ipv4]
address1=192.168.127.10/24,192.168.127.1
dns=8.8.8.8;8.8.4.4;
method=manual
route-metric=700

[ipv6]
addr-gen-mode=eui64
method=ignore

[proxy]

変更が完了したら、コマンドラインでsudo restart_networkコマンドを入力して設定を反映させます。

[shell]DHCP 設定の変更

[ipv4]フィールドを変更し、method=autoとroute-metric=700のみを残します

[ipv4]
method=auto
route-metric=700

変更が完了したら、コマンドラインで sudo restart_network コマンドを入力して設定を反映させます。

[shell]MAC アドレス設定の変更

[ethernet]フィールドを変更し、cloned-mac-address=12:34:56:78:9A:BAを追加します

[ethernet]
cloned-mac-address=12:34:56:78:9A:BA
wake-on-lan=0

変更が完了したら、reboot で再起動して設定を反映させます。

[デスクトップ]静的 IP 設定の変更

[デスクトップ]DHCP 設定の変更

[デスクトップ]MAC アドレス設定の変更

[デスクトップ]設定の反映

netplan-eth0をクリックして選択すると、設定が反映されます。

有線ネットワーク:RDK X5(< 3.3.0)

Video: https://www.bilibili.com/video/BV1rm4y1E73q/?p=11

開発ボードの有線ネットワークはデフォルトで静的 IP 設定になっており、初期 IP アドレスは192.168.127.10です。以下の方法で静的モードと DHCP モードを切り替えることができます。

静的 IP 設定の変更

開発ボードの静的ネットワーク設定は/etc/network/interfacesファイルに保存されています。address、netmask、gatewayなどのフィールドを変更することで静的 IP 設定を変更できます。metricはネットワーク優先度の設定で、700に設定しているのは有線ネットワークの優先度を下げるためです。有線と無線のネットワークが同時に有効な場合は、無線ネットワークが優先されます。例:

sudo vim /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet static
    pre-up /etc/set_mac_address.sh
    address 192.168.127.10
    netmask 255.255.255.0
    gateway 192.168.127.1
    metric 700

変更が完了したら、コマンドラインでsudo restart_networkコマンドを入力して設定を反映させます。

DHCP 設定の変更

DHCP(Dynamic Host Configuration Protocol、動的ホスト構成プロトコル)は主に LAN 環境で使用され、IP アドレスを一元的に管理・割り当てる役割を持ちます。ネットワーク上のホストが IP アドレス、ゲートウェイアドレス、DNS サーバーアドレスなどの情報を動的に取得できるようにし、アドレスの利用効率を高めます。

開発ボードの DHCP ネットワーク設定は/etc/network/interfacesファイルに保存されています。eth0 関連の設定を変更することで DHCP モードに変更できます。例:

sudo vim /etc/network/interfaces
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
    metric 700

変更が完了したら、コマンドラインでsudo restart_networkコマンドを入力して設定を反映させます。

MAC アドレス設定の変更

開発ボードのデフォルト MAC アドレスを変更する場合は、/etc/network/interfacesファイルにpre-up設定を追加し、必要な MAC アドレスを指定します。例:

sudo vim /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)
# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d
auto eth0
iface eth0 inet static
    pre-up /etc/set_mac_address.sh
    address 192.168.127.10
    netmask 255.255.255.0
    gateway 192.168.127.1
    metric 700
    pre-up ifconfig eth0 hw ether 00:11:22:9f:51:27

変更が完了したら、rebootで再起動して設定を反映させます。

無線ネットワーク

Video: https://www.bilibili.com/video/BV1rm4y1E73q/?p=12

開発ボードには 2.4GHz 無線 WiFi モジュールが搭載されており、Soft AP と Station の 2 つのモードに対応しています。デフォルトでは Station モードで動作します。以下でそれぞれのモードの使い方を説明します。

Station モード

Station モードでは、開発ボードはクライアントとしてルーターの無線アクセスポイントに接続してネットワークに参加します。

  • Ubuntu Desktop 版を使用している場合は、デスクトップ右上の Wi-Fi アイコンをクリックし、対象のアクセスポイントを選択してパスワードを入力すればネットワーク設定が完了します(下図参照):
  • Ubuntu Server 版を使用している場合は、コマンドラインで無線ネットワークを設定できます。手順は以下のとおりです:
  1. sudo nmcli device wifi rescanコマンドでアクセスポイントをスキャンします。以下のメッセージが返された場合はスキャンの頻度が高すぎるため、しばらくしてから再試行してください
root@ubuntu:~# sudo nmcli device wifi rescan
Error: Scanning not allowed immediately following previous scan.
  1. sudo nmcli device wifi listコマンドでスキャンしたアクセスポイントを一覧表示します
  2. sudo wifi_connect "SSID" "PASSWD"コマンドでアクセスポイントに接続します。以下のメッセージが返されれば接続成功です
root@ubuntu:~# sudo wifi_connect "WiFi-Test" "12345678" 
Device 'wlan0' successfully activated with 'd7468833-4195-45aa-aa33-3d43da86e1a7'.

ヒント

アクセスポイントへの接続後に以下のメッセージが返された場合は、アクセスポイントが見つかっていません。sudo nmcli device wifi rescanコマンドで再スキャンしてから再度接続してください

root@ubuntu:~# sudo wifi_connect "WiFi-Test" "12345678" Error: No network with SSID 'WiFi-Test' found.

Soft AP モード

開発ボードの無線ネットワークはデフォルトで Station モードで動作します。Soft AP モードを使用する場合は、以下の手順で設定してください。

  1. hostapd と isc-dhcp-server をインストールします
sudo apt update
sudo apt install hostapd
sudo apt install isc-dhcp-server
  1. sudo vim /etc/hostapd.confコマンドを実行してhostapd.confを設定します。主に以下のフィールドに注目してください:
interface=wlan0 #作为AP热点的网卡
ssid=Sunrise #WiFi名字
wpa=2 #0为WPA 2为WPA2 一般为2
wpa_key_mgmt=WPA-PSK #加密算法 一般为WPA-PSK
wpa_passphrase=12345678 #密码
wpa_pairwise=CCMP #加密协议,一般为CCMP
  • パスワードなしのアクセスポイントを設定する場合は、hostapd.confファイルに以下の内容を追加してください:
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
ssid=Sunrise
channel=6
ieee80211n=1
hw_mode=g
ignore_broadcast_ssid=0
  • パスワード付きのアクセスポイントを設定する場合は、hostapd.confファイルに以下の内容を追加してください:
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
ssid=Sunrise
channel=6
ieee80211n=1
hw_mode=g
ignore_broadcast_ssid=0
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_passphrase=12345678
  • RDK X5 では 5G のアクセスポイントを設定できます。hostapd.confファイルのhw_modeとchannelフィールドを変更してください:
channel=36
hw_mode=a
  1. isc-dhcp-serverファイルを設定します。手順は以下のとおりです:
  • sudo vim /etc/default/isc-dhcp-serverを実行してisc-dhcp-serverファイルを編集し、以下のようにネットワークインターフェースを定義します:
INTERFACESv4="wlan0"
  • sudo vim /etc/dhcp/dhcpd.confを実行してdhcpd.confファイルを編集し、以下のフィールドのコメントを外します:
authoritative;
  • 次に、/etc/dhcp/dhcpd.confファイルの末尾に以下の設定を追加します:
subnet 10.5.5.0 netmask 255.255.255.0 { #网段和子网掩码
  range 10.5.5.100 10.5.5.254;#可获取的IP范围
  option subnet-mask 255.255.255.0; #子网掩码
  option routers 10.5.5.1;#默认网关
  option broadcast-address 10.5.5.31;#广播地址
  default-lease-time 600;#默认租约期限,单位秒
  max-lease-time 7200;#最长租约期限,单位秒
}
  1. wpa_supplicant サービスを停止し、wlan0 を再起動します
systemctl mask wpa_supplicant
systemctl stop wpa_supplicant

ip addr flush dev wlan0
sleep 0.5
ifconfig wlan0 down
sleep 1
ifconfig wlan0 up
  1. 以下の手順で hostapd サービスを起動します
  • sudo hostapd -B /etc/hostapd.confコマンドを実行します
root@ubuntu:~# sudo hostapd -B /etc/hostapd.conf

 Configuration file: /etc/hostapd.conf
 Using interface wlan0 with hwaddr 08:e9:f6:af:18:26 and ssid "sunrise"
 wlan0: interface state UNINITIALIZED->ENABLED
 wlan0: AP-ENABLED
  • ifconfigコマンドで無線インターフェースwlan0の IP とネットワークセグメントを設定します。手順 3 の設定と一致させるよう注意してください
sudo ifconfig wlan0 10.5.5.1 netmask 255.255.255.0
  • 最後にdhcpサーバーを起動します。アクセスポイントに接続すると、10.5.5.100から10.5.5.255の範囲で IP アドレスがクライアントに割り当てられます
sudo ifconfig wlan0 10.5.5.1 netmask 255.255.255.0
sudo systemctl start isc-dhcp-server
sudo systemctl enable isc-dhcp-server
  1. 開発ボードのアクセスポイント(例:sunrise)に接続します
  2. Stationモードに戻す場合は、以下のように行います:

[RDK X5]

# 停止 hostapd
killall -9 hostapd

# 清除 wlan0 的地址
ip addr flush dev wlan0
sleep 0.5
ifconfig wlan0 down
sleep 1
ifconfig wlan0 up

# 重启 wpa_supplicant
systemctl unmask wpa_supplicant
systemctl restart wpa_supplicant

#重装wifi驱动
rmmod aic8800_fdrv 
modprobe aic8800_fdrv

# 连接热点,,具体操作可以查看上一章节 “无线网络”
wifi_connect "WiFi-Test" "12345678"

[Other]

# 停止 hostapd
killall -9 hostapd

# 清除 wlan0 的地址
ip addr flush dev wlan0
sleep 0.5
ifconfig wlan0 down
sleep 1
ifconfig wlan0 up

# 重启 wpa_supplicant
systemctl unmask wpa_supplicant
systemctl restart wpa_supplicant

# 连接热点,,具体操作可以查看上一章节 “无线网络”
wifi_connect "WiFi-Test" "12345678"

Soft AP モード(NetworkManager):RDK X5(>= 3.3.0)RDK X3(>= 3.0.2)

新しいバージョンのシステムでは、NetworkManager を使って Wi-Fi アクセスポイントを構築することもできます。

デスクトップ右上の無線ネットワークアイコンをクリックし、Edit Connections...を選択します

左下の + をクリックし、Connection Type でWi-Fiを選択します

Wi-Fiタブで SSID、Mode、Band を入力します

SSID には希望するアクセスポイント名を入力します

Mode はHotspotを選択します

Band はAutomatic、A(5 GHz)、B/G(2.4 GHz)から選択できます

Wi-Fi Securityタブで暗号化方式を選択し、パスワードを入力します

ボードを再起動するか、restart_networkを実行して設定を反映させます

DNS サービス

Video: https://www.bilibili.com/video/BV1rm4y1E73q/?p=13

DNS(Domain Name Server)は、ドメイン名(domain name)とそれに対応する IP アドレスを変換するサーバーです。

開発ボードの DNS 設定は/etc/systemd/resolved.confファイルで管理されています。このファイルを変更することで DNS 関連の設定ができます。手順は以下のとおりです:

  1. resolved.confファイルを変更し、DNS サーバーのアドレスを追加します。例:
DNS=8.8.8.8 114.114.114.114
  1. 以下のコマンドで DNS 設定を有効にします:
sudo systemctl restart systemd-resolved
sudo systemctl enable systemd-resolved
sudo mv /etc/resolv.conf  /etc/resolv.conf.bak
sudo ln -s /run/systemd/resolve/resolv.conf /etc/

システムの更新

システムのセキュリティと安定性のため、システムのインストール後にaptコマンドでシステムを更新することをお勧めします。

/etc/apt/source.listファイルにはaptコマンドのソフトウェアソース一覧が保存されています。ソフトウェアをインストールする前に、aptコマンドでパッケージリストを更新する必要があります。

まずターミナルを開き、以下のコマンドを入力します:

sudo apt update

次に、インストール済みのすべてのパッケージを最新バージョンにアップグレードします。コマンドは以下のとおりです:

sudo apt full-upgrade

ヒント

upgradeではなくfull-upgradeオプションの使用をお勧めします。関連する依存関係が変更された場合に、依存パッケージも同時に更新されます。

sudo apt full-upgradeコマンドを実行すると、ダウンロードするデータ量とディスク使用量が表示されますが、aptはディスク容量が十分かどうかをチェックしないため、df -hコマンドで手動で確認することをお勧めします。また、アップグレード中にダウンロードされた deb ファイルは/var/cache/apt/archivesディレクトリに保存されます。sudo apt cleanコマンドでキャッシュファイルを削除してディスク容量を解放できます。

apt full-upgradeコマンドの実行後、ドライバ、カーネルファイル、一部のシステムソフトウェアが再インストールされる場合があります。更新を反映させるため、手動でデバイスを再起動することをお勧めします。コマンドは以下のとおりです:

sudo reboot

Bluetooth の設定

注意

3.0.0 のシステムから、Bluetooth はデフォルトでシステムとともに起動するため、手動で初期化を繰り返す必要はありません。RDK X3 と RDK X5 のどちらのプラットフォームでも同様です。

初期化

開発ボードの Bluetooth 機能がデフォルトで有効になっておらず、hciconfigでデバイスが表示されない場合は、/usr/bin/startbt.shスクリプトを実行して初期化できます。このスクリプトは以下の処理を行います:

  • Bluetooth の初期化を完了する
  • hciconfig hci0 up を実行して Bluetooth を Link Up する
  • hciconfig hci0 piscan を実行して Bluetooth スキャンを行う

Video: https://www.bilibili.com/video/BV1rm4y1E73q/?p=9

スクリプト実行成功後のログは以下のとおりです:

また、以下のコマンドで Bluetooth プロセスが正常かどうかを確認できます:

ps ax | grep "/usr/bin/dbus-daemon\|/usr/lib/bluetooth/bluetoothd"
/usr/bin/dbus-daemon

/usr/lib/bluetooth/bluetoothd

通信インターフェース

開発ボードの拡張性を最大限に発揮するため、現在のハードウェア設計には多様なインターフェースと周辺リソースが統合されています。

インターフェースのレイアウトやハードウェアリソースの割り当ての制約により、開発ボードでは Bluetooth モジュールのすべての通信インターフェースを引き出せていません。

現在は BT_RX BT_TX の 2 線モードのみを提供しており、リアルタイム性を要求しない AT コマンドのやり取りやデータ伝送などの基本機能に対応できます。

UART インターフェースベースの Bluetooth モジュールにおける、接続方式ごとの機能は以下のとおりです:

  • ‌基本通信モード(UART Only)‌
  • インターフェースピン:BT_RX BT_TX
  • 機能特性:UART ベースの非同期シリアルデータ通信(AT コマンドのやり取り、低速データ伝送など)。フロー制御がないため、ボーレートの過負荷時や大容量データの連続伝送時にパケットロスやバッファオーバーフローが発生するリスクがあります。
  • ‌拡張伝送モード(ハードウェアフロー制御を追加)‌
  • インターフェースピン:BT_RX BT_TX BT_CTS BT_RTS
  • 機能特性:パケットロスやバッファオーバーフローのリスクを効果的に回避でき、A2DP 高音質片方向オーディオストリーム伝送に対応します。
  • 音声通信モード(PCM 同期インターフェース)
  • インターフェースピン:PCM_SYNC PCM_DIN PCM_CLK PCM_DOUT
  • 機能特性:SCO リンクベースのリアルタイム双方向オーディオ伝送(HFP/HSP など)に対応します

USB Bluetooth

Bluetooth 機能を本格的に使用する場合、例えば SPP(Bluetooth 仮想シリアルポート) モードで高速かつ安定した通信を行う、PAN(Bluetooth 仮想ネットワークアダプタ) モードで帯域品質を確保する、A2DP(高音質片方向オーディオストリーム) モードで音声の途切れを防ぐといった用途では、USB 接続の Bluetooth モジュール の使用を優先的にお勧めします。

開発ボードには USB2.0-BT、CSR8510 A10 などの一般的な Bluetooth ドライバが組み込まれており、ファームウェア不要の USB Bluetooth モジュールの大部分を直接サポートしています。

Realtek シリーズの Bluetooth モジュールについては、追加のファームウェアが必要です。モジュールメーカーから Linux プラットフォーム対応のファームウェアを入手し、指定のディレクトリに配置すると正常に使用できます。

ペアリングと接続

sudo bluetoothctlを実行して対話モードの Bluetooth 設定画面に入ります。下図のようなデバイス情報が表示されれば Bluetooth が認識されています。次にshowで Bluetooth 情報を確認し、Bluetooth のpoweredとdiscoverableの状態に注目します。

power on を実行して Bluetooth を有効にします(下図参照):

Bluetooth を周辺のデバイスから検出できるようにするため、discoverable onを実行して Bluetooth の検出可能属性を有効にします(下図参照):

この状態でスマートフォンや PC で Bluetooth をスキャンすると、ubuntu という名前の Bluetooth デバイスが見つかります:

次に Bluetooth のアクティブスキャン機能をテストします。bluetoothctlの対話画面でscan onと入力するとアクティブスキャンが有効になり、周辺のデバイスが定期的に表示されます。手元のスマートフォンが検出されていることがわかります。scan offでスキャンを終了し、スキャンした Bluetooth デバイスの一覧がまとめて表示されます:

続いて、他の Bluetooth デバイスとのペアリングを行います:

  • ペアリングコマンド:pair [targetMAC] 。このコマンドを入力した後、案内に従ってyesを入力し、相手側の Bluetooth デバイスでペアリングを選択するとペアリングが完了します。
  • ペアリング成功後、trust [targetMAC]を使うと次回から自動接続されます

以上の操作で、Bluetooth のスキャンとペアリングの基本機能は完了です。その他の機能を使用する場合は、BlueZの公式ヘルプを参照してください。