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

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


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
 
Разблокировать все бэнды 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

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
wiki/openwrt/fibocom-850.txt · Последнее изменение: 2024/04/21 15:30 — Diman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki