Konfigurieren Sie die GSM-Verbindung mit nmcli

8

Ich habe ein System ohne X-Anzeige und möchte damit nmclimein Mobilfunkmodem für die Verbindung mit einer bestimmten APN konfigurieren. Ich kann es mit diesem Modem unter Ubuntu (mit X) gut zum Laufen bringen und ich möchte dasselbe jetzt in der Kommandozeile erreichen. Wie kann ich die Verbindung herstellen?

Bisher verstehe ich Folgendes:

# 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 
stdcerr
quelle

Antworten:

14

Ein bisschen spät zur Party, aber ich steckte an der gleichen Hürde. Da ich es ausgearbeitet habe, dachte ich, ich würde meine Erkenntnisse teilen, da jeder andere Beitrag zu diesem Thema ungefähr so ​​klar wie Schlamm ist.

Obwohl NetworkManager das Gerät sehen kann, sind ihm keine Verbindungen bekannt , die vom Gerät unterstützt werden. Im Gegensatz zu WiFi können wir nicht einfach einen Scan durchführen, um eine Liste der verfügbaren Verbindungen zu erstellen. Wir müssen selbst einen hinzufügen.

Stellen Sie vor dem Herstellen der Verbindung sicher, dass NetworkManager die Verwaltung des Geräts nicht verhindert. Dies geschieht standardmäßig auf Ubuntu Server, um zu verhindern, dass NetworkManager eine vorhandene legitime Legacy-Verbindung übernimmt (siehe Erklärung des Ubuntu-Entwicklers hier ).

Sie können überprüfen , dass das Gerät nicht verwaltet, wenn nmcli devicezeigt unmanagedStatus für das Gerät, das Gegenteil zu sein disconnected. Fahren Sie in diesem Fall mit dem nächsten Absatz fort.

Damit NetworkManager unter Ubuntu Server die Verbindung verarbeitet, kopieren Sie die Datei /usr/lib/NetworkManager/conf.d/10-globally-managed-devices.confin die Datei /etc/NetworkManager/conf.d/10-globally-managed-devices.confund bearbeiten Sie sie anschließend: Ändern Sie die Zeile beginnend mit, unmanaged-deviceindem Sie gsmder Liste der Ausnahmen den Typ hinzufügen :

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

Vergessen Sie nicht, beim Upgrade von NetworkManager die Aktualisierungen der ursprünglichen Datei / usr / lib zu überprüfen.

Eine Verbindung herstellen

Zunächst erstellen wir mit dem editBefehl (entsprechend benannt / s) eine neue Verbindung mit dem gewünschten Namen, z. B.:

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

Verwenden sudoSie diese Option, wenn Sie beim Versuch, die Verbindung zu speichern, nicht enttäuscht werden möchten.

Wenn Sie kein GSM verwenden, können Sie den Typparameter natürlich in ein anderes Protokoll ändern, das von NetworkManager unterstützt wird.

Nun gelangen Sie in den Bearbeitungsmodus. Die meisten Einstellungen, die Sie benötigen, werden automatisch für Sie ausgefüllt. Sie können alle aktuellen Einstellungen mit dem folgenden printBefehl anzeigen:

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
-------------------------------------------------------------------------------

Geben Sie ein help, um eine vollständige Liste der Befehle anzuzeigen.

Das einzige, was Sie wahrscheinlich bearbeiten müssen, ist der APN Ihres Netzwerks. Dies kann eingestellt werden, set gsm.apn <APN>wo APN so etwas wie wäre epc.t-mobile.com, wholesaleoder vzwinternetfür verizon.

Sie können die Verbindung auch auf eine bestimmte Schnittstelle beschränken. Dies wird insbesondere für serielle Verbindungen nicht empfohlen, bei denen sich der Gerätename leicht ändern kann. Wenn Sie aber wollten, könnten Sie set connection.interface-name ttyS4zum Beispiel tun .

Vorausgesetzt, Sie werden als Root ausgeführt, können Sie jetzt Ihre Verbindung speichern

nmcli> save

Das ist es. Wenn Sie zurückgehen müssen, um die Verbindung zu bearbeiten, verwenden Sie nmcli c edit "My GPRS Connection"die Konfigurationsdatei oder bearbeiten Sie sie direkt. Auf Debian-basierten Systemen finden Sie es in /etc/NetworkManager/system-connections/, auf Redhat wird es in sein /etc/sysconfig/network-scripts/. Diese Dateien scheinen von System zu System übertragbar zu sein - die UUID ist grundsätzlich zufällig.

Verbindung zu unserer neuen Verbindung herstellen

Jetzt sollten Sie in der Lage sein, eine Verbindung herzustellen

sudo nmcli device connect <interface name>

Wenn alles gut geht, wählt NetworkManager automatisch "Meine GPRS-Verbindung" aus. Wenn nicht,

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

Hier fällt es mir gerade herunter. Während der Verbindung tritt eine Zeitüberschreitung auf, aber ich glaube, ich bin außerhalb des Signalbereichs. Hoffentlich funktioniert es besser für Sie.

Bitte kommentieren Sie, wenn Sie weitere Informationen benötigen.

Chris Watts
quelle
Ich konnte die Verbindung herstellen, aber immer noch: Error: Connection activation failed: Connection 'eBroadband' is not available on the device ttyACM0 at this time.// ScSht #debian #stretch #thinkpad # N5321
eapo
1

Angenommen, Sie haben eine neuere Version als 0.9.6 :

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

Sie können Geräte wie dieses über die Befehlszeile mit den folgenden devBefehlen erstellen nmcli:

Auszug aus der nmcli Manpage

   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.

Das Erstellen von Verbindungen ist jedoch noch eine sehr neue Funktion für nmcliund ist nicht einmal in der F19-Version von NetworkManager (0.9.8.8) aufgeführt. Als ich mir F20 und RHEL7 Beta ansah, bemerkte ich diese Beispiele, die darauf hindeuten, dass die Option bald verfügbar sein könnte, 2.4. Verwenden des NetworkManager-Befehlszeilentools nmcli .

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

Wenn Ihre Distribution eine neuere Version von NetworkManager hat, können Sie sie vielleicht so hinzufügen.

slm
quelle
1

Es ist jetzt ein Jahr später und viele Pakete werden aktualisiert. Mit dem ModemManagerDienst konnte mmcliich meine initialisieren ublox SARA-U201. ModemManagerhat bereits die Verbindung "mymodem" hergestellt. Das einzige, was nicht richtig eingestellt wurde connection.interface-name, war das , also musste ich dieses klären. +1 für die akzeptierte Antwort, weil es mir auf die richtige Weise geholfen hat, dies zu erreichen. Zusammenfassend sind dies die Befehle, die ich ausführen musste, um es zum Laufen zu bringen:

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

Beachten Sie, dass diese Einstellungen mit Ausnahme der PIN der SIM-Karte gespeichert werden. Wenn Sie eine PIN benötigen, müssen Sie diesen Befehl bei jedem Start verwenden.

Pete
quelle