Mbim-network

Ubuntu Logo packages

Skip
to content

» Ubuntu
» Packages

» kinetic (22.10)

» net

» libmbim-utils

NAME

mbim-network – Simple network management of MBIM devices

SYNOPSIS

DESCRIPTION

Simple network management of MBIM devices

Commands:

start
Start network connection
stop
Stop network connection
status
Query network connection status

OPTIONS

–profile=[PATH]
Use the profile in the specified path
–help,
-h
Show help options
–version
Show version
1) [DEVICE] is given as the full path to the cdc-wdm character device,
e.g.:
/dev/cdc-wdm0
2) The mbim-network script requires a profile to work. Unless explicitly
specified with `–profile’, the file is assumed to be available in the
following path:
/etc/mbim-network.conf
3) The APN to use should be configured in the profile, in the following
way (e.g. assuming APN is called ‘internet’):
APN=internet
4) Optional APN user/password strings may be given in the following
way:
APN_USER=user APN_PASS=password
5) If APN user/password is specified, the authentication protocol to use
(one of PAP, CHAP or MSCHAPV2) must also be specified in the following
way:
APN_AUTH=protocol
6) If you want to instruct the mbim-network script to use the mbim-proxy
setup, you can do so by configuring the following line in the
profile:
PROXY=yes
7) Once the mbim-network script reports a successful connection you still
need to run a DHCP client on the associated WWAN network interface.

SEE ALSO

The full documentation for mbim-network is maintained as a
Texinfo manual. If the info and mbim-network programs are
properly installed at your site, the command

info mbim-network

should give you access to the complete manual.

Simple network management of MBIM devices

Synopsis

Description

Simple network management of MBIM devices

Commands

start

Start network connection

stop

Stop network connection

status

Query network connection status

Options

–profile=[PATH]

Use the profile in the specified path

–help,  -h

Show help options

–version

7) Once the mbim-network script reports a successful connection you still need to run a DHCP client on the associated WWAN network interface.

See Also

The full documentation for mbim-network is maintained as a Texinfo manual.  If the info and mbim-network programs are properly installed at your site, the command

should give you access to the complete manual.

Info

January 2023 mbim-network 1.28.2

mbimcli -d /dev/cdc-wdm0  -p  --query-subscriber-ready-status
[/dev/cdc-wdm0] Subscriber ready status retrieved:
	      Ready state: 'initialized'
	    Subscriber ID: '4600120896123456'
	        SIM ICCID: '89860112345678'
	       Ready info: 'none'
	Telephone numbers: (1) '+86166'


 mbimcli -d /dev/cdc-wdm0 -p  --query-radio-state
[/dev/cdc-wdm0] Radio state retrieved:
	     Hardware radio state: 'on'
	     Software radio state: 'on'
# mbimcli -d /dev/cdc-wdm0 -p  --query-signal-state 
[/dev/cdc-wdm0] Signal state:
	          RSSI [0-31,99]: '14'
	     Error rate [0-7,99]: '99'
	Signal strength interval: '5'
	          RSSI threshold: '2'
	    Error rate threshold: 'unspecified'

 mbimcli -d /dev/cdc-wdm0 -p   --query-registration-state
[/dev/cdc-wdm0] Registration status:
	         Network error: 'unknown'
	        Register state: 'home'
	         Register mode: 'automatic'
	Available data classes: 'custom'
	Current cellular class: 'gsm'
	           Provider ID: '46001'
	         Provider name: 'CHN-UNICOM'
	          Roaming text: 'unknown'
	    Registration flags: 'packet-service-automatic-attach'
 mbimcli -d /dev/cdc-wdm0  -p --query-ip-configuration

[/dev/cdc-wdm0] IPv4 configuration available: 'address, gateway, dns, mtu'
     IP [0]: '10.2.72.180/29'
    Gateway: '10.2.72.181'
    DNS [0]: '218.104.111.122'
    DNS [1]: '218.106.127.114'
        MTU: '1400'

[/dev/cdc-wdm0] IPv6 configuration available: 'address, gateway, dns, mtu'
     IP [0]: '2408:843f:ba26:5ab:312a:3c4c:b513:c98e/64'
    Gateway: '2408:843f:ba26:5ab:3dbc:7e6e:c2b7:3019'
    DNS [0]: '2408:8888::8'
    DNS [1]: '2408:8899::8'
        MTU: '1432'
 mbimcli -d /dev/cdc-wdm0  -p  --query-packet-service-state
[/dev/cdc-wdm0] Packet service status:
	         Network error: 'unknown'
	  Packet service state: 'attached'
	Available data classes: 'custom'
	          Uplink speed: '1200000000 bps'
	        Downlink speed: '3200000000 bps'

–attach-packet-service Attach to the packet service
–detach-packet-service Detach from the packet service
–connect=

mbimcli -d /dev/cdc-wdm0  -p   --query-connection-state

[/dev/cdc-wdm0] Connection status:
	      Session ID: '0'
	Activation state: 'activated'
	Voice call state: 'none'
	         IP type: 'ipv4v6'
	    Context type: 'internet'
	   Network error: 'unknown'

mbimcli -d /dev/cdc-wdm0  -p  --query-packet-statistics 
[/dev/cdc-wdm0] Packet statistics:
	   Octets (in): '131250057'
	  Packets (in): '184155'
	 Discards (in): '0'
	   Errors (in): '0'
	  Octets (out): '11459167'
	 Packets (out): '111663'
	Discards (out): '0'
	  Errors (out): '0'
mbim-network /dev/cdc-wdm0 start
mbimcli --device=/dev/cdc-wdm0 --device-open-proxy --set-radio-state=on

ip addr flush dev wwan0
ip -6 addr flush dev wwan0
ip link set wwan0 up

ip addr add 10.2.72.180/29 dev wwan0 broadcast +
ip route add default via 10.2.72.181 dev wwan0
ip link set mtu 1400 dev wwan0

断开连接
mmcli -m 0 –simple-disconnect

列出收到的短信
mmcli -m 0 –messaging-list-sms

导出短信
mmcli -s 0 –create-file-with-data=/tmp/sms0.txt

mmcli -m 0 –enable
mmcli -m 0 –simple-disconnect

qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-ids
也就是 qmicli -d /dev/cdc-wdm0 -p   --dms-get-ids


qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-manufacturer

qmicli --device=/dev/cdc-wdm0 --device-open-proxy --dms-get-model

 qmicli --device=/dev/cdc-wdm0 --device-open-proxy   --wds-get-packet-service-status

qmicli --device=/dev/cdc-wdm0 --device-open-proxy --uim-get-card-status





В чём их отличие?

ЕР это с мини писиай, ЕМ это с М.2

Попробовал тут трех операторов моей “домашней” БС на предмет скорости с модулем 7455 (картинок не будет – лень)))

Т2 В3 15 МГц sinr около 20 – скорость нестабильна – в среднем около 30 Мбит, но это плохо для максимальной возможной скорости в 112
агрегации нет – на “домашней” БС нет В7

МТС В7+В3 (10+10) sinr в В3 25дБ, в В7 ниже – около 17, скорость более менее стабильна и доходит до 90 Мбит.
Вариант был бы неплох, но безлимита от МТС у меня нет (и не будет – отношения с этим оператором у меня не сложились.)
Заодно попробовал поймать их В38. Вроде кто то где то ловил их В38 на смарты с В41, и даже скриншоты показывал – но мне с этим модулем не удалось – вообще сигнал от В38 в моей локации очень слабый. Если у кого есть интерес попробовать поймать их В38, то вот такой индекс нужен для создания этого В41 only на 7455

и соответственно, надо его подключить

Би – теста не было. но знаю, что на домашней БС есть только В3 10 Мгц, и на “простом” модеме мне удавалось выжать до 70 Мбит

МФ 7СА 20+20 МГц sinr около 25 дБ – скорость под потолок моего 100 Мбит роутера (90-95 Мбит) держится стабильно. Безусловный лидер. В моей локации :rolleyes:

Так что, результат ожидаем (по крайней мере для меня) – если есть на БС 7+7 от МФ – смело вставляем их симку в модуль, и начинаем выжимать любыми путями качество сигнала в В7 на максимум.

* andrew.woronkov,
Нет, первая цифра frequency band У меня на каком-то из опсосов отображается 5,3,3
В пдфке ЕР06, в строке поиска ввести servingcell, там есть расшифровка

Хотя щас посмотрел пдфку и задумался. мож и вправду это номар банда. Завтра буду дома пересмотрю, мож действительно ошибся, если чё звиняйте.

в 3Г тоже работают.

У меня в 3G работают. Если модем работает в диапазоне LTE, то при выполнении USSD команды происходит переключение на 3G.

Вооооообщем так :

Завелся модем в режиме MBIM на компе(В QMI режиме почему-то винда видит сеть но написано “Turned OFF” и кнопки коннект нету). В OpenWRT в режиме MBIM определяет интерфейс и ручками через командную строку смог добиться конекта а вот создать интерфейс который прокидывает IP и создает wwan не получилось. Еще у меня OpenWRT последняя, вроде говорят там QMI поломали, мож из-за этого не получилось в режиме QMI с подсовыванием дров законектить? Ну да ладно, разберемся. А пока тестирование и сравнение скорости HP и 7455 при одинаковых условиях в одинаковых режимах:

Одна симка, один режим, положение модема и антенны одинаковое, агрегация 7+7 (других нет у меня в локации). качество сигнала не очень, да и в винде 3 паки из 5 показывает

Прикрепленное изображение

7455: Скорость примерно 70-85, скринов не делал, не интересно 🙂

А вот HP:

Скорость 85-105. :clap: Работает QAM256 походу. Плюс чипы новее стоят, возможно чувствительность лучше (хотя на 7455 я увеличил мощность на Band_7):) Вот она 9-ая категория что делает. Прям как по калькулятору прирост процентов 25(если не изменяет память, если ошибся поправьте)

Походу на МТС который под боком агрегацию не завезли, но теперь точно известно что B3 работает. Так что не смотрите на алике описание, все частоты какие есть в ln940 поддерживаются.

Сообщение отредактировал Sankysys – 09.08.20, 01:27

mbim интерфейс завелся автоматом, а вот драйвера на COM-порты не встали, придется ручками(либо в скрипт добавлять), но там одна команда всего так что все норм.

Прикрепленное изображение

Прикрепленное изображение

Update: Ну вот и выжал 111, и это на ноутбучные антенны который валяются. Жду конекторы и обжимку, буду антенну делать нормально.

Сообщение отредактировал Sankysys – 09.08.20, 14:51

* JekaPDA,
Я натыкался на иностранном форуме где-то. Но там после перезагрузки всё слетало. На микротике там скрипты писали.

Сообщение отредактировал JekaPDA – 09.08.20, 10:08

* ___Red___, в бэкапе поправил winhex’ом. Причем бэкап определенной прогой. В комплекте программ qpst есть две проги которые бэкап делают, так вот только одна из них срабатывает.

* Sankysys,
Первопроходец! :thank_you: Респект и уважуха!!! (ввел во искушение – сижу и ищу на Али LT4220 :yes2: )

По поводу кам256:

Эта технология включается базовой станцией только при условиях:
– при поддержке этой технологии на конкретной БС/диапазоне (тут у МФ лучше всех – практически везде, где есть на БС 7+7 – есть кам256. С другими операторами сложнее – на одной БС может быть, на соседней – нет);
– при определенном уровне качества сигнала – на практике, если sinr > 20 , то можно ожидать включения кам256;
– при активном скачивании большого объема инфо (то есть БС еще подумает, а давать ли тебе кам256 здесь или сейчас)

По поводу qmicli :

Вчера только доставил пару пакетов qmi-utils libqmi и получил возможности qmicli (по умолчанию в openwrt установлена сильно урезанная версия uqmi) и оставил на утро изучение этой утилиты. В итоге, ничего сногсшибательного – практически все можно делать АТ командами.
Сделал себе такую выборку команд

qmicli -d /dev/cdc-wdm0 -p // “префикс” команды

–nas-get-operator-name // тоже в принципе не очень надо – только если забыли, какую симку вставили )))
–nas-get-system-selection-preference // только здесь видно заданные сейчас в модуле диапазоны LTE band preference: ‘3, 7’
–nas-network-scan // сканирование наличия сотовых операторов в эфире
–nas-get-cell-location-info // самая полная инфо по текущему подключению, аналогична AT!LTEINFO? 7455
–nas-get-lte-cphy-ca-info // текущее состояние агрегации , аналогична AT!GSTATUS? 7455
–nas-swi-get-status // а здесь видна температура модуля

–wds-get-packet-statistics // можно снимать текущую инфо по скачанным пакетам/байтам

Сообщение отредактировал andrew.woronkov – 09.08.20, 10:01

Его лучше всего использовать для мониторинга состояния модема. Здоровье, сигнал.
Я уже говорил, что модем частые ат команды не любит.

Я сегодня ещё и ком порты завел, и at команды поотправлял. Такую же схему и на Rooter и OpenWRT делать нужно. Там всего одна команда и все порты находятся.

Снижать цену вряд-ли. А вот повышать категорию 😂😂😂

Сат16 за 3700руб.

Он на интеле, IMEI фиг знает как менять, инфы очень мало по интелам да прог. На Qualcomm хоть инфа разная есть, можно что-то сделать. А так если нормальная модемная симка, то почему бы и нет. Заводили на таком же чипсете только версией по младше . Да и у Sierra вроде есть на интеле из такой серии. Но проблема мне его тестировать не на чем. Мне HP модема сейчас за глаза, да и 3ой агрегации нет у меня.

Можно подробнее, как это делается?

Чуть позже накидаю инструкцию. А пока ищите как на Qualcomm имей меняют в qcn файле. В двух словах, нужно qcn слить с модема, нужный имей разбить на пары , перевернуть цифры местами, записать winhexом, залить обратно qcn. Но qcn сливается и заливается только через qfil. Другие проги которые могут заливать qcn не срабатывают.

Сообщение отредактировал Sankysys – 09.08.20, 12:03

Подскажите. Какой командой тормознуть работу интернета?

через qmi смотри параметр –wds-stop-network, а так интерфейс стопни на котором инет

Прикрепленное изображение

А если интерфейс остановить, тогда его автоподключение нужно отключить. Попробуй все-таки просто интерфейс модема остановить.

Сообщение отредактировал JekaPDA – 09.08.20, 15:37

Нажал на это и модем пропал. Только перетекать вручную. Нафиг эксперименты. Удалите ваши советы плиз.

Прикрепленное изображение

Сообщение отредактировал ipnev83 – 09.08.20, 15:47

его так-же и запустить можно

Не реагирует на connect. Вообще никак.

Control MBIM devices

Description

Usage

Help Options

-h,  –help

Show help options

–help-all

Show all help options

–help-basic-connect

Show Basic Connect Service options

–help-phonebook

Show Phonebook Service options

–help-dss

Show Device Service Stream options

–help-ms-firmware-id

Show Microsoft Firmware ID Service options

–help-ms-host-shutdown

Show Microsoft Host Shutdown Service options

–help-ms-sar

Show Microsoft SAR Service options

–help-atds

Show AT&T Device Service options

–help-intel-firmware-update

Show Intel Firmware Update Service options

–help-ms-basic-connect-extensions

Show Microsoft Basic Connect Extensions Service options

–help-quectel

Show Quectel Service options

–help-link-management

Show link management specific options

–help-intel-thermal-rf

Show Intel Thermal RF Service options

–help-ms-voice-extensions

Show Microsoft Voice Extensions Service options

–help-ms-uicc-low-level-access

Show Microsoft UICC Low Level Access Service options

–help-intel-mutual-authentication

Show Intel mutual authentication Service options

–help-intel-tools

Show Intel 5G tools options

Basic Connect options

–query-device-caps

Query device capabilities

–query-subscriber-ready-status

Query subscriber ready status

–query-radio-state

Query radio state

–set-radio-state=[(on|off)]

Set radio state

–query-device-services

Query device services

–query-pin-state

Query PIN state

–enter-pin=[(PIN type),(current PIN)]

Enter PIN (PIN type is optional, defaults to PIN1, allowed options: (pin1,network-pin,network-subset-pin,service-provider-pin,corporate-pin)

–change-pin=[(current PIN),(new PIN)]
–enable-pin=[(current PIN)]
–disable-pin=[(PIN type),(current PIN)]

Disable PIN (PIN type is optional, see enter-pin for details)

–enter-puk=[(PUK type),(PUK),(new PIN)]

Enter PUK (PUK type is optional, defaults to PUK1, allowed options: (puk1,network-puk,network-subset-puk,service-provider-puk,corporate-puk)

–query-pin-list

Query PIN list

–query-home-provider

Query home provider

–query-preferred-providers

Query preferred providers

–query-visible-providers

Query visible providers

–query-registration-state

Query registration state

–register-automatic

Launch automatic registration

–query-signal-state

Query signal state

–query-packet-service-state

Query packet service state

–attach-packet-service

Attach to the packet service

–detach-packet-service

Detach from the packet service

–query-connection-state=[SessionID]

Query connection state (SessionID is optional, defaults to 0)

–connect=[“key=value,…”]
–query-ip-configuration=[SessionID]

Query IP configuration (SessionID is optional, defaults to 0)

–disconnect=[SessionID]

Disconnect (SessionID is optional, defaults to 0)

–query-packet-statistics

Query packet statistics

–query-ip-packet-filters=[SessionID]

Query IP packet filters (SessionID is optional, defaults to 0)

–set-ip-packet-filters=[“key=value,…”]

Set IP packet filters (allowed keys: session-id, packet-filter, packet-mask, filter-id)

–query-provisioned-contexts

Query provisioned contexts

–set-provisioned-contexts=[“key=value,…”]
–set-signal-state=[“key=value,…”]

Set signal state (allowed keys: signal-strength-interval, rssi-threshold, error-rate-threshold)

–set-network-idle-hint=[(enabled|disabled)]

Set network idle hint

–query-network-idle-hint

Query network idle hint

–set-emergency-mode=[(on|off)]

Set emergency mode

–query-emergency-mode

Query emergency mode

–set-service-activation=[Data]

Set service activation

Phonebook options

–phonebook-query-configuration

Query the phonebook configuration

–phonebook-read=[(Phonebook index)]

Read phonebook entry with given index

–phonebook-read-all

Read all phonebook entries

–phonebook-write=[(Name),(Number)[,(Index)]]

Add new phonebook entry or update an existing one

–phonebook-delete=[(Phonebook index)]

Delete phonebook entry with given index

–phonebook-delete-all

Delete all phonebook entries

Device Service Stream options

–dss-connect=[(UUID),(Session ID)]

Connect DSS session

–dss-disconnect=[(UUID),(Session ID)]

Disconnect DSS session

Microsoft Firmware ID options

–ms-query-firmware-id

Query firmware ID

Microsoft Host Shutdown options

–ms-notify-host-shutdown

Notify that host is shutting down

Microsoft SAR options

–ms-set-sar-config=[(device|os),(enabled|disabled)[,[{antenna_index,backoff_index}…]]]

Set SAR config

–ms-query-sar-config

Query SAR config

–ms-set-transmission-status=[(enabled|disabled),(timer)]

Set transmission status and hysteresis timer (in seconds)

–ms-query-transmission-status

Query transmission status

AT&T Device Service options

–atds-query-signal

Query signal info

–atds-query-location

Query cell location

Intel Firmware Update Service options

–intel-modem-reboot=[(Boot Mode),(Timeout)]

Reboot modem. Boot mode and timeout arguments only required if MBIMEx >= 2.0.

Microsoft Basic Connect Extensions options

–ms-query-pco=[SessionID]

Query PCO value (SessionID is optional, defaults to 0)

–ms-query-lte-attach-configuration

Query LTE attach configuration

–ms-query-lte-attach-info

Query LTE attach status information

–ms-query-sys-caps

Query system capabilities

–ms-query-device-caps

Query device capabilities

–ms-query-slot-info-status=[SlotIndex]

Query slot information status

–ms-set-device-slot-mappings=[(SlotIndex)[,(SlotIndex)[,…]]]

Set device slot mappings for each executor

–ms-query-device-slot-mappings

Query device slot mappings

–ms-query-location-info-status

Query location info status

–ms-set-provisioned-contexts=[“key=value,…”]
–ms-query-provisioned-contexts

Query provisioned contexts

–ms-query-base-stations-info

Query base stations info

–ms-query-version=[(MBIM version),(MBIM extended version)]

Exchange supported version information. Since MBIMEx v2.0.

–ms-query-registration-parameters

Query registration parameters. Since MBIMEx v3.0.

–ms-set-registration-parameters=[“key=value,…”]

Set registration parameters (required keys: mico-mode, drx-cycle, ladn-info, default-pdu-activation-hint, re-register-if-needed). Since MBIMEx v3.0.

–ms-query-modem-configuration

Query modem configuration. Since MBIMEx v3.0.

–ms-query-wake-reason

Query wake reason. Since MBIMEx v3.0.

Quectel options

–quectel-query-radio-state

Query radio state

–quectel-set-radio-state=[(on)]

Set radio state

Intel Thermal RF Service options

–intel-query-rfim

Query RFIM frequency information

–intel-set-rfim=[(on|off)]

Enable or disable RFIM (disabled by default)

Microsoft Voice Extensions Service options

–ms-query-nitz

Query network identity and time zone

Microsoft UICC Low Level Access Service options

–ms-query-uicc-application-list

Query UICC application list

–ms-query-uicc-file-status=[“key=value,…”]

Query UICC file status (allowed keys: application-id, file-path)

–ms-query-uicc-read-binary=[“key=value,…”]

Read UICC binary file (allowed keys: application-id, file-path, read-offset, read-size, local-pin and data)

–ms-query-uicc-read-record=[“key=value,…”]

Read UICC record file (allowed keys: application-id, file-path, record-number, local-pin and data)

–ms-set-uicc-open-channel=[“key=value,…”]

Set UICC open channel (allowed keys: application-id, selectp2arg, channel-group)

–ms-set-uicc-close-channel=[“key=value,…”]

Set UICC close channel (allowed keys: channel, channel-group)

–ms-query-uicc-atr

Query UICC atr

–ms-set-uicc-apdu=[“key=value,…”]

Set UICC apdu (allowed keys: channel, secure-message, classbyte-type, command)

–ms-set-uicc-reset=[(Pass Through Action)]

Set UICC reset

–ms-query-uicc-reset

Query UICC reset

–ms-set-uicc-terminal-capability=[“key=value,…”]

Set UICC terminal capability (allowed keys: terminal-capability)

–ms-query-uicc-terminal-capability

Query UICC terminal capability

Intel mutual authentication Service options

–query-fcc-lock

Query FCC lock information

–set-fcc-lock=[(ResponsePresent),(Response)]

Set FCC lock information

Intel 5G tools options

–set-trace-config=[(TraceCmd)|(TraceValue)]

Set trace configuration

–query-trace-config=[(TraceCmd)]

Query trace configuration

Application Options

-d,  –device=[PATH]

Specify device path

-p,  –device-open-proxy

Request to use the ‘mbim-proxy’ proxy

–device-open-ms-mbimex-v2

Request to enable Microsoft MBIMEx v2.0 support

–device-open-ms-mbimex-v3

Request to enable Microsoft MBIMEx v3.0 support

–no-open=[Transaction ID]

Do not explicitly open the MBIM device before running the command

–no-close

Do not close the MBIM device after running the command

–noop

Don’t run any command

-v,  –verbose

Run action with verbose logs, including the debug ones

–verbose-full

Run action with verbose logs, including the debug ones and personal info

–silent

Run action with no logs; not even the error/warning ones

-V,  –version

See Also

The full documentation for mbimcli is maintained as a Texinfo manual.  If the info and mbimcli programs are properly installed at your site, the command

should give you access to the complete manual.

Info

January 2023 mbimcli 1.28.2

Booting into arch

Arch’s Grub uses port speed 38400 so switch your terminal emulator accordingly

To boot into the live environment, at the Grub boot prompt press TAB and append console=ttyS0,38400 to the kernel commandline as described in the Arch wiki articleWorking with the serial console. Log in as root

Compiling qualcomm gobi drivers

The software provided by Sierra for flashing this modem requires the Qualcomm Gobi drivers. Sierra calls these the Linux Drivers QMI Software

First, download and unpack the drivers:

Configure usb interface

We need to ensure no MBIM interface is enabled for Linux to see our modem correctly. First, check the current setting:

AT!UDUSBCOMP?
!UDUSBCOMP: 14

OK

List the settings to see what this maps to:

AT!UDUSBCOMP=?
0  - reserved                                     NOT SUPPORTED
1  - DM   AT                                      SUPPORTED
2  - reserved                                     NOT SUPPORTED
3  - reserved                                     NOT SUPPORTED
4  - reserved                                     NOT SUPPORTED
5  - reserved                                     NOT SUPPORTED
6  - DM   NMEA  AT    QMI                         SUPPORTED
7  - DM   NMEA  AT    RMNET1 RMNET2 RMNET3        SUPPORTED
8  - DM   NMEA  AT    MBIM                        SUPPORTED
9  - MBIM                                         SUPPORTED
10 - NMEA MBIM                                    SUPPORTED
11 - DM   MBIM                                    SUPPORTED
12 - DM   NMEA  MBIM                              SUPPORTED
13 - Config1: comp6    Config2: comp8             NOT SUPPORTED
14 - Config1: comp6    Config2: comp9             SUPPORTED
15 - Config1: comp6    Config2: comp10            NOT SUPPORTED
16 - Config1: comp6    Config2: comp11            NOT SUPPORTED
17 - Config1: comp6    Config2: comp12            NOT SUPPORTED
18 - Config1: comp7    Config2: comp8             NOT SUPPORTED
19 - Config1: comp7    Config2: comp9             SUPPORTED
20 - Config1: comp7    Config2: comp10            NOT SUPPORTED
21 - Config1: comp7    Config2: comp11            NOT SUPPORTED
22 - Config1: comp7    Config2: comp12            NOT SUPPORTED

OK

In the case above, 14 maps to configs 6 and 9. To do the flash in Linux, we need the AT and QMI interfaces which is 6 but we dont want the MBIM interface in 9.

Caution: ensure you do not set this to an interface without AT – this may lock you out of the modem

Set the USB interface to config number 6:

AT!UDUSBCOMP=6
OK

From here, we should be good to start with the Linux half

Connect to your modem

First, verify your modem was found:

# dmesg | less

Look for something like this:

u3g0: <vendor 0x1199 MC7355, class 0/0, rev 2.00/0.06, addr 3> on usbus1
u3g0: Found 4 ports.

The driver will create four USB-serial ports

# ls /dev/cuaU*[0-9]
/dev/cuaU0.0    /dev/cuaU0.1    /dev/cuaU0.2    /dev/cuaU0.3

The port for AT commands is usually on cuaU0.1 or cuaU0.2. Try an AT command with each, pressing ~. to exit
the session

# cu -l /dev/cuaU0.1
Connected
AT
OK

Connecting using mbim

You should now be able to connect. For testing this on Debian/Ubuntu you can install libqmi-utils:

sudo apt install libmbim-utils

It seems that many people experience intermittent disconnections with the MC7455. I’ve seen this happen myself and the GoldenOrb ROOter firmware has a nice feature for detecting these disconnects and re-connecting automatically. You have to enable this feature using the web UI. Remember to specify the IP to ping, otherwise it won’t work.

For OpenWRT you could write a simple scripts that pings some server and then reboots or re-initializes the modem when pings begin failing. Or maybe you could look at how it’s done in GoldebOrb ROOter.

Some have reported that the newer and faster EM7565 modem doesn’t suffer from these disconnection issues but I have not tested this.

Here are some pasted errors to help Googlers to reach this page

Frequencies and antennas

You will also need two antennas, or a single MIMO antenna. The frequencies used by Sprint in my area are:

  • 25: 1850 to 1995 MHz (FDD-LTE)
  • 26: 814 to 894 MHz (FDD-LTE)
  • 41: 2496 to 2690 MHz (TDD-LTE)

If you want to help, or sponsor further development in libmbim, mbimcli or the ModemManager integration, just let me know!

Inspect the current carrier configuration

Before proceeding, we need to check the current carrier to see whether we really need to do a flash

AT!GOBIIMPREF?
!GOBIIMPREF:
 preferred fw version: 01.08.16.05
 preferred carrier name: VZW
 preferred config name: VZW_000.036_000
 current fw version: 01.08.16.05
 current carrier name: VZW
 current config name: VZW_000.036_000

OK

In this case, I want Sprint. Let’s see if a Sprint config is loaded that we can choose:

AT!PRIID?
PRI Part Number: 9902812
Revision: 01.07

Carrier PRI: 9999999_9902266_SWI9X15C_01.08.16.05_00_VZW_000.036_000

If our preferred carrier appeared here, we could switch to it with this command (note how the string above maps to the
three fields):

AT!GOBIIMPREF="01.08.16.05","VZW","VZW_000.036_000"

Since it doesn’t map, we’ll need to continue

For this step, we need to access the modem’s USB Serial interface. This will allow us to use modem AT Commands to inspect
the current configuration and turn off MBIM mode which prevents the modem from being discovered in Linux. Since Linux wont
(AFAICT) recognize the modem in this state, we need to rely on FreeBSD’s u3g driver.

The ‘libmbim‘ library is an attempt to write a protocol support library, as previously done with ‘libqmi‘.

The current codebase, GLib/GObject/GIO based, is pretty similar to what libqmi provided, with a ‘MbimDevice‘ GObject to handle the communication through the /dev/cdc-wdm port, as well as ‘MbimMessage‘ types to handle the creation of commands.

Given that there is no need for client allocations in MBIM, there is no ‘MbimClient‘ object needed. Also, given that the contents of each message are pre-defined, it wasn’t considered the need of input and output ‘bundles’ to handle collections of TLVs, as done in libqmi.

Locking to specific channel/frequency

TODO There is a way to force the modem to only use specified channels using AT commands. This could be useful if some channels are more crowded than others or if you have an antenna which doesn’t work well for some channels.

Manually configuring using umbim

OpenWRT does have a utility for mbim called umbim. You can install it using:

opkg update
opkg install umbim

If you want to use it on a non-openwrt system you can compile it like so:

Mbim basic types

The protocol not only defines which action is supported in each command; it also defines the contents of the request, response and indication messages. The contents of each message are composed of collections of basic types defined by the protocol:

  • Unsigned 32bit integers: Even for the most simple values (e.g. booleans), little-endian 32 bit unsigned integers are used.
  • Strings: UTF-16LE encoded strings are always used.
  • UUIDs: The protocol defines a special 16-byte-long UUID type, e.g. to define Service IDs
  • Arrays: Collection of N values of a given basic type.
  • Structs: Sequence of other basic types, given in a specific order.

As you can see, there is not much effort (none, actually) into making the protocol efficient in terms of overhead introduced; more than half of the bytes in each message will very likely end up being NUL bytes. Also, it is assured that each field within a message is aligned in a 32bit boundary, which makes it easier to read independent fields directly from the binary stream.

For each service, MBIM defines a set of Commands (CIDs); and each command can then be divided into 3 actions:

Not every action is supported by every command. For example, the “Device Caps” command in the “Basic Connect” service only supports the “Query” action, while the “Radio State” command of the same service supports all “Set“, “Query” and “Notification“.

But how does this match with the message types defined before?

  • Host-created “” and “” requests are sent using ““.
  • Modem-created “” and “” responses are sent using “Command Done Messages“.
  • Modem-created “” are sent using ““.

Mbim message types

The protocol defines different message types with different formats.

Some of them are used to establish the channel of communication with the modem:

  • (Host->Modem): Initialization request.
  • Open Done Message (Host<-Modem): Initialization response.
  • (Host->Modem): Close request.
  • Close Done Message (Host<-Modem): Close response.

Some of the messages are used to report errors in the protocol; which may be sent either from the host or from the modem:

  • Host Error Message (Host->Modem): Host-reported error.
  • Modem Error Message (Host<-Modem): Modem-reported error.

And finally, some messages provide access to the different CIDs (Command IDs) defined in each Service.

The protocol defines a basic set of different Services:

  • : Which provides the support for basic IP connectivity
  • : SMS messaging
  • : Unstructured Supplementary Service Data
  • : Handling contacts and such
  • : SIM toolkit
  • Device Service Stream

Only the Basic Connect one is mandatory in every MBIM device; others are optional. Vendors or even Network Operators can also extend the functionality of the device with other services; for example to support other protocols embedded within MBIM (e.g. QMI or AT within MBIM); or just to provide specific new features.

The project comes with a command line utility (mbimcli), which allows (will allow) running “Get” or “Set” commands directly from the shell. There aren’t many supported commands yet, so I cannot show many more examples than this one:

$ sudo mbimcli -d /dev/cdc-wdm1 –basic-connect-query-subscriber-ready-status

Hint: Using –verbose will show you the raw binary message contents!

These procedures are specific to the setup I had to perform this on. Most notably, the only system I had with a mini-PCI-e
slot was the target pfSense system, a PCengines APU1d with no VGA port (serial console only). If you’re able to obtain a
USB-to-mini-PCI-e adapter, performing this flash will likely be much easier (perhaps even allowing you to use Windows in a VM).

System: PCenginesAPU1dLive USB: FreeBSD (i386 memstick installer)
Live USB: Arch linuxModem: Sierra MC7355, with Panasonic SKU (1101888)
Also used: Null modem adapter with USB-to-serial plugged into a spare machine
Two USB sticks

OpenWRT doesn’t seem to have complete official support for MBIM/QMI modems. An updated (as of late 2022) patch-set that uses ModemManager is available here. The problem with this solution (and why it will probably not get merged) is that it requires DBus rather than ubus.

The other option is to use the GoldenOrb ROOter firmware which automates everything via a nice web UI, but then you’re no longer running stock OpenWRT.

For now it just doesn’t seem that MBIM and QMI is well-integrated into OpenWRT, but I could be wrong. It could be that it’s simply not documented. The only mention seems to be here. For QMI, using the uqmi utility manually is documented here but it doesn’t seem to be integrated into uci or ubus.

The Sierra MC7355 can run configurations for several North American carriers. These cards are easy to find on eBay
and notable for their support for the Sprint LTE network. Unless you’re luck out, you may find you need to flash a new
carrier configuration onto the card you purchased before using it.

Removing incompatible drivers

  • qcserial
  • qmi_wwan
  • usb_wwan
  • cdc_mbim
  • cdc_wdm
  • cdc_ncm
  • sierra
  • sierra_net

Setting up linux live environment

To complete this we need a live linux environment with a serial console. For this I used an Arch installer. If using Arch, a second USB or system drive will be necessary as the live install’s root partition is not big enough for the compile dependencies. If another live distro is chosen, the requirements are:

  • Boots with a serial console (minimum: grub configured on serial console)
  • Ability to compile kernel modules (basic compiler tools, linux headers)

For troubleshooting modem configuration, I recommend this guide.

Usb errors when mbim mode is enabled in linux

Having an MBIM config (or maybe it’s just any multi-config UDUSBCOMP value?) makes Linux USB angry, causing the modem’s
Serial devices to not work

[  484.038683] usb 3-1.3: config 1 has an invalid interface number: 8 but max is 3
[  484.038693] usb 3-1.3: config 1 has no interface number 1
[  484.039172] usb 3-1.3: config 2 has an invalid interface number: 12 but max is 1
[  484.039181] usb 3-1.3: config 2 has an invalid interface number: 13 but max is 1
[  484.039189] usb 3-1.3: config 2 has an invalid interface number: 13 but max is 1
[  484.039196] usb 3-1.3: config 2 has no interface number 0
[  484.039203] usb 3-1.3: config 2 has no interface number 1

Verify your carrier once more

# pacman -S uucp
# cu -l /dev/ttyUSB2 # or ttyUSB1, varies
Connected.
AT
OK
AT!ENTERCND="A710"
OK
AT!GOBIIMPREF?
!GOBIIMPREF:
 preferred fw version:   05.05.63.01
 preferred carrier name: SPRINT
 preferred config name:  SPRINT_005.037_000
 current fw version:     05.05.63.01
 current carrier name:   SPRINT
 current config name:    SPRINT_005.037_000

OK

What is mbim?

The Mobile Interface Broadband Model (MBIM) is a new standard developed by the USB Implementers Forum, specifically designed for high speed mobile broadband modem devices.

This new USB networking subclass defines two separate new features:

  • A new MBIM USB device model, providing multiple IP connections over a single USB interface, and without the need of 802.3 frames (as was the case with ECM and NCM)
  • A new MBIM control protocol to talk to modem devices

Where do i get it?

The ‘libmbim’ library and the ‘mbimcli’ utility are managed in FreeDesktop.org:

Utilities to use the MBIM protocol from the command line

libmbim is a glib-based library for talking to WWAN modems and devices
which speak the Mobile Interface Broadband Model (MBIM) protocol.

This package contains the utilities that make it easier to use MBIM
functionality from the command line.

Screenshot

Ubuntu Resources:

Download Source Package libmbim:

Maintainer:

  • Ubuntu Developers
    (Mail Archive)

Please consider filing a bug or asking a question via Launchpad before contacting the maintainer directly.

Original Maintainers (usually from Debian):

  • DebianOnMobile Maintainers
  • Arnaud Ferraris
  • Guido Günther
  • Henry-Nicolas Tourneur
  • Martin

External Resources:

Similar packages:

Другие пакеты, относящиеся к libmbim-utils

  • libc6
    (>= 2.34)
    [не alpha, ia64, sh4, sparc64]
    библиотека GNU C: динамически подключаемые библиотеки
    также виртуальный пакет, предоставляемый

    libc6
    (>= 2.36)
    [sh4]
    libc6
    (>= 2.7)
    [sparc64]
  • libc6.1
    (>= 2.34)
    [alpha]
    библиотека GNU C: динамически подключаемые библиотеки
    также виртуальный пакет, предоставляемый

    libc6.1
    (>= 2.36)
    [ia64]
  • libglib2.0-0
    (>= 2.56)
    библиотека С-функций
  • libmbim-glib4
    (>= 1.26.2)
    [sparc64]
    библиотека для работы с протоколом MBIM
    libmbim-glib4
    (>= 1.28.0)
    [не sparc64]
  • libmbim-proxy
    прокси для работы с MBIM-портами

MBIM – MBIM – DSD / ScanForce Multi-Bin Basic

DSD/ScanForce Multi-Bin

Have questions about this module? We’re here to help. 
Call (858) 550-5900

  • Description
  • All Versions
  • PRICING
  • VIDEOS

The DSD / ScanForce Multi-Bin Management Module provides advanced features for warehouse inventory management in Sage 100.

  Multi-Bin Inventory Management features include:

  • Enable Multi-Bin inventory by Warehouse Code, Product Line, or Item Code
  • Set customer or item specific restrictions based on Bin Location
  • Perform On-The-Fly bin location transfers
  • Easily setup multi-bin inventory with initial bin transfer
  • Maintain a structure and segments for bin locations
  • Choose to sort bin locations alphabetically or based on an alternate sort method
  • Auto-Generate Bin locations
  • Define various location types for bin locations
  • Set minimum and maximum location quantities for bins

NOTE: Work Order integration is not included with the Multi-Bin Basic Product. If the Work Order Module is activated and Multi-Bin is activated, you must purchase MBWO.
The DSD / ScanForce Multi-Bin Advanced Module provides advanced features for warehouse inventory management in Sage 100.

  Multi-Bin Inventory Management features include:

  •  Enable Multi-Bin inventory by Warehouse Code, Product Line, or Item Code
  •  Set Allocation Options based on the data entry type
  •  Set customer or item specific restrictions based on Bin Location
  •  Perform On-The-Fly bin location transfers
  •  Perform auto-allocations during picking sheet printing
  •  Easily setup multi-bin inventory with initial bin transfer
  •  Maintain a structure and segments for bin locations
  •  Choose to sort bin locations alphabetically or based on an alternate sort method
  •  Maintain Lot/Serial Expiration Dates
  •  Auto-Generate Bin locations
  •  Define various location types for bin locations
  •  Set minimum and maximum location quantities for bins
  •  Perform auto-allocations during data entry
Mbim-network

Multi-Bin Management Sage 100 ERP Enhancements Brochure – DOWNLOAD HERE

Download the installer below.

Оцените статью
Huawei Devices
Добавить комментарий