![热点/接入点配置 - 嵌入式 Linux](https://linux22.com/image/204196/%E7%83%AD%E7%82%B9%2F%E6%8E%A5%E5%85%A5%E7%82%B9%E9%85%8D%E7%BD%AE%20-%20%E5%B5%8C%E5%85%A5%E5%BC%8F%20Linux.png)
我正在嵌入式处理器上运行 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