Linux Mint и Huawei E3372s (HiLink)
Имеется: 4g USB модем Huawei E3372s в режиме HiLink (CDC\RNDIS) т.е «эмуляция» usb ethernet, шиндовс 7 и ХР в которых все нормально работает (20 — 40 мб\с) и Linux Mint 18, в котором этот же модем максимум 2.8 мб\с выдает (при чем на отдачу прекрасно и 8 мб\с выдает). Usb-modeswitch стоит, соотв. модем в «правильном» режиме, веб. интерфейс открывается. По сути все работает. но скорость низкая. Как исправить и «вернуть» скорость как в шиндовс?
В обоих случаях мерили скорость одним и тем же?
Конечно:и спидтестом и 2ip
А спидтест под тем же браузером (кроссплатформенным) работал с той же версией флешплеера?
да, плюс и на html5 версии мерил, но суть в том, что под йотой он и 10 мб\с покажет =) Честнее 2ip, но не суть: в винде в 10 — 15 раз скорость выше (винда ХР и 7ка)
Арбузеры опера и огнелис
А архитектура одна и та же, то есть 32 бит в обоих случаях?
Попробуйте загрузиться не в Linux Mint 18, а в каком-то _другом_ дистре, в живом (то есть без установки на жесткий диск). И попробовать еще раз.
и 32 и 64 пробовал, другой дистр не вариант:именно убунту-based нужны, а как я уже выяснил, эта проблема во всем семействе. говорят в генту нормально работает, но с этим конструктором не вариант связываться. Самое интересно, в роутерах то НОРМАЛЬНО работает и на стоках (кинетики к примеру) и на опен\дд врт. В чем тогда разница вообще?
Подрубись к модему как к com-порту и попробуй вручную подёргать разные режимы.
Конкретные AT-команды поищи сам.
Допустим я переключу модем в режим портов, но в хайлинке он НЕ понимает АТ команды для смены режимов, только запись в nvra нужных параметров (которых я не знаю) с БАААЛСЫМ вариантом окирпичить (с АТ еще дружу, но это боязно). И в принципе модем и так в самой оптимальной композиции для роутеров (а ведь на них также линукс стоит).
С прошивкой HILINK модем работает в режиме роутера, и представляется компьютеру в виде сетевого интерфейса (usb-ethernet-rndis)
Это особенно ценно для пользователей Linux, а также для тех, у кого модем подключен не к компьютеру, а к домашнему роутеру. Настройка модема через AT-команды, как в stick-прошивках, в штатном режиме hilink-прошивок не производится, хотя и возможна в специальном отладочном режиме DebugMode.
Начальная USB-композиция HILINK-модема в точности такая же, как и у stick — виртуальный CD-ROM и картридер microSD. Переключение композиций под windows производится небольшой программой mbbservice, запускаемой со встроенного CD. Под linux это делает программа usb-modeswitch. Штатно разработчиками модема не предусмотрен режим без переключения композиций. Тем не менее, путем некоторой модификации прошивки такой режим сделать возможно. При этом теряется встроенный картридер SD, однако появляется возможность использовать модем с любым роутером, поддерживающим сетевые карты usb-rndis.
Стоит МОД прошивка, в дебаг могу переключить, но смысл? Плюс картридер не хочу терять — в него флешка на пару гб пойдет и OptWare для роутера доставлю. Плюс usb-modeswitch корректно отрабатывает — сразу модем при загрузке как сетевая виден. Кстати, забыл уточнить — линуховый софт не ставится, ссылаясь на ошибку с libusb. Если надо, то позже лог выложу и линуховый софт с cdrom’а модема могу на я.диск залить (если можно ссылки такие тут выкладывать).
И кстати, я 4пда перерыл от и до по этой теме, иначе бы сюда не писал =)
А что управляет режимами модема в тех дистрах где нормально со скоростью? Я бы глянул их конфиги и стянул, если есть какие различия. ModemManager, usb-modeswitch, что там еще.
в хайлинке он НЕ понимает АТ команды для смены режимов, только запись в nvra нужных параметров
А в «обычном» режиме он вообще не заводится? АТ-команды по идее не должны навредить сильно, я предлагаю только играть режимами сети — есть подозрение что не корректно выставляется. Кстати, какой выставляется при замере? HSPA+/DC-HSPA и т.д. Потом воткнув в винду (я так понимаю она под рукой есть) можно вернуть дефолт, если не сбрасывается пори обесточивании.
линуховый софт с cdrom’а модема могу на я.диск залить
Да безтолку, там модуль ядра, компиляние, а под какое оно ядро? там должно быть написано в readme.
Было нужно НЕ переводить в стик т.к ТОЛЬКО в HiLink он умеет ттл фиксировать для йоты. И да, я его сейчас победил, честно-честно=) Разобрался наконец — как оказалось не шар хрустальный нужен был, а стадо гребаных экстрасенсов с тнт и рентв вместе взятых:
install begin.
/usr/local/MobileBrServ is not exist
begin to copy file.
copy end .
begin to install .
./install: line 497: chkconfig: команда не найдена
install success.
run the process.
/usr/local/MobileBrServ/mbbservice
/usr/local/MobileBrServ/mbbservice: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory
install end.
Press any key to exit.
apt-get install libusb-0.1-4
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Уже установлен пакет libusb-0.1-4 самой новой версии (2:0.1.12-28).
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 >пакетов, и 296 пакетов не обновлено.
С этой чуйней я два с лишним года не мог справиться, сегодня допер: эта сволочь i386 версию либы требовала:
apt-get install libusb-0.1-4:i386
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
НОВЫЕ пакеты, которые будут установлены:
libusb-0.1-4:i386
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 >пакетов, и 296 пакетов не обновлено.
Необходимо скачать 17,6 kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 56,3 kB.
Пол:1 http://archive.ubuntu.com/ubuntu xenial/main i386 libusb-0.1-4 i386 2:0.1.12-28 [17,6 kB]
Получено 17,6 kБ за 1с (11,5 kБ/c)
Выбор ранее не выбранного пакета libusb-0.1-4:i386.
(Чтение базы данных … на данный момент установлено 199318 файлов и каталогов.)
Подготовка к распаковке …/libusb-0.1-4_2%3a0.1.12-28_i386.deb …
Распаковывается libusb-0.1-4:i386 (2:0.1.12-28) …
Обрабатываются триггеры для libc-bin (2.23-0ubuntu5) …
Настраивается пакет libusb-0.1-4:i386 (2:0.1.12-28) …
Обрабатываются триггеры для libc-bin (2.23-0ubuntu5) …
mint linux_mbb_install # ./install
install begin.
the Mobile Broad HL Service has been installed before.
now begin to verify version .
the INSTALLED version is : 22.001.27.00.03
the INSTALLING version is : 22.001.27.00.03
do you want to re-install it?([Y]/N):Y
yes/install.
begin to copy file.
copy end .
begin to install .
install success.
run the process.
/usr/local/MobileBrServ/mbbservice
install end.
Press any key to exit.
Переткнул девайсину и на выходе:
dmesg
[ 2753.209803] rndis_host 1-2:1.0 enx0c5b8f279a64: unregister ‘rndis_host’ usb-0000:00:1a.7-2, RNDIS device
[ 2775.780049] usb 1-2: new high-speed USB device number 4 using ehci-pci
[ 2775.943523] usb 1-2: New USB device found, idVendor=12d1, idProduct=1f01
[ 2775.943528] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2775.943530] usb 1-2: Product: HUAWEI_MOBILE
[ 2775.943533] usb 1-2: Manufacturer: HUAWEI_MOBILE
[ 2775.943535] usb 1-2: SerialNumber: 0123456789ABCDEF
[ 2775.976676] usb-storage 1-2:1.0: USB Mass Storage device detected
[ 2775.976964] scsi host10: usb-storage 1-2:1.0
[ 2776.984675] scsi 10:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
[ 2776.992407] scsi 10:0:0:1: Direct-Access HUAWEI TF CARD Storage 2.31 PQ: 0 ANSI: 2
[ 2777.028042] sr 10:0:0:0: [sr1] scsi-1 drive
[ 2777.028262] sr 10:0:0:0: Attached scsi CD-ROM sr1
[ 2777.028382] sr 10:0:0:0: Attached scsi generic sg4 type 5
[ 2777.028642] sd 10:0:0:1: Attached scsi generic sg5 type 0
[ 2777.038288] sd 10:0:0:1: [sdd] Attached SCSI removable disk
[ 2777.072031] scsi 10:0:0:0: rejecting I/O to offline device
[ 2777.072038] scsi 10:0:0:0: killing request
[ 2777.127943] usb 1-2: USB disconnect, device number 4
[ 2777.692050] usb 1-2: new high-speed USB device number 5 using ehci-pci
[ 2777.825018] usb 1-2: New USB device found, idVendor=12d1, idProduct=14dc
[ 2777.825023] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 2777.825026] usb 1-2: Product: HUAWEI_MOBILE
[ 2777.825028] usb 1-2: Manufacturer: HUAWEI_MOBILE
[ 2777.928239] cdc_ether 1-2:1.0 eth0: register ‘cdc_ether’ at usb-0000:00:1a.7-2, CDC Ethernet Device, 0c:5b:8f:27:9a:64
[ 2777.928664] usb-storage 1-2:1.2: USB Mass Storage device detected
[ 2777.929278] scsi host11: usb-storage 1-2:1.2
[ 2777.962724] cdc_ether 1-2:1.0 enx0c5b8f279a64: renamed from eth0
[ 2777.988351] IPv6: ADDRCONF(NETDEV_UP): enx0c5b8f279a64: link is not ready
[ 2777.988572] cdc_ether 1-2:1.0 enx0c5b8f279a64: kevent 12 may have been dropped
[ 2777.988581] cdc_ether 1-2:1.0 enx0c5b8f279a64: kevent 12 may have been dropped
[ 2777.997780] cdc_ether 1-2:1.0 enx0c5b8f279a64: kevent 12 may have been dropped
[ 2778.001679] cdc_ether 1-2:1.0 enx0c5b8f279a64: kevent 12 may have been dropped
[ 2778.008514] IPv6: ADDRCONF(NETDEV_UP): enx0c5b8f279a64: link is not ready
[ 2778.935296] scsi 11:0:0:0: Direct-Access HUAWEI TF CARD Storage 2.31 PQ: 0 ANSI: 2
[ 2778.935755] sd 11:0:0:0: Attached scsi generic sg4 type 0
[ 2778.940661] sd 11:0:0:0: [sdd] Attached SCSI removable disk
[ 2790.470065] cdc_ether 1-2:1.0 enx0c5b8f279a64: kevent 12 may have been dropped
Остался вопрос: 1. Что за kevent 12 may have been dropped, 2. Какого рожна оно без драйвера с черепашьей скоростью работало? Обычно или никак или на свободных нормально.
Источник
achmel / huawei-3372-ru.md
The Ultimate Guide for Huawei E3372h
Что я сделал, чтобы подружить модем с антенной?
- Взял стоковый модем, запустил виртуалку 2015 года с WindowsXP (песочницу), там уже были дрова Huawei, но в Мобильном ассистенте общаться с модемом не удалось.
- Скачал c 4pda Pupdatewiz и подходящую прошивку.
- Запустил Pupdatewiz — вуаля!
После прошивки стало:
- Выключил винду, на маке использовал mode_switch и переключил модем на вечный debug mode.
- Снова загрузил винду, в ней стал доступен Терминал.exe.
Вот этими командами восстанавливается убитая в ходе прошивки имеюшка. Тут как повезет либо AT^CIMEI , либо AT^NVWREX . Первая команда, как я понял, не всегда доступна, для успешного использования в второй надо предварительно воспользоваться утилитой imei_converter и вместо нулей записать то что надо. Команда AT^INFORBU нужна имхо для применения долгосрочной записи в NVRAM.
Код imei_converter.c приведен ниже:
- На фоне модем плевался мне подобными сообщениями в терминал:
Последнее событие — событие IMSI Attach.
- Самая полезная команда — AT^LOCINFO? , она выдает сразу MCC, MCN, LAC, CID. C этими данными можно сразу смело идти на https://xinit.ru/bs/ и получать данные базовой станции.
- Но под виндой сидеть было грустно. После перепрошивки на маке/линуксе можно сделать telnet 192.168.8.1 и засылать AT-команды в /dev/appvcom1 либо просто слушать cat
Первый способ — если не нужен интерактив
Второй способ — двухсторонний обмен с модемом, он не очень удобен, т.к. обычно происходит много событий.
Наиболее удобная для меня система — слушать события в отдельном терминале, а в другом кидать команды:
RSRP – средний уровень сигнала принимаемого с базовой станции оператора. Измеряется по логарифмической шкале в дБм (dBm) и отображается в виде отрицательных значений. Чем значение ближе к нулю, тем выше уровень принимаемого сигнала. Например, значение сигнала RSRP равное -65 dBm, намного лучше, чем значение -97 dBm.
SINR — отношение уровня полезного сигнала к уровню шума (соотношение сигнал/шум). Измеряется в дБ (dB). Чем выше данное значение, тем лучше качество сигнала. При значениях SINR ниже 0 скорость подключения будет очень низкой, т.к. это означает, что в принимаемом сигнале шума больше, чем полезной части.
Считается, что параметр сигнал\шум (SINR) в ряде случаев может быть важнее, чем уровень сигнала. При SINR в интервале 15-20 (dB) модем выдаст все, на что способна данная БС, даже при посредственном, около -70. -80 dBm, уровне RSRP, если сама БС окажется не перегружена в момент тестирования.
Показатели качества принимаемого сигнала
Значения параметров | RSSI | SINR (Ec/Io) |
---|---|---|
Отличные | -30. -50 dBm | 30 dB и выше |
Хорошие | -50. -70 dBm | от 20 dB до 30 dB |
Удовлетворительные | -70. -85 dBm | от 10 dB до 20 dB |
Плохие | -85. -110 dBm | менее 10 dB |
Основная часть (выборочная копипаста)
1. Предварительная подготовка
Есть две разновидности прошивок: Stick и HiLink . С прошивкой Stick модем будет видеться AT-модемом, для подключения к интернету нужно «дозваниваться». С HiLink-прошивкой модем представляется сетевой картой Ethernet, и не требует настроек в ОС.
По умолчанию, модем находится в режиме HiLink , такой типа роутер, с красивым веб-интерфейсом.
2. Balong Flash / Прошивка под mac, linux, windows
Для прошивки под Linux используется утилита balong_flash.
- https://github.com/forth32/balongflash (Программа для прошивки модемов фирмы Huawei на чипсете Balong v7)
- https://github.com/forth32/balong-fbtools (Утилиты для работы с flash модемов на платформе Balong)
- https://github.com/forth32/balong-usbdload (Утилита для аварийной USB-загрузки модемов на чипсете Balong V7)
- https://github.com/forth32/balong-nvtool (Утилита для обработки образов NVRAM устройств на чипсете Hisilicon Balong)
В отличие от Linux, нa Macintosh адрес, скорее всего, будет не /dev/ttyUSB0 , а /dev/tty.HUAWEIMobile-Diag .
Достоверно узнать адрес устройства можно с помощью команды ls /dev | grep HUA .
3. Pupdatewiz Flash / Прошивка под windows
Распаковать архив, поместить нужную прошивку (.exe или .bin) в папку с командным файлом go.cmd и запустить его.
4. Полезные и интересные АТ-команды и настройка конфигурации модема
В модеме имеется хранилище различной конфигурационной информации — NVRAM. Оно организовано в виде набора записей переменной длины. Каждая запись имеет номер — от 0 до 65535, но не все номера записей физически присутствуют в модеме. Чтобы узнать длину конкретной записи, используется команда:
— номер записи. В ответ модем выдает ее длину:
Посмотреть содержимое конкретной записи можно командой:
— смещение от начала записи до интересующего нас фрагмента (0 — с начала) — длина выводимого фрагмента, должна быть не больше полной длины записи минус смещение.
Поиск базовых станций сотовой связи
Данный модем обладает уникальным свойством — он умеет делать поиск всех окружающих базовых станций (БС). Причем не только БС оператора вставленной в него симкарты, а вообще все БС всех операторов, сигнал от которых достигает антенны модема. Для каждой найденной БС выводится ее CID и уровень принимаемого от нее сигнала. Это позволяет выбрать оператора с наивысшим уровнем сигнала, а также выбрать конкретную БС для наведения на нее внешней антенны. Единственный недостаток данного модема — он умеет искать только БС 2G и 3G. LTE-соты искать он не умееет.
Если в округе имеется сигнал LTE, то следует перевести модем в режим 2G3G командой AT^SYSCFGEX=»0201″,3FFFFFFF,1,2,800C5,, или в настройках веб-интерфейса. Также обратите внимание, что эту команду можно ввдить только через порт управления (PCUI). Если ее ввести через порт, предназначенный для установки РРР-соединения (modem), то команда будет выдавать пустой ответ (просто ОК и все). Формат команды: AT^NETSCAN=num,level,mode num — число находимых БС, от 1 до 20. Если будет найдено больше num БС, то станции с самым слабым сигналом будут исключены из списка level — минимальный уровень сигнала БС, включаемых в список. Задается в дБ, от -110 (самый низкий уровень) до -47 (самый высокий уровень). Станции с уровнем сигнала меньше level в список включаться не будут. mode — тип БС. 0 -поиск 2G-станций, 1 — поиск 3G-станций.
В этом примере заказывается поиск 3G БС с уровнем сигнала не ниже -108 дБ. Результат выдается в виде списка, отсортированного по уровню сигнала. Самая верхняя БС — самая мощная, нижняя — самая слабая. Формат элемента списка:
Источник