Armadilloフォーラム

Armadillo-X1 nmcliでwlan0の自動起動設定を変更すると起動できなくなる

s_watanabe

2022年4月14日 19時24分

お世話になります。渡辺と申します。

nmcliコマンドでwlan0のコネクションを作成し、
自動起動設定(connection.autoconnect)を変更すると
wlan0が起動できない状態になってしまい困っております。

コネクションは以下のようにして作成しています。

nmcli connection add con-name test_ap type wifi ifname wlan0 ssid [essid] 
nmcli connection modify test_ap connection.autoconnect "no" 802-11-wireless.mode "ap" ipv4.method share ipv4.addresses "[addresses]" 802-11-wireless-security.key-mgmt wpa-psk 802-11-wireless-security.psk [pass] 

コネクション作成後、以下のコマンドで自動起動を有効化します。

nmcli connection modify test_ap connection.autoconnect "yes"

この状態で再起動を行っても自動起動されず、connection up での起動にも失敗(タイムアウト)してしまいます。
また、このときのデバイスの状態は以下のようになっていました。

root@armadillo:~# nmcli device
DEVICE    TYPE      STATE                                  CONNECTION
eth0      ethernet  connecting (getting IP configuration)  Wired connection 1
wlan0     wifi      disconnected                           --

この状態でnmcli device connect wlan0 を実行すると、
「Error: Device activation failed: device was disconnected」というメッセージが表示されます。

なお、コネクション作成直後に connection up での起動は問題なく行えています。

また、上記例ではコネクション作成時に自動起動を無効になるよう設定していますが、
初期状態で自動起動が有効になるように作成して再起動を行った場合も正しく自動起動されます。
ですが、その後自動起動を無効に設定して再起動を行うと起動できない状態になります。

wlan0が起動できない状態になった場合、コネクションをdeleteして作り直すと復帰します。

自動起動の有効無効を動的に切り替えられるようにしたいのですが、
何か解決方法や、不足している設定等ありましたらご教授頂けると幸いです。

コメント

溝渕様

ご返信ありがとうございます。

> NetworkManagerを利用しなければならない状況でしょうか?

→ そうですね。可能であれば NetworkManager を利用したいと考えています。

提示した内容では試験的にAPモードのコネクションを1つだけ作成していますが、
実際にはwlan0に対してAPモードとinfrastructureモードの2つのコネクションを用意し、
APモードの自動起動とinfrastructureモードの自動起動を動的に切り替える(切替後は再起動する)
ような運用を想定しています。
NetworkManager を使用しての解決が難しく、上記運用が可能な別の方法がありましたら
教えていただきたいです。
(hostapdでinfrastructureモードに相当する設定があればそれも検討したいです。)