Ubuntu Server 24.04 をインストールした。インストール自体は通常の手順で問題なし。ただし内蔵 / 外付け(USBタイプ)の Wi-Fi がいずれもデフォルト状態では動作しなかったため以下の通り無線 LAN 関係の設定を変更したのでメモ。
前提
機材
- CHUWI HeroBox J4125
- Archer T3U Nano
- 内蔵の無線 LAN だと速度が出ないという記事があったので追加
参考
- HeroBoxにUSB型のWi-Fiアダプタを増設してみた | backport
[ ID] Interval Transfer Bandwidth
[ 4] 0.00-10.01 sec 24.6 MBytes 20.6 Mbits/sec sender
[ 4] 0.00-10.01 sec 24.6 MBytes 20.6 Mbits/sec receiver
手順
- Ubuntu Server 24.04 をインストール
- インストール過程で有線 LAN 、無線 LAN の設定も実施しておく。インストール後に設定済みの状態になる効果があるので便利
- インストール過程で
[X] Install OpenSSH serverとチェックを入れる。 - デフォルトでは systemd-networkd になるが NetworkManager に切り替える(後述)
Netplan、systemd-networkd、NetworkManager
Ubuntu Server 24.04 において Netplan、systemd-networkd、NetworkManager は階層的な関係にある。
Netplan はフロントエンドとしてユーザ向けの設定ツールとして機能し、実際にネットワークを制御するバックエンド(レンダラー)として systemd-networkd または NetworkManager が動作する。
- Netplan
- ユーザが /etc/netplan/*.yaml に記述した設定を読み込み、バックエンド用の設定ファイルを生成・適用する
- 現状では systemd-networkd の設定は生成するが NetworkManager の設定は管理しない様子?している?不明。今回は Netplan に NetworkManager の設定は委ねないことにした。
- ユーザが /etc/netplan/*.yaml に記述した設定を読み込み、バックエンド用の設定ファイルを生成・適用する
- systemd-networkd
- Ubuntu Server のデフォルトで初期状態では Netplan + systemd-networkd の組み合わせで設定が施され動作する
- NetworkManager
- Ubuntu Desktop のデフォルトで Ubuntu Server では初期状態ではインストールされない。 Ubuntu Server でも後述の通りインストールして使用することが可能。
役割の比較
| 機能 | 役割 |
|---|---|
| Netplan | フロントエンド。設定の抽象化インターフェース |
| systemd-networkd | バックエンド |
| NetworkManager | バックエンド |
なお同機材で Ubuntu Desktop をインストールしたり Ubuntu Server のインストール過程で Wi-Fi の動作状況を見るに Ubuntu Server のインストーラで動作しているのは NetworkManager のように思われる(推測)
本機材における Netplan + systemd-networkd の問題
Ubuntu Server のインストール過程においては正常に Wi-Fi が接続され通信ができたがインストール後には接続ができなかった。状況を確認すると設定済みであるがずっと「接続試行中」のままで接続完了に移行しなかった。ルータ側が WPA3 (2.4GHz / 5GHz 両方とも)であることに起因する模様。ただし systemd-networkd が WPA3 非対応という情報は見つけられなかったので本環境におけるルータと子機(デバイス、ドライバ?)の組み合わせでの問題と思われる。
いずれにしてもインストール過程では接続できていた(接続完了し、DHCPでIPアドレスが取得できていた)ことを考えると設定やドライバ次第では接続可能であることはわかっていた。
systemd-networkd から NetworkManager への切り替え手順
Netplan でバックエンドを変更
/etc/netplan/*.yaml の書き換え
network: version: 2 renderer: NetworkManager
適用
sudo netplan apply
cloud-init のネットワーク管理を無効化(この手順は不要かもしれない)
cloud-init が Wi‑Fi 設定を上書きしないよう無効化する
sudo bash -c 'echo "network: {config: disabled}" > /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg'
NetworkManager の設定
NetworkManager を有効化
sudo apt install network-manager sudo systemctl enable NetworkManager sudo systemctl restart NetworkManager
Wi‑Fi のデバイスを NetworkManager 管理にする
sudo nmcli device set wlp1s0 managed yes sudo nmcli device set wlx000011112222 managed yes
確認
nmcli device status
当該デバイスが unmanaged ではなく disconnected になっていれば正しく管理対象になっている。
設定や接続メモ
有線LAN(enp1s0)を DHCP に設定
無線が何らかの事情で不調になったときに有線LANからネットワークアクセスができるように、DHCPとして設定しておく。通常は使用しないが設定は施しておく。
NetworkManager で DHCP の接続プロファイルを作成
sudo nmcli connection add type ethernet ifname enp1s0 con-name enp1s0 sudo nmcli connection modify enp1s0 ipv4.method auto sudo nmcli connection up enp1s0
2.4GHz と 5GHz を別デバイスに固定して接続
2.4GHz(例:wlp1s0)、5GHz(例:wlx000011112222)
sudo nmcli dev wifi connect "SSID_24G" password "PASSWORD" ifname wlp1s0 sudo nmcli dev wifi connect "SSID_5G" password "PASSWORD" ifname wlx000011112222
これでデバイスごとに別SSIDへ接続するプロファイルが作成される。
接続プロファイル名の確認方法。
nmcli connection show
ここで NAME と DEVICE の対応が確認できる。
例:
NAME TYPE DEVICE SSID_24G wifi wlp1s0 SSID_5G wifi wlx000011112222 enp1s0 ethernet enp1s0
固定IPを設定(Wi‑Fi)
2.4GHz(wlp1s0)、5GHz(wlx000011112222)
sudo nmcli connection modify "SSID_24G" \ ipv4.addresses 192.168.1.101/24 \ ipv4.gateway "" \ ipv4.dns "192.168.1.1" \ ipv4.method manual sudo nmcli connection modify "SSID_5G" \ ipv4.addresses 192.168.1.102/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "192.168.1.1" \ ipv4.method manual
※ 予備扱いとして 2.4GHz の方の gateway は空にしておく
5GHz を優先するためのルートメトリクス設定
NetworkManager は route-metric が小さいほど優先となる。
2.4GHz(予備扱い)、5GHz(優先扱い)
sudo nmcli connection modify "SSID_24G" ipv4.route-metric 200 sudo nmcli connection modify "SSID_5G" ipv4.route-metric 50
設定反映
sudo nmcli connection down "SSID_5G" sudo nmcli connection up "SSID_5G" sudo nmcli connection down "SSID_24G" sudo nmcli connection up "SSID_24G" sudo nmcli connection down enp1s0 sudo nmcli connection up enp1s0
優先状態の確認方法
ip route
例:
default via 192.168.1.1 dev wlx000011112222 metric 50 default via 192.168.1.1 dev wlp1s0 metric 200
→ 数値が小さい方が優先である。
参考
- Ubuntuでネットワーク設定 〜Netplanって何だ?〜 | データマイナーAkitoの数学館
- いますぐ実践! Linuxシステム管理
- 【Linux】Netplanを利用したUbuntu ServerのIPアドレス設定方法 #Network - Qiita
- Ubuntu Server 24.04.1 LTSでWi-Fiが繋がらなかった話 #Ubuntu24.04 - Qiita
- netplanからNetworkManager (nmtui)への移行 #networkmanager - Qiita