Инструменты пользователя

Инструменты сайта


wiki:openwrt:fibocom-850

Fibocom 850/860

Настройка поддержки модема Fibocom 850/860 в OpenWRT

#
# Настройка поддержки модемов Fibocom L850/L860  в OpenWRT
# минимальный конфиг для работы
 
# добавляем нужный репозиторий, обязательно!
 
wget -O /tmp/add.sh http://openwrt.132lan.ru/packages/21.02/packages/add.sh
sh /tmp/add.sh
 
opkg update
opkg install luci luci-app-modeminfo \
 modeminfo modeminfo-serial-xmm \
 modeminfo-serial-fibocom 
opkg install luci-proto-xmm xmm-modem
 
# AT-команды из веб-интерфейса (по желанию, рекомендуется установить)
opkg install atinout luci-app-atinout

Далее перезагружаем роутер и создаем обычным способом подключение в OpenWRT, указывая APN провайдера , не забывая добавить интерфейс в fw с wan и имея в виду, что модем использует протокол Intel XMM:

В этом месте модем уже должен начать работать и поднимать соединение с сетью ОпСоСа:

На снимке видны уровни сигнала и понятно, что модем подключен к БС, включил три диапазона работы 3, 40 и 1 общей шириной 40 MHz

Второй способ подключения модема Fibocom 850/860 в OpenWRT

В этом случае потребуется установить пакет modemmanager и подключать через этот протокол.

#
# Обновляем список пакетов openwrt
#
opkg update
 
# установка протокола modemmanager
 
opkg install modemmanager luci-proto-modemmanager

Далее переводим модем в режим MBIM командой AT+GTUSBMODE=7, пере загружаем роутер и создаем соединение с использованием протокола modemmanager

Сборник полезных АТ команд L860/850-GL

4PDA

# Посмотреть версию ПО. Показывает версию прошивки и зашитого вэндора:
AT+GTPKGVER?
 
Посмотреть IMEI
AT+CGSN?
 
Статус SIM карты
at+cpin?
 
Показывает наличие сим-карт в лотках
AT+GTSIMINIT?
 
Состояние готовности слотов SIM
at@uicc:get_card_state()
 
Активный слот SIM: 0-первый (prymary), 1-второй (secondary)
AT+CSUS?
 
Возможности SIM
at@uicc:get_sim_capabilities()
 
Тест SIM карт: primary и secondary
at@uicc:testanysimprimary()
at@uicc:testanysimsecondary()
 
Проверка температуры
AT+MTSM=1

Переключение режимов работы модема.

В современных прошивках всего несколько активных режимов:

0,10 - NCM,

7 - MBIM (860 только по линии PCI),

11 - NCM (но с другими pid/vid - Intel).

# NCM работает в OpenWRT
at@nvm:cal_usbmode.num=0
 
# NCM
at@nvm:cal_usbmode.num=10
 
# 7 - MBIM - Для работы в Windows
at@nvm:cal_usbmode.num=10
 
# Сохранить выбранный режим (обязательно после смены):
at@store_nvm(cal_usbmode)
 
# Посмотреть текущий режим:
at@nvm:cal_usbmode.num?
 
# Перезагрузка модема
AT+CFUN=15

Включение диапазонов. Агрегация

# Посмотреть включенные бэнды
at+xact?
 
# Включить только определенный бэнд. Например b7 - будет 107, b20 - 120
at+xact=2,,,10x
 
# Включить несколько бэндов. Например b3, b7, b20 и b40
at+xact=2,,,103,107,120,140
 
Разблокировать все бэнды LTE
at+xact=2,,,0
 
Посмотреть активную агрегацию
at+xlec?
 
Посмотреть метрики. Вводятся две команды: первая разрешает вторую
at@emac:enable_metric_config( )
at@emac:ul_dl_modulation_metric_status( )
 
Узнать, какой бэнд участвует в UL. При рабочей ULCA их будет две.
at@errc:pcell_scell_ul_band_bw_info( )
 
Узнать, на каких несущих работает режим MIMO
at@errc:pcell_scell_mimoLayer_status( )
 
Метрики антенн
at@errc:pcell_scell_measurement_info( )
 
Вывод доступных комбинаций агрегации, согласно выбранным бэндам 
*При включенной ULCA будут присутствовать комбинации типа: 7CC+BWCS-7, где главное - CC, 
означающие: пара смежных несущих в B7, а для аплинка - эти две несущих в B7 одновременно
 
at@sic:ca_info(0)
 
Информация по антенным портам (0) - краткая, (1) - развернутая
at@xrf:get_antenna_port(1)
 
Запрет любой агрегации
at@sic:ca_disable(0)
 
Восстановление возможности агрегации
at@sic:ca_restore(0)
 
По-идее, этой командой можно управлять самой комбинацией- в каком порядке будут идти несущие. Однако, эта команда только для второстепенных несущих.
at@xrs:ca_config()??
ca_config(ul_ca_enable,scell_band_1,scell_earfcn_1,scell_band_2,scell_earfcn_2,scell_band_3,scell_earfcn_3,scell_band_4,scell_earfcn_4,scell_mimo) [%d %u %u %u %u ... %u~0 %u~0 %u~0 %u~0 %qu~0] AL=PRODUCTION/test/sec
Configure carrier aggregation for LTE.
 
Вывод активных служб модема.
at@sysmon:info_print()??
info_print() [] AL=PRODUCTION/test/sec
Print event collector table command
 
С помощью данной команды можно включить или выключить службы. Например, Watchdog. По-идее, на Кинетике он нахер не нужен, т.к. оригинальный Кинетик сам перезагрузит модем. Но это можно сделать и средствами самого модема.
at@sysmon:entity_enable()??
entity_enable($entity_name , $enable) [%s[16] %d] AL=PRODUCTION/test/sec
Enable or disable a Sysmon entity. Using a star '*' as entity name will proceed all of them.
Examples:
at@sysmon:entity_enable("Pow NK",1) -> will enable "Pow NK" entity.
at@sysmon:entity_enable("*",0) -> will disable all entities.
 
Данная команда выставляет значения для каждой из служб
at@sysmon:set_supervisors_durations()??
set_supervisors_durations($entity_name , $duration_for_supervisor) [%s[16] %d] AL=PRODUCTION/test/sec
The command will set the supervisors durations
use: at@sysmon:set_supervisors_durations("entity_name", Duration)
entity_name valid_range(in ticks)
IUI 1-7800
Bottom Half 1-26000
Watchdog 1-780000000
Timer_CB_LPRT 1-52000
Timer_CB_HPRT 1-520
 
Покажет протокол, по которому подключен модем: USB 1.0/2.0/3.0
at@usbmwtestfw:usb_get_enum_speed()
 
Есть извращенцы, которые смотрят iptv мультикаст, используя lte трафик. Есть для них небольшой бонус. Вроде как, данная команда включает 256QAM для multicast трафика:
at@nvm:dyn_cps.instance[0].lte_caps.dl_256qam_mbms_support=1
at@nvm:store_nvm(dyn_cps)
 
Переключение симок: *Работает не на всех прошивках! На новых версиях ПО, выше 18601...16.11(HP) и 18601...16.12(Lenovo) переключение не арбайтен. Исключение составляет 18601...16.48(HP)
второй слот
at@nvm:dyn_cps_dssa_prsrv.msim_config.ps_pref_slot=1
at@nvm:store_nvm(dyn_cps_dssa_prsrv)
 
первый слот
at@nvm:dyn_cps_dssa_prsrv.msim_config.ps_pref_slot=0
at@nvm:store_nvm(dyn_cps_dssa_prsrv)
 
Узнать PCI ERRFCH и уровень сигнала на всех несущих, участвующих в агрегации которые "слышит" модем:
AT+RSRP?
(PCI, EARFCN, уровень сигнала,…)
 
Фиксация несущей частоты
at@sic:freq_lock(0,3,band,1,EARFCN,PCI)
где 0 - константа; 3- rat (LTE); Band - указывается либо 7, либо 107; 1 -разрешить / 0 запретить фиксацию; EARFCN и PCI указываются в десятичной системе счисления.
После требуется перезапуск. Для Кинетика перезагрузка не нужна, достаточно передернуть соединение at+cfun=4
at+cfun=15
Модем перезагрузится и если все сделали правильно, подключится к оператору на той частоте, которую указали. Чтобы включить агрегацию (если она самостоятельно не подтянулась), нужно просто ввести команду выключения фиксации, больше ничего, перезагружать уже не надо.
at@sic:freq_lock(0,3,band,0,EARFCN,PCI)
*Не работает на KeenOS 3.9.x-4.0.x. Как починят- уберу.
Похоже, не починят и нужно выложить костыль. Вводим команду для фиксации несущей и меняем состояние любого неиспользуемого бэнда на противоположное, т.е. если был включён, то выключаем и наоборот. Соединение перезапустится на выбранной несущей, бонусом подтянется агрегация. Не могу не отметить, что если симка установлена во втором слоте, то команда работает без вкл/выкл бэндов. У некоторых, даже без дополнительной команды at+cfun=4, просто через некоторое время. Так же сама подтягивается агрегация.
 
Нужно, наверное, выложить саму команду, как она есть:
at@sic:freq_lock()??
freq_lock($sim_id $rat $band $inter_frequency_lock_enable $frequency $psc_pci) [%qu %qu %qu %qu %lu %hu] AL=PRODUCTION/test/sec
Command to set the frequency lock configuration, which shall be used in UE to register to a PLMN particular to the frequency info provided by the user
 
 
Узнать версию ID модема (hwid)
at@hwid:ver_hwid_get_id(6)
 
 
Для применения многих команд нужна перезагрузка модема
at+cfun=15

OpenWRT разное

russian language

Установка простая, в консоли выполняем две команды и затем включаем в System→System появившийся русский язык

# Великий и могучий в web-морде openwrt-luci
#
opkg update
 
opkg install luci-i18n-base-ru

Кошев

wget -O /tmp/add.sh http://openwrt.132lan.ru/packages/21.02/packages/add.sh & sh /tmp/add.sh
wget -O /tmp/add.sh http://openwrt.132lan.ru/packages/21.02/packages/add.sh
 
sh /tmp/add.sh
 
 
 
opkg install luci-proto-xmm
 
 
cd /tmp
wget http://openwrt.132lan.ru/packages/21.02/packages/add.sh -O - | sh
 
opkg install luci-app-modeminfo modeminfo-serial-fibocom atinout luci-app-modeminfo  modeminfo modeminfo-serial-xmm atinout luci-app-atinout
# Для всех модемов любезно оставлен комментарий.
#
https://github.com/koshev-msk/modemfeed/blob/master/luci/applications/luci-app-modeminfo/README.md

openvpn

opkg update
opkg install openvpn luci-app-openvpn

Чтобы переподнимался интерфейс при падении, можно наколхозить скрипт

#!/bin/sh
IP=8.8.8.8  # Address to ping
PF=5        # Number of consecutive ping failures before restarting the service
COUNTERFILE=/tmp/counter.txt
 
sleep 180   #Initial delay
 
while true; do
 
if ! ping -c 1 -W 1 $IP >/dev/null; then
        if [ -f "$COUNTERFILE" ]; then
         counter=$(cat $COUNTERFILE)
        else
         counter="0"
        fi
        if [ "$counter" -ge "$PF" ]; then
         /etc/init.d/openvpn restart
         echo "0" > "$COUNTERFILE"
        else
         let "counter+=1"
         echo "$counter" > "$COUNTERFILE"
        fi
else
 echo "0" > "$COUNTERFILE"
fi
sleep 5
done
 

usbutils

Для команд lsusb и resetusb можно установить usbutils

opkg update
opkg install usbutils

DNS

Иногда сразу после установки openwrt не работает DNS. Незамедлительно прописываем google.dns

###
# google.dns 
 
echo -e "nameserver 8.8.8.8\nnameserver 8.8.4.4" > /etc/resolv.conf

openwrt watchdog

#
# openwrt watchdog
#
opkg update
opkg install watchcat luci-app-watchcat luci-i18n-watchcat

openwrt set TTL

#
# openwrt set TTL
#
 
# Set TTL
# Добавляем правило с нужны интерфейсом в fw, например в файл /etc/nftables.d/12-mangle-ttl-65.nft
 
cat /etc/nftables.d/12-mangle-ttl-65.nft
 
chain mangle_postrouting_ttl65 {
  type filter hook postrouting priority 300; policy accept;
  oifname { eth1, usb0 } ip ttl 64 counter ip ttl set 65;
  oifname { eth1, usb0 } ip ttl 63 counter ip ttl set 65;
  oifname { eth1, usb0 } ip ttl 128 counter ip ttl set 65;
  oifname { eth1, usb0 } ip ttl 127 counter ip ttl set 65;
}
 
# Применяем правило
 
service firewall restart
 
# check firewall
# тестируем изменения для интерфейсов в fw
 
nft list ruleset | grep 65
 
 
		oifname { "usb0", "eth1" } ip ttl 64 counter packets 2870 bytes 604623 ip ttl set 65
		oifname { "usb0", "eth1" } ip ttl 63 counter packets 646 bytes 163896 ip ttl set 65

ssh генерация public и private keys

# rsa
dropbearkey -f ~/.ssh/id_dropbear -t rsa -s 2048
# rsa
dropbearkey -f ~/.ssh/id_dropbear -t ed25519

Dropbear смотрит в файл ~/.ssh/id_dropbear при подключении в ssh

Разное

# AT command L860
# Версия прошивки
AT+GTPKGVER?
 
+GTPKGVER: "18600.5001.00.35.00.34_5001.02.001.006"
 
# Состояние. Нужно ставить 1
AT+CFUN? 
 
+CFUN: 1,0
 
 
 
AT +CFUN =1
 
 
opkg install luci-app-modeminfo modeminfo-serial-fibocom luci-app-modeminfo modeminfo modeminfo-serial-xmm luci-app-atinout atinout luci-i18n-atinout-ru
 
usbutils usb-modeswitch kmod-usb-net-cdc-mbim kmod-usb2 kmod-usb3 
 
luci-app-mmconfig luci-i18n-mmconfig-ru swconfig
 
modeminfo modemmanager luci-app-modeminfo luci-i18n-modeminfo-ru luci-proto-modemmanager
 
# Список диапазонов, которые "умеет" модем. 
AT+XACT=?
 
 
+PBREADY
AT+XACT=?
+XACT: (0-6),(0-2),0,1,2,4,5,8,101,102,103,104,105,107,108,112,113,114,117,118,119,120,125,126,128,129,130,132,138,139,140,141,142,146,166
OK

Версия OpenWRT 25.12 и apk

apk add luci-proto-modemmanager

Пакеты для работы с модемами для различных версий openwrt собраны Кошевым и лежат https://openwrt.132lan.ru/packages/

Для корректного отображения уровня сигнала модема Fibocom L850-GL в modeminfo на OpenWrt необходимо установить специфический пакет поддержки последовательного порта modeminfo-serial-fibocom. Также должны быть установлены базовые пакеты modeminfo, xmm-modem и modeminfo-serial-xmm для платформы Intel XMM, которую использует данный модем. Для работы модема также лучше установить modemmanager. Ниже собраны команды для установки этих пакетов. Также рекомендуется установить пакеты для отправки AT команд atinout и luci-app-atinout

cd /tmp
 
#
# скачиваем пакеты для отображения уровней сигналов модемов в вебморде OpenWRT
#
wget https://openwrt.132lan.ru/packages/25.12/packages/mipsel_24kc/modemfeed/modeminfo-0.4.8-r2.apk
wget https://openwrt.132lan.ru/packages/25.12/packages/mipsel_24kc/modemfeed/modeminfo-serial-fibocom-0.4.8-r2.apk
 
wget https://openwrt.132lan.ru/packages/25.12/packages/mipsel_24kc/modemfeed/luci-app-modeminfo-0.4.8-r3.apk
wget https://openwrt.132lan.ru/packages/25.12/packages/mipsel_24kc/modemfeed/modemmanager-1.24.0-r16.apk
wget https://openwrt.132lan.ru/packages/25.12/packages/mipsel_24kc/modemfeed/xmm-modem-0.1.7-r1.apk
wget https://openwrt.132lan.ru/packages/25.12/packages/mipsel_24kc/modemfeed/modeminfo-serial-xmm-0.4.8-r2.apk
 
 
#
# устанавливаем пакеты
#
apk add --allow-untrusted  /tmp/modeminfo-0.4.8-r2.apk
apk add --allow-untrusted /tmp/modeminfo-serial-fibocom-0.4.8-r2.apk
apk add --allow-untrusted  /tmp/luci-app-modeminfo-0.4.8-r3.apk
apk add --allow-untrusted  /tmp/modemmanager-1.24.0-r16.apk
apk add --allow-untrusted /tmp/xmm-modem-0.1.7-r1.apk
apk add --allow-untrusted /tmp/modeminfo-serial-xmm-0.4.8-r2.apk
 
# ATI комманды
cd /tmp
 
wget https://openwrt.132lan.ru/packages/25.12/packages/mipsel_24kc/modemfeed/luci-app-atinout-0.1.1-r5.apk
wget https://openwrt.132lan.ru/packages/25.12/packages/mipsel_24kc/modemfeed/atinout-0.9.1.apk
 
apk add --allow-untrusted /tmp/atinout-0.9.1.apk 
apk add --allow-untrusted /tmp/luci-app-atinout-0.1.1-r5.apk

Работа с модемом 850/860 25.12 apk

#
# необходимый софт
#
apk add comgt kmod-usb-acm kmod-usb-net-cdc-ncm \
        kmod-usb-net-rndis kmod-usb-serial-option
 
 
#
# скачиваем luci-proto-xmm xmm-modem в tmp
#
 
 
apk add --allow-untrusted --repositories-file /dev/null /tmp/*.apk        
 

Прошивка модема в Linux

Устанавливаем софт для шитья

Нужно установить Intel® Platform Flash Tool Lite отсюда

#
apt install gdebi fping
 
# Для Debian 12 еще это потребовалось
#
apt install libusb-0.1-4
gdebi platform-flash-tool-lite_5.8.9.0_amd64.deb

Прошиваем

cd /opt/intel/platformflashtoollite/bin
 
./downloadTool -v 4 -c 1 --library=../lib/libDownloadTool.so \
  /home/diman/flash_tool_libs/850/18500.5001.00.05.27.30_5001.05_Secureboot.fls \
  /home/diman/flash_tool_libs/850/Generic_cust.001.013_signed.fls
wiki/openwrt/fibocom-850.txt · Последнее изменение: Diman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki