std*_*err 12 command-line configuration modem networkmanager gsm
我有一个没有 X 显示的系统,我想用它nmcli
来配置我的蜂窝调制解调器以连接到某个 apn。我可以在 Ubuntu(使用 X)上使用这个调制解调器很好地运行它,我现在想在命令行上实现相同的目标。如何设置连接?
到目前为止,我得到了这个:
# nmcli dev status
** (process:2379): WARNING **: Could not initialize NMClient /org/freedesktop/NetworkManager: Permissions request failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.PolicyKit1 was not provided by any .service files
DEVICE TYPE STATE
ttyUSB1 gsm disconnected
eth0 802-3-ethernet connected
Run Code Online (Sandbox Code Playgroud)
Chr*_*tts 18
聚会有点晚了,但我被困在了同样的障碍上。自从我解决了这个问题,我想我会分享我的发现,因为关于这个主题的所有其他帖子都像泥巴一样清晰。
虽然 NetworkManager 可以看到设备,但它不知道设备支持的任何连接。与 WiFi 不同,我们不能仅仅通过扫描来列出可用连接。我们需要自己添加一个。
在创建连接之前,请确保 NetworkManager 不会阻止设备被管理。默认情况下,这是在 Ubuntu Server 上发生的,以防止 NetworkManager 接管现有的合法旧连接(请参阅此处来自 Ubuntu 开发人员的解释)。
当nmcli device
显示unmanaged
设备的状态时,您可以验证该设备是否不受管理,相反的是disconnected
。在这种情况下,请跳到下一段。
要使 Ubuntu Server 上的 NetworkManager 处理连接,请将文件复制/usr/lib/NetworkManager/conf.d/10-globally-managed-devices.conf
到/etc/NetworkManager/conf.d/10-globally-managed-devices.conf
,然后编辑它:unmanaged-device
通过将gsm
类型添加到例外列表来修改以开头的行:
unmanaged-devices=*,except:type:wifi,except:type:wwan,except:type:gsm
Run Code Online (Sandbox Code Playgroud)
升级 NetworkManager 时不要忘记检查原始 /usr/lib 文件的更新。
首先,我们使用(适当命名的 /s)edit
命令创建一个您希望命名的新连接,例如:
sudo nmcli connection edit type gsm con-name "My GPRS Connection"
Run Code Online (Sandbox Code Playgroud)
使用sudo
,如果你不想失望,当您试图保存连接。
当然,如果您不使用 GSM,您可以将类型参数更改为 NetworkManager 支持的其他协议。
现在您将进入编辑模式。您需要的大部分设置都会自动为您填写。您可以使用以下print
命令查看所有当前设置 :
nmcli> print
===============================================================================
Connection profile details (My GPRS Connection)
===============================================================================
connection.id: My GPRS Connection
connection.uuid: 27b012ca-453f-482f-bc0e-c81bbab07310
connection.interface-name: --
connection.type: gsm
connection.autoconnect: yes
connection.timestamp: 0
connection.read-only: no
connection.permissions:
connection.zone: --
connection.master: --
connection.slave-type: --
connection.secondaries:
connection.gateway-ping-timeout: 0
-------------------------------------------------------------------------------
ipv4.method: auto
ipv4.dns:
ipv4.dns-search:
ipv4.addresses:
ipv4.routes:
ipv4.ignore-auto-routes: no
ipv4.ignore-auto-dns: no
ipv4.dhcp-client-id: --
ipv4.dhcp-send-hostname: yes
ipv4.dhcp-hostname: --
ipv4.never-default: no
ipv4.may-fail: yes
-------------------------------------------------------------------------------
ipv6.method: auto
ipv6.dns:
ipv6.dns-search:
ipv6.addresses:
ipv6.routes:
ipv6.ignore-auto-routes: no
ipv6.ignore-auto-dns: no
ipv6.never-default: no
ipv6.may-fail: yes
ipv6.ip6-privacy: -1 (unknown)
ipv6.dhcp-hostname: --
-------------------------------------------------------------------------------
gsm.number: *99#
gsm.username: --
gsm.password: --
gsm.password-flags: 0 (none)
gsm.apn: --
gsm.network-id: --
gsm.network-type: -1
gsm.allowed-bands: 1 (any)
gsm.pin: --
gsm.pin-flags: 0 (none)
gsm.home-only: no
-------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)
键入help
以查看完整的命令列表。
您可能唯一需要编辑的是您网络的 APN。这可以设置为set gsm.apn <APN>
APN 之类的地方epc.t-mobile.com
,wholesale
或者vzwinternet
为 verizon。
您还可以将连接限制为特定接口。对于设备名称很容易更改的基于串行的连接,尤其不建议这样做。如果你愿意,你可以做set connection.interface-name ttyS4
例如。
如果您以 root 身份运行,您现在可以保存连接
nmcli> save
Run Code Online (Sandbox Code Playgroud)
就是这样。如果您需要返回编辑连接,请使用nmcli c edit "My GPRS Connection"
,或直接编辑配置文件。在基于 Debian 的系统上,您会/etc/NetworkManager/system-connections/
在/etc/sysconfig/network-scripts/
. 这些文件似乎可以从系统转移到系统 - UUID 基本上是随机的。
现在你应该能够连接
sudo nmcli device connect <interface name>
Run Code Online (Sandbox Code Playgroud)
如果一切顺利,NetworkManager 会自动选择“我的 GPRS 连接”。如果不,
sudo nmcli connection up "My GPRS Connection" ifname <interface name>
Run Code Online (Sandbox Code Playgroud)
这就是我现在崩溃的地方。它在连接期间超时,但我认为我超出了信号范围。希望它对你更有效。
如果您需要更多信息,请发表评论。