私は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)
たぶん私たちはこの問題を一緒に解決できると思います。