Bekijk de volledige versie : "Обвязка" 3G/4G и CDMA модемов на прошивке энтузиастов
Мы с него ещё номер устройства получим, а по нему и всё остальное.
Основную часть уже подготовил. Сейчас ещё скрипты поправлю и выложу.
ок, согласен.
-- Добавлено --
Итак вот новая версия. Кроме скрипта изменения к rc и драйверам в одном архиве. Всё это, за исключением драйверов, совсем сырое и даже пока не компилировалось. Выкладываю только для того, чтобы можно было высказать замечания по функционалу и архитектуре.
To Rss: прошу Вас ещё раз рассмотреть вопрос о usb_modem_check. Ну никак она корректно не стыкуется ни с multiwan ни с пользовательскими скриптами. Я конечно постарался сделать поддержку, но ИМХО это не нужно. Единственное для чего она бы пригодилась это проверять состояние соединения и в зависимости от состояния управлять multiwan.
Нужно, хотя бы потому, что момент подключения модема вовсе не говорит, о том, что подняты соответствующие сетевые службы. Т.е. звонить можно только после того, как найден модем и поднят соответстующий ему wan в start_wan(). Кроме того, надо реагировать на кнопки Disconnect/Connect. Сейчас это делается через watchdog посредством вызова usb_modem_check.
Далее, дерево устройств надо строить несколько выше (в hotplug_network_device ), чтобы не перестраивать его для каждого wan.
Функция *main - всегда в конец файла.
В остальном мне нужно некоторое время, чтобы осмыслить всё в целом.
Кстати, так и не понял, доставшийся от чехов dialup не предполагается?
dlukanidin
24-02-2011, 19:51
В остальном мне нужно некоторое время, чтобы осмыслить всё в целом.
Кстати, так и не понял, доставшийся от чехов dialup не предполагается?
Слишком много изменений для наследства чехов. Да и не вижу смысла. Ещё раз пересмотрел, не увидел ничего, что стоило бы тащить дальше и чего мы не попробовали бы. Этот скрипт уже фактически не используется более полугода и пока я не слышал, чтобы он кому-то понадобился.
Пока Вы не посмотрите не буду вносить никаких правок, чтобы не делать пустую работу.
Слишком много изменений для наследства чехов. Да и не вижу смысла. Ещё раз пересмотрел, не увидел ничего, что стоило бы тащить дальше и чего мы не попробовали бы. Этот скрипт уже фактически не используется более полугода и пока я не слышал, чтобы он кому-то понадобился.Строго говоря, не факт, что тот кто им пользуется, нам бы написал.....
Хотя в целях экономии места можно и выбросить.
Пока Вы не посмотрите не буду вносить никаких правок, чтобы не делать пустую работу.
Ок. Раньше субботы не обещаю.
Также обращаю внимание на то, что формат
printf("%04x:%04x:%c:%d:%d:%s:%s:%s\n",
dev->vid, dev->pid, dev->type, dev->data_port, dev->ui_port,
dev->location, dev->manuf, dev->prod);
пригоден только для справочного отображения, поскольку dev->manuf, dev->prod вполне могут содержать символ ':'. Описатель устройства предусмотрен в отдельной nvram-переменной.
dlukanidin
24-02-2011, 20:58
Ок. Раньше субботы не обещаю.
Также обращаю внимание на то, что формат
printf("%04x:%04x:%c:%d:%d:%s:%s:%s\n",
dev->vid, dev->pid, dev->type, dev->data_port, dev->ui_port,
dev->location, dev->manuf, dev->prod);
пригоден только для справочного отображения, поскольку dev->manuf, dev->prod вполне могут содержать символ ':'. Описатель устройства предусмотрен в отдельной nvram-переменной.
А он так и используется, кроме одной ситуации, но там это не играет роли (речь идёт о "параноидальном" контроле гипотетически возможной ошибки и там не важно полная это строка или её часть).
Мы используем тот же символ, что и devpath, поэтому и с этой стороны нет неожиданностей.
В принципе, если Вы считаете это важным, можно сделать проверку названий на наличие символа ':' и менять его на '-' например. Или взять '|' и менять на '!'. Но тогда, для корректности аналогичную замену нужно проводить и в devpath.
Специально хотел уйти от лишних переменных, чтобы все настройки хранились компактно и обозримо.
Мы используем тот же символ, что и devpath, поэтому и с этой стороны нет неожиданностей.
В принципе, если Вы считаете это важным, можно сделать проверку названий на наличие символа ':' и менять его на '-' например. Или взять '|' и менять на '!'. Но тогда, для корректности аналогичную замену нужно проводить и в devpath.Производитель в информации о продукте может вписать что угодно. В devpath разделитель " : ", а не ":". Собственно, если только для отображения, то безразлично.
Специально хотел уйти от лишних переменных, чтобы все настройки хранились компактно и обозримо.Разбиение по полям позволяет избежать ненужных ошибок (в т.ч. со стороны пользователя) и затрат на разбор строки. Отображать же можно в любом случае как угодно.
Кроме того хранение всех настроек в одной строке тут же потребует доделывать их сворачивание/разворачивание на веб-клиенте с обязательно работающим js. (Я хоть и сторонник js, но тут получается вообще безальтернативно). Если же ориентироваться на js, то лучше использовать JSON....
Впрочем, еще подумаю.
dlukanidin
25-02-2011, 10:12
П
Разбиение по полям позволяет избежать ненужных ошибок (в т.ч. со стороны пользователя) и затрат на разбор строки. Отображать же можно в любом случае как угодно.
Кроме того хранение всех настроек в одной строке тут же потребует доделывать их сворачивание/разворачивание на веб-клиенте с обязательно работающим js. (Я хоть и сторонник js, но тут получается вообще безальтернативно). Если же ориентироваться на js, то лучше использовать JSON....
Впрочем, еще подумаю.
Согласен с любым вариантом, т.к. в последней реализации концепция хранения не принципиальна. А без js веб морда, по моему, вообще не работает.
Согласен с любым вариантом, т.к. в последней реализации концепция хранения не принципиальна. А без js веб морда, по моему, вообще не работает.
Работоспособности в системной части добился. Модем определяется, по переменным расписывается. Дальше надо подправить скрипт.
Завтра утром буду доделывать веб-интерфейс и чистить системную часть. Если есть время, просьба поправить скрипт дозвона.
Чтобы не разводить лишние процессы в скрипте надо поставить обработчик сигналов (SIGTERM) http://linuxcommand.org/wss0160.php
Процедуру запуска/останова пока менять не хочу. Она же унифицирована и позволяет запускать любой скрипт.
Согласен с любым вариантом, т.к. в последней реализации концепция хранения не принципиальна. А без js веб морда, по моему, вообще не работает.
Скрипты статистики в новом расположении с исправленными путями. (вынес всё, что можно из /usb/sbin)
Согласен с любым вариантом, т.к. в последней реализации концепция хранения не принципиальна. А без js веб морда, по моему, вообще не работает.
На сегодня закончил. До скриптов не добрался, но каркас на месте. Распаковывать над r2708 (иначе не влезет в 4МБ). Директорию cdma предварительно удалить. Остальное - поверх.
USSD вставлен, но как концепт. Проблема дизайна и эргономики всё еще актуальна.
dlukanidin
27-02-2011, 21:50
На сегодня закончил. До скриптов не добрался, но каркас на месте. Распаковывать над r2708 (иначе не влезет в 4МБ). Директорию cdma предварительно удалить. Остальное - поверх.
USSD вставлен, но как концепт. Проблема дизайна и эргономики всё еще актуальна.
Скрипт поправленный в соответствии с обсуждением. Требует небольшой доработки (комментарии в личке).
P.S. Кстати посмотрел размер прошивки для gpv2 (dir320) - 3 792 896 (4М=4 194 304). Критичным он становится для других моделей?
-- Добавлено --
Вот пока последняя версия. Ещё не рабочая, хотя у меня в автомате соединение и поднялось.
Но крайне криво. Буду ещё разбираться.
Улучшения по сравнению с текущей версией:
1. Более качественная автоматика
2. Улучшенная настройка
3. Почти полная подготовка для multiwan
4. Возможна статистика для нескольких подключенных модемов
Тестируйте пожалуйста.
Небольшие изменения. Просьба проверить скрипт дозвона на CDMA (мог что-нибудь задеть).
В качестве компаратора можно использовать http://kdiff3.sourceforge.net/
dlukanidin
03-03-2011, 08:50
Небольшие изменения. Просьба проверить скрипт дозвона на CDMA (мог что-нибудь задеть).
В качестве компаратора можно использовать http://kdiff3.sourceforge.net/
Работает, только надо сделать сброс в default или, как минимум, пересохранить настройки модема, а то в nvram будет старое значение и CDMA не заведётся.
-- Добавлено --
Вот моё понимание того, что должно быть в интерфейсе настройки модема.
Это только макет, работает меньше чем на половину.
За дизайн не ругайте, не умею я этого. Основное функционал.
Работает, только надо сделать сброс в default или, как минимум, пересохранить настройки модема, а то в nvram будет старое значение и CDMA не заведётся.
С небольшими дополнениями - r2734
Можно приступать к масштабному тестированию.
С небольшими дополнениями - r2734
Можно приступать к масштабному тестированию.
Большое спасибо потестирую на Хуайвеях )
dlukanidin
16-03-2011, 01:59
Продолжая эксперименты с веб мордой выкладываю промежуточный результат по страничке настройки модема.
---- Добавлено ----
Почти готовая страничка настройки модема.
Примечания:
1. Описание не полностью на JSON, т.к. пока не понятны рамки интерфейса.
2. Для сохранения конфигураций необходимо добавить соответствующие переменные в variables.c (сам пока не проверял, возможны неприятности на этом этапе).
3. Не сохраняю текущую конфигурацию в реальные настройки модема т.к. не до конца протестировано.
Но в целом всё должно работать.
-- Ещё добавлено --
Что-то исправил, что-то добавил.
Работает всё ( кроме сохранения в действующие переменные для скрипта) после добавления в variables.c
{"wan_modem_config", "", validate_string, ARGV(""), TRUE, FALSE},
{"config0_modem", "", validate_string, ARGV(""), TRUE, FALSE},
{"config1_modem", "", validate_string, ARGV(""), TRUE, FALSE},
{"config2_modem", "", validate_string, ARGV(""), TRUE, FALSE},
в struct variable variables_3GConfigvariables_3GConfig[].
Сохранение в действующие переменные для скрипта делать пока не буду, т.к. непонятно нужна такая страничка или нет.
dlukanidin
20-03-2011, 11:35
Огромная просьба ко всем тестирующим:
Выкладывайте пожалуйста информацию о Ваших модемах для добавления в базу lsmodem и option в виде:
vid - pid - тип (CDMA или WCDMA/...) - порт данных - порт ui (порт для статистики).
Если есть сомнения просьба добавлять диагностик инфо при поднятом модеме.
Заранее благодарю всех участвующих.
P.S. базу lsmodem можно увидеть в /usr/share/modem/modems.conf
Собрал минимальный вариант под 4МБ-флеш. Всё, что относится к VPN, NAS, IPv6 выброшено.
WL500gpv2-1.9.2.7-rtn-r2855-3g-only-debug (http://narod.ru/disk/8491384001/WL500gpv2-1.9.2.7-rtn-r2855-3g-only-debug.trx.html)
Для желающих повторить, конфиги и Makefile в приложении.
make oldconfig
make && make install
dlukanidin
28-03-2011, 23:37
Добавил в сабж известные мне модемы от Huawei.
2 Rss просьба включить в прошивку.
P.S. Тоже купил 1820. Подключился на последней прошивке без проблем сходу, без каких бы то ни было доп. настроек. Вроде всё работает как задумывали. Теперь надо где-то найти переходник для антенного гнезда.
P.P.S. Для тех, кто не определился с выбором модема - крайне не рекомендую покупать ZTE MF180 (у нас продаётся пчелайном). Очень плохо держит связь. Там где конкуренты подтормаживают, этот отваливается. К тому же нужна хитрая инициализация. Ну а про борьбу пчелайна с разблокировкой я уже писал, самые не предсказуемые последствия.
Добавил в сабж известные мне модемы от Huawei.
2 Rss просьба включить в прошивку.
Внесу чуть позже. Неудачно обновил сборочную виртуалку....
dlukanidin
30-03-2011, 21:44
Как раз тестировал
2 Rss добавил.
2 Rss добавил.
Добавлено в r2863
dlukanidin
13-05-2011, 10:10
2 Rss
Параметр USB device packet size сейчас фактически не используется.
Предлагаю убрать из морды и скрипта. Если согласны - подготовлю изменения.
dlukanidin
17-05-2011, 09:22
2 Rss
Не понимаю смысла изменений в ": $loc".
ИМХО возможны потенциальные проблемы, когда в модем встроен хаб или когда есть два интерфейса 1 и 10.
2 Rss
Не понимаю смысла изменений в ": $loc".
ИМХО возможны потенциальные проблемы, когда в модем встроен хаб или когда есть два интерфейса 1 и 10.
Смысл в том, что devpath не выводит завершающий разделитель " :" в том случае, если не удаётся прочитать строки о производителе (собственно вместе с ними и выводится). Что я и обнаружил на тестовом Anydata100. Проблема с большим числом модемов возможна, но маловероятна. Попасть на хаб получится только в том случае, если пользователь сам ввёл непонятно что.
Радикально исправить можно либо исправив драйвер, либо добавить дополнительную проверку в скрипте дозвона, если не удалось найти по форме ": 1...1 :".
Также можем сделать обязательное отображение двух разрядов, например не 1.0.1, а 01.00.01. Или вывод usbloc в devpath с каким-нибудь своим терминальным символом.
dlukanidin
17-05-2011, 09:58
добавить дополнительную проверку в скрипте дозвона, если не удалось найти по форме ": 1...1 :".
Согласен с этим решением
+ mesg в лог, усли всё таки не нашли.
Согласен с этим решением
Может всё таки свой символ-терминатор в код драйвера? Будет меньше кода в целом.
dlukanidin
17-05-2011, 10:42
Может всё таки свой символ-терминатор в код драйвера? Будет меньше кода в целом.
Можно и так. Например "i" или "+".
Жаль нельзя точку, т.к. может быть проблема если на это место воткнуть хаб.
P.S. Если уж драйвер исправлять, может лучше двоеточие с пробелом безусловно добавить ? (там и вморде кажется, что-то на этот формат завязано)
Можно и так. Например "i" или "+".
Жаль нельзя точку, т.к. может быть проблема если на это место воткнуть хаб.
P.S. Если уж драйвер исправлять, может лучше двоеточие с пробелом безусловно добавить ? (там и вморде кажется, что-то на этот формат завязано) В морде сейчас lsmodem + json. Это раньше был парсер devpath.
Можно и переставить ":", но тогда появятся мелкие некрасивости в виде обязательного присутствия этого символа. См. исходник devpath.
dlukanidin
17-05-2011, 12:09
В морде сейчас lsmodem + json. Это раньше был парсер devpath.
Можно и переставить ":", но тогда появятся мелкие некрасивости в виде обязательного присутствия этого символа. См. исходник devpath.
Да бог с ними - с некрасивостями, это лучше, чем совершенно непонятный символ. И приемственность сохраняется.
Да бог с ними - с некрасивостями, это лучше, чем совершенно непонятный символ. И приемственность сохраняется.
Предлагаю компромисный вариант. Добавляем в конец пробел, а перед ':' его убираем. Внешне ничего не заметно, но терминатор в виде пробела получаем.
dlukanidin
19-05-2011, 19:08
Предлагаю компромисный вариант. Добавляем в конец пробел, а перед ':' его убираем. Внешне ничего не заметно, но терминатор в виде пробела получаем.
ИМХО в скрипте терминатор в виде пробела работать не будет. Он там автоматически обрежется.
Проверил - сделал тестовый файл и дал такую комавнду:
[r@DIR320 r]$ a="2.1.1 " && grep $a /tmp/aaa.txt
2.1.1 :
2.1.10 :
[r@DIR320 r]$
Вывод - не работает, как я и ожидал.
Поправочка - а в таком виде работает:
[r@DIR320 r]$ a="2.1.1 " && grep "$a" /tmp/aaa.txt
2.1.1 :
[r@DIR320 r]$
ИМХО в скрипте терминатор в виде пробела работать не будет. Он там автоматически обрежется.
Проверил - сделал тестовый файл и дал такую комавнду:
[r@DIR320 r]$ a="2.1.1 " && grep $a /tmp/aaa.txt
2.1.1 :
2.1.10 :
[r@DIR320 r]$
Вывод - не работает, как я и ожидал.
Поправочка - а в таком виде работает:
[r@DIR320 r]$ a="2.1.1 " && grep "$a" /tmp/aaa.txt
2.1.1 :
[r@DIR320 r]$
Ну так у нас же как раз стоит
usbdev=$(grep ": $loc " "$devpath_name" | awk -F':' '{print $1}')
Всё вписывается в схему с пробелом-терминатором.
dlukanidin
24-05-2011, 21:32
Модно добавить модем
CMOTECH CDMA Technologies
16d8:6803:C:0:1
Можно добавить модем
CMOTECH CDMA Technologies
16d8:6803:C:0:1
Спасибо, добавил.
dlukanidin
26-05-2011, 14:00
Спасибо, добавил.
Вот, что обнаружил при работе с модемом CMOTECH CNU-680
1. После добавления в базу без проблем автоматически подключается.
2. При постоянной работе устойчиво держит связь, работает без сбоев.
А вот дальше проблемы после простоя.
1. После простоя начинает работать неустойчиво - связь есть, но рывками с увеличивающейся паузой.
2. В неопределённый момент, после 2-3-х загруженных страниц, связь рвётся и вешается pppd, последнее сообщение от него
pppd[189]: tcsetattr: Interrupted system call (line 1034)
3. Gопытка убить pppd ничего не даёт, он висит.
4. После перезагрузки роутера без вынимания модема, он делает попытку позвонить, chat отваливается с кодом 3 и pppd опять намертво вешается с тем же сообщением.
В этом подвисшем состоянии после выдёргивания и вставления модема, всё сразу заводится и работает без проблем.
ВыводЫ:
1. Модем может впадать в такое состояние, что pppd вешается. ИМХО это ошибка, где - не знаю.
2. после простоя модем начинает работать неустойчиво и быстро повисает. Выводится из этого состояния передёргиванием. Возможно это штатная особенность, но чтобы это понять надо сниферить работу штатной программы в случае простоя (не исключено, что она ему стоять и не даёт).
3. Ни ребут ни какие другие програмные действия не помогают, надо физически выдёргивать модем.
Модем чужой - дали на тестирование, возможности разбираться со штатной программой нет. Пока вынужден с ним закончить.
Если у кого-то есть дополнительные соображения, могу до вечера их попробовать проверить.
Virtuals
27-05-2011, 02:08
Вот, что обнаружил при работе с модемом CMOTECH CNU-680
...
Если у кого-то есть дополнительные соображения, могу до вечера их попробовать проверить.
попробуй его непрерывно мучать через диаг интерфейс, напр запрашивая мощьность сигнала.... скриптом в цикле.(ну родная прога точно это делает)
Вот, что обнаружил при работе с модемом CMOTECH CNU-680
1. После простоя начинает работать неустойчиво - связь есть, но рывками с увеличивающейся паузой.
2. В неопределённый момент, после 2-3-х загруженных страниц, связь рвётся и вешается pppd, последнее сообщение от него
pppd[189]: tcsetattr: Interrupted system call (line 1034)
... Если у кого есть возможность, надо проверить как этот модем ведёт себя на полноценном линуксе.
Вполне возможно, что проблемы с pppd. Кстати, см. valgrind.
dlukanidin
27-05-2011, 17:53
попробуй его непрерывно мучать через диаг интерфейс, напр запрашивая мощьность сигнала.... скриптом в цикле.(ну родная прога точно это делает)
Спасибо за идею. Сейчас воткнул ему ping раз в 2 минуты. Если не поможет, попробую Ваше предложение, когда он снова ко мне попадёт (а он попадёт, если не поможет).
Всем привет!
Приобрел тут Huawei E367, да вот не задача, не хочет подниматься....((
Версия прошивки: WL500gpv2-1.9.2.7-rtn-r2972
Из лога видно, что определяется как
Vendor=12d1 ProdID=1506
однако не подцепляются дрова к нему
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=09 Driver=(none)
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=08 Driver=(none)
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=03 Driver=(none)
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=02 Driver=(none)
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
Читал ветку целый день, но ответа не нашел (наверное пропустил), как исправить ситуацию.
Драйвер грузится из dial-скрипта? на каком основании выбирается какой драйвер грузить? что еще требуется для настройки модема?
Спасибо!
ConstAntz
03-06-2011, 23:33
Всем привет!
Приобрел тут Huawei E367, да вот не задача, не хочет подниматься....((
Версия прошивки: WL500gpv2-1.9.2.7-rtn-r2972
Из лога видно, что определяется как
однако не подцепляются дрова к нему
Читал ветку целый день, но ответа не нашел (наверное пропустил), как исправить ситуацию.
Драйвер грузится из dial-скрипта? на каком основании выбирается какой драйвер грузить? что еще требуется для настройки модема?
Спасибо!
Вы не показали
nvram show | grep _modemи сислог.
Конечного пида 1506 в базе умс`а нет
grep 1506 /usr/share/usb_modeswitch.d/*
Это означает что простое устройство переключилось в составное неправильно.
Ваша задача:
узнать VID & PID как простого, так и составного устройства (например в реестре \HKLM\SYSTEM\CurrentControlSet\Enum\USB\Vid_12d1.. . или снифером (http://www.pcausa.com/Utilities/UsbSnoop/default.htm))
при наличии в базе умс`а конфига для первичного VID & PID - извлечь из него MessageContent, при отсутствии - ловить снифером.
организовать переключение либо через Device initial script, либо через свой конфиг, примерно так (http://wl500g.info/showthread.php?p=232421#post232421) (на rtn-прошивке вместо usbserial пытаться пробовать option).
Вы не показали
nvram show | grep _modemи сислог.
Пардонс, под вечер уже не было сил и голова уже не варила(((
в принципе в сислоге ничего интересного, модем примонтировался как сторедж, а option отругался о неизвестных параметрах.
Конечного пида 1506 в базе умс`а нет
grep 1506 /usr/share/usb_modeswitch.d/*
Это означает что простое устройство переключилось в составное неправильно.
Вчера пытался на базе инфы с OpenWRT решить трабл, но что-то делаю не то...
вот ссылка как Е367 монтируют на OpenWRT
http://blog.josefsson.org/2011/05/22/openwrt-with-huawei-e367-and-tp-link-tl-wr1043nd/
по их словам как раз он изначально монтируется как PID=1446, а после переключения PID=1506
efaultVendor= 0x12d1
DefaultProduct=0x1446
TargetVendor= 0x12d1
TargetProductList="1001,1406,140b,140c,1412,141b,14ac,1506"
CheckSuccess=20
MessageContent="55534243123456780000000000000011062000000100000000 000000000000"
чтобы поправить usb_modeswitch.d и modems.conf нужно самому собираь прошивку (т.к. эта область памяти защищеная)?
по логу видно, что пытался запустится option, но где именно он запускается не нахожу...т.е. интересует, где происходит определение связи device-driver?
ConstAntz
04-06-2011, 09:41
чтобы поправить usb_modeswitch.d и modems.conf нужно самому собираь прошивку (т.к. эта область памяти защищеная)?
по логу видно, что пытался запустится option...
Есть вариант проще:
про usb_modeswitch.d
создайте /usr/local/etc/usb_modeswitch.conf
DefaultVendor= 0x12d1
DefaultProduct=0x1446
TargetVendor= 0x12d1
TargetProductList="1001,1406,140b,140c,1412,141b,14ac,1506"
CheckSuccess=20
MessageContent="55534243123456780000000000000011062000000100000000 000000000000"
в морде выберите ZeroCD на /usr/local/etc/usb_modeswitch.conf
про modems.conf
отключите autodetect (т.к. в базе modems.conf вашего модема нет) и заполняйте поля location, data_port, ui_port вручную.
Есть подозрение, что он срабатывает верно, основная проблема в option из-за отсутствующего usbserial
поэтому потребуется
rmmod usbserial
rmmod option
insmod usbserial vendor=0x12d1 product=0x1506
insmod option
создайте /usr/local/etc/usb_modeswitch.conf
...
в морде выберите ZeroCD на /usr/local/etc/usb_modeswitch.conf
...
отключите autodetect (т.к. в базе modems.conf вашего модема нет) и заполняйте поля location, data_port, ui_port вручную.
загрузился usbserial_generic драйвер, 4-ый порт оказался для комманд - USB PPP LOg - полностью рабтает.
теперь надо разбираться со скриптом дозвона.....
что сразу заметил, что в скрипте dial в инициализации переменных
init_global() {
...
acm_module="cdc-acm"
а модуль имеет имя "cdc_acm"
а на какой фолдер ссылается "Device initial script"?
еще читал про скрещивание 367-го с Андрюшей, так вот они используют option....а наш не хочет с ним работать....
http://notioninkinfo.ru/usb_3g_modem_huawei_e367_na_sluzhbe_adama_notion_i nk_adam/
Спасибо за помощь ;)))
ConstAntz
04-06-2011, 14:52
а на какой фолдер ссылается "Device initial script"?
Куда пошлете, туда и будет ссылаться.
Например, на flashfs (/usr/local/sbin/myscript.sh)
dlukanidin
05-06-2011, 11:21
загрузился usbserial_generic драйвер, 4-ый порт оказался для комманд - USB PPP LOg - полностью рабтает.
теперь надо разбираться со скриптом дозвона.....
Действительно 1506 в option пока нет.
Для таких ситуаций специально сделали в морде опцию Legacy usbserial support
Ставьте вид,пид,порты, Legacy usbserial support=yes и всё должно получиться. Если нет, выкладывайте полный комплект логов.
to Rss
думаю можно добавить 12d1:1506:W:0:4
думаю можно добавить 12d1:1506:W:0:4
Спасибо, добавил.
ConstAntz
05-06-2011, 18:38
rss, dlukanidin, а что скажете по поводу
что сразу заметил, что в скрипте dial в инициализации переменных
init_global() {
...
acm_module="cdc-acm"
а модуль имеет имя "cdc_acm"
:confused:
что сразу заметил, что в скрипте dial в инициализации переменных
а модуль имеет имя "cdc_acm"
Файл называется cdc-acm.ko
Действительно 1506 в option пока нет.
Значит такс, если грузится с usbserial, то все работает, дата порт 0 (использовал стандартный dial скрипт с исправлением для "cdc_acm"), комманд порт 4, однако остается один нераспознанный интерфейс.
После явного указания для ProdID=1506 загружать option, поднялось 5 интерфейсов, дата интерфейс работает, а вот комманд инрефейс перестал отзываться...(((
Файл называется cdc-acm.ko
тогда вопросец, а какое же "имя" модуля возвращает lsmod? ;)))
тогда вопросец, а какое же "имя" модуля возвращает lsmod? ;)))
Имя - cdc_acm. Прямой связи между именем модуля и именем файла нет. Что разработчик напишет, то и будет.
Имя - cdc_acm. Прямой связи между именем модуля и именем файла нет. Что разработчик напишет, то и будет.
согласен, и я как раз об этом, что проверка
if [ "$(lsmod | grep $acm_module)" = "" ]; then
в случае если
acm_module="cdc-acm" и lsmod вернет 'cdc_acm' будет успешной (grep ничего не вернет и сравнение с пустой строчкой) и скрипт попытается загруить модуль, что вызовет ошибку, т.к. модуль уже загружен
согласен, и я как раз об этом, что проверка в случае если и lsmod вернет 'cdc_acm' будет успешной (grep ничего не вернет и сравнение с пустой строчкой) и скрипт попытается загруить модуль, что вызовет ошибку, т.к. модуль уже загружен
Надо поправить, если ошибка. Однако в скрипте сейчас загрузка драйверов не используется. Все драйверы подгружаются в rc.
Повторная загрузка сейчас также ни к чему фатальному не приведёт. Она просто не произойдёт.
Сообщение от dlukanidin
думаю можно добавить 12d1:1506:W:0:4
Спасибо, добавил.
а когда можно будет ожидать сборку? а то в собственной "интерпретации", иногда поднимаются "дублирующие" интерфейсы (на первый взгляд причины найти не удалось)
Device : Location : Info
/dev/ttyUSB0 : 1.1.0 : Manufacturer=Huawei Technologies : Product=HUAWEI Mobile
/dev/ttyUSB1 : 1.1.2 : Manufacturer=Huawei Technologies : Product=HUAWEI Mobile
/dev/ttyUSB2 : 1.1.3 : Manufacturer=Huawei Technologies : Product=HUAWEI Mobile
/dev/ttyUSB3 : 1.1.4 : Manufacturer=Huawei Technologies : Product=HUAWEI Mobile
/dev/ttyUSB0 : 1.1.0 : Manufacturer=Huawei Technologies : Product=HUAWEI Mobile
/dev/ttyUSB1 : 1.1.1 : Manufacturer=Huawei Technologies : Product=HUAWEI Mobile
/dev/ttyUSB2 : 1.1.2 : Manufacturer=Huawei Technologies : Product=HUAWEI Mobile
/dev/ttyUSB3 : 1.1.3 : Manufacturer=Huawei Technologies : Product=HUAWEI Mobile
/dev/ttyUSB4 : 1.1.4 : Manufacturer=Huawei Technologies : Product=HUAWEI Mobile
что кстати натолкнуло на мысль, почему комманд порт не отзывался при использовании option, перепроверю и вечером отпишусь.
Повторная загрузка сейчас также ни к чему фатальному не приведёт. Она просто не произойдёт.
согласен, но некрасиво =))
dlukanidin
06-06-2011, 10:25
однако остается один нераспознанный интерфейс.
После явного указания для ProdID=1506 загружать option, поднялось 5 интерфейсов
Вот эти фразы не смог интерпретировать.
В составном устройстве кроме модема могут присутствовать другие интерфейсы: voice, video, network и возможно ещё что-то. Драйверов под них пока нет.
Ещё немного о драйверах. В зависимости от класса и подкласса устройства оно поднимается либо usbserial (если без параметров, то он работает как generic и обязательно на него должен быть навешен специализированный драйвер, чаще всего option), либо acm. В option прописан список vid : pid которые он распознаёт. Для новых модемов обычно достаточно дописать в его таблицу нужный pid и соответственно перекомпилировать, чтобы option начал с ним корректно работать.
Вот эти фразы не смог интерпретировать.
однако остается один нераспознанный интерфейс.
При перезагрузке usbserial c указанием vendor и product, то для одного из существующих интерфейсов не "привязывается" дайвер:
T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1506 Rev= 0.00
S: Manufacturer=Huawei Technologies
S: Product=HUAWEI Mobile
C:* #Ifs= 7 Cfg#= 1 Atr=c0 MxPwr=500mA
A: FirstIf#= 1 IfCount= 2 Cls=02(comm.) Sub=00 Prot=00
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=usbserial_generic
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=09 Driver=(none)
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=08 Driver=usbserial_generic
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=03 Driver=usbserial_generic
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=02 Driver=usbserial_generic
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
После явного указания для ProdID=1506 загружать option, поднялось 5 интерфейсов
echo "12d1 1506" > /sys/bus/usb-serial/drivers/option1/new_id
имеем следующее:
T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1506 Rev= 0.00
S: Manufacturer=Huawei Technologies
S: Product=HUAWEI Mobile
C:* #Ifs= 7 Cfg#= 1 Atr=c0 MxPwr=500mA
A: FirstIf#= 1 IfCount= 2 Cls=02(comm.) Sub=00 Prot=00
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=option
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=01 Prot=09 Driver=option
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=08 Driver=option
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=03 Driver=option
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=02 Driver=option
E: Ad=86(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 5 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 6 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=88(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
что кстати натолкнуло на мысль, почему комманд порт не отзывался при использовании option, перепроверю и вечером отпишусь.)Все верно, дело было в "дублирующихся" интерфейсах, комманд порт отзывается при использовании option
Ждемс новый билд =))
Всем спасибо за помощь!:))
Зарелизился usb_modeswitch 1.1.8. Есть ли у кого-нибудь возражения против апгрейда?
Можно ли вкладку Diagnostic Info "отвязать" от CDMA и WMAX. Дело в том, что собираю прошивку rtn-ветки для DIR-320 и в связи с ограничениями объема флэш отключаю через make menuconfig ненужные мне опции. Как только отключаю cdma так сразу пропадает вкладка Diagnostic Info.
Зарелизился usb_modeswitch 1.1.8. Есть ли у кого-нибудь возражения против апгрейда?
Возражений нет, но Josua Dietze явно не собирается переходить на наш патч для разных libusb...
Можно ли вкладку Diagnostic Info "отвязать" от CDMA и WMAX. Дело в том, что собираю прошивку rtn-ветки для DIR-320 и в связи с ограничениями объема флэш отключаю через make menuconfig ненужные мне опции. Как только отключаю cdma так сразу пропадает вкладка Diagnostic Info.
см. Makefile
ConstAntz
20-06-2011, 20:38
Зарелизился usb_modeswitch 1.1.8. Есть ли у кого-нибудь возражения против апгрейда?
нужно попробовать, а уж потом, возможно, возражать будем.
добавлено:
Протестировал d-r3091...
плохо...
для моего модема дорОга, начиная с этого релиза в d-ветке, закончилась...
умс не переключает модем ни через конфиг, ни через параметры в ключах.
логи в аттаче
dlukanidin
06-07-2011, 14:57
В силу ряда причин вынужден был отдать свой AnyDATA ADU-300A. При покупке на замену выбрал WeTelecom WM 200.
Можно подключить внешнюю антену, подходит антенный переходник от ADU-300.
Краткий отчёт по подключению - драйвер option этот модем не определяет (Vid-0x22de, Pid-0x6801).
Поэтому нажал view, чтобы определить параметры модема, установил тип CDMA, включил Legacy usbserial support, чтобы автоматически загружался usbserial.
После сохранения и перезагрузки всё завелось. Попробую статистику, если найду решение то отпишусь.
Продолжение Подходит скрипт от anydata.
2Rss можно добавить устройство 22de:6801:С:0:2
theMIROn
26-07-2011, 07:46
Развитие прошивок серии "d" заморожено, а тут еще и после последних добавок 3g/cdma функционала (usb_modeswitch) размер прошивок превысил 4Mb. Всё, пока не найдётся что сжать (и кто это сделает), финиш.
Роману бы посмотреть на что жалуются в последних rtn на usb модемы.
Раньше говорят работало.
Роману бы посмотреть на что жалуются в последних rtn на usb модемы.
Раньше говорят работало.
Пока мыслей нет, как выловить то, на что жалуются... Под подозрениями только usb_modeswitch, но у остальных то он работает.
... Впрочем, возможно, что-то с настройками по-умолчанию, но пока проводить эксперименты со сбросом и перенастройкой маршрутизатора с нуля некогда.
ConstAntz
26-07-2011, 13:05
Пока мыслей нет, как выловить то, на что жалуются... Под подозрениями только usb_modeswitch, но у остальных то он работает.
... Впрочем, возможно, что-то с настройками по-умолчанию, но пока проводить эксперименты со сбросом и перенастройкой маршрутизатора с нуля некогда.
Может стоит попробовать one instance call to modeswitch ?
Хотя - нет. Мое чудо с ums 1.1.8 работать не хочет, возможно это связано с busybox 1.18.5 или с libusb или libusb-compat
pilson66
26-07-2011, 13:10
Развитие прошивок серии "d" заморожено, а тут еще и после последних добавок 3g/cdma функционала (usb_modeswitch) размер прошивок превысил 4Mb. Всё, пока не найдётся что сжать (и кто это сделает), финиш.
А если стрипать все бинарники?
Навскидку:
ls -sh broadcom/src/gateway/igmpproxy/src/igmpproxy
108K broadcom/src/gateway/igmpproxy/src/igmpproxy
file broadcom/src/gateway/igmpproxy/src/igmpproxy
broadcom/src/gateway/igmpproxy/src/igmpproxy: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, not stripped
ls -sh broadcom/src/gateway/dnsmasq/src/dnsmasq
176K broadcom/src/gateway/dnsmasq/src/dnsmasq
file broadcom/src/gateway/dnsmasq/src/dnsmasq
broadcom/src/gateway/dnsmasq/src/dnsmasq: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, not stripped
ls -sh broadcom/src/gateway/dropbear/dropbearmulti
336K broadcom/src/gateway/dropbear/dropbearmulti
file broadcom/src/gateway/dropbear/dropbearmulti
broadcom/src/gateway/dropbear/dropbearmulti: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, not stripped
ls -sh broadcom/src/gateway/inadyn/src/inadyn
140K broadcom/src/gateway/inadyn/src/inadyn
file broadcom/src/gateway/inadyn/src/inadyn
broadcom/src/gateway/inadyn/src/inadyn: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, not stripped
ls -sh broadcom/src/gateway/iproute2/ip/ip
172K broadcom/src/gateway/iproute2/ip/ip
file broadcom/src/gateway/iproute2/ip/ip
broadcom/src/gateway/iproute2/ip/ip: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, not stripped
ls -sh broadcom/src/gateway/ntfs-3g/src/ntfs-3g
1,4M broadcom/src/gateway/ntfs-3g/src/ntfs-3g
file broadcom/src/gateway/ntfs-3g/src/ntfs-3g
broadcom/src/gateway/ntfs-3g/src/ntfs-3g: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, not stripped
И так далее...
Попробовал стрипнуть ntfs-3g
Вот что из этого вышло:
ls -sh broadcom/src/gateway/ntfs-3g/src/ntfs-3g
1,4M broadcom/src/gateway/ntfs-3g/src/ntfs-3g
file broadcom/src/gateway/ntfs-3g/src/ntfs-3g
broadcom/src/gateway/ntfs-3g/src/ntfs-3g: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, not stripped
/opt/brcm64/hndtools-mipsel-uclibc-4.3.5/bin/mipsel-uclibc-strip rtn/broadcom/src/gateway/ntfs-3g/src/ntfs-3g
ls -sh rtn/broadcom/src/gateway/ntfs-3g/src/ntfs-3g
480K rtn/broadcom/src/gateway/ntfs-3g/src/ntfs-3g
file rtn/broadcom/src/gateway/ntfs-3g/src/ntfs-3g
rtn/broadcom/src/gateway/ntfs-3g/src/ntfs-3g: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x1040000, stripped
А если стрипать все бинарники?
Ты серьёзно думаешь, что этот велосипед не изобрели до тебя? :rolleyes:
Гляди в gateway/mipsel-uclibc/install/*
ConstAntz
А 1.1.7 работает? Ошибки постил? Кто-нибудь ещё смотрел?
А libusb-compat благодаря rss давно не используется. busybox не при делах, правок в libusb давно не было. Если есть 100% стабильно воспроизводимая проблема, это гораздо легче.
ConstAntz
26-07-2011, 19:19
А 1.1.7 работает? Ошибки постил? Кто-нибудь ещё смотрел?
Если есть 100% стабильно воспроизводимая проблема, это гораздо легче.
Ошибки? С января сг только этим и занимаюсь в профильной ветке (http://wl500g.info/showthread.php?t=19865)
первое (http://wl500g.info/showthread.php?p=221360#post221360) сообщение
1.9.2.7-rtn-r2766M.log.zip (http://wl500g.info/attachment.php?attachmentid=7790&d=1300027115)
1.9.2.7-d-r2743M.zip (http://wl500g.info/attachment.php?attachmentid=7791&d=1300034972)
1.9.2.7-d-r2787.log.zip (http://wl500g.info/attachment.php?attachmentid=7802&d=1300398750)
1.9.2.7-d-r2787.nocd.log.zip (http://wl500g.info/attachment.php?attachmentid=7811&d=1300500460)
1.9.2.7-d-r2743M-debug.log.zip (http://wl500g.info/attachment.php?attachmentid=7818&d=1300579308)
1.9.2.7-d-r2895.log.zip (http://wl500g.info/attachment.php?attachmentid=8074&d=1305924997)
1.9.2.7-d-r2985M-vampik.log.zip (http://wl500g.info/attachment.php?attachmentid=8098&d=1306703426)
ums 1.1.8
1.9.2.7-d-r3091.log.zip (http://wl500g.info/attachment.php?attachmentid=8175&d=1308867069)
Ошибки? С января сг только этим и занимаюсь в профильной ветке (http://wl500g.info/showthread.php?t=19865)
Тут видимо возникло небольшое недопонимание. Во-первых, очень желательно чётко отделить проблему ядра, usb_modeswitch и скриптов 3g/cdma. С последним должны были помочь в профильной ветке, а я увы не имею возможности влезать еще и в эту часть, Влад, наверное, тоже.
Далее, по опыту, китайские модемы и прочие их поделки отваливаются по поводу и без всякого повода и лечить это крайне проблематично, увы.
Так что для начала остановимся на usb_modeswitch. Насколько я вижу из 1.9.2.7-d-r3091.log.zip - он отваливается с ошибкой
Could not claim interface (error -6). Skipping message sending
Но это на ядре 2.4 (ветка "d"), видимо я всё-таки зря повёлся на апгрейд usb_modeswitch в транке, надо было оставить релизный 1.1.6 (Заморозили ветку и точка). Но вернуть никогда не поздно. rss, theMIROn - что думаете?
А логов usb_modeswitch для rtn я не вижу, проглядел?
ConstAntz
27-07-2011, 05:09
видимо я всё-таки зря повёлся на апгрейд usb_modeswitch в транке, надо было оставить релизный 1.1.6 (Заморозили ветку и точка). Но вернуть никогда не поздно.Рано еще. Одна жалоба - не показатель. ;)
А логов usb_modeswitch для rtn я не вижу, проглядел?
Vampik и sorine молчат, BolenB затачивает под WNR3500... пойду сам собирать кастомизированную rtn на 4MB, соберу - отпишусь.
добавлено
Теперь понятно почему молчание...
Вырезал все, без чего бы смог прожить - хрен там - еще 200 Кб нада отрезать :)
похоже логов с rtn не будет.
Тут видимо возникло небольшое недопонимание. Во-первых, очень желательно чётко отделить проблему ядра, usb_modeswitch и скриптов 3g/cdma.
У меня (и ещё у 20-ти моих знакомых) в DIR-320 с сборкой от Vampik, воткнут либо GSM/UMTS либо CDMA EvDO мамед: до версии (включительно) -d-r2624M проблем не наблюдается, а вот с последующими - непонятные грабли с детектированием/подключением модемов, особенно CDMA EvDO (даже с банальными AnyData ADU-500/510) - надо раз надцать перегрузить роутер/перетыкнуть (на гарячую) мамаед, чтоб он (мамед) заработал.
Похоже, что эта "фича" началась после внедрения нового/хитрого "автоопределения модема". На выходных постараюсь подтвердить логами (если мне Адушку вернут)...
Вопрос к разработчикам - можно ли на вашей прошивке сделать режим бриджа для usb 2G модема в качестве wan интерфейса?
Так что для начала остановимся на usb_modeswitch. Насколько я вижу из 1.9.2.7-d-r3091.log.zip - он отваливается с ошибкой
Но это на ядре 2.4 (ветка "d"), видимо я всё-таки зря повёлся на апгрейд usb_modeswitch в транке, надо было оставить релизный 1.1.6 (Заморозили ветку и точка). Но вернуть никогда не поздно. rss, theMIROn - что думаете?
А логов usb_modeswitch для rtn я не вижу, проглядел?
На 1.1.7 вроде бы жалоб не было.
Единственное, что я видел подозрительное - http://code.google.com/p/wl500g/source/browse/trunk/usb_modeswitch/010-libusb10.patch?spec=svn3091&r=3091
341 - if (targetClass == 0 && configuration == 0) {
342 -@@ -1274,13 +1447,24 @@ struct usb_device* search_devices( int *
413 + if (targetClass == 0 && configuration < 1) {
414 +@@ -1366,13 +1496,20 @@ struct usb_device* search_devices( int * Но вроде бы отрицательным значениям взяться там негде и в файлах конфигурации их тоже нет... Если только некорректно разбор происходит.
Если желающие тестировать есть - можно руками собрать rtn с usb_modeswitch 1.1.7 и проверить.
У меня (и ещё у 20-ти моих знакомых) в DIR-320 с сборкой от Vampik, воткнут либо GSM/UMTS либо CDMA EvDO мамед: до версии (включительно) -d-r2624M проблем не наблюдается, а вот с последующими - непонятные грабли с детектированием/подключением модемов, особенно CDMA EvDO (даже с банальными AnyData ADU-500/510) - надо раз надцать перегрузить роутер/перетыкнуть (на гарячую) мамаед, чтоб он (мамед) заработал.
Похоже, что эта "фича" началась после внедрения нового/хитрого "автоопределения модема". На выходных постараюсь подтвердить логами (если мне Адушку вернут)...
r2624 - это же февраль.... Странно слышать, что у нас так давно проблемы наблюдаются. А вообще, я сам сижу с апреля на e1820. Подвисания бывают, но так, чтобы после включения маршрутизатора модем потерялся - ни разу не наблюдал. Да и пока был Anydata-100 ничего подобного также не видел.
В общем, нужно конкретное описание проблемы (+желание проверять на отладочных прошивках у того, кто заявляет) или модем, на котором достоверно возникают проблемы.
r2624 - это же февраль.... Странно слышать, что у нас так давно проблемы наблюдаются. А вообще, я сам сижу с апреля на e1820. Подвисания бывают, но так, чтобы после включения маршрутизатора модем потерялся - ни разу не наблюдал. Да и пока был Anydata-100 ничего подобного также не видел.
В общем, нужно конкретное описание проблемы (+желание проверять на отладочных прошивках у того, кто заявляет) или модем, на котором достоверно возникают проблемы.
Модем - это не проблема, вот только растояние межу нами приличное ;)
Надеюсь на выходные будет мамед - проверю. А где отладочные проши взять (самому собирать, к сожалению, не на чем)?
Модем - это не проблема, вот только растояние межу нами приличное ;)
Надеюсь на выходные будет мамед - проверю. А где отладочные проши взять (самому собирать, к сожалению, не на чем)?
Отладочную с максимально возможным выводом соберу на днях. Под rt-n16 подходит?
Отладочную с максимально возможным выводом соберу на днях. Под rt-n16 подходит?
Да, спасибо, подходит (заодно к мамеду возьму и GPv2 ;)).
RT-N16-1.9.2.7-rtn-r3158-debug (http://webfiles.ru/24951208)
wl500gpv2-1.9.2.7-rtn-r3158-debug (http://webfiles.ru/24973879)
Отладочный вариант с исправлениями для usb_modeswitch.
Перетыкания модемов на лету должны заработать.
Есть ли решение для использования на WL-500GP v1 двух разных модемов CDMA? Одновременная работа не интересует - хотелось бы иметь возможность в вебморде выбрать какой из модемов использовать (модемы разные, провайдеры разные).
Поскольку с линуксом я не дружу то в голову приходит один очень тупой способ - настроить роутер на работу с первым модемом (в USB1), сохранить настройки в файл, настроить на другой модем (вставлен в USB2), сохранить настройки в файл. А при необходимости восстанавливать одни или другие настройки (т.е. чтобы ручками каждый раз не вводить логины, пароли и т.д.). Но хотелось бы както упростить данный процесс чтобы не перегружать каждый раз роутер. Если возможно конечно. Заранее спасибо за ответы/наводки.
dlukanidin
20-08-2011, 21:21
Есть ли решение для использования на WL-500GP v1 двух разных модемов CDMA? Одновременная работа не интересует - хотелось бы иметь возможность в вебморде выбрать какой из модемов использовать (модемы разные, провайдеры разные).
Поскольку с линуксом я не дружу то в голову приходит один очень тупой способ - настроить роутер на работу с первым модемом (в USB1), сохранить настройки в файл, настроить на другой модем (вставлен в USB2), сохранить настройки в файл. А при необходимости восстанавливать одни или другие настройки (т.е. чтобы ручками каждый раз не вводить логины, пароли и т.д.). Но хотелось бы както упростить данный процесс чтобы не перегружать каждый раз роутер. Если возможно конечно. Заранее спасибо за ответы/наводки.
Я делал для этого набор скриптов. Переключение одной командой из морды. Чтобы подключить скрипты их надо будет скопировать на роутер (как см. на форуме). Сами скрипты выкладывал совсем недавно. Если не найдёте постараюсь выложить снова, но позже.
Столкнулся с необходимостью работы с 3G модемом от МТС. Нужно, что бы его подхватывал модуль usbserial.
Про загрузку модуля с параметрами ProductId VendorId знаю, но это костыль.
Тем более, что в дальнейшем планируется подключать несколько usb-serial адаптеров от разных фирм.
Есть ли нормальное решение для прошивки от энтузиастов, что бы указать в конфиге ProductId, VendorId, модуль драйвера и имя файла устройства (/dev/modem0 вместо /dev/usb/tts/0)?
Или всё таки надо будет изобретать велосипед...
alex_optek
21-08-2011, 14:13
Я делал для этого набор скриптов. Переключение одной командой из морды. Чтобы подключить скрипты их надо будет скопировать на роутер (как см. на форуме). Сами скрипты выкладывал совсем недавно. Если не найдёте постараюсь выложить снова, но позже.
То же заинтересовался, есть другой резервный модем.
Искал скрипты по вашим сообщениям, не нашел, если возможно еще раз в этой теме, заранее спасибо.
Столкнулся с необходимостью работы с 3G модемом от МТС. Нужно, что бы его подхватывал модуль usbserial.
Про загрузку модуля с параметрами ProductId VendorId знаю, но это костыль.
Тем более, что в дальнейшем планируется подключать несколько usb-serial адаптеров от разных фирм.
Есть ли нормальное решение для прошивки от энтузиастов, что бы указать в конфиге ProductId, VendorId, модуль драйвера и имя файла устройства (/dev/modem0 вместо /dev/usb/tts/0)?
Или всё таки надо будет изобретать велосипед...
Чтобы не надо было запускать usbserial с явными VID PID надо добавить модем в драйвер option. Сам по себе он туда не добавится (если только ждать обновления основного линуксового ядра).
Нужны конкретные VID PID + желание проверять результат.
Чтобы не надо было запускать usbserial с явными VID PID надо добавить модем в драйвер option. Сам по себе он туда не добавится (если только ждать обновления основного линуксового ядра).
Нужны конкретные VID PID + желание проверять результат.
А можно ссылочку на этот драйвер option. А то из-за распространенности слова "option" не гуглится.
dlukanidin
21-08-2011, 22:55
То же заинтересовался, есть другой резервный модем.
Искал скрипты по вашим сообщениям, не нашел, если возможно еще раз в этой теме, заранее спасибо.
Основной скрипт "modem" он позволяет сохранять и загружать конфигурации. Скрипты с именем провайдеров это команды которые можно выдавать в морде для переключения. Всё это должно быть на пути. Файлы с длинными именами - пример параметров конфигурации сохранённых скриптом "modem" в папке /tmp/local/etc.
А можно ссылочку на этот драйвер option. А то из-за распространенности слова "option" не гуглится.
Если для ядра 2.4 то
/whatever-you-want/broadcom/src/linux/linux-2.4.37.11/drivers/usb/serial/
Также смотрите http://code.google.com/p/wl500g/wiki/CompilingCustomFirmware
Модем ZTE MF631 заработал сразу.
MaxFail рекомендую поставить на 5.
Информация со снифера:
DefaultVendor = 0x19d2
DefaultProduct = 0x0031
MessageEndpoint = 0x03
MessageContent = "55534243e88474842400000080000612000000240000000000 000000000000"
Модем ZTE MF631 заработал сразу.
MaxFail рекомендую поставить на 5.
Информация со снифера:
DefaultVendor = 0x19d2
DefaultProduct = 0x0031
MessageEndpoint = 0x03
MessageContent = "55534243e88474842400000080000612000000240000000000 000000000000"
Спасибо за информацию. Тщательно проверено? Дальше надо опубликовать на http://www.draisberghof.de/usb_modeswitch/bb/viewforum.php?f=3
Или самостоятельно или через нас.
Спасибо за информацию. Тщательно проверено? Дальше надо опубликовать на http://www.draisberghof.de/usb_modeswitch/bb/viewforum.php?f=3
Или самостоятельно или через нас.
К сожалению, как проверить я не заню. А как выципить MessageEndpoint и MessageContent нашел на одном зарубежном сайте
К сожалению, как проверить я не заню. А как выципить MessageEndpoint и MessageContent нашел на одном зарубежном сайте
Скопировать файл на маршрутизатор и руками запустить usb_modeswitch -c ...
Скопировать файл на маршрутизатор и руками запустить usb_modeswitch -c ...
У меня выдал ошибку 6.
Решил снифить заново как ТУТ (http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=695#695).
1. Вставил в USB и до установки драйверов подсмотрел vid_19d2&pid_2000
2. В программе Sniffer for USB установил на данное устройство фильтр.
3. Получил в лог (новый;) ) message content 5553424370ae96842400000080000612000000240000000000 000000000000
4. По аналогии с ССЫЛКА (http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?t=226&sid=85a74a34d1cf8a4b73e2de01ac95a8ba) пробую usb_modeswitch -c /tmp/test
DefaultVendor= 0x19d2
DefaultProduct= 0x2000
TargetVendor= 0x19d2
TargetProduct= 0x0031
MessageContent="5553424370ae96842400000080000612000000240000000000 000000000000"
Выдает, что данного устройства нет.
Как итог:
1. Устройство уже "modeswitch" и работает, но бывают глюки.
2. MessageContent отличается, но я не знаю, как сделать, что бы его автоматом не переключало, для проверки MessageContent
Прошу помочь с П.2
У меня выдал ошибку 6.
Решил снифить заново как ТУТ (http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?p=695#695).
1. Вставил в USB и до установки драйверов подсмотрел vid_19d2&pid_2000
2. В программе Sniffer for USB установил на данное устройство фильтр.
3. Получил в лог (новый;) ) message content 5553424370ae96842400000080000612000000240000000000 000000000000
4. По аналогии с ССЫЛКА (http://www.draisberghof.de/usb_modeswitch/bb/viewtopic.php?t=226&sid=85a74a34d1cf8a4b73e2de01ac95a8ba) пробую usb_modeswitch -c /tmp/test
DefaultVendor= 0x19d2
DefaultProduct= 0x2000
TargetVendor= 0x19d2
TargetProduct= 0x0031
MessageContent="5553424370ae96842400000080000612000000240000000000 000000000000"
Выдает, что данного устройства нет.
Как итог:
1. Устройство уже "modeswitch" и работает, но бывают глюки.
2. MessageContent отличается, но я не знаю, как сделать, что бы его автоматом не переключало, для проверки MessageContent
Прошу помочь с П.2
Что выдаётся до и после переключения командой cat /proc/bus/usb/devices? (изначально модем, естественно, должен был быть обесточен).
Что выдаётся до и после переключения командой cat /proc/bus/usb/devices? (изначально модем, естественно, должен был быть обесточен).
Если вставить модем после загрузки роутера:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=19d2 ProdID=2000 Rev= 0.00
S: Manufacturer=ZTE,Incorporated
S: Product=ZTE WCDMA Technologies MSM
S: SerialNumber=MF6310BLND010000
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
Если вставить модем до загрузки роутера:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=19d2 ProdID=0031 Rev= 0.00
S: Manufacturer=ZTE,Incorporated
S: Product=ZTE WCDMA Technologies MSM
S: SerialNumber=MF6310BLND010000
C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=84(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
Если загрузить роутер без модема, потом его вставить и попробовать
DefaultVendor= 0x19d2
DefaultProduct= 0x2000
TargetVendor= 0x19d2
TargetProduct= 0x0031
MessageContent="5553424370ae96842400000080000612000000240000000000 000000000000"
То роутер выдает ошибку:
Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found devices in default mode, class or configuration (1)
Accessing device 002 on bus 001 ...
Getting the current device configuration ...
OK, got current device configuration (1)
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Cant't do driver detection and detaching on this platform.
Could not claim interface (error -6). Skipping device inquiry
USB description data (for identification)
-------------------------
Manufacturer: ZTE,Incorporated
Product: ZTE WCDMA Technologies MSM
Serial No.: MF6310BLND010000
-------------------------
Cant't do driver detection and detaching on this platform.
Setting up communication with interface 0 ...
Could not claim interface (error -6). Skipping message sending
-> Run lsusb to note any changes. Bye.
Если вставить модем после загрузки роутера:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=19d2 ProdID=2000 Rev= 0.00
S: Manufacturer=ZTE,Incorporated
S: Product=ZTE WCDMA Technologies MSM
S: SerialNumber=MF6310BLND010000
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
Говорит о том, что модем в режиме Zerocd.
Если вставить модем до загрузки роутера:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=19d2 ProdID=0031 Rev= 0.00
S: Manufacturer=ZTE,Incorporated
S: Product=ZTE WCDMA Technologies MSM
S: SerialNumber=MF6310BLND010000
C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=84(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
А тут модем уже переключен.
В какой момент вызывается usb_modeswitch?
Говорит о том, что модем в режиме Zerocd.
А тут модем уже переключен.
В какой момент вызывается usb_modeswitch?
Автоматом при загрузке роутера. (прошивка 3121)
Автоматом при загрузке роутера. (прошивка 3121)
Значит команда переключения Vendor=19d2 ProdID=2000 уже есть в базе и ничего дополнительного не нужно. Соответствующий конфигурационный файл там действительно есть - http://wl500g.googlecode.com/svn/trunk/usb_modeswitch/data/usb_modeswitch.d/19d2:2000
Значит команда переключения Vendor=19d2 ProdID=2000 уже есть в базе и ничего дополнительного не нужно. Соответствующий конфигурационный файл там действительно есть - http://wl500g.googlecode.com/svn/trunk/usb_modeswitch/data/usb_modeswitch.d/19d2:2000
Если я руками делаю:
usb_modeswitch -c /usr/share/usb_modeswitch.d/19d2\:2000
Или вставляю в некий файл взятое по ссылке выше, то происходит следующее:
Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found devices in default mode, class or configuration (1)
Accessing device 002 on bus 001 ...
Getting the current device configuration ...
OK, got current device configuration (1)
Using endpoints 0x01 (out) and 0x81 (in)
Inquiring device details; driver will be detached ...
Cant't do driver detection and detaching on this platform.
Could not claim interface (error -6). Skipping device inquiry
USB description data (for identification)
-------------------------
Manufacturer: ZTE,Incorporated
Product: ZTE WCDMA Technologies MSM
Serial No.: MF6310BLND010000
-------------------------
Cant't do driver detection and detaching on this platform.
Setting up communication with interface 0 ...
Could not claim interface (error -6). Skipping message sending
Checking for mode switch (max. 20 times, once per second) ...
Waiting for original device to vanish ...
Original device can't be accessed anymore. Good.
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
Searching for target devices ...
No new devices in target mode or class found
Mode switch has failed. Bye.
ConstAntz
02-09-2011, 18:15
Если я руками делаю:
usb_modeswitch -c /usr/share/usb_modeswitch.d/19d2\:2000
Или вставляю в некий файл взятое по ссылке выше, то происходит следующее:
...
Тогда пробуйте (одной строкой)
usb_modeswitch -W -s 20 -v 0x19d2 -p 0x2000 -V 0x19d2 -P 0x0031 -M "5553424312345678000000000000061e000000000000000000 000000000000"
-2 "5553424312345679000000000000061b000000020000000000 000000000000" -3 "55534243123456702000000080000c85010101180101010101 000000000000"
или с Вашим message content
usb_modeswitch -W -s 20 -v 0x19d2 -p 0x2000 -V 0x19d2 -P 0x0031 -M "5553424370ae96842400000080000612000000240000000000 000000000000"
только не забудьте переключить в морде Zero CD Configuration : not set
Если я руками делаю:
usb_modeswitch -c /usr/share/usb_modeswitch.d/19d2\:2000
Или вставляю в некий файл взятое по ссылке выше, то происходит следующее:
Looking for target devices ...
...
Could not claim interface (error -6). Skipping device inquiry
Только сейчас заметил. В 3121 была ошибка с usb_modeswitch. Переключение работало только в момент загрузки. Необходимо обновить прошивку.
Только сейчас заметил. В 3121 была ошибка с usb_modeswitch. Переключение работало только в момент загрузки. Необходимо обновить прошивку.
Прошивку обновил до 3240.
Снифенный MessageContent не подошел.
Подходит такой:
5553424312345679000000000000061b000000020000000000 000000000000
Он уже есть.
Спасибо вам большое!
ConstAntz
22-09-2011, 15:17
либо доделывать комплект минимальной загрузочной прошивки и подключение rootfs с внешней флешки.
У меня текущая прошивка как раз в таком исполнении (rtn-r3240).
И есть маленькая проблемка с Device initial script.
При горячем подключении - скрипт вызывается, а вот при перезагрузке/хол. старте с подключенным модемом - до вызова скрипта дело не доходит.
Это только у меня? rss, посмотрите пожалуйста.
У меня текущая прошивка как раз в таком исполнении (rtn-r3240).
И есть маленькая проблемка с Device initial script.
При горячем подключении - скрипт вызывается, а вот при перезагрузке/хол. старте с подключенным модемом - до вызова скрипта дело не доходит.
Ну не поленись - почитай как работает udev в 2.6. Это увы фича - для того, чтобы создать файлы устройств и смонтировать rootfs, нужно запустить mdev(аналог udev), а на этот момент никакие юзерские скрипты недоступны.
У меня текущая прошивка как раз в таком исполнении (rtn-r3240).
И есть маленькая проблемка с Device initial script.
При горячем подключении - скрипт вызывается, а вот при перезагрузке/хол. старте с подключенным модемом - до вызова скрипта дело не доходит.
Это только у меня? rss, посмотрите пожалуйста.
Подозреваю, что проблема с фиксацией режима модема после того, как был отключен zerocd. Если так, то действительно, требуется только полное отключение модема.
У меня на e1820, если отработал usb_modeswitch, то можно сколько угодно перезагружаться, а модем останется в режиме модема. Device initial script загружается лишь для usb-storage-устройств (zerocd).
ConstAntz
22-09-2011, 19:06
Подозреваю, что проблема с фиксацией режима модема после того, как был отключен zerocd. Если так, то действительно, требуется только полное отключение модема.
У меня на e1820, если отработал usb_modeswitch, то можно сколько угодно перезагружаться, а модем останется в режиме модема. Device initial script загружается лишь для usb-storage-устройств (zerocd).
Угу. zerocd отключен. И "фича" началась с r3180 (http://code.google.com/p/wl500g/source/browse/branches/rt-n/rc/usbmodem.c?r=3180#865) во втором условии :(
Но, кстати, на rtn, option хорошо себя показал. За 8 дней - три передозвона и глюков с зависаниями замечено не было. Необходимость в перезагрузке возникает при смене других параметров роутера. Вобщем пока не критично. Спасибо.
Vitaly_k
02-10-2011, 23:26
Статья как настроить модем резервным каналом - http://nag.ru/articles/article/21053/nastroyka-rezervirovaniya-kanala-svyazi-na-d-link-dir-320.html
Делается через скрипты.
ConstAntz
12-10-2011, 20:07
Боюсь нам придётся делать очередной костыль - чёрный список VID'ов . 0x04fc первый кандидат.В целом, если отключен autodetect модема, то проблема не проявится. Можно откатить принудительный запуск option по VID : PID и вынести этот режим в опцию. Тогда даже при ошибке определения модема option на него не загрузится.
Списки место занимают, да и база умс туда-же
du -h /usr/share/usb_modeswitch.d/
208.0K /usr/share/usb_modeswitch.d/
может на реализацию аддонов перейти? Проскакивало уже, что где-то у чужих такая схема реализована. Скажем, для поддержки прошивкой конкретного устройства, на flashfs подгружается пользователем аддон/плагин и, вуа-ля...
Что класть в аддон? Да хотя-бы единичный файлик конфигурации из базы умс`а.
Списки место занимают, да и база умс туда-же
du -h /usr/share/usb_modeswitch.d/
208.0K /usr/share/usb_modeswitch.d/
Расчёт неправильный. Прошивка сжата. Эта директория занимает существенно меньше.
может на реализацию аддонов перейти? Проскакивало уже, что где-то у чужих такая схема реализована. Скажем, для поддержки прошивкой конкретного устройства, на flashfs подгружается пользователем аддон/плагин и, вуа-ля...
Что класть в аддон? Да хотя-бы единичный файлик конфигурации из базы умс`а. Кто будет поддерживать эти модули? Делать новые, проверять старые при внесении изменений?
ConstAntz
29-10-2011, 04:42
Должен, т.к. поддержка 5354 осталась, но никто не проверял.
Если в r3525 уже сидит sdk560, то вайфай работает.
Собрал r3525-storage в двух вариантах: все что связано с усб вне ядра(1) и в ядре(2). Наткнулся на грабли:
при последнем варианте - труп;
при первом:
usb_modeswitch -c /usr/share/usb_modeswitch.d/12d1:1446 вылетает с Segmentation fault. Не исключаю свой косяк.
В индикации изменения. Удержание ресета раньше вызывало частое моргание символа "пирамидка в кружочке" (gpio 7 0 && gpio 7 1). Сейчас - вообще угас.
Пришлось откатиться
Собрал r3525-storage в двух вариантах: все что связано с усб вне ядра(1) и в ядре(2). Наткнулся на грабли:[LIST]
при последнем варианте - труп;
При живом loader'е это понятие из терминов чайников. Смотри консоль, включи CONFIG_USB_DEBUG. Мы такой вариант не проверяли, за ненадобностью.
при первом:
Broadcom SDK не влияет напрямую на usb, только на инициализацию всего железа.
ConstAntz
29-10-2011, 21:09
При живом loader'е это понятие из терминов чайников. Смотри консоль, включи CONFIG_USB_DEBUG. Мы такой вариант не проверяли, за ненадобностью.
С трупиком - разобрался. Конфигурировал busybox через make menuconfig, а надо было править конфиг из gateway/Makefile через call SwitchConfParam ()
Broadcom SDK не влияет напрямую на usb, только на инициализацию всего железа.
Пытался показать на проблему с usb_modeswitch 1.2.0 начиная с r3513. Хотя, сперва показалось, что проблема в усб-модулях.
upd: Кажется, поступил второй сигнал (http://wl500g.info/showpost.php?p=240006&postcount=953) ...
ConstAntz
30-10-2011, 00:56
libusb_free_config_descriptor(config);
if (interfaceClass == -1) {
fprintf(stderr, "Error: getting the interface class failed. Aborting.\n\n");
exit(1);
}
SHOW_PROGRESS(output,"TRACE:main:line 588\n");
if (defaultClass == 0)
defaultClass = interfaceClass;
SHOW_PROGRESS(output,"TRACE:main:line 592\n");
else
SHOW_PROGRESS(output,"TRACE:main:line 594\n");
if (interfaceClass == 8 && defaultClass != 8) {
/* Weird device with default class other than 0 and differing interface class */
SHOW_PROGRESS(output,"Ambiguous Class/InterfaceClass: 0x%02x/0x08\n", defaultClass);
defaultClass = 8;
SHOW_PROGRESS(output,"TRACE:main:line 599\n");
}
SHOW_PROGRESS(output,"TRACE:main:line 602\n");
if (Interface == -1)
{
SHOW_PROGRESS(output,"TRACE:main:line 605\n");
Interface = config->interface[0].altsetting[0].bInterfaceNumber;
}
SHOW_PROGRESS(output,"TRACE:main:line 608\n");
SHOW_PROGRESS(output,"Using first interface: 0x%02x\n", Interface);
/* Check or get endpoints */
[admin@root sbin]$ ./usb_modeswitch5 -W -c /usr/share/usb_modeswitch.d/12d1\:1446
Reading config file: /usr/share/usb_modeswitch.d/12d1:1446
* usb_modeswitch: handle USB devices with multiple modes
* Version 1.2.0 (C) Josua Dietze 2011
* Based on libusb0 (0.1.12 and above)
! PLEASE REPORT NEW CONFIGURATIONS !
DefaultVendor= 0x12d1
DefaultProduct= 0x1446
TargetVendor= 0x12d1
TargetProduct= not set
TargetClass= not set
TargetProductList="1001,1406,140b,140c,1412,141b,1433,14ac,1506"
DetachStorageOnly=0
HuaweiMode=0
SierraMode=0
SonyMode=0
QisdaMode=0
GCTMode=0
KobilMode=0
SequansMode=0
MobileActionMode=0
CiscoMode=0
MessageEndpoint= not set
MessageContent="55534243123456780000000000000011062000000100000000 000000000000"
NeedResponse=0
ResponseEndpoint= not set
InquireDevice enabled (default)
Success check enabled, max. wait time 20 seconds
System integration mode disabled
Looking for target devices ...
searching devices, found USB ID 12d1:1446
found matching vendor ID
searching devices, found USB ID 8564:1000
searching devices, found USB ID 1a40:0101
searching devices, found USB ID 1d6b:0002
No devices in target mode or class found
Looking for default devices ...
searching devices, found USB ID 12d1:1446
found matching vendor ID
found matching product ID
adding device
searching devices, found USB ID 8564:1000
searching devices, found USB ID 1a40:0101
searching devices, found USB ID 1d6b:0002
Found devices in default mode, class or configuration (1)
Accessing device 005 on bus 001 ...
Getting the current device configuration ...
OK, got current device configuration (1)
TRACE:main:line 588
TRACE:main:line 592
TRACE:main:line 602
TRACE:main:line 605
Segmentation fault
[admin@root sbin]$
и компилятор на красное не отругался. SHOW_PROGRESS попал в условие if?
kkk@build:~/hdd/compile/broadcom/src/gateway$ make usb_modeswitch
make -C libusb10
make[1]: Entering directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10'
make all-recursive
make[2]: Entering directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10'
Making all in libusb
make[3]: Entering directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10/libusb'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10/libusb'
Making all in doc
make[3]: Entering directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10/doc'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10/doc'
make[3]: Entering directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10'
make[3]: Leaving directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10'
make[2]: Leaving directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10'
make[1]: Leaving directory `/home/kkk/hdd/compile/broadcom/src/gateway/libusb10'
make -C usb_modeswitch CC=mipsel-uclibc-gcc CFLAGS="-Wall -Os -mips32 -mtune=mips32 -Wno-pointer-sign -DBCMWPA2 -DLINUX26 \
-I/home/kkk/hdd/compile/broadcom/src/gateway/libusb10/libusb -L/home/kkk/hdd/compile/broadcom/src/gateway/libusb10/libusb/.libs -lusb-1.0"
make[1]: Entering directory `/home/kkk/hdd/compile/broadcom/src/gateway/usb_modeswitch'
mipsel-uclibc-gcc -o usb_modeswitch usb_modeswitch.c -Wall -Os -mips32 -mtune=mips32 -Wno-pointer-sign -DBCMWPA2 -DLINUX26 -I/home/kkk/hdd/compile/broadcom/src/gateway/libusb10/libusb -L/home/kkk/hdd/compile/broadcom/src/gateway/libusb10/libusb/.libs -lusb-1.0 -lusb-1.0
make[1]: Leaving directory `/home/kkk/hdd/compile/broadcom/src/gateway/usb_modeswitch'
Пытался показать на проблему с usb_modeswitch 1.2.0 начиная с r3513. Хотя, сперва показалось, что проблема в усб-модулях.
С этим давай перемещаться в профильную тему. Но вполне верю, во-первых Josh так и продолжает сопротивляться(но уже меньше) переходу на libusb 1.0, во-вторых изменений в 1.2.0 было много.
Ну и я мог ошибиться при адаптации патча libusb 1.0.
Updated: Нашёл багу, поправил в r3534
ConstAntz
30-10-2011, 07:58
Updated: Нашёл багу, поправил в r3534
проверил - работает
ConstAntz
01-11-2011, 01:41
if (defaultClass == 0)
defaultClass = interfaceClass;
SHOW_PROGRESS(output,"TRACE:main:line 592\n");
else
и компилятор на красное не отругался. SHOW_PROGRESS попал в условие if?
Слегка перефразирую вопрос.
В приведенном фрагменте, конструкция if...else... не имеет фигурных скобок.
SHOW_PROGRESS попал в условный блок if или else ?
dlukanidin
01-11-2011, 16:16
Нашёл ошибку в modems.conf в строке
# WeTelecom
22de:6801:РЎ:0:2
Вместо латинской Си стоит русская эС (2 символа в UTF-8).
как следствие не корректно работает lsmodem.
Нашёл ошибку в modems.conf в строке
поправил - см. r3547
ConstAntz
компилятор должен был выругаться на висящий else
Нашёл ошибку в modems.conf в строке
# WeTelecom
22de:6801:РЎ:0:2
Вместо латинской Си стоит русская эС (2 символа в UTF-8).
как следствие не корректно работает lsmodem.
Крайне удивило откуда это могло взяться... Нашёл оригинал ;)
http://wl500g.info/showpost.php?p=234341&postcount=1175
Теперь буду еще и на кодировку смотреть.
dlukanidin
01-11-2011, 17:50
посыпаю голову пеплом :) извиняюсь за офтоп
поправил - см. r3547
В d ветке просьба тоже поправить.
ConstAntz
01-11-2011, 18:39
ConstAntz
компилятор должен был выругаться на висящий else
Это мы с тобой знаем, что он должен исплеваться. Похоже, тулчейн этого не знает. (см третью портянку (http://wl500g.info/showpost.php?p=240009&postcount=1231))
Это мы с тобой знаем, что он должен исплеваться. Похоже, тулчейн этого не знает. (см третью портянку (http://wl500g.info/showpost.php?p=240009&postcount=1231))
usb_modeswitch.c:197:#define SHOW_PROGRESS if (show_progress) fprintf
ConstAntz
01-11-2011, 20:28
usb_modeswitch.c:197:#define SHOW_PROGRESS if (show_progress) fprintf
В качестве благодарности такую книжку возьмешь?
В качестве благодарности такую книжку возьмешь?
Спасибо, принимается :)
Добрый день,
Вопрос по получению ответа на USSD команду:
router: wl500w
firmware: 1.9.2.7-rtn-r3300
modem: Huawei e173
operator: MTS Uzbekistan
Поставил прошивку ту, что сейчас стоит. Вставил модем. Все работает на ура.
Через Status&log - USSD команды get info, get signal, get traffic работают нормально, дают информацию.
Когда пытаюсь запустить команду для получения остатка трафика (у меня стоит интернет пакет и команда get traffic не дает остатка у оператора) *111*019# через "отправить запрос" получаю вот такой ответ:
USSD *111*019# : "CF393D4C7FAF41B41C8CC6B2819A4210F90D82C55C31994B06 8BC540319B2E66D3D1702051D24D2FCBDD653A081E5E97E9A0 1A0C061301"
При запросе такой команды с телефона получаю примерно такой ответ:
Ostatok 97,9 MB do 30.11.2011 16:10:03 "Iz bonusnogo Internet Schetchika"
Подскажите как можно увидеть ответ? Если нельзя сделать программно, то может хотя бы куда нибудь скопировать, поменять кодировку и т.д.?
Я так понимаю что проблема с кодировкой? Спасибо заранее.
P.s. к сожалению прочитал большую часть ветки и не смог найти ответ на свой вопрос.
usb_modeswitch.c:197:#define SHOW_PROGRESS if (show_progress) fprintf
Offtopic: Вот именно для избежания таких случаев в ядре подобные макросы пишутся как:
#define SHOW_PROGRESS(a...) \
do { \
if (show_progress) fprintf( ## a); \
} while (0)
dlukanidin
02-11-2011, 14:13
Обнаружил непонятный глюк.
На прошивке WL500gpv2-1.9.2.7-d-r3496.trx модем отказывается отвечать программе chat. Последняя заканчивается либо по timeout либо по nocarrier в соотношении 10:1. Очень редко соединение всё таки происходит причём иногда силовым поднятием сессии (откуда она берётся после полного отключения роутера и модема от питания непонятно, может быть одна из нескольких команд ATDT всё таки проходит, но chat об этом не получает информации).
Очень похоже на то, что неправильно работает порт.
Откатился на мной же компилированную 3171. Всё заработало с полпинка.
В качестве благодарности такую книжку возьмешь?
Отличная инфа. Спасибо и от меня.
USSD *111*019# : "CF393D4C7FAF41B41C8CC6B2819A4210F90D82C55C31994B06 8BC540319B2E66D3D1702051D24D2FCBDD653A081E5E97E9A0 1A0C061301"
При запросе такой команды с телефона получаю примерно такой ответ:
Ostatok 97,9 MB do 30.11.2011 16:10:03 "Iz bonusnogo Internet Schetchika"
Судя по всему это кодировка PDU, но в ответе от оператора указана кодировка отличная от 15. Это вполне может быть, т.к. операторы делают, что хотят.
Решение: либо определить что-же прислал оператор и скорректировать прошивку, либо подставить свой скрипт в котором принудительно вызывается раскодировка pdu.
Для этого:
1. Скопируйте скрипт /usr/share/modem/bin/state_3g_huawei в /usr/local/sbin/state_3g_modem
2. Внесите изменение в новом скрипте (отмечено красным)
getBalanceHuawei(){
if [ -z $2 ]; then encodePDU "*100#"; else encodePDU $2; fi
doCommand $port "AT+CUSD=1,$res,15" 2
getFlow $1 "CUSD" 8 "CUSD:"
ret=$?
echo $ret
3. Выложите результат вызова команды, чтобы можно было посмотреть, что же пишет оператор в кодировке
Этот же скрипт можете поправить, чтобы использовать для личных целей.
Не забудьте сохранить сделанные изменения, иначе после перезагрузки всё исчезнет.
Удачи.
ryzhov_al
06-01-2012, 11:10
Скажите, кто такой /usr/sbin/lsnat?
И, главное, с помощью какой нечистой силы он попадает в прошику? Тупой grep по всем файлам прошивки не даёт о нём какого-либо упоминания.
ConstAntz
06-01-2012, 11:25
Скажите, кто такой /usr/sbin/lsnat?
И, главное, с помощью какой нечистой силы он попадает в прошику? Тупой grep по всем файлам прошивки не даёт о нём какого-либо упоминания.
поиск на code.google показал, что тянется из /trunk/cdma
Скажите, кто такой /usr/sbin/lsnat?
И, главное, с помощью какой нечистой силы он попадает в прошику? Тупой grep по всем файлам прошивки не даёт о нём какого-либо упоминания.
Наследие от чехов.
http://wl500g.googlecode.com/svn/trunk/cdma/files/usr/sbin/lsnat
ConstAntz
06-01-2012, 19:22
Наследие от чехов.
http://wl500g.googlecode.com/svn/trunk/cdma/files/usr/sbin/lsnat
Неработающее наследие от чехов?
$ lsnat
cat: can't open '/proc/net/ip_conntrack': No such file or directory
cat: can't open '/proc/net/ip_conntrack': No such file or directory
cat: can't open '/proc/net/ip_conntrack': No such file or directory
$ lsnat -n
cat: can't open '/proc/net/ip_conntrack': No such file or directory
cat: can't open '/proc/net/ip_conntrack': No such file or directory
cat: can't open '/proc/net/ip_conntrack': No such file or directory
Неработающее наследие от чехов?
$ lsnat
cat: can't open '/proc/net/ip_conntrack': No such file or directory
cat: can't open '/proc/net/ip_conntrack': No such file or directory
cat: can't open '/proc/net/ip_conntrack': No such file or directory
$ lsnat -n
cat: can't open '/proc/net/ip_conntrack': No such file or directory
cat: can't open '/proc/net/ip_conntrack': No such file or directory
cat: can't open '/proc/net/ip_conntrack': No such file or directory
Давно никто не проверял. Надо либо поправить, либо выбросить.
dlukanidin
07-01-2012, 13:36
Давно никто не проверял. Надо либо поправить, либо выбросить.
На прошивке из подписи работает, правда это d ветка.
На прошивке из подписи работает, правда это d ветка.
В 2.6 нет ip_conntrack. Есть nf_conntrack + изменённые поля. Просто имена поправить нельзя. Т.е. главный вопрос нужно ли оно или нет.
Предлагаю добавить в modems.conf модем Airplus MCD-650: 1edf:6004:C:1:?
Data port - 1, какой из оставшихся - ui port - не знаю (модем не мой, информация из переписки с пользователем).
Определяется модем так:
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1edf ProdID=6004 Rev= 0.00
S: Manufacturer=Select & iobile Co. Utd.
S: Product=MCD-640S-1EDF-6004
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=option
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=85(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
dlukanidin
05-06-2012, 19:14
Предлагаю добавить в modems.conf модем Airplus MCD-650: 1edf:6004:C:1:?
Data port - 1, какой из оставшихся - ui port - не знаю (модем не мой, информация из переписки с пользователем).
Определяется модем так:
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=1edf ProdID=6004 Rev= 0.00
S: Manufacturer=Select & iobile Co. Utd.
S: Product=MCD-640S-1EDF-6004
C:* #Ifs= 4 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=option
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=option
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
E: Ad=85(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=05(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
Поскольку это CDMA модем, а для них чаще всего используются специализированные системы управления UI, которую сложно задействовать через крайне плохо документированную систему команд DM, а также учитывая общий тренд в назначении портов, думаю можно принять UI порт как 3. (ИМХО наличие модема в этой ситуации важнее :)
ConstAntz
06-06-2012, 05:53
... которую сложно задействовать через крайне плохо документированную систему команд DM ...
Дмитрий, насколько я знаю, у Вас очень богатый опыт общения с CDMA-модемами и мы Вам верим. Хотелось бы увидеть элементарный набор команд, с помощью которых можно было бы диагностировать, что uiport действительно находится "именно там". Эта информация действительно помогла бы другим владельцам последних. (если такая имеется)
dlukanidin
06-06-2012, 12:23
Дмитрий, насколько я знаю, у Вас очень богатый опыт общения с CDMA-модемами и мы Вам верим. Хотелось бы увидеть элементарный набор команд, с помощью которых можно было бы диагностировать, что uiport действительно находится "именно там". Эта информация действительно помогла бы другим владельцам последних. (если такая имеется)
Предлагаю следующее - попробовать на проверяемых портах:
1. AT команду, например ATI, т.к. некоторые CDMA модемы управляются традиционно (сам не встречал, но в документации читал).
2. Попробовать в DM режиме (напоминаю, что это бинарный режим обмена со специальными командами, контрольными суммами и т.д.).
2.1 Проще всего подключить имеющийся скрипт для AnyData, если будет на него отвечать, даже с не очень правильными значениями, то с большой долей вероятности порт найден.
2.2 Написать специальный скрипт проверки (это не сложно сделать на основе моего скрипта). В этих DM командах половина стандартизирована и поэтому вполне реально выбрать команду, которая обязана быть на всех таких устройствах с предсказуемым ответом, в котором достаточно проверить контрольную сумму. Если есть желание выложу оригинальный мануал - старый, но вроде актуальный.
P.S. А вообще работать с этим режимом скриптами это слишком тяжёлая задача забивающая процессор на 100%. Кроме того, по хорошему, надо считать контрольные суммы по каждой команде и каждому ответу, что реализовать в скрипте достаточно сложно. Я из-за этого использую только фиксированные команды, контрольные суммы по которым просчитаны заранее, а контрольную сумму ответа не проверяю, что конечно не правильно. Кроме того стандартные команды не дают возможности получить интересную информацию типа силы сигнала или СМС, а нестандартные - специфические для конкретной модели, добыты в основном снифером (в общем сплошные костыли). Я было даже написал на Си программку для работы с этим безобразием, но в итоге забросил как бесперспективную на этапе отладки.
Народ!
Да, я читал правила и пользовался поиском, но все же -
нету ведь на сайте HCL по модемам итп устройствам, например, в таком виде:
h_ttp://www.dd-wrt.com/wiki/index.php/3G_/_3.5G
или кто знает, ткните носом, а?
А то надо срочно купить хорошо совместимую железку от скайлинка,
чтоб распространенная, и работала сразу без исследований, а какую из?
Честно, 85 страниц только этой темы - ниасилю, а срочно надо...
И вообще, давайте в отдельной теме HCL сделаем?
Народ!
Да, я читал правила и пользовался поиском, но все же -
нету ведь на сайте HCL по модемам итп устройствам, например, в таком виде:
h_ttp://www.dd-wrt.com/wiki/index.php/3G_/_3.5G
или кто знает, ткните носом, а?
А то надо срочно купить хорошо совместимую железку от скайлинка,
чтоб распространенная, и работала сразу без исследований, а какую из?
Честно, 85 страниц только этой темы - ниасилю, а срочно надо...
И вообще, давайте в отдельной теме HCL сделаем?
http://www.hub.ru/wiki/Поддерживаемые_3G/CDMA_модемы
Предлагаю добавить в modems.conf модем Airplus MCD-650: 1edf:6004:C:1:?
Data port - 1, какой из оставшихся - ui port - не знаю (модем не мой, информация из переписки с пользователем).
Может этот патч пригодится и для нашей прошивки? ;)
Вы не могли бы модифицировать usb_devices.c и внести в следующий релиз что-то типа:
diff --git "a/usb_devices.c.bak" "b/usb_devices.c"
index 0cfff1d..1387586 100644
--- "a/usb_devices.c.bak"
+++ "b/usb_devices.c"
@@ -1127,6 +1127,7 @@ int init_3g_param(char *vid, char *pid)
{
FILE *fp;
int asus_extra_auto = 0;
+ int device_code = 0;
unlink(USB_MODESWITCH_CONF);
fp = fopen(USB_MODESWITCH_CONF, "w+");
@@ -1415,9 +1416,12 @@ int init_3g_param(char *vid, char *pid)
else /* manaul setting */
{
nvram_set("d3g", nvram_safe_get("Dev3G"));
+ device_code = atoi( nvram_safe_get( "Dev3G" ) );
if(strcmp(nvram_safe_get("Dev3G"), "MU-Q101") == 0){ // on list
write_3g_conf(fp, SN_MU_Q101, 0, vid, pid);
+ } else if( device_code > 0 ) {
+ write_3g_conf( fp, device_code, 0, vid, pid );
} else if (strcmp(nvram_safe_get("Dev3G"), "ASUS-T500") == 0){ // on list
write_3g_conf(fp, UNKNOWNDEV, 0, vid, pid);
//} else if (strcmp(nvram_safe_get("Dev3G"), "OPTION-ICON225") == 0){ // on list
чтобы руками можно было прописать тип устройства или добавьте плиз modem E367
DefaultVendor= 0x12d1
DefaultProduct= 0x1446
TargetVendor= 0x12d1
TargetProduct= 0x1506
MessageContent="55534243123456780000000000000011062000000100000000 000000000000"
правда оно пересекается с SN_Huawei_T_Mobile_NL, на форумах видел делают так:
DefaultVendor= 0x12d1
DefaultProduct=0x1446
TargetVendor= 0x12d1
TargetProductList="1001,1406,140b,140c,1412,141b,14ac,1506"
MessageContent="55534243123456780000000000000011062000000100000000 000000000000"
http://forum.ixbt.com/topic.cgi?id=14:57589-32#l :rolleyes:
Да и не только Huawei E367, но и остальные модемы тоже можно будет туда добавить ... :D
Model 3G Standard Default Id Modem Id User IF Modem IF Storage IF |
__________________________________________________ _______________________________________
E367 HSPA 21.0/5.76 12d1:1446 12d1:14ac 4 0 5 & 6
E367 HSPA 21.0/5.76 12d1:1446 12d1:1506 4 0 5 & 6
E367 HSPA 21.0/5.76 12d1:1505 12d1:1506 4 0 5 & 6
E367 HSPA 21.0/5.76 12d1:1505 12d1:150f 4 0 5 & 6
__________________________________________________ _______________________________________
E122 HSDPA 7.2 12d1:1446 12d1:1001 2 0 3
E150 MTS HSDPA 3.6 12d1:1446 12d1:1001 2 0 3
E153 HSDPA 3.6 12d1:1446 12d1:14ac 4 0 5 & 6
E156G MTS HSDPA 3.6 12d1:1446 12d1:140c 3 0 4 & 5
E160 HSDPA 3.6 12d1:1003 12d1:1003 1 0 2
E160E HSDPA 3.6 12d1:1001 12d1:1001 2 0 3
E161 HSDPA 3.6 12d1:1446 12d1:1001 2 0 3
E166 HSDPA 3.6 12d1:1001 12d1:1001 2 0 3
E169 HSDPA 7.2 12d1:1001 12d1:1001 2 0 3
E170 HSDPA 7.2/2.0 12d1:1003 12d1:1003 1 0 2
E171 MTS HSDPA 7.2/5.76 12d1:14fe 12d1:1506 4 0 5 & 6
E173 HSDPA 7.2/5.76 12d1:1446 12d1:140c 3 0 4 & 5
E173 HSDPA 7.2/5.76 12d1:1557 12d1:14a5
E173 HSDPA 7.2/5.76 12d1:1c24 12d1:1c23 3 2 4 cdc-acm device
E173 HSDPA 7,2/5.76 12d1:14b5 12d1:14a8 2 0 3 & 4
E219 HSDPA 3.6 12d1:1003 12d1:1003 1 0 2
E220 HSDPA 3.6 12d1:1003 12d1:1003 1 0 2
E226 HSDPA 7.2 12d1:1003 12d1:1003 1 0 2
__________________________________________________ _______________________________________
E352 HSPA 21.0/5.76 12d1:14fe 12d1:1506 4 0 5 & 6
E353 HSPA 21.0/5.76 12d1:1446 12d1:1506 4 0 5 & 6
E372 HSPA+ 42./5.76 12d1:1446 12d1:1506 4 0 5 & 6
E372 HSPA+ 42./5.76 12d1:1505 12d1:1506 4 0 5 & 6
__________________________________________________ _______________________________________
E389 LTE 4G 12d1:1505 12d1:1506 4 0 5 & 6
E392 LTE 4G 12d1:1505 12d1:1506 4 0 5 & 6 serial and qmi_wwan
E398 LTE 4G 12d1:1446 12d1:1506 4 0 5 & 6
E398 LTE 4G 12d1:1505 12d1:1506 4 0 5 & 6 serial and qmi_wwan
K5005 LTE 4G 12d1:14c3 12d1:14c8 4 0 5 & 6
__________________________________________________ _______________________________________
E1550 MTS HSDPA 3.6 12d1:1446 12d1:1001 2 0 3
E1552 HSDPA 3.6 12d1:1446 12d1:1406 2 0 3
E1552 HSDPA 3.6 12d1:1446 12d1:140c 3 0 4 & 5
E1553 HSDPA 3.6 12d1:1553 12d1:1001 2 0 3
E1612 HSDPA 7.2 12d1:1446 12d1:1406 2 0 3
E1690 HSDPA 7.2 12d1:1446 12d1:140c 3 0 4 & 5
E1691 HSDPA 7.2 12d1:1446 12d1:140c 3 0 4 & 5
E1692 HSDPA 7.2 12d1:1446 12d1:140c 3 0 4 & 5
E1750 HSDPA 7.2/5.76 12d1:1446 12d1:1001 2 0 3 & 4
E1750 MTS HSDPA 7.2/5.76 12d1:1446 12d1:1406 2 0 3
E1750 HSDPA 7.2/5.76 12d1:1446 12d1:1436 4 0 5 & 6
E1752 HSDPA 7.2/5.76 12d1:1446 12d1:1003 1 0 2
E1752 HSDPA 7.2/5.76 12d1:1446 12d1:141b 1 0 2
E1756 HSDPA 7.2/5.76 12d1:1446 12d1:1406 2 0 3
E1820 MTS HSPA 21.0/5.76 12d1:1446 12d1:14ac 4 0 5 & 6
http://www.dd-wrt.com/wiki/index.php/3G_/_3.5G#HUAWEI
dlukanidin
08-09-2012, 09:55
Да и не только Huawei E367, но и остальные модемы тоже можно будет туда добавить ... :D
http://www.dd-wrt.com/wiki/index.php/3G_/_3.5G#HUAWEI
В нашем случае это сводится к:
12d1:150f:W:0:4
12d1:14a8:W:0:2
12d1:1c23:W:2:3
12d1:14c8:W:0:4
12d1:1406:W:0:2
12d1:141b:W:0:1
В нашем случае это сводится к:
12d1:150f:W:0:4
12d1:14a8:W:0:2
12d1:1c23:W:2:3
12d1:14c8:W:0:4
12d1:1406:W:0:2
12d1:141b:W:0:1
Можем расширить до:
12d1:150f:W:0:4 #E367 HSPA 21.0/5.76
12d1:14a8:W:0:2 #E173 HSDPA 7,2/5.76
Код переделывать не придётся.
dlukanidin
09-09-2012, 13:27
Можем расширить до:
12d1:150f:W:0:4 #E367 HSPA 21.0/5.76
12d1:14a8:W:0:2 #E173 HSDPA 7,2/5.76
Код переделывать не придётся.
ИМХО нет смысла, т.к. один пид используют разные устройства и такой коммент может ввести в заблуждение.
2 Rss-не добавите это обновление?
ИМХО нет смысла, т.к. один пид используют разные устройства и такой коммент может ввести в заблуждение.
Жаль терять информацию. К тому же автоматом получаем список того, что проверено. Разные устройства можно перечислить через запятую.
2 Rss-не добавите это обновление?
К сожалению, сейчас немного перегружен... Наспех не хотелось бы править конфигурации.
Не только один пид используют разные устройства, но и некоторые устройства используют по несколько пид. Получается полная путаница. И вообще, неподходящее место для списка проверенных модемов. :)
dlukanidin
17-09-2012, 22:46
Получил крайне странную ситуацию:
1. модем подключен к dir-320 с прошивкой rtn от Vampic через активный USB хаб.
2. Сначала (вчера) стало рваться соединение, но после перезагрузки (я просто отключаю автоматом розетку на которой всё висит, чтобы не ходить к месту где подвешен модем) восстанавливалось.
3. Сегодня отключения участились, а потом прекратились, но исчезло соединение с интернетом. Т.е. соединение с провайдером поднято, в логах всё замечательно, интерфейс ppp0 в порядке, а внешние сервера и dns провайдера не пингуются. Причём самое ужасное то, что после перезагрузки, как писал выше, соединение сразу поднималось, а связи с внешней сетью не было. Пинговать пробовал как с самого роутера, так и с подключенного компа. Огоньки на модеме тоже горят нормально и статистика на UI интерфейсе не отличается от обычной.
4. Взял ноут с виндой и подключил к нему модем напрямую прямо там, где он висит. Ноут к интернету весело подключился без проблем. После этого воткнул модем в роутер, тут и роутер подключился, как впрочем и раньше, но уже с полноценным соединением с внешней сетью.
С чем связано такое странное поведение нет пока никаких идей. Может у кого нибудь есть идеи?
ConstAntz
18-09-2012, 06:40
Получил крайне странную ситуацию:
...
3. Сегодня отключения участились, а потом прекратились, но исчезло соединение с интернетом. Т.е. соединение с провайдером поднято, в логах всё замечательно, интерфейс ppp0 в порядке, а внешние сервера и dns провайдера не пингуются. Причём самое ужасное то, что после перезагрузки, как писал выше, соединение сразу поднималось, а связи с внешней сетью не было. Пинговать пробовал как с самого роутера, так и с подключенного компа. Огоньки на модеме тоже горят нормально и статистика на UI интерфейсе не отличается от обычной.
...
Может у кого нибудь есть идеи?
В нашем регионе, МТС привязан к КОМСТАРу(ну, или наоборот). Заметил за последним такой-же обрыв связи по днс раз в 3-4 недели. Спустя 3-6 часов все приходит в норму. имхо: Из-за такой суматохи снесло мозг 1820 и было реанимировано на ноуте (поправка на удачу)
dlukanidin
19-09-2012, 13:57
В нашем регионе, МТС привязан к КОМСТАРу(ну, или наоборот). Заметил за последним такой-же обрыв связи по днс раз в 3-4 недели. Спустя 3-6 часов все приходит в норму. имхо: Из-за такой суматохи снесло мозг 1820 и было реанимировано на ноуте (поправка на удачу)
Посниферил родной для модема софт на предмет инициализации
В итоге вставил вот такую дополнительную AT команду: AT&FE0V1X1&D2&C1S0=0
Буду смотреть как скажется на стабильности.
ConstAntz
20-09-2012, 06:29
есть подозрение, что rss отошел от дел. (?)
есть подозрение, что rss отошел от дел. (?)
Я слежу за форумом время от времени, но активно делать что-то серьёзное сейчас не могу.
alex_optek
20-09-2012, 12:51
Получил крайне странную ситуацию:
Может у кого нибудь есть идеи?
Это время непрерывной работы роутера.
7 days, 20 hours, 23 minutes, 16 seconds
Это точки реконнекта по ping.
Tue Sep 18 06:54:34 YEKT 2012
Tue Sep 18 12:11:50 YEKT 2012
Tue Sep 18 21:34:11 YEKT 2012
Tue Sep 18 21:46:41 YEKT 2012
Wed Sep 19 04:00:44 YEKT 2012
Wed Sep 19 11:50:16 YEKT 2012
Wed Sep 19 21:44:45 YEKT 2012
Thu Sep 20 06:22:15 YEKT 2012
В цело с МТС и Е1820 все отлично, но иногда, может раз в месяц, в районе 2 часов ночи начинаются разрывы связи, при наличии связи нет интернета, пропадает 3G? я считаю, что это проблемы с базовой станцией или ТО или неисправность, к утру обычно восстанавливается. Это подтверждается вставкой резервной СИМ от билайна.
dlukanidin
20-09-2012, 17:58
Это время непрерывной работы роутера.
7 days, 20 hours, 23 minutes, 16 seconds
Это точки реконнекта по ping.
Tue Sep 18 06:54:34 YEKT 2012
Tue Sep 18 12:11:50 YEKT 2012
Tue Sep 18 21:34:11 YEKT 2012
Tue Sep 18 21:46:41 YEKT 2012
Wed Sep 19 04:00:44 YEKT 2012
Wed Sep 19 11:50:16 YEKT 2012
Wed Sep 19 21:44:45 YEKT 2012
Thu Sep 20 06:22:15 YEKT 2012
В цело с МТС и Е1820 все отлично, но иногда, может раз в месяц, в районе 2 часов ночи начинаются разрывы связи, при наличии связи нет интернета, пропадает 3G? я считаю, что это проблемы с базовой станцией или ТО или неисправность, к утру обычно восстанавливается. Это подтверждается вставкой резервной СИМ от билайна.
Не уверен, что у меня такая же проблема. Во первых разрывы чаще, во вторых не просто отключается, а последовательно деградирует. Сейчас вот ситуация, соединение разорвалось, и потом без перерыва идут попытки соединения. Они все успешны, но соединение разрывается почти сразу после успешной авторизации. Перезагрузка маршрутизатора ситуации не меняет. Перезагрузка отключением питания от всего и всё снова прекрасно работает. Подозреваю, что возможно проблема в модеме. После очередного зависания попробую поменять его на 1550, по результатам отпишусь.
P.S. ВОт сейчас опять подвесилось, поменял модем.
alex_optek
21-09-2012, 08:25
Не уверен, что у меня такая же проблема. Во первых разрывы чаще, во вторых не просто отключается, а последовательно деградирует. Сейчас вот ситуация, соединение разорвалось, и потом без перерыва идут попытки соединения. Они все успешны, но соединение разрывается почти сразу после успешной авторизации. Перезагрузка маршрутизатора ситуации не меняет. Перезагрузка отключением питания от всего и всё снова прекрасно работает. Подозреваю, что возможно проблема в модеме. После очередного зависания попробую поменять его на 1550, по результатам отпишусь.
P.S. ВОт сейчас опять подвесилось, поменял модем.
А, кстати, я раньше тоже подключался через активный Хаб, но потом начались проблемы и я вспомнил, что проходил это на Anydata300, перечитал тогда много форумов и один из важных моментов это качество кабеля между модемом и роутером, в итоге сейчас использую короткий прямой кабель. При этом, думаю, что разные модели модемов могут по разному взаимодействовать с кабелем.
dlukanidin
21-09-2012, 09:22
А, кстати, я раньше тоже подключался через активный Хаб, но потом начались проблемы и я вспомнил, что проходил это на Anydata300, перечитал тогда много форумов и один из важных моментов это качество кабеля между модемом и роутером, в итоге сейчас использую короткий прямой кабель. При этом, думаю, что разные модели модемов могут по разному взаимодействовать с кабелем.
Спасибо за идею, проверю и это, а то 1550 сильно медленнее работает. А без активного хаба 320-й может модем не потянуть, блок питания у него не самое сильное место.
alex_optek
21-09-2012, 12:22
Спасибо за идею, проверю и это, а то 1550 сильно медленнее работает. А без активного хаба 320-й может модем не потянуть, блок питания у него не самое сильное место.
Может и хабом потянет, с более качественными и короткими кабелями.
P.S. И на хорошем кабеле, должны быть ферритовые фильтры, по моему опыту, это может улучшить картину, хотя это уже все подбирается эмпирически, может без фильтров кабель оказаться лучше из-за внутренней конструкции, а навешивание фильтра на плохой кабель может не помочь. Можно попробовать навесить фильтры на имеющиеся кабели.
dlukanidin
22-09-2012, 01:25
Может и хабом потянет, с более качественными и короткими кабелями.
P.S. И на хорошем кабеле, должны быть ферритовые фильтры, по моему опыту, это может улучшить картину, хотя это уже все подбирается эмпирически, может без фильтров кабель оказаться лучше из-за внутренней конструкции, а навешивание фильтра на плохой кабель может не помочь. Можно попробовать навесить фильтры на имеющиеся кабели.
Короткий кабель, из комплекта adu300 не помог. Сейчас пробую вариант с непосредственным включением модема в хаб, а уже его кабелем к роутеру. Пока вроде работает, но буду ещё посмотреть :)
А вообще склоняюсь к тому, чтобы выкинуть 2тыр и взять 392 на пробу.
Короткий кабель, из комплекта adu300 не помог. Сейчас пробую вариант с непосредственным включением модема в хаб, а уже его кабелем к роутеру. Пока вроде работает, но буду ещё посмотреть :)
А вообще склоняюсь к тому, чтобы выкинуть 2тыр и взять 392 на пробу.
а он тоже без волшебного кабеля плохо пашет )
9279
dlukanidin
22-09-2012, 21:08
а он тоже без волшебного кабеля плохо пашет )
9279
Не понимаю чем это может быть лучше активного хаба
Не понимаю чем это может быть лучше активного хаба
Чем лучше хаба -
1. Железка не требует внешнего питания (вести в фокус параболической тарелки установленной на крыше внешнее питание IMHO некомильфо да и неудобно)
2. Эти железки прекрасно каскадируются, в реале проверялось на 3 последовательно включенных, что дает вынос от роутера 15 метров
3, небольшой размер, живет вместе с модемом в пластиковой бутылке из под газировки заполненной монтажной пеной и закрепленной в фокусе тарелки)
dlukanidin
20-10-2012, 21:56
Давно хотел написать что-то для отслеживания состояния модема в динамике.
Скрипты для этого не очень подходили, т.к. при частых запросов поджирали все ресурсы.
В итоге написал cgi скрипт на Си для busyboxhttpd и к нему страничку html.
Проверял всё на Huawei E392, но должно работать и на других моделях этого производителя поддерживающих команду 'AT^SYSINFOEX', для остальных надо внести небольшие для Huawei или значительные для других производителей изменения в файл конфигурации и страничку.
Всё это добро у меня сейчас живёт непосредственно на роутере и занимает ИМХО совсем немного места.
В архиве сохранено мое распределение файлов по папкам в /usr/local/:
/etc/ - файлы конфигурации для busyboxhttpd и cgi скрипта. В последнем описаны все наборы команд, которые надо посылать модему для изменения его состояний или получения информации.
/sbin/ - скрипт запуска busyboxhttpd.
/www/ - страничка и все скрипты к ней.
для запуска http://my.router:23456/modem.html
В дальнейших планах - поскольку уже "подсел" на яблочную продукцию, напишу для iOs веб приложение, чтобы было всё красиво и весь нужный мне функционал (это также точно будет работает на десктопном сафари и вроде на хроме, но последний надо проверять).
dlukanidin
11-11-2012, 21:32
Как и планировал написал веб приложение для работы с модемом подключенным к роутеру.
Загрузить можно по ссылке (http://sovetic.ru/iphone/modem)
Совпадает со ссылкой из подписи.
Проверял работу с Huawei 392 и 1820. Для ZTE и CDMA надо допиливать, но я сейчас использую только вышеуказанные и пока дальнейшие модификации не планирую.
Для работы должен быть запущен busybox-httpd и в соответствующей папке быть modem.cgi. Вся структура и сами файлы могут быть скачаны в архиве который есть на сайте. Возможно использование и другого сервера, конечно кроме родного на котором висит морда.
Корректно работает только на Сафари и Хроме, т.к. написано с помощью яблочного Dashcode.
Другие браузеры, модемы, языки и т.д. несложно написать на основании имеющегося кода.
Но поскольку писал я для удобного управления именно с iPhone и iPad, то свои задачи я решил полностью.
Рискнул выбросить опции nopcomp и noaccomp в r4750. Возможно возникнут проблемы со старыми модемами. На e1820 всё работает.
Если где-то не будет работать - можно руками вписать в поле "Additional pppd options".
Хотелось бы понять, нужно ли править код скрипта дозвона, или и без этих опций проблем нет.
Позаимствовано из: http://repo.or.cz/w/tomato.git/blobdiff/b80d2558748e689e1ea70187ec68ed17fb89ac31..a9de670c 8e72f25c08296f3e5a765061451ad9bc:/release/src/router/rc/wan.c
Мужики, принимайте багу.
При выставлении птички на Call on Demand = Yes прошивка проставляет переменную wan0_modem_demand=0.
Это не верно, там нужна единица, чтоб роутер пускал ping для инициации соединения. Прошивка 4780.
Мужики, принимайте багу.
При выставлении птички на Call on Demand = Yes прошивка проставляет переменную wan0_modem_demand=0.
Это не верно, там нужна единица, чтоб роутер пускал ping для инициации соединения. Прошивка 4780.
Она выставляется при загрузке по значению wan_modem_demand, которая в свою очередь выставляется из веб-интерфейса.
Здравствуйте,
С ходу не нашёл на форуме, как настроить 3G USB модем на Asus RT-N10U с прошивкой 1.9.2.7-rtn-r4330
В идеале хотелось бы, чтобы подключение к Интернету было через WAN порт, а USB модем включался бы при обрыве подключения через WAN порт. Одна из прошивок Asus так умеет, но вот обратно не переключает с USB в случае восстановления соединения на WAN порту. Поэтому пробую альтернативы, вот сейчас 1.9.2.7-rtn-r4330, в частности.
Помогите пожалуйста.
dlukanidin
23-03-2013, 08:49
Прошивка 4750М
Роутер dir-320 c модемом E392, провайдер МТС
Связь с провайдером установлена, интернет работает
При просмотре запущенных процессов внезапно обнаружил, что запущены и висят в процессах скрипты статуса модема, ну это ладно, хоть и не помню, но теоретически мог запустить
И самое необычное - chat со странными параметрами.
При убиении скрипты благополучно удалились, а вот chat вылез опять уже с другим не менее странным набором параметров. Чуть позже сам завершился.
В логах никаких следов этой странной активности нет.
Из WAN был включен виртуальный сервер, но с пустым набором параметров, т.е. никакие порты не пробрасывались.
Вот сижу и думаю, что это было. К сожалению окно терминала не сохранил вовремя, так что никаких следов не осталось. Но кто то же перезапустил chat, а по логике это должен быть pppd. Но левого pppd не было, только тот который и держал соединение с интернетом.
В общем не понимаю.
dlukanidin
09-04-2013, 10:44
Заменил dir-320 на rt-n16 и получилось проверить как работает 392 модем, правда не в LTE режиме (у меня такого сигнала пока нет)
1. Подключение
Просто установка Ethernet over USB в состояние as default недостаточно, надо еще выбрать аналогичную опцию в ip config
Подключение идет в 3 этапа - сначала в статусе появляется подключено, но ip/маска/шлюз = 0.0.0.0, затем 169.254.132.5/255.255.0.0/-
и затем уже реальные параметры.
Подключение происходит не всегда, иногда процесс останавливается на втором этапе - 169.254.132.5/255.255.0.0/-
прикладываю логи для неполного подключения с последующим ручным отключить подключить и нормального подключения.
2. Работа
По скорости разницы с модемным вариантом не увидел
По стабильности надо проверять
По камерам - вроде тоже приостанавливается поток где-то секунд через десять, причины надо проверять.
P.S. C камерами наблюдал такой эффект - клиент запущен на 2-х устройствах, сначала работаю оба, потом на одном картинка останавливается, а на другом продолжает идти, потом и на втором останавливается.
P.P.S. Модемное соединение поднимается значительно быстрее, после перезагрузки уже есть, а qmi приходится ждать еще секунд 15-20
P.P.P.S. На модемном соединении камеры одновременно на двух устройствах работают без проблем и без остановок.
Заменил dir-320 на rt-n16 и получилось проверить как работает 392 модем, правда не в LTE режиме (у меня такого сигнала пока нет)
1. Подключение
Просто установка Ethernet over USB в состояние as default недостаточно, надо еще выбрать аналогичную опцию в ip config
Подключение идет в 3 этапа - сначала в статусе появляется подключено, но ip/маска/шлюз = 0.0.0.0, затем 169.254.132.5/255.255.0.0/-
и затем уже реальные параметры.
Подключение происходит не всегда, иногда процесс останавливается на втором этапе - 169.254.132.5/255.255.0.0/-
прикладываю логи для неполного подключения с последующим ручным отключить подключить и нормального подключения.
2. Работа
По скорости разницы с модемным вариантом не увидел
По стабильности надо проверять
По камерам - вроде тоже приостанавливается поток где-то секунд через десять, причины надо проверять.
P.S. C камерами наблюдал такой эффект - клиент запущен на 2-х устройствах, сначала работаю оба, потом на одном картинка останавливается, а на другом продолжает идти, потом и на втором останавливается.
P.P.S. Модемное соединение поднимается значительно быстрее, после перезагрузки уже есть, а qmi приходится ждать еще секунд 15-20
P.P.P.S. На модемном соединении камеры одновременно на двух устройствах работают без проблем и без остановок.
По логам разницы не вижу.
Если по скорости разницы нет, то по загрузке процессора разница есть?
И еще, если после остановки потока с камеры перезагрузить страницу клиента, поток продолжается? Или модем отключается?
Usb отваливался при каждом разрыве связи.
Может здесь перепутана причина и следствие, может быть отваливается USB, и из-за этого разрывается связь (роутера с модемом)?
Huawei 352 и 392 у меня работали отлично, а вот получил новый ZTE - он отваливается на любом роутере из всех, что у меня есть. Если просто воткнуть модем (с коротким проводом!) в USB-порт, через некоторое время он отваливается - при этом /dev/ttyUSB* на месте, но соединение роутера с модемом разрывается (на самом модеме при этом продолжает гореть зеленый светодиод), на AT-команды он не отвечает, а cat /proc/bus/usb/devpath вешает процесс, из которого была запущена данная команда. Активный же хаб пока помогает - модем вроде работает стабильно.
Правда, чтобы точно проверить, нужна билайновская симка - они любят принудительно разрывать связь каждые полтора часа (или уже чаще) для округления сессии на биллинге, а у мегафона сессия может держаться сутками (они умеют округляют трафик в большую сторону без физического разрыва соединения), сигнал стабильный, БС на соседнем доме.
Или же сам модем глючный - перегревается и отваливается (а греется он ощутимо)?
Здравствуйте!
Перепрошил роутер, модем вроде как виден - по команде cat /proc/bus/usb/devices выдает информацию:
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1505 Rev= 0.00
S: Manufacturer=Huawei Technologies
S: Product=HUAWEI Mobile
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
но при выполнении USB device location ID (View) выдает пустое окно, без указания модема.
Подскажите, плиз, как заставить его работать?
1.9.2.7-d серьезно устарела, поддержки новых модемов в ней нет и не будет.
1.9.2.7-d серьезно устарела, поддержки новых модемов в ней нет и не будет. D-Link DIR-320 A1/A2, DIR-620 C1, Netgear WNR3500L v1 v2
Большое спасибо!
Обновление в веб-интерфейсе в ночных сборках прошивки: новая страница статуса модема
http://vampik.ru/misc/stmodem.jpg
* работает только для 3G/LTE-модемов (кроме модемов Yota)
* статистика трафика - только для модемов Huawei
http://vampik.ru/2013/06/07/obnovlenie-v-veb-interfeyse/ ;)
А где можно глянуть modems.conf ?
Нигде. Его больше нет, данные перенесены в rc/usbmodem.h, причем в случае с новыми Huawei, определение идет не по VID/PID, а по
class/subclass/protocol интерфейсов модема. К тому же это все только база данных для автоопределения модема, все работает и без нее.
Я специально не оставлял ссылку на старый список. А то люди идут искать старые модемы, а потом жалуются, что интернет на даче не ловит (привет, UMTS 900) и т.п.
Список поддерживаемых модемов есть, но он устарел: http://www.hub.ru/wiki/%D0%9F%D0%BE%D0%B4%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D 0%B2%D0%B0%D0%B5%D0%BC%D1%8B%D0%B5_3G/CDMA_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BC%D1%8B
По той причине, что пока кто-нибудь не купит и не проверит модем, невозможно узнать, работает он в прошивке или нет
(и если нет, то попробовать добавить поддержку, если это возможно). Но покупать и проверять никто особо не торопится :)
В последних ночных сборках появился вывод usb_modeswitch в http://my.router/Main_ChatStatus_Content.asp .
По той причине, что пока кто-нибудь не купит и не проверит модем, невозможно узнать, работает он в прошивке или нет
(и если нет, то попробовать добавить поддержку, если это возможно). Но покупать и проверять никто особо не торопится :)
Huawei E372 взлетел , всё норм.
9634
Product ID: WL500gp
Firmware Version: 3.0.6.0
Firmware Release: 3.0.6.5196
9635
Archiball
31-07-2013, 18:10
Huawei E372 взлетел , всё норм.
9634
Добрый день!
А где прошивку для 500gpv1 можно скачать?
Добрый день!
А где прошивку для 500gpv1 можно скачать?
С таким интерфейсом - здесь: http://vampik.ru/wl500g/rtn/ (http://vampik.ru/wl500g/rtn/?C=N;O=D)
Предупреждаю, что он тестовый и недоделанный.
dimitriy_argo
10-12-2013, 14:01
ситуация:
надо чтобы два провайдера, провод каждого был воткнут в роутер. и соответственно, если вдруг вырубается один ( основной- скоростной), то чтобы переход был автоматически на второго провайдера.
Либо сделать тоже самой с YOTA ( или usb-модем).
Самое главное, чтобы можно было таким образом устроить резервный канал интернета, и не бегать в случае чего, с проводами.
Если такое невозможно на Asus wl-500gpV2, то на чем простейшем возможно? а то купил в своё время mikrotik, это жесть по настройке, настроил в итоге в качестве беспроводной карты и всё..
Почему баг то, всё вроде логично, если автомат, то параметры берутся из базы. Если устройства нет в базе (в файле заголовка), то надо всё назначать ручками.
Не, не логично. Потому что, если посмотреть на интерфейс, то автомат там находится в рамках определенного раздела, и это вроде как подразумивает, что оно влияет на параметры только этого раздела. Еще глубже в этом подразумивании убеждает тот факт, что все параметры этого раздела засериваются, если выбрать автоматическое определение. Таким образом интерфейс как-бы сообщает на какие параметры этот автомат влияет. Вот если бы тип модема находился бы в этом разделе и вместе с остальным параметрами засеривался бы, то было бы логично. А так, пока он в дргуом разделе и не засеривается, то совсем не логично получается...
Поэтому ИМХО либо оставть как есть, и сделать чтобы /usr/dial/ppp ориентировался на то что указал пользователь в Modem Type, либо перенести выбор типа под автодетек и засеривать его при при выборе Yes вместе с другими автоматически определяемыми параметрами.
Второе на мой взгляд гораздо сложнее потому что от значения Modem type зависит то как выглядит раздел Modem Options и как это рулить при засеривании и автоматике -- совершенно не понятно...
Ну и да, можно в Modem Type сделать дополнительный пукт Auto Detect, и тогда когда он выбран доверять автоматике, а когда нет, то верить тому что сказал пользователь...
Не, не логично. Потому что, если посмотреть на интерфейс, то автомат там находится в рамках определенного раздела, и это вроде как подразумивает, что оно влияет на параметры только этого раздела. Еще глубже в этом подразумивании убеждает тот факт, что все параметры этого раздела засериваются, если выбрать автоматическое определение. Таким образом интерфейс как-бы сообщает на какие параметры этот автомат влияет. Вот если бы тип модема находился бы в этом разделе и вместе с остальным параметрами засеривался бы, то было бы логично. А так, пока он в дргуом разделе и не засеривается, то совсем не логично получается...
Самое простое - сделать проверку того, что обнаружил автомат с тем, какой тип модема выбран у пользователя. Если не сходится - отключать автомат и предлагать выбрать самостоятельно. Впрочем, будет ли это понятнее - вопрос....
Самое простое - сделать проверку того, что обнаружил автомат с тем, какой тип модема выбран у пользователя. Если не сходится - отключать автомат и предлагать выбрать самостоятельно. Впрочем, будет ли это понятнее - вопрос....
Непонятно занахрена.
Зачем определять вендориды и т.п. автодетектом -- понятно. Пользователь таких тонкостей не знает, а получить их в автоматическом режиме можно даже не зная модема (для моего все эти параметры автоматически определились, хотя его в базе не было)
А вот зачем автоматом определять тип модема -- непонятно вообще. Пользователь точно знает к какой сети он хочет подключиться. Мало того, он знает еще кой-какие дополнительные настройки, без знания типа сети которые как-бы нельзя ввести.
При этом то что указал пользователь в качестве типа модема -- это знание надежное, а то что сказал автодетект -- это как повезет... Если можема в списке известных нету, то все cdma заведомо отдетектяться неправильно. Оно надо?
Непонятно занахрена.
Зачем определять вендориды и т.п. автодетектом -- понятно. Пользователь таких тонкостей не знает, а получить их в автоматическом режиме можно даже не зная модема (для моего все эти параметры автоматически определились, хотя его в базе не было)
А вот зачем автоматом определять тип модема -- непонятно вообще. Пользователь точно знает к какой сети он хочет подключиться. Мало того, он знает еще кой-какие дополнительные настройки, без знания типа сети которые как-бы нельзя ввести.
При этом то что указал пользователь в качестве типа модема -- это знание надежное, а то что сказал автодетект -- это как повезет... Если можема в списке известных нету, то все cdma заведомо отдетектяться неправильно. Оно надо?
Интерфейс настройки модема вырос с тех времён, когда никакого автодетекта не было. Изначально автодетект был сделан для портов модема, а не для его типа. Со временем появилось всё остальное. Просто так "засерить" выбор типа модема, если выбран автодетект нельзя, потому что логики в ныненшнем интерфейсе не будет вообще. Не может параметр, определяющий полную настройку в автомате находиться в середине формы. Это будет гораздо менее понятно, что то, что мы имеем в данный момент, а именно - если что-то не работает, значит надо отключить автодетект и настроить руками. И ВСЁ!
Если есть желание переработать интерфейс этой формы - пожалуйста, все исходники доступны. Прошивка прекрасно собирается на OpenSuSE AMD64 (на последней 13.1 не проверял).
В данный момент я не готов взяться за полное переделываение этой формы.
Если есть желание переработать интерфейс этой формы - пожалуйста, все исходники доступны
Можно я найду и оторву влияние автодетекта типа модема на выбор собственно чат типа скрипта для коннекта? Это решение мне кажется наиболее логичным.
Проблема не только в наличии исходников, но и в том согласяться ли принять такой патч.
Так чтобы у меня работало -- я уже сделал. Хочу сделать чтобы сразу работало и у других, но тут нужно взаимопонимание.
dlukanidin
14-01-2014, 15:03
Можно я найду и оторву влияние автодетекта типа модема на выбор собственно чат типа скрипта для коннекта? Это решение мне кажется наиболее логичным.
Проблема не только в наличии исходников, но и в том согласяться ли принять такой патч.
Так чтобы у меня работало -- я уже сделал. Хочу сделать чтобы сразу работало и у других, но тут нужно взаимопонимание.
Логику работы автодетекта править пока нет смысла, по крайней мере исходя из обсуждаемой ситуации. Предложите своё видение переработанной странички интерфейса.
Логику работы автодетекта править пока нет смысла, по крайней мере исходя из обсуждаемой ситуации. Предложите своё видение переработанной странички интерфейса.
Как уже сказал rss, если начать отображать существующую логику работы автодетекта через веб интерфейс, то получится полное месево. Я с ним согласен. То что эту логику невозможно невозможно нормально нарисовать в виде интерфейса говорит о том, что логика противоестетвенная.
Как уже сказал rss, если начать отображать существующую логику работы автодетекта через веб интерфейс, то получится полное месево. Я с ним согласен. То что эту логику невозможно невозможно нормально нарисовать в виде интерфейса говорит о том, что логика противоестетвенная.
Возможно "нарисовать логику нормально". Но для этого надо заново создать форму, продумав всю последовательность первичной настройки и последующей подстройки. + если трогать эту форму, неплохо бы подтянуть и логи по модему, и USSD, поскольку по логике всё управление должно быть собрано.
Отключить автодетект на определение типа модема не сложно, но честно говоря не уверен в том, что это надо. 3G и CDMA модемы различаются только в APN и login. Номера дозвона почти у всех одинаковые и редко кому приходится их изменять. Вероятность определения модема без какого либо вмешательства пользователя довольно велика и так.
Возможно "нарисовать логику нормально". Но для этого надо заново создать форму, продумав всю последовательность первичной настройки и последующей подстройки. + если трогать эту форму, неплохо бы подтянуть и логи по модему, и USSD, поскольку по логике всё управление должно быть собрано.
Отключить автодетект на определение типа модема не сложно, но честно говоря не уверен в том, что это надо. 3G и CDMA модемы различаются только в APN и login.
Нет, это не так. Внутри GPRS и Co отличия действительно только в apn login и passowrd: https://git.gnome.org/browse/mobile-broadband-provider-info/tree/serviceproviders.xml -- это квинтесенция знания опенсорсного мира обо всех провайдерах мобильного интернета всего мира.
Однако между GPRS и CDMA разница очень большая: Для CDMA модема нужен принципиально другой чат скрипт. При попытке скормить CDMA модему последовательность AT команд рассчитанных на GPRS происходит ошибка. CDMA модем не понимает строку инициализации обычную для GPRS модемов и ругается. По крайней мере на части модемов. Именно по этой причине и возникла эта тема. И, надо сказать, люди начавшие тему так и не преуспели в подключении своих модемов.
Я, в попытках понять в чем дело, разобрал несколько слоев прошивки, так и не понял отчего оно так происходит и только после этого, когда разработчики пришли в тему, мне модем настроить удалось. Далеко не все могут залезть так глубоко как я.
Это все говорит о том, что идея с автодетектом типа модема ведет к невозможности настроить оборудование человеку со знаниями линукса, мягко скажем, несколько выше среднего.
Ну внатуре несколько людей до меня реально об это обломались. Полистайте тему, решения они не нашли.
Если отключить автодетект типа модема, то мы не потеряем никакой функциональности, потому что пользователи как указывали тип модема в веб интерфейсе, так и будут его указывать. Никто кроме разработчиков не знает, что этот пункт меню игнорируется и оверрайдится автоматикой, и выбирают его руками.
При этом появиться новая функциональность: Не внесенные в спикок CDMA модемы начнут работать при указанном в интерфейсе типе модема
Номера дозвона почти у всех одинаковые и редко кому приходится их изменять. Вероятность определения модема без какого либо вмешательства пользователя довольно велика и так.
Робяты, мне реально есть чем заняться в области опенсорса, помимо споров на форуме об очевидных вещах.
Давайте так: я заинтересован в том чтобы не перечисленные в списке CDMA модемы работали бы из коробки при автодетекете. Если вы сами отключите автодетект типа модема -- прекрасно. Вы говорили что это не трудно. Если это по каким-то причинам не готовы это сделать, но готовы принять патч, я таки научусь собирать это чертову прошивку, и сделаю патч, возможно паралельно породив пару инструкций в вики, и какой-то еще смежный код.
Но если вас устраивает, что оборудование, которое после пары ударов пальцами может работать из коробки, из коробки не работает настолько, что юзеры отчаиваются и уходят, то я пойду искать другой лунапарк. Линукс можно ломать много где...
Нет, это не так. Внутри GPRS и Co отличия действительно только в apn login и passowrd:
Речь шла только о форме.
Если отключить автодетект типа модема, то мы не потеряем никакой функциональности, потому что пользователи как указывали тип модема в веб интерфейсе, так и будут его указывать. Никто кроме разработчиков не знает, что этот пункт меню игнорируется и оверрайдится автоматикой, и выбирают его руками.
При этом появиться новая функциональность: Не внесенные в спикок CDMA модемы начнут работать при указанном в интерфейсе типе модема
Если информация о модемах будет внесена - они действительно начнут работать. А так - гарантий, что автодетект сделает всё автоматически всё равно нет. Всё равно процесс вероятностный.
Для отключения см. http://wl500g.googlecode.com/svn/trunk/rc/usbmodem.c search_modems_in_list() - логика автодетекта при отсутствии модема в базе.
Взаимодействие со скриптами происходит через переменную nvram wan0_type. Соответственно, можно исправить и в http://wl500g.googlecode.com/svn/trunk/cdma/files/usr/ppp/dial.
Речь шла только о форме.
Если информация о модемах будет внесена - они действительно начнут работать. А так - гарантий, что автодетект сделает всё автоматически всё равно нет. Всё равно процесс вероятностный.
Это понятно, что вероятностный. Но сейчас у CDMA модема просто нет шанса, если он init string от GPRS'ного есть не умеет.
Для отключения см. http://wl500g.googlecode.com/svn/trunk/rc/usbmodem.c search_modems_in_list() - логика автодетекта при отсутствии модема в базе.
Взаимодействие со скриптами происходит через переменную nvram wan0_type. Соответственно, можно исправить и в http://wl500g.googlecode.com/svn/trunk/cdma/files/usr/ppp/dial.
Если сделаю, патч примите? Оформлю в соответствии с пожеланиями.
// а то у меня уже все работает, личной надобности уже нет.
dlukanidin
15-01-2014, 22:37
Это понятно, что вероятностный. Но сейчас у CDMA модема просто нет шанса, если он init string от GPRS'ного есть не умеет.
Если сделаю, патч примите? Оформлю в соответствии с пожеланиями.
// а то у меня уже все работает, личной надобности уже нет.
Если просто уберём тип модема из автодетекта, то после очередной перепрошивки и сброса настроек к заводским, что очень рекомендовано, тут же возникнет поток сообщений, что поломался доступ ко всем cdma модемам которые раньше работали из коробки.
Вот если бы Вы предложили алгоритм как cdma от wcdma отличать в автодетекте.
Ещё на сегодня ИМХО актуально добавить в автодетект определение провайдера со всеми его настройками по симке.
Если просто уберём тип модема из автодетекта, то после очередной перепрошивки и сброса настроек к заводским, что очень рекомендовано, тут же возникнет поток сообщений, что поломался доступ ко всем cdma модемам которые раньше работали из коробки.
Вот если бы Вы предложили алгоритм как cdma от wcdma отличать в автодетекте.
Резонно.
Тогда предлагаю так: если модема нет явным образом в списке, тип модема определяется как '?', после чего ppp/dial при выборе чат-скрипта начинает ориентироваться на выбор сделанный в веб интерфейсе.
Тогда известные модемы действительно продолжат работать из коробки, а неизвестные как раньше требовали конфигурации, так и будут требовать, но в этом случае конфигурирование сведется к выбору типа модема.
Ещё на сегодня ИМХО актуально добавить в автодетект определение провайдера со всеми его настройками по симке.
Тут есть минимум один подводный камень: в некоторых странах некоторые провайдеры в зависимости от apn/login начинают тарифицировать соединение по разным тарифным планам. И есть шанс, что у кого-то такая автоматика сожрет все деньги...
Но ИМХО это пока рано обсуждать.
dlukanidin
16-01-2014, 19:12
Резонно.
Тогда предлагаю так: если модема нет явным образом в списке, тип модема определяется как '?', после чего ppp/dial при выборе чат-скрипта начинает ориентироваться на выбор сделанный в веб интерфейсе.
Тогда известные модемы действительно продолжат работать из коробки, а неизвестные как раньше требовали конфигурации, так и будут требовать, но в этом случае конфигурирование сведется к выбору типа модема.
Тут есть минимум один подводный камень: в некоторых странах некоторые провайдеры в зависимости от apn/login начинают тарифицировать соединение по разным тарифным планам. И есть шанс, что у кого-то такая автоматика сожрет все деньги...
Но ИМХО это пока рано обсуждать.
А чем Ваше предложение меняет ситуацию? Все равно ведь работать перестанут.
Ну насчет тарифного плана это уже явная ответственность пользователя указать параметры от оплаченного тарифа, а вот избавить его от обязанности искать на сайте провайдера стандартные параметры соединения для его симки было бы неплохо. Правда тут похожая коллизия возникает, автоматика будет затирать данные пользователя и вопрос как это удобно и понятно совместить друг с другом.
P.S. Кстати Ваш модем добавлен.
А чем Ваше предложение меняет ситуацию? Все равно ведь работать перестанут.
0. Вообще, если сбросить на заводские настройки, то WAN Connection Type ставиться в "Automatic IP" и модем перестает работать совсем.
Поэтому дальше пойдет речь о том, чтобы настраивалось теми же настройками что и раньше". Пойдем по кейсам:
1. GPRS modem (и приравненные):
В веб интерфейсе в качетстве "Modem type" по умолчанию стоит "GPRS/UMS/LTE", и если модем не известен прошивке, то будет взято именно это значение. И все продолжит работать как раньше.
Перестанет работать только один вариант: когда модем не в списке, а человек в качестве типа модема указал CDMA. На мой взгляд в данном случае резонно было бы переложить ответсвенность на пользователя, при переконфигурации указать правильный тип модема.
2. CDMA модем.
Если модем в списке, то все работает как раньше
Если модем не в списке, но без ошибок съедает инит-строку от GPRS модемов, то все продолжает работать как раньше, ибо "Modem type" по умолчанию стоит "GPRS/UMS/LTE".
Если модем не в списке, но выдает ошибку от инит-строки от GPRS модемов, то простая установка "Modem type" в "CDMA" делает этот модем работоспособным. При этом если человек воспроизведет конфигурацию с отключенным автодетектом, то все тоже продолжит работать.
Резюме. При добавлении для неопознанных устройств типа модема '?' который обрабатывается ppp/dial как "взять тип модема из веб интерфейса", мы получаем неработоспособоность неуказанных в списке GPRS модемов при указании типа модема CDMA, и получаем работоспособность из коробки для части CDMA модемов отсутствующих в списке, при указании только правильного типа модема, и без указания хардверных настроек которые и так автоматически определяются успешно.
По моему одно другого стоит.
P.S. Кстати Ваш модем добавлен.
Это хорошо, спасибо
dlukanidin
17-01-2014, 11:47
0. Вообще, если сбросить на заводские настройки, то WAN Connection Type ставиться в "Automatic IP" и модем перестает работать совсем.
Поэтому дальше пойдет речь о том, чтобы настраивалось теми же настройками что и раньше". Пойдем по кейсам:
1. GPRS modem (и приравненные):
В веб интерфейсе в качетстве "Modem type" по умолчанию стоит "GPRS/UMS/LTE", и если модем не известен прошивке, то будет взято именно это значение. И все продолжит работать как раньше.
Перестанет работать только один вариант: когда модем не в списке, а человек в качестве типа модема указал CDMA. На мой взгляд в данном случае резонно было бы переложить ответсвенность на пользователя, при переконфигурации указать правильный тип модема.
2. CDMA модем.
Если модем в списке, то все работает как раньше
Если модем не в списке, но без ошибок съедает инит-строку от GPRS модемов, то все продолжает работать как раньше, ибо "Modem type" по умолчанию стоит "GPRS/UMS/LTE".
Если модем не в списке, но выдает ошибку от инит-строки от GPRS модемов, то простая установка "Modem type" в "CDMA" делает этот модем работоспособным. При этом если человек воспроизведет конфигурацию с отключенным автодетектом, то все тоже продолжит работать.
Резюме. При добавлении для неопознанных устройств типа модема '?' который обрабатывается ppp/dial как "взять тип модема из веб интерфейса", мы получаем неработоспособоность неуказанных в списке GPRS модемов при указании типа модема CDMA, и получаем работоспособность из коробки для части CDMA модемов отсутствующих в списке, при указании только правильного типа модема, и без указания хардверных настроек которые и так автоматически определяются успешно.
По моему одно другого стоит.
Это хорошо, спасибо
Извините, я ничего не понял.
Скрипт в любом случае берёт значения из nvram. Туда эти значения заносятся изначально из установленных по умолчанию в прошивке (отсутствующее значение это тоже значение) и меняются либо из морды, либо, если включена автоматика, при подключении устройства исходя из некоторой логики. При этом в автомате бОльшая часть параметров берётся из базы модемов, для неизвестных модемов делается попытка определить порт данных и всё. Никакие драйвера на тот момент ещё не загружены и общение с модемом не возможно.
Мне понятно желание сделать недоступным для редактирования параметр типа модема, если включен автомат, в котором он устанавливается. Более того это наверное правильно.
Считаю неправильным вывести из автомата тип модема, т.к. это существенная характеристика именно железки и без неё автоматика станет ущербной, т.к. даже для модемов из базы будет требоваться ручная настройка.
Если у Вас есть желание что-то поменять, я бы предложил либо подготовить ваш вариант прошивки, либо изложить Ваше видение алгоритма работы этой ветки, но в более формализованом виде. Т.е. значения по умолчанию, что где когда и кто меняет по происходящим событиям. Такую развёрнутую блок схему с пояснениями.
Приведённое Вами выше изложение ИМХО недостаточно для понимания.
Считаю неправильным вывести из автомата тип модема, т.к. это существенная характеристика именно железки и без неё автоматика станет ущербной, т.к. даже для модемов из базы будет требоваться ручная настройка.
Предлагается следующее:
Для модемов _НЕ_ВХОДЯЩИХ_ в список из rc/usbmodem.h выдавать отдельный тип '?', и модифицировать скрипт ppp/dial так, чтобы при типе ? тип модема определялся по тому значению которое установлено в веб интерфейсе (если я ничего не путаю, выбор типа модема в веб интерфейсе храниться в отдельной переменной в nvram на котору автоматика не действует)
В результате для всех модемов которые есть в списке все будет работать как раньше.
Для GSM модемов не из списка будет происходить fallback к дефолтному значению W, если в nvram веб-интерфейса ничего про тип модема не сказано
А для CDMA модемов не из списка тип которых правильно указан в интерфейсе -- все начнет работать без указания хардверных нюансов в конфигурации.
Если у Вас есть желание что-то поменять, я бы предложил либо подготовить ваш вариант прошивки, либо изложить Ваше видение алгоритма работы этой ветки, но в более формализованом виде. Т.е. значения по умолчанию, что где когда и кто меняет по происходящим событиям. Такую развёрнутую блок схему с пояснениями.
Приведённое Вами выше изложение ИМХО недостаточно для понимания.
OMG. Хорошо попробую.
Если у Вас есть желание что-то поменять, я бы предложил либо подготовить ваш вариант прошивки, либо изложить Ваше видение алгоритма работы этой ветки, но в более формализованом виде. Т.е. значения по умолчанию, что где когда и кто меняет по происходящим событиям. Такую развёрнутую блок схему с пояснениями.
Приведённое Вами выше изложение ИМХО недостаточно для понимания.
Чтобы быть максимально точным, уточняющий вопрос.
Я в nvram вижу две переменные:
1. wan0_modem_type
2. wan_modem_type
На первую из них автодетект влияет напрямую.
Во второй записано ровно то, что выбрано в веб интерфейсе.
Каков их идейный смысл?
Чтобы быть максимально точным, уточняющий вопрос.
Я в nvram вижу две переменные:
1. wan0_modem_type
2. wan_modem_type
На первую из них автодетект влияет напрямую.
Во второй записано ровно то, что выбрано в веб интерфейсе.
Каков их идейный смысл?
wan_ - настройки из интерфейса.
wan0_ ... wan255 - конкретные каналы WAN со своими настройками.
wan_ - настройки из интерфейса.
wan0_ ... wan255 - конкретные каналы WAN со своими настройками.
Можем ли мы в ppp/dial написать что-то вроде:
$type = get_nvram(wan[N]_modem_type)
if ($type == '?') $type = get_nvram(wan_modem_type)
// разумеется речь тут идет о неком псевдокоде, а не bash скрипте...
Не нарушит ли это каких-то идейных моментов?
dlukanidin
19-01-2014, 11:47
Можем ли мы в ppp/dial написать что-то вроде:
$type = get_nvram(wan[N]_modem_type)
if ($type == '?') $type = get_nvram(wan_modem_type)
// разумеется речь тут идет о неком псевдокоде, а не bash скрипте...
Не нарушит ли это каких-то идейных моментов?
Причём здесь идейные моменты? У Вас есть идея, реализуйте её и представьте результат, если возможно, то и с описанием почему именно так по Вашему мнению правильно.
А все моменты будут уже потом.
Причём здесь идейные моменты? У Вас есть идея, реализуйте её и представьте результат, если возможно, то и с описанием почему именно так по Вашему мнению правильно.
А все моменты будут уже потом.
Давайте начну с описания.
У нас есть:
autodetected_modem_type, который определяет rc/usbmodem.c
wan0_modem_type переменная в nvram в которую он попадает.
wan_modem_type переменная в nvram которая отображает выбор типа модема в веб интерфейсе.
autodetected_modem_type равен С или W для модемов в списке из rc/usbmodem.h
и равен '?' для модемов не из списка.
ppp/dial работает с этим следующем образом
$type = wan0_modem_type;
if ($type == '?')
{
$type = wan_modem_type;
}
choose_chatscript($type)
Таким образом для модемов из списка все будет работать как работало раньше,
А для модемов не из списка, у пользователя появится возможность влиять на выбор типа чат-скрипта путем выбора настройки в веб-интерфейсе, даже при включенном автодетекте.
// На тему что будет если память была очищена и в нее ничего не было записано: условная функция choose_chatscript по факту в ppp/dial устроен так, что если туда передается не 'C' и не 'USR' то оно начинает работать как 'W'
Далее пошел таки собирать toolchain на дебиан. Если против изложенной логики есть возражения, то поставьте меня в извеснтость.
Подскажите пожалуйста удалось кому-нибудь заставить данный девайс работать в режиме модема
на текущей версии прошивки энтузиастов ? Он определяется в режиме USB over Ethernet (ASUS RT-N16,
прошивка 1.9.2.7-rtn-r5438) - но любые дальнейшие попытки задействовать его в этом устройстве к успеху не
привели. В данном устройстве для меня важно наличие порта внешней антенны. Раздавать интернет через
встроенный в него беспроводной роутер я не хочу. Идеальный вариант заставить работать его в качестве модема
но вот как ?
http://4pda.ru/forum/index.php?showtopic=402313&st=280
Подскажите пожалуйста удалось кому-нибудь заставить данный девайс работать в режиме модема
на текущей версии прошивки энтузиастов ? Он определяется в режиме USB over Ethernet (ASUS RT-N16,
прошивка 1.9.2.7-rtn-r5438) - но любые дальнейшие попытки задействовать его в этом устройстве к успеху не
привели. В данном устройстве для меня важно наличие порта внешней антенны. Раздавать интернет через
встроенный в него беспроводной роутер я не хочу. Идеальный вариант заставить работать его в качестве модема
но вот как ?
Если в режиме USB over Ethernet определяется, то надо дальше смотреть, что происходит. Обычно у подобных устройств есть встроенный dhcp-сервер, который выдаёт адрес. Но реализован он может быть криво. Потому возможно, что интерфейс остаётся без адреса. Тогда можно просто прописать на интерфейс usb0 необходимые адреса, прописать шлюз и проверить работу.
Добрый день,
имею мопед huawei e1550 (не пинать сильно, достался на халяву).
Использую его как мопед и как кард-ридер, определяется все нормуль, но вот в чем засада:
с роутера все работает нормуль, держится соединение (с вечера до утра ни одного разрыва), пинги стабильные на разные хосты, но стоит только пойти транзитному трафику ( ну скажем с ноута пинг запустить), так сразу рвется соединение.
В винде подключаю, модем работает нормально.
Пробовал менять ttl на 128, на 255 в mangle POSTROUTING, не помогает.
Да, модем мегафона, разлочен и перепрошит, симка от билайна.
Еще интересное наблюдение:
в виде tracert ya.ru показывает нормальные хопы по билайновской сети, а вот с роутера идут звездочки, при том, что пинг идет нормально
Есть интересные наблюдения. В домашней сети сейчас: приставка mag-250 (линукс на борту), дом.кинотератр (линукс на борту), ноутбук ( windows 7).
Если заблокировать в iptables форвардинг пакетов от ноута поднять 3G на роутере, то все работает без разрывов, и приставка и кинотеатр ходят в инет нормально. Если через пару минут снять блокировку ноута, то 3G соединение также не рвется. А вот если не блокировать ничего, то менее, чем через минуту 3G рвется. Получается, что сразу после поднятия 3G транзитные пакеты от ноута каким-то неведомым образом укладывают канал.
WoolF911
13-02-2015, 19:59
Прошу помочь сменить TTL на роутере Asus RT-N16, версия прошивки 1.9.2.7-rtn-r5646.
Дело в том, что живу в таком месте, где с интернетом, мягко говоря, не очень. Проводного интернета нет. В итоге приобрёл USB-модем и подключил 4G интернет. Но провайдер сильно ограничивает скорость интернета, если интернет раздаётся, например, через роутер. TTL меньше стандартного -> интернет раздаётся -> ограничиваем скорость.
Я правда очень пытался найти решение в интернете, но ничего актуального не нашёл. Также пробовал сделать как описано в F.A.Q. http://wl500g.info/showthread.php?2391-FAQ-%D7%E0%F1%F2%EE-%E7%E0%E4%E0%E2%E0%E5%EC%FB%E5-%E2%EE%EF%F0%EE%F1%FB&p=26858#post26858 , но, как я понял, этот способ не работает в новых версиях прошивки.
USB-модем включён в роутеру, в настройках выбрано "WAN Connection Type: USB Modem".
Логи ifconfig из роутера:
[admin@WL-BCAEC5C484F0 root]$ ifconfig
br0 Link encap:Ethernet HWaddr BC:AE:C5:C4:84:F0
inet addr:192.168.1.1 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15556 errors:0 dropped:0 overruns:0 frame:0
TX packets:14935 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1728482 (1.6 MiB) TX bytes:12351629 (11.7 MiB)
eth0 Link encap:Ethernet HWaddr BC:AE:C5:C4:84:F0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2226 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:597661 (583.6 KiB)
Interrupt:4 Base address:0x2000
eth1 Link encap:Ethernet HWaddr BC:AE:C5:C4:84:F0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:15628 errors:0 dropped:0 overruns:0 frame:278257
TX packets:16221 errors:1 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1979313 (1.8 MiB) TX bytes:12635707 (12.0 MiB)
Interrupt:3 Base address:0x1000
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MULTICAST MTU:16436 Metric:1
RX packets:1066 errors:0 dropped:0 overruns:0 frame:0
TX packets:1066 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:455691 (445.0 KiB) TX bytes:455691 (445.0 KiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.134.60.220 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING MULTICAST MTU:1492 Metric:1
RX packets:10857 errors:0 dropped:0 overruns:0 frame:0
TX packets:11849 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:10171665 (9.7 MiB) TX bytes:1410103 (1.3 MiB)
vlan1 Link encap:Ethernet HWaddr BC:AE:C5:C4:84:F0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:2226 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:597661 (583.6 KiB)
vlan2 Link encap:Ethernet HWaddr BC:AE:C5:C4:84:F0
UP BROADCAST RUNNING 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:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
[admin@WL-BCAEC5C484F0 root]$
Возможно ли сменить TTL на новых версиях прошивки от энтузиастов?
update. Пробовал выполнять команду echo "65" > /proc/sys/net/ipv4/ip_default_ttl, но TTL всё-равно не сменился.
WoolF911
14-02-2015, 01:50
Смена MTU не помогает. Определяют именно по TTL.
Неужели никак TTL не поменять? Вроде Linux.
Смена MTU не помогает. Определяют именно по TTL.
Неужели никак TTL не поменять? Вроде Linux.
А пробовали и 64, и 128 выставлять, не помогает? :)
modprobe xt_HL
iptables -t mangle -A PREROUTING -j TTL --ttl-set 65
iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65
Да все можно сделать, если сначала почитать форум ;)
http://wl500g.info/showthread.php?17136-%CD%EE%E2%E0%FF-%EF%F0%EE%F8%E8%E2%EA%E0-1-9-2-7-d-rtn-%EE%F2-%FD%ED%F2%F3%E7%E8%E0%F1%F2%EE%E2-%E8-%CE%EB%E5%E3%E0&p=268230#post268230
https://upload.wikimedia.org/wikipedia/ru/a/ad/Netfilter-diagram-rus.png
WoolF911
14-02-2015, 17:20
Omega, не думаю, что есть разница, какое значение TTL поставить, если оно всё равно не применяется. Я правда очень старался найти решение, ввидел информацию о новых названиях модулей тут http://people.overclockers.ru/vGamBIT/17052/Izmenenie_TTL_paketov_na_proshivke_ot_entuziastov_ na_routere_D-Link_DIR-320/ и пробовал делать по расположенной там инструкции, но всё равно роутер при пинге показывает другие TTL значения, а не те, которые я поставил.
Пример:
[admin@WL-BCAEC5C484F0 root]$ cat /proc/sys/net/ipv4/ip_default_ttl
65
[admin@WL-BCAEC5C484F0 root]$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8): 56 data bytes
64 bytes from 8.8.8.8: seq=0 ttl=47 time=130.514 ms
64 bytes from 8.8.8.8: seq=1 ttl=47 time=119.105 ms
^C
--- 8.8.8.8 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 119.105/124.809/130.514 ms
[admin@WL-BCAEC5C484F0 root]$
Может быть дело в том, что у меня в настройках роутера, на вкладке "Internet Firewall" выключен "Firewall"?
Или может быть, у меня указан не правильный интерфейс? Потому что, если честно, я не особо понимаю куда эти правила нужно применять в моём случае. У меня указано vlan1, как и в той статье.
Содержимое файла /usr/local/sbin/post-firewall:
[admin@WL-BCAEC5C484F0 root]$ cat /usr/local/sbin/post-firewall
#!/bin/sh
iptables -t mangle -F
iptables -t mangle -I PREROUTING -i vlan1 -j TTL --ttl-set 65
iptables -t mangle -I POSTROUTING -o vlan1 -j TTL --ttl-set 65
[admin@WL-BCAEC5C484F0 root]$
Результат команды ifconfig я показывал.
1. Включить Firewall, иначе, конечно, ничего там работать не будет :rolleyes:
2. Скопировать данные команды, проверив потом наличие файлов :
mkdir -p /usr/local/sbin
echo "#!/bin/sh" >> /usr/local/sbin/pre-boot
echo "echo 128 > /proc/sys/net/ipv4/ip_default_ttl" >> /usr/local/sbin/pre-boot
echo "insmod xt_TTL" >> /usr/local/sbin/pre-boot
echo "insmod xt_HL" >> /usr/local/sbin/pre-boot
chmod +x /usr/local/sbin/pre-boot
echo "#!/bin/sh" >> /usr/local/sbin/post-firewall
echo "iptables -t mangle -F" >> /usr/local/sbin/post-firewall
echo "iptables -t mangle -I FORWARD -j TTL --ttl-set 128" >> /usr/local/sbin/post-firewall
flashfs save && flashfs commit && flashfs enable
reboot
3. Теперь все проходящие пакеты уже должны быть с ttl=128 :)
4. Проверить работу с мопедом на этом убогом провай-дыре
5. Радоваться скорости выше, чем на старом добром диалапе
Интерфейс на модеме должен быть ppp0
Можете попробовать и с ним тоже проверить
З.Ы. Вот еще народ борется с TTL на андроиде: ;)
http://4pda.ru/forum/index.php?showtopic=647126
http://www.opennet.ru/opennews/art.shtml?num=39643
Друзья, помогите плз
Подключил и настроил 3G модем Sprint u301, все работает, но есть одна проблема:
Если включить/перегрузить рутер с подключенным модемом, то он не грузится.
Приходится отключать модем, загружать/перегружать рутер и затем обратно подключать модем.
Кто сталкивался с подобной проблемой?
Не поленитесь - почитайте форум.
Если не грузится физически - не хватает питания на USB.
Если не стартует какой-то сервис, это можно лечить, но нужны логи.
Интерфейс на модеме должен быть ppp0
А как фиксировать ttl, если использовать Ethernet_over-USB?
Парни, подскажите а как "запереть" модем исключительно на 3G?? можно так сделать?
riselost
11-03-2016, 08:58
Ребята, не могу поднять на прошивке этой 3G модем Haier CE81b с RUIM карточкой.
Это возможно как-то сделать? Роутер WL500gpv2. Определение модема пишет что это
1.2 201e 10f8 W 3 2 Qualcomm, Incorporated Qualcomm CDMA Technologies MSM. USB PPP
Log пустой. Можно ли помочь моей беде? :(
Model Vendor 3G Standard Default Id Modem Id User Modem Storage Diag Protocol
CE81B Smartfren CDMA EV-DO Rev.A 05c6:f000 201e:10f8 2 3 4 0 serial
https://www.dd-wrt.com/wiki/index.php/3G_/_3.5G#Haier
Добрый день.
Хотел поставить более свежую версию r7470M, но перестал подключаться 3G модем. Путем подбора опустился на r4645, на нем 3G нормально работает.
В чем может быть проблема и можно ли её решить?
Логи во вложениях
10247
10248
10249
10250
10251
(Конденсаторы все перепаяны, как в коробке так и в БП)