调制解调器管理器设置承载并自动连接

ede*_*rmi 4 networkmanager 3g raspberry-pi gsm raspbian

我正在尝试在 Raspberry Pi(最新的 Raspbian)上使用德国电信和调制解调器管理器设置华为 E3276 LTE 棒,基本上它可以工作,但我无法创建可通过 ansible 部署到 RPi 的配置。

当我连接 LTE 棒时,ModemManager 会正确设置所有内容,并以 wwan0 接口和分配给它的 169.254.0.0/16 地址结束。之后,我总是必须运行sudo mmcli -m 0 --simple-connect="apn=internet.t-d1.de,user=t-mobile,password=tm,number=*99#"这会触发网络管理器以某种方式为我获取 IP。一切安好。

由于我想自动执行此操作,因此我想摆脱手动执行 mmcli 命令,但目前正在失败。

  • 选项 1:cronjob 和脚本 - 丑陋但最有可能工作。我想避免这种情况
  • 选项 2:调制解调器管理器/mmcli 的配置文件。我没有找到任何可以放置这些数据的配置文件
  • 选项 3:udev 规则执行命令

    pi@raspberrypi:~ $ cat /etc/udev/rules.d/90-lte.rules 
    ACTION=="add", SUBSYSTEM=="net", ATTR{address}=="0c:5b:8f:27:9a:64", RUN+="/usr/local/bin/lte_setup.sh"
    pi@raspberrypi:~ $ cat /usr/local/bin/lte_setup.sh
    #!/bin/sh
    
    sleep 2
    mmcli -m 0 --simple-connect='apn=internet.t-d1.de,user=t-mobile,password=tm,number=*99#'
    
    Run Code Online (Sandbox Code Playgroud)

这不起作用,我实际上不知道为什么。

那么,基本问题是:为了在插入 E3276 后通过 Modem-/NetworkManager 自动获取公共 IP,通过 ansible 将这个配置/脚本部署到 Raspberry Pi 的最简单方法是什么?

最后一件事:我不是在寻找使用 wvdial 或其他工具的解决方案。我花了几天时间尝试使用来自 Internet 的“工作”配置来使用它们,只是为了发现它们不起作用。ModemManager 和 NetworkManager 已被证明有效,所以我只是尝试在不构建丑陋的 cronjob 解决方法的情况下完成设置。

小智 7

您可以使用 NetworkManager 注册您的连接。

我没有相同的设置。我在带有gsm调制解调器的Ubuntu上。

创建连接

sudo nmcli c add con-name "mycon" type gsm ifname "*" apn "internet.t-d1.de"
Run Code Online (Sandbox Code Playgroud)

设置自动连接

sudo nmcli c mod mycon connection.autoconnect yes
Run Code Online (Sandbox Code Playgroud)

用户名和密码

sudo nmcli c mod mycon gsm.username "t-mobile"
sudo nmcli c mod mycon gsm.password "tm"
Run Code Online (Sandbox Code Playgroud)

在 Ubuntu 上,NetworkManager 配置文件位于 /etc/NetworkManager/system-connections/ 文件夹中。

sudo cat /etc/NetworkManager/system-connections/mycon
Run Code Online (Sandbox Code Playgroud)

开始连接

sudo nmcli c up mycon
Run Code Online (Sandbox Code Playgroud)

连接现在应该自动启动。