web-dev-qa-db-ja.com

nmcliを使用して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 
7
stdcerr

パーティーには少し遅れましたが、同じハードルに行き詰まりました。私はそれを解決したので、このトピックに関する他のすべての投稿が泥とほぼ同じくらいはっきりしているので、私は私の発見を共有したいと思いました。

NetworkManagerはデバイスを認識できますが、デバイスでサポートされている接続を認識していません。 WiFiとは異なり、利用可能な接続のリストを作成するためにスキャンを実行することはできません。自分で追加する必要があります。

接続を作成する前に、NetworkManagerがデバイスの管理を妨げていないことを確認してください。これはデフォルトでUbuntu Serverで発生し、NetworkManagerが既存の正当なレガシー接続を乗っ取ることを防ぎます(Ubuntu開発者による説明を参照 here )。

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にコピーして編集します。gsmタイプを追加して、unmanaged-deviceで始まる行を変更します例外のリスト:

unmanaged-devices=*,except:type:wifi,except:type:wwan,except:type:gsm

NetworkManagerをアップグレードするときは、元の/ usr/libファイルの更新を確認することを忘れないでください。

接続を作成する

まず、(適切に/ sと名付けられた)editコマンドを使用して、希望する名前の新しい接続を作成します。例:

Sudo nmcli connection edit type gsm con-name "My GPRS Connection"

接続を保存するときに失望させたくない場合は、Sudoを使用します。

もちろん、GSMを使用していない場合は、typeパラメータを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
-------------------------------------------------------------------------------

コマンドの完全なリストを表示するには、helpと入力します。

編集する必要があるのは、ネットワークのAPNだけです。これはset gsm.apn <APN>で設定できます。APNは、verizonの場合はepc.t-mobile.comwholesaleまたはvzwinternetのようになります。

特定のインターフェースへの接続を制限することもできます。これは、デバイス名がすぐに変更される可能性があるシリアルベースの接続では特に推奨されません。ただし、必要に応じて、たとえばset connection.interface-name ttyS4を実行できます。

ルートとして実行している場合、接続を保存できるようになります

nmcli> save

それでおしまい。接続を編集するために戻る必要がある場合は、nmcli c edit "My GPRS Connection"を使用するか、構成ファイルを直接編集します。 Debianベースのシステムでは/etc/NetworkManager/system-connections/にあり、Redhatでは/etc/sysconfig/network-scripts/にあります。これらのファイルはシステム間で転送できるようです-UUIDは基本的にランダムです。

新しい接続に接続する

これで接続できるはずです

Sudo nmcli device connect <interface name>

すべてがうまくいくと、NetworkManagerは「My GPRS Connection」を自動的に選択します。そうでない場合、

Sudo nmcli connection up "My GPRS Connection" ifname <interface name>

これが今の私にとっては落ちるところです。接続中にタイムアウトしましたが、信号範囲外です。うまくいけば、それはあなたのためにより良く機能します。

さらに情報が必要な場合はコメントしてください。

14
CJxD

あなたがより多くのものを持っていると仮定します .9.6より最近のバージョン

$ nmcli --version
nmcli tool, version 0.9.8.8-2.fc19

dev内のnmcliコマンドを使用して、コマンドラインからこのようなデバイスを作成できます。

nmcli manページからの抜粋

   nmcli dev wifi con "Cafe Hotspot 1" password caffeine name "My cafe"

          creates a new connection named "My cafe" and then connects it to 
          "Cafe Hotspot 1" SSID using "caffeine" password. This is mainly 
          useful when connecting to "Cafe Hotspot 1" for the first time. 
          Next time, it is better to use 'nmcli con up id "My cafe"' so that 
          the existing connection profile can be used and no additional is 
          created.

ただし、接続の作成はまだnmcliの非常に新しい機能であり、F19のバージョンのNetworkManager(0.9.8.8)にもリストされていません。 F20とRHEL7ベータを調べたところ、オプションが間もなく登場する可能性があることを示しているように見えるこれらの例に気づきました 2.4。NetworkManagerコマンドラインツール、nmcliの使用

$ nmcli connection modify id 'MyCafe' 802-11-wireless.mtu 1350

そのため、ディストリビューションにNetworkManagerの新しいバージョンがある場合は、そのように追加できます。

1
slm

それは1年後の今であり、多くのパッケージが更新されています。 ModemManagerサービスとmmcliを使用して、ublox SARA-U201を初期化することができました。 ModemManagerはすでに「mymodem」という接続を確立しています。正しく設定されなかったのはconnection.interface-nameだけだったので、これをクリアする必要がありました。受け入れられた回答の+1。これは、これを達成する正しい方法で私を助けたからです。要約すると、これらは私がそれを起動して実行するために実行しなければならなかったコマンドです:

Sudo mmcli -i 0 --pin=<pin_number>
Sudo mmcli -m 0 --simple-connect="apn=my.carrier.apn"
Sudo nmcli connection edit mymodem
    nmcli>set connection.interface-name
    Enter 'interface-name' value: (leave blank, press enter)
    save
    quit
Sudo nmcli connection up mymode ifname ttyACM0

これらの設定は、SIMのPINを除いて保存されます。PINが必要な場合は、毎回このコマンドを使用する必要があります。

1
Pete