組み込みLinuxのモデムマネージャとネットワークマネージャを搭載したUSBモデム(yocto dunfell)

組み込みLinuxのモデムマネージャとネットワークマネージャを搭載したUSBモデム(yocto dunfell)

私はYocto DunfellのLinuxとModemManagerとNetworkManagerを使用して組み込みシステムでUSBモデムを操作しようとしています。

以下のようにネットワークのモデムに接続できますが、接続を作成してインターフェイスを開くことはできません。

以下はさまざまなコマンドの出力です。

root@rpi-cm3:/# mmcli -L
    /org/freedesktop/ModemManager1/Modem/2 [Telit] LE910-EU V2
root@rpi-cm3:/# mmcli -m 2
  --------------------------------
  General  |            dbus path: /org/freedesktop/ModemManager1/Modem/2
           |            device id: d522cda0f436245296a7a9e47c981e9601af3bc7
  --------------------------------
  Hardware |         manufacturer: Telit
           |                model: LE910-EU V2
           |    firmware revision: 20.00.402
           |            supported: gsm-umts, lte
           |              current: gsm-umts, lte
           |         equipment id: 351622072422039
  --------------------------------
  System   |               device: /sys/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.5
           |              drivers: cdc_acm, cdc_ncm
           |               plugin: Telit
           |         primary port: ttyACM0
           |                ports: ttyACM1 (unknown), ttyACM3 (at), ttyACM5 (unknown), 
           |                       wwan0 (net), ttyACM0 (at), ttyACM4 (unknown), ttyACM2 (unknown)
  --------------------------------
  Status   |                state: registered
           |          power state: on
           |          access tech: umts
           |       signal quality: 57% (recent)
  --------------------------------
  Modes    |            supported: allowed: 2g; preferred: none
           |                       allowed: 3g; preferred: none
           |                       allowed: 2g, 3g; preferred: none
           |                       allowed: 4g; preferred: none
           |                       allowed: 2g, 4g; preferred: none
           |                       allowed: 3g, 4g; preferred: none
           |                       allowed: 2g, 3g, 4g; preferred: none
           |              current: allowed: 2g, 3g, 4g; preferred: none
  --------------------------------
  Bands    |            supported: egsm, dcs, utran-1, utran-8, eutran-1, eutran-3, eutran-7, 
           |                       eutran-8, eutran-20
           |              current: egsm, dcs, utran-1, eutran-1
  --------------------------------
  IP       |            supported: ipv4, ipv6, ipv4v6
  --------------------------------
  3GPP     |                 imei: 351622072422039
           |         registration: home
  --------------------------------
  3GPP EPS | ue mode of operation: csps-2
  --------------------------------
  SIM      |            dbus path: /org/freedesktop/ModemManager1/SIM/2
  --------------------------------
  Bearer   |            dbus path: /org/freedesktop/ModemManager1/Bearer/1
root@rpi-cm3:/# mmcli -b 1
  ------------------------
  General    |  dbus path: /org/freedesktop/ModemManager1/Bearer/1
             |       type: default
  ------------------------
  Status     |  connected: no
             |  suspended: no
             | ip timeout: 20
  ------------------------
  Properties |        apn: gprs.swisscom.ch
             |    roaming: allowed
root@rpi-cm3:/# nmcli device show
GENERAL.DEVICE:                         wwan0
GENERAL.TYPE:                           wwan
GENERAL.HWADDR:                         00:00:11:12:13:14
GENERAL.MTU:                            1500
GENERAL.STATE:                          20 (unavailable)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --

GENERAL.DEVICE:                         eth0
GENERAL.TYPE:                           ethernet
GENERAL.HWADDR:                         B8:27:EB:F7:A1:B3
GENERAL.MTU:                            1500
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
WIRED-PROPERTIES.CARRIER:               off
IP4.GATEWAY:                            --
IP6.GATEWAY:                            --
GENERAL.DEVICE:                         lo
GENERAL.TYPE:                           loopback
GENERAL.HWADDR:                         00:00:00:00:00:00
GENERAL.MTU:                            65536
GENERAL.STATE:                          10 (unmanaged)
GENERAL.CONNECTION:                     --
GENERAL.CON-PATH:                       --
IP4.ADDRESS[1]:                         127.0.0.1/8
IP4.GATEWAY:                            --
IP6.ADDRESS[1]:                         ::1/128
IP6.GATEWAY:                            --
root@rpi-cm3:/# nmcli c show
NAME   UUID                                  TYPE  DEVICE 
modem  e7482093-2d4c-47fa-b52b-e6e282902453  gsm   --   
root@rpi-cm3:/# nmcli c up modem
Error: Connection activation failed: No suitable device found for this connection (device lo not available because device is strictly unmanaged).

ここでハングして接続を作成する方法に関する情報が見つかりません。

奇妙なことは、WWANインターフェイスを自動的に管理するようにNetworkManagerを設定できないことです。これを強制するために、次のコマンドを追加しました。

nmcli dev set wwan0 managed yes

ご協力ありがとうございます

ありがとう

ベストアンサー1

興味深いことに、私は今日の夜にも同様の構成を使用しています(Telit LE910 NAを搭載したam335xベースの組み込みシステムでyocto dunfellを使用)。まだcdc_ncm(wwan0)コンテキストを機能させることはできませんが、pppを​​使用してネットワークを起動できます。

nmcli c add type gsm ifname '*' con-name {connectionname} apn {apnname}

これを行うには、ネットワーク管理者にpppサポートを追加する必要があることに注意してください。基本パッケージにはありません。そのためには保証が必要です。

作るnetworkmanager_%.bbappend

# Based on https://github.com/digi-embedded/meta-digi/blob/morty/meta-digi-dey/recipes-connectivity/networkmanager/networkmanager_%25.bbappend

FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:"

SRC_URI += " \
    file://att.nmconnection \
"

# Adjust other compile time options
PACKAGECONFIG_append = " gnutls modemmanager ppp"

do_install_append() {
    install -m 0600 ${WORKDIR}/att.nmconnection ${D}${sysconfdir}/NetworkManager/system-connections/
}

次に、接続情報を例にatt.nmconnection。 uuidを新しいuuidに置き換えて、apnの名前を入力します。

[connection]
id=att
uuid=88cd70ea-6501-11eb-ae93-0242ac130002
type=gsm
permissions=
autoconnect=true

[gsm]
apn=NXTGENPHONE

[ipv4]
dns-search=
method=auto

[proxy]

起動時にモデムが表示されたら、ppp経由で自動的に接続する必要があります。

ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol  
          inet addr:10.55.27.182  P-t-P:10.55.27.182  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1428  Metric:1
          RX packets:65110 errors:0 dropped:0 overruns:0 frame:0
          TX packets:24635 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:53163224 (50.7 MiB)  TX bytes:1670291 (1.5 MiB)

また、cdc_ncmインターフェイスを使用したいが、まだ動作させることはできません。ドライバは大丈夫ですが、モデムに正しく接続できず、キャリアからアドレスを取得できません。

ifconfig wwan0
wwan0     Link encap:Ethernet  HWaddr 00:00:11:12:13:14  
          BROADCAST NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

たぶん私たちはこの問題を一緒に解決できると思います。

おすすめ記事