NMCLI 设备不可用

Bar*_*art 5 ubuntu network-programming iot

我正在尝试在 ubuntu core 16.04 上配置带有蜂窝接口的新设备。我有 NMCLI 包在上面运行。在添加连接之前,我检查了接口

# nmcli dev
DEVICE    TYPE      STATE         CONNECTION         
eth1      ethernet  connected     Wired connection 1 
wlan0     wifi      disconnected  --                 
eth0      ethernet  unavailable   --                 
cdc-wdm0  gsm       unavailable   --                 
lo        loopback  unmanaged     --     
Run Code Online (Sandbox Code Playgroud)

我添加了我的连接:

nmcli con add type gsm ifname cdc-wdm0 con-name MyConnection apn myapn.com
Run Code Online (Sandbox Code Playgroud)

最后我尝试通过运行建立连接:

nmclil con up MyConnection 
Error: Connection activation failed: No suitable device found for this connection
Run Code Online (Sandbox Code Playgroud)

我还粘贴了应用的配置的输出:

# nmcli -p con show MyConnection

                  Connection profile details (MyConnection)

connection.id:                          MyConnection
connection.uuid:                        25dc3eec-ca8a-4861-bfcc-089d558972d4
connection.interface-name:              cdc-wdm0
connection.type:                        gsm
connection.autoconnect:                 yes
connection.autoconnect-priority:        0
connection.timestamp:                   0
connection.read-only:                   no
connection.permissions:                 
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
connection.lldp:                        -1 (default)

ipv4.method:                            auto
ipv4.dns:                               
ipv4.dns-search:                        
ipv4.dns-options:                       (default)
ipv4.addresses:                         
ipv4.gateway:                           --
ipv4.routes:                            
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-timeout:                      0
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.dhcp-fqdn:                         --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
ipv4.dad-timeout:                       -1 (default)

ipv6.method:                            auto
ipv6.dns:                               
ipv6.dns-search:                        
ipv6.dns-options:                       (default)
ipv6.addresses:                         
ipv6.gateway:                           --
ipv6.routes:                            
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.addr-gen-mode:                     stable-privacy
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --

gsm.number:                             *99#
gsm.username:                           <hidden>
gsm.password:                           <hidden>
gsm.password-flags:                     0 (none)
gsm.apn:                                myapn.com
gsm.network-id:                         --
gsm.pin:                                <hidden>
gsm.pin-flags:                          0 (none)
gsm.home-only:                          no
gsm.device-id:                          --
gsm.sim-id:                             --
gsm.sim-operator-id:                    --
Run Code Online (Sandbox Code Playgroud)

我的问题是如何启用不可用的设备以及为什么它不可用?我可以检查什么来帮助我解决问题。

任何帮助都会很棒,因为我才刚刚开始使用 Snappy。

Bar*_*art 6

好的,所以我设法解决了我自己的问题,我采取的步骤如下:

1) 检查我的网关上的调制解调器是否被 ubuntu core 读取:

$ sudo mmcli -L

Found 1 modems:
    /org/freedesktop/ModemManager1/Modem/0 [Generic] MBIM [1519:0020]
Run Code Online (Sandbox Code Playgroud)

2)检查SIM卡读取是否正确:

$ sudo mmcli -m 0

/org/freedesktop/ModemManager1/Modem/0 (device id 'd8b328efa783ca35a022d6b44b878981e67a5903')
  -------------------------
  Hardware |   manufacturer: 'Generic'
           |          model: 'MBIM [1519:0020]'
           |       revision: 'MOD_6260_V05.1412.00_R07_VCTCX'
           |      supported: 'gsm-umts'
           |        current: 'gsm-umts'
           |   equipment id: '014752000020933'
  -------------------------
  System   |         device: '/sys/devices/pci0000:00/0000:00:14.0/usb1/1-3'
           |        drivers: 'cdc_acm, cdc_mbim'
           |         plugin: 'Generic'
           |   primary port: 'cdc-wdm0'
           |          ports: 'cdc-wdm0 (mbim), wwan0 (net), ttyACM0 (at)'
  -------------------------
  Numbers  |           own : 'unknown'
  -------------------------
  Status   |           lock: 'none'
           | unlock retries: 'sim-pin (3)'
           |          state: 'connected'
           |    power state: 'on'
           |    access tech: 'gprs'
           | signal quality: '67' (cached)
  -------------------------
  Modes    |      supported: 'allowed: 2g, 3g; preferred: none'
           |        current: 'allowed: 2g, 3g; preferred: none'
  -------------------------
  Bands    |      supported: 'unknown'
           |        current: 'unknown'
  -------------------------
  IP       |      supported: 'ipv4, ipv6, ipv4v6'
  -------------------------
  3GPP     |           imei: '<censored>'
           |  enabled locks: 'fixed-dialing'
           |    operator id: '27203'
           |  operator name: 'IRL - METEOR'
           |   subscription: 'unknown'
           |   registration: 'home'
  -------------------------
  SIM      |           path: '/org/freedesktop/ModemManager1/SIM/0'

  -------------------------
  Bearers  |          paths: '/org/freedesktop/ModemManager1/Bearer/0'
Run Code Online (Sandbox Code Playgroud)

在这里,我意识到在网关中找不到我的 SIM 卡,并且我的 SIM 卡已损坏,我更换了我的 SIM 卡并得到了上面的输出。

3) 配置新的 APN 或编辑现有的 APN。(我发现重新添加连接更容易)

确保您处于 root 状态 ( sudo su -)

a) 删除失败的现有连接

 #nmcli con delete MyConnection
Run Code Online (Sandbox Code Playgroud)

b) 创建新连接

#nmcli con add type gsm ifname cdc-wdm0 con-name MyWorkingConnection apn MyNewApn.com
Run Code Online (Sandbox Code Playgroud)

4)为新连接添加用户名和密码

#nmcli con edit MyWorkingConnection
Run Code Online (Sandbox Code Playgroud)

此时您将进入 nmcli> 提示符。输入命令列表的帮助来帮助您编辑连接。对我来说,我需要添加用户名和密码,因此我通过输入以下内容来实现:

nmcli> set gsm.username data
nmcli> set gsm.password <passwordgoeshere>
nmcli> save
nmcli> quit
Run Code Online (Sandbox Code Playgroud)

此时我的连接已建立。我找到了命令

#nmcli m
Run Code Online (Sandbox Code Playgroud)

在另一个会话中打开对于检查接口状态变化很有用。

希望这可以帮助一些人!