热点/接入点配置 - 嵌入式 Linux

热点/接入点配置 - 嵌入式 Linux

我正在嵌入式处理器上运行 Ubuntu 16.04 派生的 Linux,Yocto 版本

内核似乎是 4.14.141

我正在通过 C 语言以编程方式在硬件上启动一个 WiFi 接入点,方法是通过调用来启用无线电

system("nmcli r wifi on");

(目前这可能是多余的,但请耐心等待。)

此时我会调出一个接入点

system( "nmcli dev wifi hotspot ifname wlan0 ssid \"test\" password \"test1234\" ")

现在我在 /etc/NetworkManager/system-connections 中有一个文件 Hotspot.nmconnection ,其中包含该接入点的正确详细信息

[connection]
id=Hotspot-2
uuid=70c76bd2-0e13-492e-8a45-9094bc6e0773
type=wifi
autoconnect=false
permissions=

[wifi]
mac-address=00:04:F3:1B:BA:AE
mac-address-blacklist=
mode=ap
ssid=test

[wifi-security]
group=ccmp;
key-mgmt=wpa-psk
pairwise=ccmp;
proto=rsn;
psk=test1234

[ipv4]
dns-search=
method=shared

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=ignore

我的问题是,每次我想使用此接入点时,我都想使用不同的 SSID 和不同的密码。接入点与用户会话绑定,因此其生命周期仅限于该会话和一组凭据(除非通过传递的硬件令牌,否则不可用) Wifi AP 启动以匹配所提供的令牌,然后关闭并可以销毁删除令牌后。

尝试使用 nmcli 修改此配置文件

system ("nmcli con mod Hotspot ssid \"newTest\" password \"newpass\" ");

失败了

Error: invalid <setting>.<property> 'password'.

使用第一个命令重新定义 AP 会成功创建一个新的 wifi AP,但它会获得一个带有数字后缀的新配置文件,该文件基于之前的迭代 Hotspot-2、Hotspot-n 等,不会太久,直到我的闪存溢出。

那么我该怎么做呢?我在哪里以及如何定义我收集的所需的密码文件,或者如何更改内容以实现我的目标?我怀疑我需要让 polkit 参与进来,但那是一个我还没有去过的兔子窝。

答案1

你有一个个人资料。看到它与nmcli connection.

上面,您可以看到配置文件的名称是Hotspot-2(和 UUID 70c76bd2-0e13-492e-8a45-9094bc6e0773)。

修改配置文件,并根据您是否知道 UUID 或名称,相应地引用它:

nmcli connection modify Hotspot-2 ...
nmcli connection modify 70c76bd2-0e13-492e-8a45-9094bc6e0773 ...
nmcli connection modify id Hotspot-2 ...
nmcli connection modify uuid 70c76bd2-0e13-492e-8a45-9094bc6e0773 ...

(我只是这么说,因为你可以通过不同的方式参考配置文件)。

反正。所以修改一下:

nmcli connection modify Hotspot-2 \
   wifi.ssid My-SSID \
   wifi-sec wifi-sec.psk new-passwd

对配置文件的更改会立即生效(对配置文件),但只有在您下次重新激活配置文件后它们才会生效:

nmcli connection up Hotspot-2

相关内容