PDA

Bekijk de volledige versie : "Обвязка" 3G/4G и CDMA модемов на прошивке энтузиастов



Pages : 1 2 3 [4] 5

TReX
20-09-2010, 08:13
А практически: модемы от хуявея, в USB2.0 Only либо вообще не работают, либо их глючит не па деццки :mad:


Именно Huawei E1750, именно USB2.0 only, прекрасно все работает, без отключения ZeroCD, и на двух активных USB удлинителях по 5м. В вашей ситуации я думаю стоит сказать спасибо вашему DLink )

sat62ru
20-09-2010, 13:30
Дайте, пожалуйста, ссылку на последнюю стабильную прошивку для Asus WL-500gp v2. В настоящее время установлена прошивка 1969.

Omega
20-09-2010, 14:32
Дайте, пожалуйста, ссылку на последнюю стабильную прошивку для Asus WL-500gp v2.
В настоящее время установлена прошивка 1969.

http://wiki.vectormm.net/index.php/%D0%9A%D0%B0%D0%BA_%D0%BF%D1%80%D0%BE%D1%88%D0%B8% D1%82%D1%8C_%D0%BC%D0%B0%D1%80%D1%88%D1%80%D1%83%D 1%82%D0%B8%D0%B7%D0%B0%D1%82%D0%BE%D1%80#.D0.93.D0 .B4.D0.B5_.D0.B2.D0.B7.D1.8F.D1.82.D1.8C_.D0.BD.D1 .83.D0.B6.D0.BD.D1.83.D1.8E_.D0.BF.D1.80.D0.BE.D1. 88.D0.B8.D0.B2.D0.BA.D1.83_.D0.BE.D1.82_.D1.8D.D0. BD.D1.82.D1.83.D0.B7.D0.B8.D0.B0.D1.81.D1.82.D0.BE .D0.B2 :cool:

sat62ru
20-09-2010, 16:46
Omega
Спасибо, что откликнулись, но я спрашиваю, не где взять прошивку, а какую выбрать. За последнее время появилось множество новых прошивок и хотелось бы установить ту, которая зарекомендовала себя у пользователей.

lly
20-09-2010, 18:20
Из разряда "а знаете ли вы, что..."

В ядре 2.6 можно добавить на ходу новый идентификатор модема драйверам usb-serial, option

echo “19d2 ffed” > /sys/bus/usb-serial/drivers/option1/new_id

TReX
20-09-2010, 19:09
Omega
Спасибо, что откликнулись, но я спрашиваю, не где взять прошивку, а какую выбрать. За последнее время появилось множество новых прошивок и хотелось бы установить ту, которая зарекомендовала себя у пользователей.

)) Не успевают они себя зарекомендовать, обновление благодоря усилиям разработчиков идет очень быстро и в правильную сторону. Например с 1986 по 2010 на ядре RTN на моем WL-500GpV1 используемом для работы с модемами только на прошивках 2084, 2091, 2105 (исправленно в 2010) наблюдалась срабатывание INADYN со второго раза, в остальном претензий никаких... Так что ставить можно последнюю )

Omega
20-09-2010, 20:21
Omega
Спасибо, что откликнулись, но я спрашиваю, не где взять прошивку, а какую выбрать. За последнее время появилось множество новых прошивок и хотелось бы установить ту, которая зарекомендовала себя у пользователей.
Ну вот почему-то все хотят получить всё готовенькое на блюдечке с золотой каёмочкой ... :)
Вот возьмите и протестируйте последние прошивки на стабильность работы ... ;)
А потом расскажите здесь всем об результатах тестирования ... :cool:

З.Ы. Халяве - бой

Omega
20-09-2010, 20:29
Из разряда "а знаете ли вы, что..."

В ядре 2.6 можно добавить на ходу новый идентификатор модема драйверам usb-serial, option

echo “19d2 ffed” > /sys/bus/usb-serial/drivers/option1/new_id

Энто очень радовает нас ... :)
Значит, скоро можно будет добавить поддержку новых модемов ... ;)

Iguana
20-09-2010, 20:58
Именно Huawei E1750, именно USB2.0 only, прекрасно все работает, без отключения ZeroCD, и на двух активных USB удлинителях по 5м. В вашей ситуации я думаю стоит сказать спасибо вашему DLink )Тут эта, цыфири чуть другие :rolleyes: у мну Е1690 ;)
Huawei славится глюкавостью своей продукции - тот же Е220 по USB порту USB1.1 хотя системе он этого не сообщает, зато его дров, тихонько так, на 1.1 работает... Выяснилась данная "фича" несколько лет назад, когда тестировался HSDPA 7.2 mbps (Huawei заапгрейдил Е220 до поддержки 7,2 mbps), а скорость в DL (DownLink) больше 5 mbps никак не поднималась...
Е1690 на днях постараюсь проверить на gpv2 и, если будет время, на RT-N16...

Omega
20-09-2010, 21:30
Тут эта, цыфири чуть другие :rolleyes: у мну Е1690 ;)
Предлагается обсуждение 3g свистков и торрентов перенести в соответствующии профильные темы ... :cool:

З.Ы. Народ уже совсем обленился -- даже первый пост в теме не может прочитать, гонит сплошной оффтоп ... ;)

sat62ru
21-09-2010, 05:21
TReX
Cпасибо за ответ.
Omega
Результаты моего тестирования будут мало интересны для пользователей, т.к. использую роутер для очень ограниченных целей. Совместная работа с 3G модемом и раздача интернета по дому.

lukavla
26-09-2010, 19:02
Прошил роутер последней прошивкой "WL500gpv2-1.9.2.7-d-r1825.trx", а как теперь привязать модем для работы со скайлинком ума не приложу:eek:, подскажите пожалуйста

VicSer
26-09-2010, 19:10
подскажите пожалуйста

Описание настройки тут (http://wiki.vectormm.net/index.php/%D0%9A%D0%B0%D0%BA_%D0%BD%D0%B0%D1%81%D1%82%D1%80% D0%BE%D0%B8%D1%82%D1%8C_3G/CDMA_%D0%BC%D0%BE%D0%B4%D0%B5%D0%BC)

lukavla
26-09-2010, 19:21
у меня модем EDVO а что за поля APN и Dial Number и где прописывать номер дозвона

VicSer
26-09-2010, 19:45
у меня модем EDVO а что за поля APN и Dial Number и где прописывать номер дозвона

1. "Dial Number" - это и есть номер дозвона.
2. "Modem type" поставьте в Dialup.

lukavla
26-09-2010, 20:10
подскажите а для настройки под скайлин нужно указывать номер дозвона, или он прописан в прошивки...

VicSer
26-09-2010, 20:16
подскажите а для настройки под скайлин нужно указывать номер дозвона, или он прописан в прошивки...

Указываете:
Номер дозвона - #777
Имя пользователя - mobile
Пароль - internet

lukavla
27-09-2010, 09:36
спасибо за ответы все нормально, для skylinka достаточно выбрать модем EDVO и прописать имя и пароль, все работает. Не подскажете как сбрасывать роутер через веб интерфейс, ну на случай если модем подвиснет...

relaxmen
27-09-2010, 09:57
В наличии ASUS WL-520 gu и USB модем Билайн HUAWEI E1550

rss
27-09-2010, 12:27
В наличии ASUS WL-520 gu и USB модем Билайн HUAWEI E1550

http://wiki.vectormm.net/index.php/Как_настроить_3G/CDMA_модем
http://wiki.vectormm.net/index.php/Особенности_Huawei

rss
27-09-2010, 12:27
спасибо за ответы все нормально, для skylinka достаточно выбрать модем EDVO и прописать имя и пароль, все работает. Не подскажете как сбрасывать роутер через веб интерфейс, ну на случай если модем подвиснет...

Status/Disconnect, Connect

relaxmen
27-09-2010, 14:18
http://wiki.vectormm.net/index.php/Как_настроить_3G/CDMA_модем
http://wiki.vectormm.net/index.php/Особенности_Huawei

Спасибо! Попробую разобраться! Какую прошивку лучше поставить?

Iguana
27-09-2010, 14:29
Спасибо! Попробую разобраться! Какую прошивку лучше поставить?Естественно самую свежую (от энтузиастов :D)

Venya
27-09-2010, 14:41
Приветствую всех!
Вопрос: можно ли настроить на роутере (asus wl-500gp v2) одновременно работу торрент-клиента и 3g модема (мегафон-модем Huawei E220), через который и будут качаться торренты на подключенный через usb жесткий диск?
На данный момент на роутере чешская прошивка, интернет работает нормально. Очень хотелось бы использовать 3g модем для скачки торрентов без участия компа!
Если так можно - опишите пожалуйста подробно как это сделать, т.к. я не силен в этих вопросах!
Спасибо большое за ответы!

TReX
27-09-2010, 15:24
Приветствую всех!
Вопрос: можно ли настроить на роутере (asus wl-500gp v2) одновременно работу торрент-клиента и 3g модема (мегафон-модем Huawei E220), через который и будут качаться торренты на подключенный через usb жесткий диск?
На данный момент на роутере чешская прошивка, интернет работает нормально. Очень хотелось бы использовать 3g модем для скачки торрентов без участия компа!
Если так можно - опишите пожалуйста подробно как это сделать, т.к. я не силен в этих вопросах!
Спасибо большое за ответы!

Не плодим темы, а читаем форум и

http://wiki.vectormm.net/index.php/Как_настроить_3G/CDMA_модем
http://wiki.vectormm.net/index.php/Особенности_Huawei

relaxmen
28-09-2010, 07:34
[QUOTE=TReX;211491]Не плодим темы, а читаем форум и

Прошу прощения!:rolleyes: Читал два дня, отчаялся и попросил помощи!!:)

Iguana
28-09-2010, 12:19
Не плодим темы, а читаем форум...

Прошу прощения!:rolleyes: Читал два дня, отчаялся и попросил помощи!!:)

Значит читаем ещё раз, особенно тему "Для новичков и ленивых" (http://wl500g.info/showthread.php?p=203971#post203971)
А также "Установка программ для чайника" (http://wl500g.info/showthread.php?t=21889) - проще некуда: в первом посте темы всё доступно, по шагам, расписано...
Е220 "заводится" с пол-пинка на дефолтных настройках (подключил - заработало :p)...
И ещё, проша должна быть от Энтузиастов и не моложе r1825 :D

pavlp
05-10-2010, 21:01
Возникла необходимость подключить к wl500gpv2 два устройства, использующих модуль usbserial:
1. 3g модем zte mf626
2. и переходник на ком-порт ресивера, использующий ftdi

Переходник подключается нормально, а вот при попытке подключить 3г-модем командой:

insmod usbserial vendor=0x19d2 product=0x31 maxSize=4096
ругается и выдает, что модуль usbserial уже запущен:

a module named usbserial already exists

Судя по поиску на форуме единственным предлагаемым вариантом решения является распайка ком-порта на плате роутера.

Но все же хотелось бы прояснить окончательно, нет ли какого программного способа заставить работать эти два устройства на USB-портах?

LnrMn
06-10-2010, 06:07
Для FTDI есть отдельный драйвер ftdi_sio.o . Правда, не знаю как он работает, не пробовал.

rss
06-10-2010, 06:21
Возникла необходимость подключить к wl500gpv2 два устройства, использующих модуль usbserial:
1. 3g модем zte mf626
2. и переходник на ком-порт ресивера, использующий ftdi

Переходник подключается нормально, а вот при попытке подключить 3г-модем командой:

insmod usbserial vendor=0x19d2 product=0x31 maxSize=4096
ругается и выдает, что модуль usbserial уже запущен:

a module named usbserial already exists

Судя по поиску на форуме единственным предлагаемым вариантом решения является распайка ком-порта на плате роутера.

Но все же хотелось бы прояснить окончательно, нет ли какого программного способа заставить работать эти два устройства на USB-портах?

А что, встроенные в прошивку средства модем вместе с переходником не поднимают? usbserial вообще-то не всегда требует подключения с указанием VID : PID. (говорю о текущих прошивках)

далее в тему: http://wl500g.info/showthread.php?t=22275

pavlp
06-10-2010, 17:28
Для FTDI есть отдельный драйвер ftdi_sio.o . Правда, не знаю как он работает, не пробовал.

Спасибо, совет насчет ftdi_sio помог. Удалось завести и 3г-модем и переходник одновременно.

AndreyUA
06-10-2010, 19:31
Было бы неплохо, если бы в веб интерфейсе добавить опцию загрузки модулей pl2303, ftdi_sio автоматом и определение кабеля по vid/pid Для начала хотя бы добавить в rc автостарт этих модулей и опцию в веб интерфейсе. Возможно перенести из 3G/CDMA Modem - Additional parameters в Advanced Services Configuration и из dial скрипта в rc. rss, как вы на это смотрите?

rss
06-10-2010, 19:49
Было бы неплохо, если бы в веб интерфейсе добавить опцию загрузки модулей pl2303, ftdi_sio автоматом и определение кабеля по vid/pid Для начала хотя бы добавить в rc автостарт этих модулей и опцию в веб интерфейсе. Возможно перенести из 3G/CDMA Modem - Additional parameters в Advanced Services Configuration и из dial скрипта в rc. rss, как вы на это смотрите?

В принципе, можно повесить загрузку драйверов на hotplug, но тогда нужны идентификаторы VID : PID (отдельного класса USB у них нет). Либо сделать безусловную загрузку драйверов, если выбрано в интерфейсе.

Относительно вынесения загрузки этих драйверов из dial - не могу сказать, на сколько это необходимо. Если нужно подключать RS232-устройства при отсутствии модема, то это целесообразно. Вопрос скорее к lly или theMIROn.

AndreyUA
06-10-2010, 20:36
Если нужно подключать RS232-устройства при отсутствии модема, то это целесообразно.Просто эти модули нужны не только для телефонов (кабелей для телефонов), но и usb-com
lly, theMIROn как вы смотрите на это?

lly
07-10-2010, 07:18
Просто эти модули нужны не только для телефонов (кабелей для телефонов), но и usb-com
lly, theMIROn как вы смотрите на это?
Если ты про кард-шаринг, то это не к нам. А для остального, модули наличествуют в прошивке и спокойно подгружаются в post-boot.

paradohh
11-10-2010, 19:17
Подключил к DIR-320 модем huawei E1550 настроил через веб морду на прошивке vampik'а под МТС Россия и заработало. Но иногда работать не хочет! :D Заходишь на модем и первая страница показывает состояние... дескать Disconnected и всё такое.

Лог во вложении. Ребут помогает. Удлинителей нет - E1550 единственное устройство. Модем подхватывает автоматом, руками в настройках вписывал только настройки провайдера (МТС). "Сидюк" и флэшка отключены.

Помогите разобраться пожалуйста

AndreyUA
11-10-2010, 19:40
Подключил к DIR-320 модем huawei E1550 настроил через веб морду на прошивке vampik'а под МТС Россия и заработало. Но иногда работать не хочет! :D Заходишь на модем и первая страница показывает состояние... дескать Disconnected и всё такое.

Лог во вложении. Ребут помогает. Удлинителей нет - E1550 единственное устройство. Модем подхватывает автоматом, руками в настройках вписывал только настройки провайдера (МТС). "Сидюк" и флэшка отключены.

Помогите разобраться пожалуйста
У вас похоже что-то с модемом или usb портом.

Fisherman
20-10-2010, 15:33
но это мы уже не проверим, сегодня вернул MCD-800 и взял MCD-650, просто вставил его и всё завелось само без лишних танцев на DIR320-1.9.2.7-d-r1924M.trx
В своё время поднималась тема, но закрылась ввиду отсутствия оборудования для опытов. Вобщем модем есть на руках и даже удалось запустить. Пляски с бубном конечно, но знаний чтобы конкретно сказать что добавить и куда нет, поэтому просто напишу процесс запуска как он есть. Удалось запустить на rtn-овских прошивках под wl500gv2 и dir-320. Под wl-евскими не получилось.
Вобщем после включения роутера видим то, что в приложенных логах.
Список устройств:
[admin@WL-E0CB4E7AB8E6 root]$ ls /dev/*
/dev/1-1 /dev/mtd2ro /dev/ptyp7 /dev/ttyp3
/dev/1-1.1 /dev/mtd3 /dev/ptyp8 /dev/ttyp4
/dev/console /dev/mtd3ro /dev/ptyp9 /dev/ttyp5
/dev/full /dev/mtd4 /dev/ptypa /dev/ttyp6
/dev/gpio /dev/mtd4ro /dev/ptypb /dev/ttyp7
/dev/kmem /dev/mtdblock0 /dev/ptypc /dev/ttyp8
/dev/kmsg /dev/mtdblock1 /dev/ptypd /dev/ttyp9
/dev/log /dev/mtdblock2 /dev/ptype /dev/ttypa
/dev/loop0 /dev/mtdblock3 /dev/ptypf /dev/ttypb
/dev/loop1 /dev/mtdblock4 /dev/random /dev/ttypc
/dev/loop2 /dev/null /dev/root /dev/ttypd
/dev/loop3 /dev/nvram /dev/stderr /dev/ttype
/dev/loop4 /dev/port /dev/stdin /dev/ttypf
/dev/loop5 /dev/ppp /dev/stdout /dev/urandom
/dev/loop6 /dev/ptmx /dev/tty /dev/usb1
/dev/loop7 /dev/ptyp0 /dev/ttyS0 /dev/usbdev1.1
/dev/mem /dev/ptyp1 /dev/ttyS1 /dev/usbdev1.2
/dev/mtd0 /dev/ptyp2 /dev/ttyS2 /dev/usbdev1.3
/dev/mtd0ro /dev/ptyp3 /dev/ttyS3 /dev/zero
/dev/mtd1 /dev/ptyp4 /dev/ttyp0
/dev/mtd1ro /dev/ptyp5 /dev/ttyp1
/dev/mtd2 /dev/ptyp6 /dev/ttyp2

На форуме автора usbmodeswitch нашлось вот такое решение: http://draisberghof.de/usb_modeswitch/bb/viewtopic.php?t=395&postdays=0&postorder=asc&highlight=mcd800&start=45
после которого появлсяется устройство /dev/ttyACM0.
Ну и соответственно правим /tmp/ppp/peers/dialup и мы в интернете.
Можно ли прикрутить эту "обвязку" в прошивке , чтобы в следующих релизах оно работало само ?

octor
20-10-2010, 17:34
доброго времени суток!

Есть проблема, которую очень хочется решить, возможно, кто-то сможет помочь.

Есть WL500g v2. с Вашей прошивкой, который поднимает инет через скайлинковский модем cmotech cnu680. Есть 3G роутер от Teltonika, который работает с инетом через Мегафон и имеет 2 внутренних интерфейса - Wi-Fi карту и стандартный эзернет порт. Внутри NAT который можно отключить, DHCP, порт-форвардинг и прочие плюшки. Работает явно на LInux, но доступа внутрь кроме как через веб-интерфейс нету. Теперь собственно вопрос:
можно ли сделать так, чтобы весь мой исходящий трафик заворачивался на скайлинк а весь входящий шел через 3G от меги? Ну то-есть примерно так: телтоника со статическим IP 10.0.1.2 (или любым другим) втыкается в WAN порт асуса, в него же (в асус) втыкается скайлинковский модем в USB порт и настраивается маршрутизация, которая гоняет пакеты нужным образом... Вот примерно так.
Для обслуживания этого шаманства планируется поднять прокси на рабочем сервере со статическим IP - тот постоянно висит в инете.
Опыт работы с Linux на уровне сильно начинающего, так-что сам пока не понимаю, как это настроить. Буду благодарен за любой "пинок" в нужную сторону. Ну а если кто-то поможет с конфигом - благодарности моей не будет предела ;-)


Заранее благодарен!

rss
20-10-2010, 20:40
На форуме автора usbmodeswitch нашлось вот такое решение: http://draisberghof.de/usb_modeswitch/bb/viewtopic.php?t=395&postdays=0&postorder=asc&highlight=mcd800&start=45
после которого появлсяется устройство /dev/ttyACM0.
Ну и соответственно правим /tmp/ppp/peers/dialup и мы в интернете.
Можно ли прикрутить эту "обвязку" в прошивке , чтобы в следующих релизах оно работало само ?

В принципе, можно добавить в Zero CD Configuration еще один пункт для ввода команды отключения руками (usb_modeswitch -I -v 1edf -p 6003 -u 2). Надо только подумать, как это аккуратнее ввести в веб-интерфейс.

PS: найденные решения проблем просьба заносить в http://wiki.vectormm.net/index.php/Поддерживаемые_3G/CDMA_модемы и соответствующие статьи по модемам

rss
21-10-2010, 19:13
На форуме автора usbmodeswitch нашлось вот такое решение: http://draisberghof.de/usb_modeswitch/bb/viewtopic.php?t=395&postdays=0&postorder=asc&highlight=mcd800&start=45
после которого появлсяется устройство /dev/ttyACM0.
Ну и соответственно правим /tmp/ppp/peers/dialup и мы в интернете.
Можно ли прикрутить эту "обвязку" в прошивке , чтобы в следующих релизах оно работало само ?

Поскольку универсальным сделать данный подход нельзя, предлагаю в группу параметров 3G/CDMA Modem - Additional parameters добавить дополнительное поле Device initial script, куда можно будет вписать любую команду или имя скрипта. Вызываться данный скрипт будет из hotplug.

Если других предложений не будет - сделаю на выходных.

Fisherman
22-10-2010, 12:19
Поскольку универсальным сделать данный подход нельзя, предлагаю в группу параметров 3G/CDMA Modem - Additional parameters добавить дополнительное поле Device initial script, куда можно будет вписать любую команду или имя скрипта. Вызываться данный скрипт будет из hotplug.

Если других предложений не будет - сделаю на выходных.
Единственно, после usb_modeswitch -I -v 1edf -p 6003 -u 2 интерфейс /dev/ttyACM0 появляется с задержкой пару секунд примерно, надо подумать как это учесть.

rss
22-10-2010, 18:28
Единственно, после usb_modeswitch -I -v 1edf -p 6003 -u 2 интерфейс /dev/ttyACM0 появляется с задержкой пару секунд примерно, надо подумать как это учесть.

Могу сделать ожидание завершения процесса, до момента которого не будет запускаться скрипт дозвона.
Тогда в данном случае надо будет сделать скрипт (размещенный в /usr/local/sbin), который не будет завершаться, пока не появится /dev/ttyACM0

Впрочем, надо бы проверить, не будет ли и так работать. Сейчас скрипт дозвона имеет некоторую внутреннюю задержку.

theMIROn
22-10-2010, 20:03
Просто эти модули нужны не только для телефонов (кабелей для телефонов), но и usb-com
lly, theMIROn как вы смотрите на это?
если сделать для этого чтото в web морде, то появится com девайс.
а дальше что?
поэтому, думаю, Лёня прав, post-boot спасет отцов русских демократий :)

UstasLancer
23-10-2010, 15:10
Добрый день!
Решил "подружить" два устройства... но что-то не выходит цветок каменный.

прошивка на роутере 1.9.2.7-d-r2174

"просто" через веб-интерфейс все совсем не работает

захожу телнетом, смотрю что происходит в системе при подключении модема:


Jan 1 03:19:26 kernel: hub.c: new USB device 01:03.0-1, assigned address 3
Jan 1 03:19:27 kernel: Vendor: SEMC Model: MMC Flash Card Rev: 0
Jan 1 03:19:27 kernel: Type: Direct-Access ANSI SCSI r
evision: 02
Jan 1 03:19:27 kernel: Attached scsi removable disk sda at scsi0, channel 0, id
0, lun 0
Jan 1 03:19:27 kernel: sda: Waiting for disc 0 to settle.
Jan 1 03:19:27 kernel: SCSI device sda: 348161 512-byte hdwr sectors (178 MB)
Jan 1 03:19:27 kernel: sda: test WP failed, assume Write Enabled
Jan 1 03:19:27 kernel: /dev/scsi/host0/bus0/target0/lun0: p1
Jan 1 03:19:27 kernel: USB device connected to the SCSI subsystem
Jan 1 03:19:27 kernel: USB device disconnected from the SCSI subsystem

При этом в разделе Диагностической информации есть вот такие строчки:

Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 3
P: Vendor=0fce ProdID=d0cf Rev= 0.00
S: Manufacturer=Sony Ericsson
S: Product=Sony Ericsson MD300
S: SerialNumber=3534460204449130

может, что-то вообще не так делаю? подскажите, как "завести" модем? Помогите.

ОПСОС - билайн Москва

rss
23-10-2010, 15:32
При этом в разделе Диагностической информации есть вот такие строчки:

Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 3
P: Vendor=0fce ProdID=d0cf Rev= 0.00
S: Manufacturer=Sony Ericsson
S: Product=Sony Ericsson MD300
S: SerialNumber=3534460204449130

может, что-то вообще не так делаю? подскажите, как "завести" модем? Помогите.

ОПСОС - билайн Москва
Из этого раздела нужна строка I:

Если в разделе USB device location ID: по нажатию на кнопку view ничего, кроме заголовка таблицы не выдаётся, то сильно вероятно модем находится в режиме хранилища.

Подозреваю, что это еще один модем, который надо будет переключать специальной командой....

http://www.gentoo.ru/node/12849

UstasLancer
23-10-2010, 15:49
Исправляюсь: больше информации


I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 8 Ivl=255ms
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=02(comm.) Sub=00 Prot=00 MxPS=64 #Cfgs= 3
P: Vendor=0fce ProdID=d0cf Rev= 0.00
S: Manufacturer=Sony Ericsson
S: Product=Sony Ericsson MD300
S: SerialNumber=3534460204449130
C: #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)

USB device location ID: по нажатию на кнопку view вижу табличку с тремя строками:

Device path USB Location Info
/dev/usb/acm/0 1.0 Manufacturer="Sony Ericsson" Product="Sony Ericsson MD300"
/dev/usb/acm/1 1.0 Manufacturer="Sony Ericsson" Product="Sony Ericsson MD300"
/dev/usb/acm/2 1.0 Manufacturer="Sony Ericsson" Product="Sony Ericsson MD300"

rss
23-10-2010, 16:07
USB device location ID: по нажатию на кнопку view вижу табличку с тремя строками:

Device path USB Location Info
/dev/usb/acm/0 1.0 Manufacturer="Sony Ericsson" Product="Sony Ericsson MD300"
/dev/usb/acm/1 1.0 Manufacturer="Sony Ericsson" Product="Sony Ericsson MD300"
/dev/usb/acm/2 1.0 Manufacturer="Sony Ericsson" Product="Sony Ericsson MD300"

Значит есть шанс подобрать соответствующий канал

UstasLancer
23-10-2010, 16:19
как это сделать? как заставить модем работать?

rss
23-10-2010, 16:34
как это сделать? как заставить модем работать?
Попробовать последовательно выбирать канал в этой таблице, после чего сохранять и перезагружать маршрутизатор. Далее - см. лог подключения

UstasLancer
23-10-2010, 16:36
так при выборе в этой таблице всегда выбирается 1.0 и все..

а где лог подключения смотреть?

rss
23-10-2010, 17:03
так при выборе в этой таблице всегда выбирается 1.0 и все..

а где лог подключения смотреть?


Не заметил, что значение везде 1.0...

Device path USB Location Info
/dev/usb/acm/0 1.0 Manufacturer="Sony Ericsson" Product="Sony Ericsson MD300"
/dev/usb/acm/1 1.0 Manufacturer="Sony Ericsson" Product="Sony Ericsson MD300"
/dev/usb/acm/2 1.0 Manufacturer="Sony Ericsson" Product="Sony Ericsson MD300"

Значит стираем строку в USB device location ID и подбираем значение в USB tts(ac) port

Лог подключения - Status & Log - PPP Chat Log

UstasLancer
23-10-2010, 18:12
менял параметр от 0 до 5.

и всегда в логе - пусто :(

еще идеи?

rss
23-10-2010, 18:31
менял параметр от 0 до 5.

и всегда в логе - пусто :(

еще идеи?

Начало тут:
http://wiki.vectormm.net/index.php/Как_настроить_3G/CDMA_модем

Далее надо очень внимательно смотреть, что происходит на каждом шаге подключения. Рекомендую посмотреть как на linux подключается этот модем.
Текст нашего скрипта дозвона - http://code.google.com/p/wl500g/source/browse/trunk/cdma/files/usr/ppp/uni/dial

PS: для решения проблем здесь надо прилагать все логи (Diagnostic Info, syslog, Chat Log).

UstasLancer
23-10-2010, 19:33
начал делать, как описано в wiki

через веб-интерфейс не прошло (как и ранее).

зато дошел до usb_modeswitch и вот что нашел


################################################## ######
# Sony Ericsson MD300
#
# Contributor: Betavine Project

;DefaultVendor= 0x0fce
;DefaultProduct=0xd0cf

;TargetClass=0x02

;DetachStorageOnly=1
;Configuration=3


теперь как эти знания применить?

сам чуть ковырнул.. и вот какие результаты:


[admin@wl500gP root]$ usb_modeswitchusb_modeswitch -v 0x0fce -p 0xd0cf -C 0x02 -
d 1
-sh: usb_modeswitchusb_modeswitch: not found
[admin@wl500gP root]$ usb_modeswitch -v 0x0fce -p 0xd0cf -C 0x02 -d 1

Looking for target devices ...
No devices in target mode or class found
Looking for default devices ...
Found devices in default mode or class (1)
Accessing device 002 on bus 001 ...
Ambiguous Class/InterfaceClass: 0x02/0x08
Using endpoints 0x05 (out) and 0x85 (in)
Using endpoints 0x05 (out) and 0x85 (in)
Inquiring device details; driver will be detached ...
Looking for active driver ...
OK, driver found ("")
Warning: driver is not usb-storage
Driver "" detach failed with error -5. Trying to continue
endpoint 5 size 31 timeout 0 Could not send INQUIRY message (error -1)

USB description data (for identification)
-------------------------
Manufacturer: Sony Ericsson
Product: Sony Ericsson MD300
Serial No.: 3534460204449130
-------------------------
Only detaching storage driver for switching ...
Looking for active driver ...
OK, driver found ("")
Warning: driver is not usb-storage
Driver "" detach failed with error -5. Trying to continue
-> Run lsusb to note any changes. Bye.

что неправильно сделал?

rss
24-10-2010, 16:43
начал делать, как описано в wiki

через веб-интерфейс не прошло (как и ранее).

зато дошел до usb_modeswitch и вот что нашел
...
что неправильно сделал?
На всё нужны логи!
В состав прошивки в принципе входит соответствующий файл с правилами для usb_modeswitch. Работает или нет - не знаю. Если он отработал, то должны появляться соответствующие устройства с классом ff. Если нет - будут устройства с классом 08. Повторный запуск usb_modeswitch ни к чему не приведет, если после первого уже произошло переключение.

rss
25-10-2010, 18:47
Единственно, после usb_modeswitch -I -v 1edf -p 6003 -u 2 интерфейс /dev/ttyACM0 появляется с задержкой пару секунд примерно, надо подумать как это учесть.

Добавлено в r2309

В строку скрипта можно вписывать параметры. Также понимает $VID и $PID, подставляя текущие значения, для которых был вызван hotplug.

Fisherman
26-10-2010, 16:15
Добавлено в r2309

В строку скрипта можно вписывать параметры. Также понимает $VID и $PID, подставляя текущие значения, для которых был вызван hotplug.
Для rtт-2308 лежит последняя. Там такой фичи нет. В d-2309 фича появилась, но как я уже писал, там usb_modeswitch с указанными параметрами не приводит к появлению каких-либо адекватных девайсов, куда можно кидать модемные команды.

rss
01-11-2010, 18:41
Для rtт-2308 лежит последняя. Там такой фичи нет. В d-2309 фича появилась, но как я уже писал, там usb_modeswitch с указанными параметрами не приводит к появлению каких-либо адекватных девайсов, куда можно кидать модемные команды.

Теперь и в rt-n - r2313

TReX
01-11-2010, 19:24
Теперь и в rt-n - r2313

Еще немного и вашини стараниями к модемной части останется только одна претензия - кофе варить не умеет! :D

Спасибо за огромную проделанную работу по поддержке модемов)

Eko
07-11-2010, 12:18
Прошу помощи в след. ситуации. Прошивал данный девайс прошивкой от энтузиастов. На дефолтных настройках вбил APN и прочие настройки для модема. После подключения интернет можно использовать минуту-полторы, потом роутер виснет. К вебморде тоже обратиться не получается. Помогает только выключение питания, и потом всё по новой.
Что я делаю не так, подскажите. В Линуксе - ни в зуб ногой...

Enod
07-11-2010, 17:40
Есть DIR-320 с прошивкой 1.9.2.7-d-r2249M и модем e1550. Всё работает, но если нет активности, через несколько минут коннект рвётся (мегафон рвёт, или сам модем, хз). Как сделать, чтобы роутер инициировал активность с заданной частотой? Нужно для видеонаблюдения.
Просьба не пинать за тупой вопрос - ФАК курил, поиск юзал.

PS:
"Idle time before disconnect" - пробовал ставить "0", оставлять строку пустой.

Krevetka
07-11-2010, 18:23
как я понял, что модем Huawei e1550 поддерживается.
А как насчет e173 от Мегафона? Хочу его купить, но не уверен что он поддерживается прошивкой. Как считаете?

пробовал юзать поиск тут - нет ни одого упоминания о e173.

rss
07-11-2010, 19:45
Прошу помощи в след. ситуации. Прошивал данный девайс прошивкой от энтузиастов. На дефолтных настройках вбил APN и прочие настройки для модема. После подключения интернет можно использовать минуту-полторы, потом роутер виснет. К вебморде тоже обратиться не получается. Помогает только выключение питания, и потом всё по новой.
Что я делаю не так, подскажите. В Линуксе - ни в зуб ногой...

Если маршрутизатор виснет так, что ни веб-интерфейс, ни пинг на него не проходят - сильно вероятно проблемы в железе.


Есть DIR-320 с прошивкой 1.9.2.7-d-r2249M и модем e1550. Всё работает, но если нет активности, через несколько минут коннект рвётся (мегафон рвёт, или сам модем, хз). Как сделать, чтобы роутер инициировал активность с заданной частотой? Нужно для видеонаблюдения. В данном случае рвет соединение скорее всего провайдер. Следовательно надо сделать так, чтобы активность была постоянной. Например запустить скрипт, посылающий раз в минуту (10, 20 и т.д. секунд) ping на любой адрес.


как я понял, что модем Huawei e1550 поддерживается.
А как насчет e173 от Мегафона? Хочу его купить, но не уверен что он поддерживается прошивкой. Как считаете?

пробовал юзать поиск тут - нет ни одого упоминания о e173.
Проблема не в прошивке а в модеме. Если его можно переключить в режим управления AT-командами (и отключить ZeroCD, если есть), то заставить работать вполне возможно. См. отзывы о его использования на настольных линуксах.

Enod
08-11-2010, 06:33
В данном случае рвет соединение скорее всего провайдер. Следовательно надо сделать так, чтобы активность была постоянной. Например запустить скрипт, посылающий раз в минуту (10, 20 и т.д. секунд) ping на любой адрес.

Нет ли конкретного примера такого скрипта?

Iguana
08-11-2010, 06:57
Нет ли конкретного примера такого скрипта?



while [ true ]; do
ping -c1 8.8.8.8 > /dev/null # Пингуем один раз на Goggle
sleep 10 # 10-ать секунд пауза
done # и по новой

Данный цикл - бесконечный т. е. никогда не выйдет...

Smith John
08-11-2010, 21:23
Доброй ночи!

Прошу помощи в настройке роутера под связку Huawei E1550 + Мегафон

Прошивка на роутере от энтузиастов 1.9.2.7-d-r2310

Как уже писал товарищ ZyXELLL http://wl500g.info/showthread.php?p=215654 при подключении выдает следующую ошибку

Calling UMTS/GPRS
^BOOT:34284607,0,0,0,87

^STIN:0,0,0

^SRVST:1

^MODE:5,4

^SIMST:1

^SRVST:2

^RSSI:6

^RSSI:6

^RSSI:6
ATZ
OK
AT+CGDCONT=1,"IP","internet"
OK
ATD*99#
CONNECTchat: Jan 01 00:00:29 CONNECT
Script /tmp/ppp/peers/chat.sh finished (pid 151), status = 0x0
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/usb/tts/2
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
sent [LCP ConfReq id=0x1 <mru 1492> <asyncmap 0x0> <magic 0xb69c0ff2>]
LCP: timeout sending Config-Requests
Connection terminated.
Receive serial link is not 8-bit clean:
Problem: all had bit 7 set to 0
Modem hangup

а после этого следует постоянно другая ошибка

Calling UMTS/GPRS
^RSSI:6
ATZ
OK
AT+CGDCONT=1,"IP","internet"
OK
ATD*99#
NO CARRIERFailed (NO CARRIER)
Script /tmp/ppp/peers/chat.sh finished (pid 163), status = 0x6
Connect script failed

Если кто смог побороть данную проблему отзовитесь

Лог роутера в приложении

Smith John
10-11-2010, 19:17
Спасибо всем кто не помог! :D:mad:
Проблема решилась!

Вот если кому интересно выкладываю шаги которые я сделал
1. Перепрошил модем последней прошивкой 11.608.14.15.311.B418
взял с http://www.dc-files.com
PS: для разлочки может понадабиться код который можно сгенерировать по imei утилитой v4mpire_unlocker.exe можно найти в google

2. Перевел модем в режим только модем с помощью команды AT^U2DIAG=0
подробнее на http://wiki.vectormm.net

3. А также обновил роутер на последнюю прошивку 1.9.2.7-d-r2325
взято с ftp://core.dumped.ru/wl/

Всем удачи!

rss
10-11-2010, 20:06
Спасибо всем кто не помог! :D:mad:
Проблема решилась!

Вот если кому интересно выкладываю шаги которые я сделал
1. Перепрошил модем последней прошивкой 11.608.14.15.311.B418
взял с http://www.dc-files.com
PS: для разлочки может понадабиться код который можно сгенерировать по imei утилитой v4mpire_unlocker.exe можно найти в google

2. Перевел модем в режим только модем с помощью команды AT^U2DIAG=0
подробнее на http://wiki.vectormm.net

3. А также обновил роутер на последнюю прошивку 1.9.2.7-d-r2325
взято с ftp://core.dumped.ru/wl/

Всем удачи!

Спасибо за информацию. Если не сложно, просьба внести в соответствующую статью по модему на http://wiki.vectormm.net
Доступ на редактирование там открыт.

Dobkins
10-11-2010, 22:32
Добрый день!

К сожалению не нашел по этому модему советов.
Вопрос в следующем, есть WL500GP и Skylink USB модем ZTE5710.
Как их сдружить и на какой прошивке?
Сейчас стоит WL500gp-1.9.2.7-10-USB-1.71.trx, но там об этом модеме упоминания нет.. Что посоветуете?

rss
11-11-2010, 04:09
Добрый день!

К сожалению не нашел по этому модему советов.
Вопрос в следующем, есть WL500GP и Skylink USB модем ZTE5710.
Как их сдружить и на какой прошивке?
Сейчас стоит WL500gp-1.9.2.7-10-USB-1.71.trx, но там об этом модеме упоминания нет.. Что посоветуете?

Посоветую прочитать:
http://wiki.vectormm.net/index.php/Прошивка_энтузиастов
http://wiki.vectormm.net/index.php/Как_настроить_3G/CDMA_модем

kainwrk
11-11-2010, 05:48
Здравствуйте уважаемые форумчане!
Имею связку asus wl500gpv2 и huawei e150.
Пролазил форумы и настроил, по принципу подключения е1550 команды теже!
Модем определяется и подключается НО! Работает только в режиме edge...
Не понимаю почему так происходит! Подскажите пожалуйста!
На модеме горит красная лампочка. Не работает 3Г. Проверял рядом на компе подключается к 3Г.
Помогите пожалуйста! Заранее благодарен...

Все заработало по старому принципу, сломал и сделал все заново...
Спасибо

OlegEF
16-11-2010, 08:51
периодически отключается 3g свисток от мегафона, причем включение выключение (роутера, usb хаба) не помогает вернуть соединение (ни 3g, ни EDGE).

приходится втыкать свисток в ноутбук, устанавливать соединение, потом перетыкать обратно в хаб/роутер.

как правило такая процедура помогает. вот только хотелось бы что без таких танцев все работало.

в чем может быть проблема?

Iguana
16-11-2010, 10:19
периодически отключается 3g свисток от мегафона, причем включение выключение (роутера, usb хаба) не помогает вернуть соединение (ни 3g, ни EDGE).

приходится втыкать свисток в ноутбук, устанавливать соединение, потом перетыкать обратно в хаб/роутер.

как правило такая процедура помогает. вот только хотелось бы что без таких танцев все работало.

в чем может быть проблема?
Мегафон свои свистки разработал и продаёт или это, всё-таки, какого-то поизводителя, и у него есть назавние/модель? В винде, в свойствах мамеда, есть ли какие-либо доп. комманды инициализации?

OlegEF
16-11-2010, 10:39
Мегафон свои свистки разработал и продаёт или это, всё-таки, какого-то поизводителя, и у него есть назавние/модель? В винде, в свойствах мамеда, есть ли какие-либо доп. комманды инициализации?

свисток Huaweii E1550

на счет доп комманд, сейчас сказать не могу, т.к. модем сейчас не на руках, но я точно сам ничего не прописывал.

из установленных программ которые могут влиять на настройки модема только - Мегафон Интернет

rss
16-11-2010, 16:04
свисток Huaweii E1550

на счет доп комманд, сейчас сказать не могу, т.к. модем сейчас не на руках, но я точно сам ничего не прописывал.

из установленных программ которые могут влиять на настройки модема только - Мегафон Интернет

http://wiki.vectormm.net/index.php/Особенности_Huawei

AndreyUA
16-11-2010, 20:17
Нашел неподдерживаемый модем :)

BLESS UH128 VID 1D09 PID 1011

dir-320 r2325

rss
16-11-2010, 20:47
Нашел неподдерживаемый модем :)

BLESS UH128 VID 1D09 PID 1011

dir-320 r2325

Ну значит, либо обращаться на http://draisberghof.de/usb_modeswitch/bb/ , либо самостоятельно подбирать командную строку для отключения zerocd.

AndreyUA
16-11-2010, 21:06
Ну значит, либо обращаться на http://draisberghof.de/usb_modeswitch/bb/ , либо самостоятельно подбирать командную строку для отключения zerocd.Либо вернуть назад и взять huawei e1550 :) инфы по нему в гугле чуть меньше чем ноль.

TReX
17-11-2010, 06:40
Ну значит, либо обращаться на http://draisberghof.de/usb_modeswitch/bb/ , либо самостоятельно подбирать командную строку для отключения zerocd.

А в чем все-таки глубокий сакральный смысл отключения накопителя? У меня на E1750 включены и "встроенный CD" и картридер, и все прекрасно с RTN прошивками живет...

rss
17-11-2010, 07:30
А в чем все-таки глубокий сакральный смысл отключения накопителя? У меня на E1750 включены и "встроенный CD" и картридер, и все прекрасно с RTN прошивками живет...

Всё зависит от конкретной реализации. У BLESS UH128 (см. лог) подключается только диск с драйверами (видимо только под виндовс). Поэтому для такого случая отключить ZeroCD просто необходимо, чтобы включить интерфейс модема. Если же устройство выдает сразу несколько интерфейсов, то действительно незачем отключать.

TReX
17-11-2010, 08:11
Всё зависит от конкретной реализации. У BLESS UH128 (см. лог) подключается только диск с драйверами (видимо только под виндовс). Поэтому для такого случая отключить ZeroCD просто необходимо, чтобы включить интерфейс модема. Если же устройство выдает сразу несколько интерфейсов, то действительно незачем отключать.

) Проверил, действительно модем виден как несколько девайсов, но сразу возник другой вопрос, в модеме имеестя режим "NDIS", не выгоднее ли использовать его вместо использования в режиме "модем"?

rss
17-11-2010, 08:45
) Проверил, действительно модем виден как несколько девайсов, но сразу возник другой вопрос, в модеме имеестя режим "NDIS", не выгоднее ли использовать его вместо использования в режиме "модем"?

Скорее всего выгоднее. Но вопрос в том, сколько таких устройств и есть ли смысл в подключении этого интерфейса из соображений трудозатрат....

PS: еще один перспективный интерфейс - http://community.livejournal.com/yota_ru/876607.html

OlegEF
17-11-2010, 10:27
http://wiki.vectormm.net/index.php/Особенности_Huawei

к сожалению, ничего нового там для меня нет.

jav
30-11-2010, 09:51
Столкнулся с неожиданной проблемой на прошивке DIR320-1.9.2.7-d-r2325M, подключен модем ZTE-627. Если в модеме стоит выбор сети автоматически, то все нормально стартует, но, стоит перевести модем в режим только 2g (перевожу на компе, цель-на даче нет 3g, а возможные лишние попытки модема найти 3g, могут привести к нестабильности в моих задачах-скорость не важна, важна именно стабильность), так вот в режиме 2g модем не стартует "на холодную" при просмотре "USB device location ID:" по кнопке "view" ничего нет. Делаешь reboot(через Вэб или Телнет) , модем подключается.
Создал post-boot:
#!/bin/sh
usb_modeswitch -v 0x12d2 -p 0x2003 -d 1 -H 1
insmod usbserial vendor=0x12d2 product=0x2003 maxSize=4096
DEVICE=3
while true; do
sleep 5
if [ -e /dev/usb/tts/${DEVICE} ]; then
gpio 5_gpio 1
exit
else
reboot
fi
done

Но, по ходу, скрипт выполняется раньше, чем определяются порты, перезагрузка пошла циклически, по кругу. Еле остановил -))))
У кого какие идеи, почему в 3g нормально,в 2g- не запускается "на холодную"? (при перезагрузке на "горячую"-нормально)
Может "костыль"(пробовал через telnet, скрипт вроде нормально отрабатывает) как-то по другому поставить или еще что?
На кнопку EZ-setup вешать не хочу, модем на даче будет стоять на чердаке, а ноутбук будет не постоянно, чтоб через ВЭБ перезагружать, ежель чего.

Mr.Hunt
30-11-2010, 10:44
Возможна ли одновременная работа двух "свистков" на роутере?

Iguana
30-11-2010, 13:37
...перевожу на компе, цель-на даче нет 3g, а возможные лишние попытки модема найти 3g, могут привести к нестабильности в моих задачах-скорость не важна, важна именно стабильность...
Не придумывайте себе лишних трудностей, а то прийдётся их героически преодолевать :)
Зарегестрировавшись в 2G не будет модем пытаться найти 3G, только лишь при приёме RSCP выше определённого уровня, модем может попытаться запросить возможность смены 2G --> 3G, а для этого должно появиться 3G ВАШЕГО оператора (сигнал 3G оператора в котором модем зарегался в 2G).
Едиственное, что может быть в вашем случае: Вы выключили модем в зоне действия сети 3G, а влючили в зоне действия только 2G - в таком случае время регистрации модема в сети может увеличиться на 1-2 секунды, и всё... Других "побочных" эффектов от работы модема в многостандартном режиме не буде.

jav
30-11-2010, 15:22
Не придумывайте себе лишних трудностей, а то прийдётся их героически преодолевать :)
Зарегестрировавшись в 2G не будет модем пытаться найти 3G, только лишь при приёме RSCP выше определённого уровня, модем может попытаться запросить возможность смены 2G --> 3G, а для этого должно появиться 3G ВАШЕГО оператора (сигнал 3G оператора в котором модем зарегался в 2G).
Едиственное, что может быть в вашем случае: Вы выключили модем в зоне действия сети 3G, а влючили в зоне действия только 2G - в таком случае время регистрации модема в сети может увеличиться на 1-2 секунды, и всё... Других "побочных" эффектов от работы модема в многостандартном режиме не буде.
Хорошо, если так, сталкивался этим летом в сети Скайлинк(была связка Асус 500gpv2+Скайлинк Anydata 100, там эта хреновина (модем их, Скайлинковский) все пытался "как лучше" (при этом я ему говорил-"работай 2g";)), так нет пытался перейти на 3g, в результате кино прерывалось постоянно:)). А бегать к роутеру, передергивать сеть не прикалывало, вот и озадачился:D
Интересно а на прошивке DIR320-1.9.2.7-d-r2325M поддерживаются сотовые телефоны?

Iguana
30-11-2010, 18:51
Хорошо, если так, сталкивался этим летом в сети Скайлинк(была связка Асус 500gpv2+Скайлинк Anydata 100, там эта хреновина (модем их, Скайлинковский) все пытался "как лучше" (при этом я ему "говорил-работай 2g;)), так нет пытался перейти на 3g, в результате кино прерывалось постоянно:)). А бегать к роутеру, передергивать сеть не прикалывало, вот и озадачился:D
Так у Вас было 3G покрытие, но хреновое и значение RSCP было занижено, что и прриводило к ПЕРЕХОДУ в сеть 3G, а в 3G было хуже чем в 2G...
В данном случае, покрытия 3G у Вас нет СОВСЕМ! Соответственно и не будет этой проблемы...

dimez
30-11-2010, 21:02
Вообще 3G - это одно, а CDMA (и EV-DO) - это несколько другое. И вот так в лоб сравнивать - некорректно, ИМХО.

Iguana
30-11-2010, 21:17
Вообще 3G - это одно, а CDMA (и EV-DO) - это несколько другое. И вот так в лоб сравнивать - некорректно, ИМХО.
А кто их сравнивал? jav o 2G/3G писал и ответы ему давались о 2G/3G (хотя если мнe не изменяет память, то Skylink - это, таки, да - CDMA)

zlo1980
02-12-2010, 18:10
Добрый вечер!
Подскажите, возможно ли подключение к роутеру одновременно (через usb хаб) 2х 3g модемов с двумя симками для увеличения канала? Если нет, то каким образом можно создать одну сетку с двумя 3g модемами?

Заранее спасибо.

vectorm
03-12-2010, 08:24
Добрый вечер!
Подскажите, возможно ли подключение к роутеру одновременно (через usb хаб) 2х 3g модемов с двумя симками для увеличения канала? Если нет, то каким образом можно создать одну сетку с двумя 3g модемами?

Заранее спасибо.
Можно хоть 200 (точное число можно посчитать исходя из имеющихся USB хабов с питанием, и ограничения USB на 256 устройств :D).
Как запускать каждый отдельный модем скриптом - есть в теме "Обвязка" CDMA и 3G (фичи "чехов" на "прошивке энтузиастов") (http://wl500g.info/showthread.php?t=22275).
Ну а дальше - поиск в Интернете по сочетанию "multiwan+load balancing".
Как сделаете - пожалуйста отпишитесь в теме multi-wan (http://wl500g.info/showthread.php?t=6208), поскольку до сих пор никто публично не расписывал свои эксперименты в этой области с модемами.

mathad
06-12-2010, 15:34
Возможно ли использование 2х (одинаковых) модемов к одной точке одновременно?!

Iguana
06-12-2010, 16:36
Возможно ли использование 2х (одинаковых) модемов к одной точке одновременно?!
А смысл?
Если это будут GPRS/EDGE модемы - выигрыш будет и то, только в том случае, если сота свободна, в случа 3G (UMTS/HSPA или CDMA EvDO) выигрыша, практически не будет, да линка будет два, но шедулер БС поделит скорость на два модема (если один мог бы работать на 2 mbps, то два будут работать на 1 mbps каждый)...

mathad
07-12-2010, 02:55
А смысл?
Если это будут GPRS/EDGE модемы - выигрыш будет и то, только в том случае, если сота свободна, в случа 3G (UMTS/HSPA или CDMA EvDO) выигрыша, практически не будет, да линка будет два, но шедулер БС поделит скорость на два модема (если один мог бы работать на 2 mbps, то два будут работать на 1 mbps каждый)...

1. это могут быть разные провайдеры,
2. смысл в тарифах, ограничение на 1 гиг в день при закачке. ( такие тарифы)

Iguana
07-12-2010, 07:09
Ваша цитата:

Возможно ли использование 2х (одинаковых) модемов к одной точке одновременно?!
Ключевое слово: одинаковых
Откуда я знаю, что у Вас на уме :) Многие считают, что можно воткнуть два одинаковых модема от одного прова и скорость увеличится в два раза...

zlo1980
10-12-2010, 08:14
Можно хоть 200 (точное число можно посчитать исходя из имеющихся USB хабов с питанием, и ограничения USB на 256 устройств :D).
Как запускать каждый отдельный модем скриптом - есть в теме "Обвязка" CDMA и 3G (фичи "чехов" на "прошивке энтузиастов") (http://wl500g.info/showthread.php?t=22275).
Ну а дальше - поиск в Интернете по сочетанию "multiwan+load balancing".
Как сделаете - пожалуйста отпишитесь в теме multi-wan (http://wl500g.info/showthread.php?t=6208), поскольку до сих пор никто публично не расписывал свои эксперименты в этой области с модемами.

К сожалению не нашел ни одного, ни другого! :confused:

Идея состоит в подключении к дир320 через активный хаб 2 -х модемов мтс и мегафон с разными безлимитными тарифами. т.о решаются все мои проблемы (кстати, мало ли кто знает: поддерживается ли прошивкой модем хуавей е1820?).
Странно, но обсуждения этой темы нигде нет.
Если не сложно, ткните меня носом, где можно прочитать сие.
Еще раз заранее спасибо.:o

Vitaly_k
10-12-2010, 11:17
rss

Поскольку полноценный multi-wan в ближайшее время не планируется, может добавить backup connection по образу чехов? Т.е. пингуем определенных хост, когда пинги начинают не проходить - поднимаем второе соединение.

zlo1980
10-12-2010, 11:29
rss

Поскольку полноценный multi-wan в ближайшее время не планируется, может добавить backup connection по образу чехов? Т.е. пингуем определенных хост, когда пинги начинают не проходить - поднимаем второе соединение.

В том то вся фишка и есть, что при превышении 1 гб трафика в день скорость падает до 32 кбит, те пинговаться то будет. Хочется 2 полноценных доступа.:cool:
Еще раз повторю: очень странно что только у меня эта идея и проблема возникает. При стоимости ограниченного безлимита 400 рублей у разных операторов (мтс, мегафон) можно позволить себе 2, то решить все проблемы и с торрентами и с серфингом.

vectorm
10-12-2010, 18:54
В том то вся фишка и есть, что при превышении 1 гб трафика в день скорость падает до 32 кбит, те пинговаться то будет. Хочется 2 полноценных доступа.:cool:
Еще раз повторю: очень странно что только у меня эта идея и проблема возникает. При стоимости ограниченного безлимита 400 рублей у разных операторов (мтс, мегафон) можно позволить себе 2, то решить все проблемы и с торрентами и с серфингом.
Проблема в том, что подобная задача не решается простыми методами, и нужно достаточно серьезно ковыряться.
И, видимо те, кому нужно что-то подобное - не могут сами справиться, а те, кто может помочь - не заморачиваются за ненадобностью лично им.
Вероятно нужно заинтересовать "могущих" чем-либо.
Только по моему мнению - данная задача по затратам не сопоставима с результатом.

rss
10-12-2010, 19:03
В том то вся фишка и есть, что при превышении 1 гб трафика в день скорость падает до 32 кбит, те пинговаться то будет. Хочется 2 полноценных доступа.:cool:
Еще раз повторю: очень странно что только у меня эта идея и проблема возникает. При стоимости ограниченного безлимита 400 рублей у разных операторов (мтс, мегафон) можно позволить себе 2, то решить все проблемы и с торрентами и с серфингом.

Автоматическое переключение можно сделать и сейчас. Для этого надо в скрипте менять значения wan_modem_tts_port или wan_modem_usbloc (в зависимости от того, что используется) на порт первого или второго модема (при условии, что модемы одинаковые), после чего перезапускать WAN. Скрипт поставить на cron. Если модемы разные - см. различия, выдаваемые nvram show | sort для первого и второго случая.

Впрочем, неприятность может быть с драйверами usbserial и options.



rss
Поскольку полноценный multi-wan в ближайшее время не планируется, может добавить backup connection по образу чехов? Т.е. пингуем определенных хост, когда пинги начинают не проходить - поднимаем второе соединение. Лучше, чтобы мультиваном занималась iptables, а не всякие вспомогательные средства. В свете разговоров о редизайне интерфейса может быть и найдем место для мультивана. Вариант чехов мне, честно говоря, совсем не нравится.

mikypich
12-12-2010, 11:50
В том-то и проблема, что они не дают адресов.

http://moscow.megafon.ru/services/internet/dinamicheskijo_ip-adres.html

zlo1980
13-12-2010, 21:15
Господа, а поддерживает ли прошивка хуавей е1820?

vectorm
14-12-2010, 08:02
Господа, а поддерживает ли прошивка хуавей е1820?
Пока официально мы этого не знаем:
Поддерживаемые 3G/CDMA модемы (http://wiki.vectormm.net/index.php/%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)

rollon
19-12-2010, 07:17
Дайте совет, как переделать этот софт для того чтобы он заработал под под этой версией прошивки.Есть задумка запускать эту программу через Lighttpd
Вот ссылка
http://www.ondacommunication.com/site/index.php?dw=dwt&dwb=usbmodem&page=shop.product_details&flypage=shop.onda&product_id=120&category_id=3&manufacturer_id=0&option=com_virtuemart&Itemid=21

Выбрать software,ML100HS software per Linux

rss
19-12-2010, 14:09
Дайте совет, как переделать этот софт для того чтобы он заработал под под этой версией прошивки.Есть задумка запускать эту программу через Lighttpd
Вот ссылка
http://www.ondacommunication.com/site/index.php?dw=dwt&dwb=usbmodem&page=shop.product_details&flypage=shop.onda&product_id=120&category_id=3&manufacturer_id=0&option=com_virtuemart&Itemid=21

Выбрать software,ML100HS software per Linux

А зачем что-то оттуда запускать?

Надо извлечь файлы Leonardo_WebKey\Data\etc\ppp\options, Leonardo_WebKey\Data\etc\ppp\peers\wvdial, Leonardo_WebKey\Data\etc\wvdial.conf и позаимствовать из них всё, чего не хватает у нас. (вписать в Additional AT commands и Additional pppd options)

rollon
19-12-2010, 19:30
А зачем что-то оттуда запускать?

Надо извлечь файлы Leonardo_WebKey\Data\etc\ppp\options, Leonardo_WebKey\Data\etc\ppp\peers\wvdial, Leonardo_WebKey\Data\etc\wvdial.conf и позаимствовать из них всё, чего не хватает у нас. (вписать в Additional AT commands и Additional pppd options)
Допустим извлек я эти файлы,а дальше что делать?

rss
19-12-2010, 19:46
Допустим извлек я эти файлы,а дальше что делать?

Есть скрипт дозвона http://code.google.com/p/wl500g/source/browse/trunk/cdma/files/usr/ppp/uni/dial?r=2434

Для начала надо разобраться, а нужно ли что-нибудь делать или и так заработает.

Если не заработало, значит надо искать чего не хватает в скрипте дозвона (см. фрагменты, очень похожие на извлеченные из архива файлы). Недостающие команды вписать в Additional AT commands и Additional pppd options. Но далеко не всё, что отличается надо туда вбивать.

Альтернативный вариант - перенести всё вместе со своим скриптом дозвона и пользоваться пунктом Modem type - User Defined.

rollon
19-12-2010, 20:11
Есть скрипт дозвона http://code.google.com/p/wl500g/source/browse/trunk/cdma/files/usr/ppp/uni/dial?r=2434

Для начала надо разобраться, а нужно ли что-нибудь делать или и так заработает.

Если не заработало, значит надо искать чего не хватает в скрипте дозвона (см. фрагменты, очень похожие на извлеченные из архива файлы). Недостающие команды вписать в Additional AT commands и Additional pppd options. Но далеко не всё, что отличается надо туда вбивать.

Альтернативный вариант - перенести всё вместе со своим скриптом дозвона и пользоваться пунктом Modem type - User Defined.

А каким образом выводить информацию, ну например, качество сигнала или что-нибудь еще?

rss
19-12-2010, 20:24
А каким образом выводить информацию, ну например, качество сигнала или что-нибудь еще?

Штатно - никак. Надо разбираться со взаимодействием с модемом по дополнительным каналам (для борьбы с которыми сделано поле USB tts(ac) port).

Можно сделать скрипт, который запускать со страницы System Command и получать результат. Или упростить до одной ссылки, содержащей имя этого скрипта, но в любом случае его надо писать.

rollon
19-12-2010, 20:31
Штатно - никак. Надо разбираться со взаимодействием с модемом по дополнительным каналам (для борьбы с которыми сделано поле USB tts(ac) port).

Можно сделать скрипт, который запускать со страницы System Command и получать результат. Или упростить до одной ссылки, содержащей имя этого скрипта, но в любом случае его надо писать.

Спасибо за совет.Буду разбираться.

Spartach
21-12-2010, 08:39
Если кому понадобится.
хуавей е1820 завелся на роутре только после первода его в режим "только модем".

Ни кто не знает, есть ли пакет smstools собранный для нашего роутера?

TReX
21-12-2010, 18:29
Ну тогда под вопросом кабель. Или что-нибудь перегревается внутри маршрутизатора. Больше ничего не могу сказать - полное подвисание сильно вероятно из-за проблем с железом. Надо спрашивать у пользователей Asus WL-520GU.

А какие данные нужны от Хуайвея 1820 что бы он нормально распознавался роутером? Конечно в режиме "только модем" он работает, но очень неудобно, хотелось бы еще и доступ к SD карте в нем хотя бы сохранить...

rss
21-12-2010, 19:58
А какие данные нужны от Хуайвея 1820 что бы он нормально распознавался роутером? Конечно в режиме "только модем" он работает, но очень неудобно, хотелось бы еще и доступ к SD карте в нем хотя бы сохранить...

А кто ж его знает... Как минимум надо посмотреть одинаковы ли USB-идентификаторы VID:PID и какие каналы создаются после подключения драйверов. Т.е. смотреть Status & Log - Diagnostic Information в разделах USB Devices и USB devfs Devices, после чего сравнивать.
Также возможно есть команды, которые можно подставить в usb_modeswitch - надо искать.

dlink
23-12-2010, 00:58
пользую dir-320 (vampik) c 3g модемом от мегафона.
баланс как то можно проверить не вынимая свисток из роутера?
можно ещё как то через инет в личном кабинете - но может есть возможность это сделать напрямую из роутера?
спасибо!

rollon
23-12-2010, 03:45
пользую dir-320 (vampik) c 3g модемом от мегафона.
баланс как то можно проверить не вынимая свисток из роутера?
можно ещё как то через инет в личном кабинете - но может есть возможность это сделать напрямую из роутера?
спасибо!

Вот ссылка http://habrahabr.ru/blogs/telecom/98846/
На основе этого можно сделать.

TReX
24-12-2010, 23:49
А кто ж его знает... Как минимум надо посмотреть одинаковы ли USB-идентификаторы VID:PID и какие каналы создаются после подключения драйверов. Т.е. смотреть Status & Log - Diagnostic Information в разделах USB Devices и USB devfs Devices, после чего сравнивать.
Также возможно есть команды, которые можно подставить в usb_modeswitch - надо искать.

Как и просили даю в сравнении -

Е1750
------


T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=12d1 ProdID=1001 Rev= 0.00
S: Manufacturer=HUAWEI Technology
S: Product=HUAWEI Mobile
C:* #Ifs= 5 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=5ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=01(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=83(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=ff Prot=ff Driver=option
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=85(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=05(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms




Device : Location : Info
/dev/ttyUSB0 : 1.0 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
/dev/ttyUSB1 : 1.11 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
/dev/ttyUSB2 : 1.22 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"


Е1820
------



T: Bus=01 Lev=01 Prnt=01 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=14ac 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=ff Prot=ff 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=02(comm.) Sub=06 Prot=ff Driver=option
E: Ad=83(I) Atr=03(Int.) MxPS= 64 Ivl=2ms
I:* If#= 2 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 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=ff Prot=ff 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=ff Prot=ff 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




Device Location Info
/dev/ttyUSB0 1.0 Manufacturer="Huawei Technologies" Product="HUAWEI Mobile"
/dev/ttyUSB1 1.11 Manufacturer="Huawei Technologies" Product="HUAWEI Mobile"
/dev/ttyUSB2 1.22 Manufacturer="Huawei Technologies" Product="HUAWEI Mobile"
/dev/ttyUSB3 1.33 Manufacturer="Huawei Technologies" Product="HUAWEI Mobile"
/dev/ttyUSB4 1.44 Manufacturer="Huawei Technologies" Product="HUAWEI Mobile"


Оба модема подключались к WL500gpV1 (нижний USB порт). Прошивка 1.9.2.7-rtn-r2438

Во время борьбы с разблокировкой данного чуда никаких различий в командах с Е1750 не заметил.
Если возможно хотелось бы чтобы была возможность подключить его не теряя накопитель, очень уж удобно использовать встроенную в модем SD карту в качестве диска FTP сервера )

TReX
25-12-2010, 01:52
Лог загрузки Е1820, и где тут народ нашел проблемы и зачем отключал накопители, я не понял, по логу прекрасно видно что кроме встроенного flash, в модеме еще и торчит карта SD на 8 гигов, и прекрасно модем соединяется с интернет )

Вот только одна проблема, а как бы увидеть флешку которая в модеме, система же ее распознает, а по df -h тишина (((

1820 log


Jan 1 00:00:02 syslogd started: BusyBox v1.17.4
Jan 1 00:00:03 kernel: klogd started: BusyBox v1.17.4 (2010-12-22 05:27:51 MSK)
Jan 1 00:00:03 kernel: Linux version 2.6.22.19 (root@localhost) (gcc version 4.3.5 (GCC) ) #2 Wed Dec 22 05:38:14 MSK 2010
Jan 1 00:00:03 kernel: CPU revision is: 00029006
Jan 1 00:00:03 kernel: Setting the PFC to its default value
Jan 1 00:00:03 kernel: Determined physical RAM map:
Jan 1 00:00:03 kernel: memory: 02000000 @ 00000000 (usable)
Jan 1 00:00:03 dnsmasq[210]: started, version 2.55 cachesize 512
Jan 1 00:00:03 dnsmasq[210]: compile time options: IPv6 GNU-getopt no-RTC no-DBus no-I18N DHCP no-scripts no-TFTP
Jan 1 00:00:03 dnsmasq-dhcp[210]: DHCP, IP range 192.168.1.101 -- 192.168.1.254, lease time 1d
Jan 1 00:00:03 dnsmasq[210]: read /etc/hosts - 2 addresses
Jan 1 00:00:04 kernel: usbcore: registered new interface driver usbfs
Jan 1 00:00:04 kernel: usbcore: registered new interface driver hub
Jan 1 00:00:04 kernel: usbcore: registered new device driver usb
Jan 1 00:00:04 kernel: ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
Jan 1 00:00:04 kernel: PCI: Enabling device 0000:01:03.2 (0000 -> 0002)
Jan 1 00:00:04 kernel: ehci_hcd 0000:01:03.2: EHCI Host Controller
Jan 1 00:00:04 kernel: ehci_hcd 0000:01:03.2: new USB bus registered, assigned bus number 1
Jan 1 00:00:04 kernel: ehci_hcd 0000:01:03.2: irq 12, io mem 0x40004000
Jan 1 00:00:04 kernel: ehci_hcd 0000:01:03.2: USB 2.0 started, EHCI 1.00
Jan 1 00:00:04 kernel: usb usb1: configuration #1 chosen from 1 choice
Jan 1 00:00:04 kernel: hub 1-0:1.0: USB hub found
Jan 1 00:00:04 kernel: hub 1-0:1.0: 4 ports detected
Jan 1 00:00:04 kernel: uhci_hcd: USB Universal Host Controller Interface driver
Jan 1 00:00:04 kernel: PCI: Enabling device 0000:01:03.0 (0000 -> 0001)
Jan 1 00:00:04 kernel: uhci_hcd 0000:01:03.0: UHCI Host Controller
Jan 1 00:00:04 kernel: uhci_hcd 0000:01:03.0: new USB bus registered, assigned bus number 2
Jan 1 00:00:04 kernel: uhci_hcd 0000:01:03.0: irq 12, io base 0x00000100
Jan 1 00:00:04 kernel: usb usb2: configuration #1 chosen from 1 choice
Jan 1 00:00:04 kernel: hub 2-0:1.0: USB hub found
Jan 1 00:00:04 kernel: hub 2-0:1.0: 2 ports detected
Jan 1 00:00:05 kernel: PCI: Enabling device 0000:01:03.1 (0000 -> 0001)
Jan 1 00:00:05 kernel: uhci_hcd 0000:01:03.1: UHCI Host Controller
Jan 1 00:00:05 kernel: uhci_hcd 0000:01:03.1: new USB bus registered, assigned bus number 3
Jan 1 00:00:05 kernel: uhci_hcd 0000:01:03.1: irq 12, io base 0x00000120
Jan 1 00:00:05 kernel: usb 1-1: new high speed USB device using ehci_hcd and address 2
Jan 1 00:00:05 kernel: usb usb3: configuration #1 chosen from 1 choice
Jan 1 00:00:05 kernel: hub 3-0:1.0: USB hub found
Jan 1 00:00:05 kernel: hub 3-0:1.0: 2 ports detected
Jan 1 00:00:05 kernel: usb 1-1: configuration #1 chosen from 1 choice
Jan 1 00:00:07 kernel: usbcore: registered new interface driver usblp
Jan 1 00:00:07 kernel: usb 1-1: USB disconnect, address 2
Jan 1 00:00:08 kernel: SCSI subsystem initialized
Jan 1 00:00:08 kernel: Initializing USB Mass Storage driver...
Jan 1 00:00:08 kernel: usbcore: registered new interface driver usb-storage
Jan 1 00:00:08 kernel: USB Mass Storage support registered.
Jan 1 00:00:08 kernel: NTFS driver 2.1.28 [Flags: R/O MODULE].
Jan 1 00:00:12 kernel: usb 1-1: new high speed USB device using ehci_hcd and address 3
Jan 1 00:00:12 kernel: usb 1-1: configuration #1 chosen from 1 choice
Jan 1 00:00:12 kernel: scsi0 : SCSI emulation for USB Mass Storage devices
Jan 1 00:00:12 kernel: scsi1 : SCSI emulation for USB Mass Storage devices
Jan 1 00:00:14 kernel: scsi 0:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
Jan 1 00:00:14 kernel: scsi 1:0:0:0: Direct-Access HUAWEI TF CARD Storage PQ: 0 ANSI: 2
Jan 1 00:00:14 kernel: sd 1:0:0:0: [sda] 15523840 512-byte hardware sectors (7948 MB)
Jan 1 00:00:14 kernel: sd 1:0:0:0: [sda] Write Protect is off
Jan 1 00:00:14 kernel: sd 1:0:0:0: [sda] Assuming drive cache: write through
Jan 1 00:00:14 kernel: sda:
Jan 1 00:00:14 kernel: sd 1:0:0:0: [sda] Attached SCSI removable disk
Jan 1 00:00:19 kernel: usbcore: registered new interface driver cdc_acm
Jan 1 00:00:19 kernel: drivers/usb/class/cdc-acm.c: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters
Jan 1 00:00:20 kernel: usbcore: registered new interface driver usbserial
Jan 1 00:00:20 kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for generic
Jan 1 00:00:20 kernel: usbserial_generic 1-1:1.0: generic converter detected
Jan 1 00:00:20 kernel: usb 1-1: generic converter now attached to ttyUSB0
Jan 1 00:00:20 kernel: usbserial_generic 1-1:1.1: Generic device with no bulk out, not allowed.
Jan 1 00:00:20 kernel: usbserial_generic: probe of 1-1:1.1 failed with error -5
Jan 1 00:00:20 kernel: usbserial_generic 1-1:1.2: generic converter detected
Jan 1 00:00:20 kernel: usb 1-1: generic converter now attached to ttyUSB1
Jan 1 00:00:20 kernel: usbserial_generic 1-1:1.3: generic converter detected
Jan 1 00:00:20 kernel: usb 1-1: generic converter now attached to ttyUSB2
Jan 1 00:00:20 kernel: usbserial_generic 1-1:1.4: generic converter detected
Jan 1 00:00:20 kernel: usb 1-1: generic converter now attached to ttyUSB3
Jan 1 00:00:20 kernel: usbcore: registered new interface driver usbserial_generic
Jan 1 00:00:20 kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core
Jan 1 00:00:20 kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for pl2303
Jan 1 00:00:20 kernel: usbcore: registered new interface driver pl2303
Jan 1 00:00:20 kernel: drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver
Jan 1 00:00:20 kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI USB Serial Device
Jan 1 00:00:20 kernel: usbcore: registered new interface driver ftdi_sio
Jan 1 00:00:20 kernel: drivers/usb/serial/ftdi_sio.c: v1.5.0:USB FTDI Serial Converters Driver
Jan 1 00:00:23 pppd[444]: pppd 2.4.5 started by admin, uid 0
Jan 1 00:00:24 pppd[444]: Serial connection established.
Jan 1 00:00:24 pppd[444]: Using interface ppp0
Jan 1 00:00:24 pppd[444]: Connect: ppp0 <--> /dev/ttyUSB0
Jan 1 00:00:25 pppd[444]: CHAP authentication succeeded
Jan 1 00:00:25 pppd[444]: CHAP authentication succeeded
Jan 1 00:00:29 pppd[444]: Could not determine remote IP address: defaulting to 10.64.64.64
Jan 1 00:00:29 pppd[444]: local IP address 10.32.33.78
Jan 1 00:00:29 pppd[444]: remote IP address 10.64.64.64
Jan 1 00:00:29 pppd[444]: primary DNS address 213.87.0.1
Jan 1 00:00:29 pppd[444]: secondary DNS address 213.87.1.1
Jan 1 00:00:29 dnsmasq[210]: read /etc/hosts - 2 addresses
Jan 1 00:00:29 dnsmasq[210]: using nameserver 213.87.1.1#53
Jan 1 00:00:29 dnsmasq[210]: using nameserver 213.87.0.1#53
Jan 1 00:00:29 3G USB Modem: connected to ISP

rss
25-12-2010, 17:32
Лог загрузки Е1820, и где тут народ нашел проблемы и зачем отключал накопители, я не понял, по логу прекрасно видно что кроме встроенного flash, в модеме еще и торчит карта SD на 8 гигов, и прекрасно модем соединяется с интернет )

Вот только одна проблема, а как бы увидеть флешку которая в модеме, система же ее распознает, а по df -h тишина (((

Что выдаёт fdisk -l?
Что выдаёт ls /dev/discs?
Монтируется ли диск после nvram set usb_storage_device="123"? (если в пунктах 1 и 2 этот диск есть).

TReX
25-12-2010, 19:12
Что выдаёт fdisk -l?
Что выдаёт ls /dev/discs?
Монтируется ли диск после nvram set usb_storage_device="123"? (если в пунктах 1 и 2 этот диск есть).



[root]$ df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 4.5M 4.5M 0 100% /
devfs 14.1M 0 14.1M 0% /dev
tmpfs 14.1M 104.0K 14.0M 1% /tmp
[root]$ fdisk -l

Disk /dev/mtdblock0: 0 MB, 262144 bytes
255 heads, 63 sectors/track, 0 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/mtdblock0 doesn't contain a valid partition table

Disk /dev/sda: 7948 MB, 7948206080 bytes
245 heads, 62 sectors/track, 1021 cylinders
Units = cylinders of 15190 * 512 = 7777280 bytes

Device Boot Start End Blocks Id System
[root]$ ls /dev/discs
disca
[root]$


Тааак, оказывается больше ночью спать надо )) Флешка была отформатирована под FAT32, после реформата в NTFS все прекрасно завелось )
Есть счастье в жизни, модем с пулеметной скоростью, у которого есть гнездо для антены, да плюс еще и с флешкой внутри )

Vitaly_k
30-12-2010, 09:49
Ситуация с модемом E173 и Мегафоном.
После нескольких часов работы роутер впадает в ступор - соединение установлено, но интернет не работает.
Вот так выглядит трейсроут до DNS:

Трассировка маршрута к 10.77.48.2 с максимальным числом прыжков 30
1 <1 мс <1 мс <1 мс asus101 [192.168.1.101]
2 921 ms 960 ms 1054 ms 10.77.47.50
3 504 ms 1217 ms 1158 ms 10.77.240.217
4 424 ms 1102 ms 996 ms 10.77.240.17
5 936 ms 1000 ms 539 ms 10.77.41.60
6 * * * Превышен интервал ожидания для запроса.


Маршрут до любого адреса обрывается на 10.77.41.60
После перезагрузки роутера все опять нормально работает несколько часов.

Предложение - ввести механизм watchdog аналогичный тому, что используется для WiMax. В веб-интерфейсе добавить параметр "Check connection" и интервал проверки.
При включении режима с указанным интервалом будет пинговаться DNS сервер и после нескольких неудач подряд пытаться пересоединиться, а в случае неудачи запускать Failure event script (в простейшем случае команда reboot)

rss
30-12-2010, 18:08
Предложение - ввести механизм watchdog аналогичный тому, что используется для WiMax. В веб-интерфейсе добавить параметр "Check connection" и интервал проверки.
При включении режима с указанным интервалом будет пинговаться DNS сервер и после нескольких неудач подряд пытаться пересоединиться, а в случае неудачи запускать Failure event script (в простейшем случае команда reboot) Здесь надо подумать, не стоит ли вынести пинговалку для проверки канала на более высокий уровень и сделать единой для любого типа WAN.

В качестве полумеры могу посоветовать сделать скрипт, пингующий раз в минуту, а для переподключения пользоваться командами для управления WAN. http://wiki.vectormm.net/index.php/Управление_подключением_WAN


Вот ещё один из обещаных скриптов
Спасибо, предлагаю сейчас по-максимуму собрать всё что есть по всем модемам, потом решить, как подключать в веб-интерфейс.

dlukanidin
03-01-2011, 00:29
Спасибо, предлагаю сейчас по-максимуму собрать всё что есть по всем модемам, потом решить, как подключать в веб-интерфейс.
А можно ли на первом этапе сделать так: определить имя лог файла (например /tmp/stat.tmp) и если он существует, то на страничке статистики просто добавить рамочку и в неё сделать cat этого файла ?
Это был бы отладочный вариант. А все красивости добавить позже.

rss
12-01-2011, 14:07
можно ли ссылку на wiki поместить куда нибудь, где бы она бросалась в глаза? Только добавить себе в подпись. Можно, конечно, вставить в веб-интерфейс прошивки, но это слишком радикально....

rollon
12-01-2011, 18:02
Добавил инфо по роумингу и выбранному режиму.

Спасибо.Попробую.
Для полноты можно еще добавить эти команды:
AT+CGSN серийный номер
AT+ZPCB? номер ревизии модема
AT+GMR версия прошивки модема

dlukanidin
12-01-2011, 19:03
Для полноты можно еще добавить эти команды:
AT+CGSN серийный номер
AT+ZPCB? номер ревизии модема
AT+GMR версия прошивки модема
Наверное не стоит.
AT+CGSN не везде работает (у меня нет), а остальная инфо почти полностью есть в ATI.
Было время и для экспериментов собрал скрипт всё в одном с возможностью проверки произвольных AT команд и UCSD запросов.
Для начала лучше посмотреть help: stat.sh h
или конец скрипта.

rollon
12-01-2011, 19:07
Сейчас проверил и выяснилось вот что
для MF100
при запросе AT+ZSNT? модем отвечает
ZSNT=0,0,0 prefered 3G
ZSNT=2,0,0 3G only
ZSNT=1,0,0 GSM only
в скрипте надо это как-то отметить

dlukanidin
12-01-2011, 19:27
Сейчас проверил и выяснилось вот что
для MF100
при запросе AT+ZSNT? модем отвечает
ZSNT=0,0,0 prefered 3G
ZSNT=2,0,0 3G only
ZSNT=1,0,0 GSM only
в скрипте надо это как-то отметить

Это точная информация ?
По моим сведениям:
AT+ZSNT=0,0,2 Приоритет 3G
AT+ZSNT=0,0,1 Приоритет GPRS/EDGE
AT+ZSNT=2,0,0 3G only
AT+ZSNT=1,0,0 GPRS/EDGE only
и в скрипт это вставлено.
может 0,0,0 это Авто ? Чтобы это ни означало :)

rollon
12-01-2011, 20:06
Это точная информация ?
По моим сведениям:
AT+ZSNT=0,0,2 Приоритет 3G
AT+ZSNT=0,0,1 Приоритет GPRS/EDGE
AT+ZSNT=2,0,0 3G only
AT+ZSNT=1,0,0 GPRS/EDGE only
и в скрипт это вставлено.
может 0,0,0 это Авто ? Чтобы это ни означало :)

Может быть.Последним скриптом проверил модем выдает 0,0,0.В винде через БИД выставляю режим выбора сети-авто и Приоритет 3G. запускаю USB trace.выдает теже 0,0,0.

rollon
12-01-2011, 20:16
Это точно "Авто".Проверил.По умолчанию этот режим в модеме установлен.Чтобы изменить режим надо прописать нужный режим в additionat AT commands.
AT+zsnt=0,0,0 режим поиска сети "автоматически, GSM+3G"
Надо в скрипт этот ответ добавить

обнаружил неизвестную команду AT+ZCSPOWER.В Ответ либо error либо ничего.Что за команда?

dlukanidin
12-01-2011, 20:47
AT+zsnt=0,0,0 режим поиска сети "автоматически, GSM+3G"
Надо в скрипт этот ответ добавить
обнаружил неизвестную команду AT+ZCSPOWER.В Ответ либо error либо ничего.Что за команда?
Добавил. Инфо по AT+ZCSPOWER у меня нет.

rollon
12-01-2011, 21:00
Можно ли проверить работу команды at+cops=?.Сканирует эфир и выдает список операторов.
У меня эта команда не работает почему то.

dlukanidin
12-01-2011, 21:14
Можно ли проверить работу команды at+cops=?.Сканирует эфир и выдает список операторов.
У меня эта команда не работает почему то.

Работает. Только ей таймаут надо давать не менее 20 сек.

rollon
12-01-2011, 21:25
Работает. Только ей таймаут надо давать не менее 20 сек.

Разобрался.Тоже заработала.Может в скрипт ее вставить? Иногда нужно знать кто работает из операторов.

dlukanidin
12-01-2011, 21:40
Разобрался.Тоже заработала.Может в скрипт ее вставить? Иногда нужно знать кто работает из операторов.

Добавил в тестовый скрипт возможность задавать таймаут. Вот пример

[admin@DIR320 admin]$ /tmp/stat.sh a 30 AT+COPS=? COPS:
Report: (2,"MegaFon RUS","MegaFon","25002",2),(3,"MTS RUS","MTS RUS","25001",0),(3,"Beeline","Beeline","25099",0),
[admin@DIR320 admin]$

rollon
12-01-2011, 21:57
спасибо.работает.
вот нашел по команде csq.она выдает два значения
первое это rssi,второе это bit error rate(от 0-7 работает только в 3g) для gprs всегда будет 99( not known or not detectable)
вот таблица значений

0: less than 0.2%
1: 0.2-0.4%
2: 0.4-0.8%
3: 0.8-1.6%
4: 1.6-3.2%
5: 3.2-6.4%
6: 6.4-12.8%
Проверьте так ли это.У меня 3g перестал работать

dlukanidin
12-01-2011, 22:47
первое это rssi,второе это bit error rate(от 0-7 работает только в 3g) для gprs всегда будет 99( not known or not detectable)
вот таблица значений
У меня и на 3G тоже 99, но на каком то из операторов видел и другие цифири.
Внес дополнения в WCDMA скрипты. Выкладываю опять все в архиве.

rss
13-01-2011, 06:53
У меня и на 3G тоже 99, но на каком то из операторов видел и другие цифири.
Внес дополнения в WCDMA скрипты. Выкладываю опять все в архиве.

Вчера начал смотреть и неожиданно обнаружил, что у имеющегося ZTE от билайна обнулён счет :( Сегодня попробую положить денег...

Увидел:

sh: 99: unknown operand
/usr/local/sbin/zte_stat.sh: let: line 257: syntax error: db_value = -113 + * 2
/usr/local/sbin/zte_stat.sh: let: line 257: syntax error: p_value = * 100 / 30
...

Переменные лучше экранировать

echo "Modem: $Modem" > $stat
echo "Operator: $Operator" >> $stat
echo "Sygnal type: $SygType" >> $stat
echo "Signal: $Sygnal" >> $stat
echo "Balance: $Balance" >> $stat

Предлагаю объединить общие функции в один модуль - в bash это делается через source "common.sh" (чтобы в прошивке лишнее место не занимать).

Точно понадобится выбирать порт (во-первых под ядро 2.6, во-вторых не хочу отбрасывать мультиван как таковой).

По поводу интерфейса вопрос куда мы будем это вставлять? Не стоит разводить большое количество страниц. Может быть пожертвуем логом PPP на отдельной странице, учитывая что он есть на Diagnostic info? Или добавить на эту же страницу вывод короткой статистики под логом (визуально как на странице Wimax)? Можно сделать кнопку "получить баланс" на случай, если количество обращений получения баланса у провайдера ограничено. Собственно вопрос, какие кнопки нужны?

Управление скриптами статистики вижу сейчас на странице USB Network Devices - 3G/CDMA. Видимо будет выпадающий список ZTE, Huawei, Anydata, User script. +выбор порта (пока под вопросом целесообразности), +выбор дополнительных параметров (периоды опроса баланса? что еще?). Возможно стоит сделать автоматическое определение типа модема (по идентификатору VID или вместе с PID).

rollon
13-01-2011, 07:46
Начал разбираться с индикатором скорости для zte
Пинговал ya.ru.
Входящая скорость 0,84kbit/s
Исходящая скорость 0,84kbit/s
Скорость была постоянной.
Запускал через БИД.Через usbtrace снял вот такие логи.дальше тупик.
Ясно одно, что здесь заложен алгоритм показа скорости.

rollon
13-01-2011, 09:50
Нашел прогу для управления модемами.В ней есть исходники.Может на базе нее можно сделать индикатор скорости для ZTE

http://www.codeproject.com/KB/IP/3G_Modem_Internet_Dialer.aspx

rss
13-01-2011, 10:28
Нашел прогу для управления модемами.В ней есть исходники.Может на базе нее можно сделать индикатор скорости для ZTE

http://www.codeproject.com/KB/IP/3G_Modem_Internet_Dialer.aspx

Индикатор скорости (в т.ч. график) есть в стандартных системных средствах - информация по сетевому интерфейсу. Причём от модема они не зависят.

dlukanidin
13-01-2011, 11:54
Увидел:

sh: 99: unknown operand
...
Переменные лучше экранировать

Внёс рекомендуемые и дополнительные исправления, выложил.

Предлагаю объединить общие функции в один модуль - в bash это делается через source "common.sh" (чтобы в прошивке лишнее место не занимать).

Точно понадобится выбирать порт (во-первых под ядро 2.6, во-вторых не хочу отбрасывать мультиван как таковой).

Согласен

По поводу интерфейса вопрос куда мы будем это вставлять? Не стоит разводить большое количество страниц. Может быть пожертвуем логом PPP на отдельной странице, учитывая что он есть на Diagnostic info? Или добавить на эту же страницу вывод короткой статистики под логом (визуально как на странице Wimax)? Можно сделать кнопку "получить баланс" на случай, если количество обращений получения баланса у провайдера ограничено. Собственно вопрос, какие кнопки нужны?

1. Размещение. Согласен пожертвовать логом PPP. Тем более, последнее время часто его присылают для диагностики проблем, а это не правильно.
2. Исходя из того, что есть целая страница, предлагаю сделать что то вроде DashBoard:

2.1 Инфо делится на 3 части - постоянная, меняющаяся, определяемая по запросу
2.2 Для постоянной и по запрсу делаем отдельные скрипты, для меняющейся скрипт и переменную wan_modem_signal. Или на всё один скрипт, но с входными параметрами.
2.3 Экранную форму делать приблизительно так

2.3.1 Верхняя часть - сигнал(график в виде слайд бара), тип сигнала, оператор, роуминг.
2.3.2 Ниже - скорости передачи, брать из System utilization
2.3.3 Ниже - инфо о модеме, режим работы модема
2.3.4 Ниже - поле команды ussd с кнопкой запрос, ответ в отдельном окне, как USB device location
2.3.5 Ниже - поле команды AT с кнопкой запрос, ответ в отдельном окне, как USB device location (чтобы пользователь мог менять режимы модема)
2.3.6 Ниже - кнопки Connect Disconnect

2.4 Управление этим делом в соответствии с Вашим предложением ниже
2.5 В дальнейшем можно будет добавить работу с СМС

Управление скриптами статистики вижу сейчас на странице USB Network Devices - 3G/CDMA. Видимо будет выпадающий список ZTE, Huawei, Anydata, User script. +выбор порта (пока под вопросом целесообразности), +выбор дополнительных параметров (периоды опроса баланса? что еще?). Возможно стоит сделать автоматическое определение типа модема (по идентификатору VID или вместе с PID).
К этому дополнения:
1. Выбор порта - надо делать как и для основного модема. Например у меня для ZTE F180 в одном режиме 4 порта (pid 0x2003)? а в другом 3(pid 0x16) и назначения всех портов другие. Но получается очень уж много всяких настроек. Может быть сделать что-то типа базы как для UsbmodeSwitch ? По Vid Pid Устанавливать тип модема, порты, скрипты и дополнительные строки инициализации ? Хотя это требует постоянной поддержки, к которой я не готов.
2. Из дополнительных параметров я бы оставил только период опроса сигнала, а всё остальное по требованию, как изложено выше.

Да, и после утверждения плана, скрипты я конечно перепишу в соответствии с вновь установленными целями. :)
P.S. Для слайд бара могу сделать скрипт, который делает его из символов. Т.е. это будет просто текст, только обновляемый.

rollon
13-01-2011, 12:00
Желательно бы еще информацию по трафику добавить

dlukanidin
13-01-2011, 12:23
Желательно бы еще информацию по трафику добавить
В принципе не проблема. В инфо по интерфейсу есть
RX bytes:491663 (480.1 KiB) TX bytes:242960 (237.2 KiB)
И это лучше, чем инфо с модема, т.к. у последнего инфо только за его сессию, а у роутера с ребута (или тоже за сессию ?, надо смотреть.). (Посмотрел - за сессию, так что идентично)
В принципе можно задуматься и о трафике за период. Но эта статистика лучше реализована с помощью сторонних приложений. См. Установку программ на usb диск.

rollon
13-01-2011, 12:52
Я и предлагал инфу по трафику с роутера брать,чтобы она отображалась там же где вся инфа по модему.

dlukanidin
13-01-2011, 16:49
Индикатор скорости (в т.ч. график) есть в стандартных системных средствах - информация по сетевому интерфейсу. Причём от модема они не зависят.
Посмотрел как вычисляется инфо о скорости. Это вычисляется внутри SVG на основании инфо о трафике. Как её от туда извлечь не понимаю. Единственная альтернатива либо вычислять самостоятельно, либо размещать дубликат (возможно с изменёнными параметрами), что не гуд. (кстати хотел задать вопрос, а где же лежат cgi скрипты, напрмер fetchif.cgi ?, или я чего то не понимаю)

rss
13-01-2011, 18:13
Посмотрел как вычисляется инфо о скорости. Это вычисляется внутри SVG на основании инфо о трафике. Как её от туда извлечь не понимаю. Единственная альтернатива либо вычислять самостоятельно, либо размещать дубликат (возможно с изменёнными параметрами), что не гуд. (кстати хотел задать вопрос, а где же лежат cgi скрипты, напрмер fetchif.cgi ?, или я чего то не понимаю)

Суммарный объем считается ядром с момента поднятия интерфейса, поэтому с учётом переподключений модема не думаю, что эта информация полезна (это же не сумма с момента включения маршрутизатора). Всё это доступно в ifconfig или cat /proc/net/dev. В /proc/net/ вообще много чего можно получить.


fetchif.cgi - это не скрипт. Это команда для httpd, реализованная на C. См.
http://code.google.com/p/wl500g/source/browse/trunk/httpd/web_ex.c

В скрипт статистики не стоит вставлять всё, что только можно. В веб-интерфейсе можем стянуть данные из нескольких источников.

PS: чтобы не запутаться в версиях файлов рекомендую архивы либо последовательно нумеровать, либо добавлять в конце суффикс в формате _годмесяцдень (для естественной сортировки).

dlukanidin
13-01-2011, 19:28
fetchif.cgi - это не скрипт. Это команда для httpd, реализованная на C.
чтобы не запутаться в версиях файлов рекомендую архивы либо последовательно нумеровать.

Спасибо за инфо и рекомендации. Принято.

Насчёт статистики ещё раз уточняю своё мнение:
1. Сигнал - уровень, тип (3g/edge/gprs), оператор, роуминг
2. Статистика сеанса - текущие восходящая и нисходящие скорости, восходящий и нисходящий трафик
3. Модем - производитель, название, версия железа, версия ПО, Vid, Pid, порт модема, порт UI, режим работы (3G only,...)
4. Инфо по запросу - USSD, AT-команды.

rss
13-01-2011, 19:48
Спасибо за инфо и рекомендации. Принято.

Насчёт статистики ещё раз уточняю своё мнение:
1. Сигнал - уровень, тип (3g/edge/gprs), оператор, роуминг
2. Статистика сеанса - текущие восходящая и нисходящие скорости, восходящий и нисходящий трафик
3. Модем - производитель, название, версия железа, версия ПО, Vid, Pid, порт модема, порт UI, режим работы (3G only,...)
4. Инфо по запросу - USSD, AT-команды.

ок. на выходных внимательно посмотрю как всё это отобразить.

Кстати в скриптах заметил опечатки gerRSSI (в zte_stat.sh) и "uncknown"

dlukanidin
14-01-2011, 07:30
Кстати в скриптах заметил опечатки gerRSSI (в zte_stat.sh) и "uncknown"
Спасибо, исправлено.

---- Добавлено ----
В связи с тем, что при отладке скриптов часто приходится менять модемы или выбирать один из нескольких подключенных, написал скрипт для работы с конфигурациями модемов. Может кому облегчит жизнь. Имя конфигурации рекомендую выбирать как оператор_модем (например Beeline_ZTE_MF180).

rss
16-01-2011, 19:06
Спасибо, исправлено.

---- Добавлено ----
В связи с тем, что при отладке скриптов часто приходится менять модемы или выбирать один из нескольких подключенных, написал скрипт для работы с конфигурациями модемов. Может кому облегчит жизнь. Имя конфигурации рекомендую выбирать как оператор_модем (например Beeline_ZTE_MF180).

К сожалению, то что планировал, так и не успел сделать. Объясняю, что нам потребуется. Выполнение USSD-запросов будет просходить в отдельном окне. Т.е. на странице мониторинга нажимаем кнопку, открывается окно, в котором присутствует строка ввода запроса, кнопка Send и область текстового вывода. Очень аккуратно надо разбираться с кодировкой вывода, чтобы всё, что поступает на выход было одинаково и ни в коем случае не перемешалось на html-странице.

Нужен скрипт, который принимает на вход команду (надо разобраться, в каком виде передавать, чтобы не было проблем с пробелами. Возможно в формате HTML - коды символов %xx%xx), а вывод осуществляет в консоль. + надо помнить, что драйверы могут быть еще не загружены, т.е. основа для реализации /usr/sbin/check_devpath

Порт можно также передавать в качестве параметра или выделим отдельную nvram переменную.

dlukanidin
17-01-2011, 01:59
Нужен скрипт, который принимает на вход команду (надо разобраться, в каком виде передавать, чтобы не было проблем с пробелами. Возможно в формате HTML - коды символов %xx%xx), а вывод осуществляет в консоль. + надо помнить, что драйверы могут быть еще не загружены, т.е. основа для реализации /usr/sbin/check_devpath

Порт можно также передавать в качестве параметра или выделим отдельную nvram переменную.
Вот набросал шаблон такого скрипта.
Можно начинать реализацию с него, и при необходимости править его, а когда будет нужно, наполним его реальными командами для соответствующих модемов.
Кроме этого хотел предложить делать первый вызов скрипта из скрипта dial, до вызова pppd с основным портом модема в качестве параметра. В этот момент этот порт ещё не занят данными и мы сможем получать статическую информацию для любых модемов (они все понимают ATI и т.п.)
Также предполагаю, что получение статистики сеанса из роутера сможете написать Вы. Если подскажете, где взять системное время с точностью хотя бы до 0,1 секунды, то могу попробовать и сам.
---- Добавлено ----
Вроде всё нашёл. Написал скрипт для определения информации по сессии.
To Rss - прошу посмотреть скрипт, проверить места извлечения информации и принять решение - вставлять в шаблон в таком виде (тогда надо определить, где хранить предыдущие значения для вычисления разниц и соответственно скорости) или ограничиться извлечением Time Stamp и информации по трафику, а все вычисления делать на яве уже непосредственно на страничке.
---- Ещё добавлено ----
Немного лучше разобрался с CDMA AnyDATA.
Новая версия скрипта. Сделал в двух вариантах. Основной и с 1 в имени. Правильный - основной. Но у меня пропадает в ответе один символ (причём всегда один и тот же) и поэтому приходится использовать альтернативный.

andr128
22-01-2011, 10:10
dlukanidin изменил немного ваш скрипт mod_stat
убрал цикл и вывод в файл чтоб просто выводил на экран.
7560
Проблема в том, что если воспользоваться скриптом во время сессии модема, интернет перестает работать. Приходится рвать соединение
killall pppd и снова подключаться pppd call dialup.
Скажите как этого избежать. :( :confused:

dlukanidin
22-01-2011, 14:23
Проблема в том, что если воспользоваться скриптом во время сессии модема, интернет перестает работать. Приходится рвать соединение
killall pppd и снова подключаться pppd call dialup.
Скажите как этого избежать. :( :confused:
1. Соединение скорее всего рвётся из-за того, что установлен неправильный порт. В комментариях в начале скрипта указано для каких модемов он тестировался и какой порт является портом UI.
2. Это старая версия скрипта, возьмите более новую, и лучше ту, что для тестирования. Хотя это не имеет отношения к падению соединения.
3. Если у Вас возникли трудности с определением правильного порта, выложите diagnostic info, постараюсь помочь или подскажу как сделать самостоятельно.

andr128
22-01-2011, 15:22
1. Соединение скорее всего рвётся из-за того, что установлен неправильный порт. В комментариях в начале скрипта указано для каких модемов он тестировался и какой порт является портом UI.
3. Если у Вас возникли трудности с определением правильного порта, выложите diagnostic info, постараюсь помочь или подскажу как сделать самостоятельно.


Прошивка у меня стоит еще довольно старая (еще 1.9.2.7-d-r382M)
поэтому diagnostic info там еще нет.
в /dev/usb/tts - 3 порта 0,1,2

модем e1550 соединяется через порт: 0
dialup такой:

debug
/dev/usb/tts/0
921600
crtscts
noipdefault
ipcp-accept-local
lcp-echo-interval 60
lcp-echo-failure 6
mtu 1400
mru 1400
usepeerdns
noauth

maxfail 0
persist
user 'bwc'
password 'bwc'
connect "/usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/peers/1.chat 2>/tmp/chat.log"

в вашем скрипте я так понимаю используется 2 порт


# Tested with
# Modems:
# Huawei - E1550(OK, port #2 from 0,1,2), E150(OK, port #3 from 0,1,2,3)
# ZTE - not supported

.....
port='/dev/usb/tts/2'
stat='/tmp/stat.tmp'
Modem="-"
counter=0
.....


2. Это старая версия скрипта, возьмите более новую, и лучше ту, что для тестирования. Хотя это не имеет отношения к падению соединения.

ткните пожалуйста в меня ссылкой а то что-то уже запутался :)
Мне нужно просто в терминале чтоб выводилось после выполнения скрипта.

rss
22-01-2011, 20:25
Вот набросал шаблон такого скрипта.
Можно начинать реализацию с него, и при необходимости править его, а когда будет нужно, наполним его реальными командами для соответствующих модемов.


Каркас для управления. На странице PPP Log появится кнопка USSD. Скрипт естественно надо будет заменить.

Файлы выгружаем в /gateway и пересобираем прошивку.

PS: на оформление внимания не обращать (если конечно не возникнет желания сделать как следует).

dlukanidin
22-01-2011, 21:59
ткните пожалуйста в меня ссылкой а то что-то уже запутался :)
Мне нужно просто в терминале чтоб выводилось после выполнения скрипта.

1. Вот последняя версия. (команды: stat.sh h)
2. C остальным вроде всё в порядке. Попробуйте просто cat /dev/usb/tts/2. Если увидите DSFLOWRPT: постоянно повторяющийся, то значит всё в порядке и должно работать. Если нет, может у Вас какие то экзотические настройки или в софте модема по другому переопределены порты. Попробуйте порт 1. Ещё лучше в винде посмотреть где определяется UI порт модема. Порядок назначения портов не меняется (т.е. они нумеруются в том же порядке для 1550 сначала собственно модем, затем остальные).

По результатам пожалуйста проинформируйте.

andr128
22-01-2011, 22:53
1. Вот последняя версия. (команды: stat.sh h)
2. C остальным вроде всё в порядке. Попробуйте просто cat /dev/usb/tts/2. Если увидите DSFLOWRPT: постоянно повторяющийся, то значит всё в порядке и должно работать. Если нет, может у Вас какие то экзотические настройки или в софте модема по другому переопределены порты. Попробуйте порт 1. Ещё лучше в винде посмотреть где определяется UI порт модема. Порядок назначения портов не меняется (т.е. они нумеруются в том же порядке для 1550 сначала собственно модем, затем остальные).

По результатам пожалуйста проинформируйте.
Спасибо что ответили!
Ну вот разобрался :rolleyes:
менял переменную внутри скрипта defUSCD=

[root@myrouter root]$ stat u
USSD *100*11# : Balans = 67 r. 49 kop. - Na 06:00 obem danny'h GPRS = 5 Mb 269 Kb - Na 21.01 07:56 ostatok tipa ASSA = 25 min. .
после этой команды интернета нет около 3-4 мин затем восстанавливается сам :confused: при этом ppp0 не пропадает.

[root@myrouter root]$ stat u
USSD *101# : Balans = 67 r. 49 kop.
а после этой все нормально :) инет как работал так и работает

Не знаю с чем связано, скорее всего с ОПСОСОМ. Конечно интереснее и информативнее была бы команда *100*11# но такие фокусы что то мне не нравятся.
Чем плоха команда *100# так это в том, что после каждого запроса баланса в ответ приходит СМС рекламного характера. Что-то типа "Сегодня день Петра пошлите в ответ ..... Цена СМС 35 руб с НДС".
В телефоне это раздражает и приходится удалять этот хлам после каждого запроса баланса. Поэтому я пользуюсь (и кто знает в нашем регионе) первой командой. В модеме эти СМСки наверно будут занимать какую-то память?

dlukanidin
23-01-2011, 02:17
Каркас для управления. На странице PPP Log появится кнопка USSD. Скрипт естественно надо будет заменить.

Файлы выгружаем в /gateway и пересобираем прошивку.

PS: на оформление внимания не обращать (если конечно не возникнет желания сделать как следует).
Попробовал. Чтобы испытать поточнее дополнил скрипт реальными командами и разбил на 2 части - пользовательскую и прошивочную. Не уверен, что это правильно, но пока так.
В целом схема работает.
Выявленные вопросы:
1. Вставленная мной в шаблон перекодировка не годится, т.к должна использоваться для запросов, а не для текста страницы. Убрал.
2. Ответ от оператора приходящий на русском выводится кракозябрами. Необходимо принять решение по используемой кодировке русского языка. Мне бы фрагмент текста или алфавит как должен выглядеть, я перепишу.
3. В ответ на AT команду ссыпается весь входной поток из DSFLOWRPT: RSSI: MODE: накопленный до получения реального ответа, а только потом сам ответ. В принципе ничего страшного, но если необходимо, можно озаботиться фильтрацией.

И очень хотелось бы иметь и динамически отображаемую инфо по сигналу и сессии (извините, что одно и то же повторяю).

В модеме эти СМСки наверно будут занимать какую-то память?
По моему копит до максимума, а потом игнорирует. У меня на скайлинке похожая гадость была (только смс-ка приходила, когда я в личный кабинет заходил), так там ещё на модеме спец лампочка мигать начинала, но потом удалось отключить эту опцию в личном кабинете на сайте. Поговорите с оператором, может и у Вас отключить можно.

rss
23-01-2011, 06:24
Попробовал. Чтобы испытать поточнее дополнил скрипт реальными командами и разбил на 2 части - пользовательскую и прошивочную. Не уверен, что это правильно, но пока так.
В целом схема работает.
Выявленные вопросы:
1. Вставленная мной в шаблон перекодировка не годится, т.к должна использоваться для запросов, а не для текста страницы. Убрал.
2. Ответ от оператора приходящий на русском выводится кракозябрами. Необходимо принять решение по используемой кодировке русского языка. Мне бы фрагмент текста или алфавит как должен выглядеть, я перепишу.
3. В ответ на AT команду ссыпается весь входной поток из DSFLOWRPT: RSSI: MODE: накопленный до получения реального ответа, а только потом сам ответ. В принципе ничего страшного, но если необходимо, можно озаботиться фильтрацией.
Страницы сейчас в кодировке UTF-8. В принципе, можем сделать cp1251 или 866, но тогда будут проблемы у всех остальных не англоговорящих пользователей. Первый вопрос - в какой кодировке выдает сообщения провайдер. Если различные, то придется держать несколько таблиц. iconv полностью втянуть вряд ли удастся - слишком большой.

Впрочем, как вариант - переключатель локали, выбираемый пользователем. Или вообще убрать строку <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> из modem_ussd.asp. Тогда перекодированием будет заниматься браузер (принудительно придётся выбирать тип кодировки).

Вместо фильтрации ответа на AT можно сначала вычитать всё, что есть, а потом послать команду.


И очень хотелось бы иметь и динамически отображаемую инфо по сигналу и сессии (извините, что одно и то же повторяю).
Про это помню, просто начал с командной части. К сожалению, испытываю серьезные проблемы со временем.

dlukanidin
23-01-2011, 22:10
Страницы сейчас в кодировке UTF-8.
...
Вместо фильтрации ответа на AT можно сначала вычитать всё, что есть, а потом послать команду.

1. Сделал кодировку UTF-8. (Кстати, теперь можно и информационные заголовки на русском делать, только не забывать конвертировать.)

2. Читаю буфер 0.3 сек, затем даю команду. Вроде получилось.

Скорректированную пользовательскую часть скрипта выложил.

rss
24-01-2011, 07:50
1. Сделал кодировку UTF-8. (Кстати, теперь можно и информационные заголовки на русском делать, только не забывать конвертировать.)

2. Читаю буфер 0.3 сек, затем даю команду. Вроде получилось.

Скорректированную пользовательскую часть скрипта выложил.

Посмотрю как смогу.
А вот с кодировками всё таки у нас будет проблема. В UTF-8 надо конвертировать из локальной, а мы её не знаем - зависит от провайдера.... Если, конечно, не найти какой-нибудь способ получить от провайдера хотя бы страну или язык вывода. (Просьба не забывать, что у нас не только русскоязычные пользователи).

AndreyUA
24-01-2011, 09:50
Посмотрю как смогу.
А вот с кодировками всё таки у нас будет проблема. В UTF-8 надо конвертировать из локальной, а мы её не знаем - зависит от провайдера.... Если, конечно, не найти какой-нибудь способ получить от провайдера хотя бы страну или язык вывода. (Просьба не забывать, что у нас не только русскоязычные пользователи).Может по дефолту ставить UCS-2, а в веб интерфейсе сделать настройку кодировки?

rss
24-01-2011, 10:22
Может по дефолту ставить UCS-2, а в веб интерфейсе сделать настройку кодировки?

Я не знаю, как переключить браузер в другую кодировку средствами javascript и возможно ли это. К сожалению, другой вариант требует тянуть с собой все возможные таблицы кодировок (даже среди европейских языков их достаточно много). Места для iconv в 4МБ прошивке нет.

dlukanidin
24-01-2011, 11:01
Я не знаю, как переключить браузер в другую кодировку средствами javascript и возможно ли это. К сожалению, другой вариант требует тянуть с собой все возможные таблицы кодировок (даже среди европейских языков их достаточно много). Места для iconv в 4МБ прошивке нет.
Моё понимание вопроса:
1. Кодировка UTF8 достаточно универсальна и не должна зависеть от локали.
2. В настоящий момент раскодировка ответов оператора идёт в 2 этапа

2.1 перекодировка в 1251 или просто ASCII из того формата, в котором ответ прислан оператором
2.2 перекодировка из 1251 в русский UTF8 используемый в браузере
Согласен, что в некоторых случаях делаются лишние действия, но так можно смотреть ответ и в терминале и в браузере.
3. В любом случае, это пользовательские скрипты. И если нужно, чтобы это работало на арабском, пользователь может подправить функции под себя. Пример, как это сделать у него есть, осталось поправить пару цифр.

Не думаю, что надо писать универсальный скрипт для работы с USSD со всеми операторами и в любой кодировке. Там может быть слишком много частных особенностей. Чего только стоят ответы Мегафона, которые стали вдруг приходить с 0D 0A. Причём 0D в echo отрабатывается, а 0A почему то нет. В результате вторая строка перезаписывает часть первой и получается компот. Вынужден был их в пробелы конвертировать.
Я думаю, что вариант реализованый в прошивке должен быть универсальным и крайне лаконичным, а у пользователя должна быть возможность добавить нужный ему функционал и особенности основываясь на имеющихся примерах реализации.
Кстати в ответе кодировка вроде присутствует. Сейчас у меня есть инфо о трёх:
15 - PDU (т.е. 7 бит упакованные в байт) и это ASCII
72 - UTF8, причём именно русский
128 - UTF8, там был тоже русский.

AndreyUA
24-01-2011, 11:16
Я не знаю, как переключить браузер в другую кодировку средствами javascript и возможно ли это. К сожалению, другой вариант требует тянуть с собой все возможные таблицы кодировок (даже среди европейских языков их достаточно много). Места для iconv в 4МБ прошивке нет.Можно формировать всплывающее окно скриптом с различными
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

rss
24-01-2011, 18:10
Можно формировать всплывающее окно скриптом с различными
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Можно попробовать. Область отображения сделать через iframe. Как идею мне еще подбросили следующее. Можно в заголовке запроса у браузера вычитать локаль, в которой он работает. Сильно вероятно, что ответ надо сформировать в той же локали (с русским языком сложнее, однако подозреваю, что большинство генерирует в cp1251). Проблемы будут у тех, кто пытается из под русской локали получить ussd с какого-нибудь польского провайдера.

Если есть время - подключайтесь. На неделе у меня времени точно не будет, а каркас я уже выложил.

AndreyUA
24-01-2011, 19:12
Можно попробовать. Область отображения сделать через iframe.
Можно вот так

<meta http-equiv="Content-Type" content="text/html; charset=<% nvram_get_x("lan.log","web_locale"); %>">
а в скрипте или в настройках веб интерфейса присваивать

nvram set web_locale=UTF-8
или ту локаль, которая нужна.


Если есть время - подключайтесь. На неделе у меня времени точно не будет, а каркас я уже выложил.С удовольствием, но я могу чем-то заниматься только на работе (удаленно), а с модемом это невозможно.

rss
24-01-2011, 19:26
Можно вот так

<meta http-equiv="Content-Type" content="text/html; charset=<% nvram_get_x("lan.log","web_locale"); %>">
а в скрипте или в настройках веб интерфейса присваивать

nvram set web_locale=UTF-8
или ту локаль, которая нужна.

Тогда проще сгенерировать сразу правильную html-страницу скриптом опроса (т.е. на выход не текст, а html-разметку). А дальше вставить её в код iframe (вместо области textarea).


С удовольствием, но я могу чем-то заниматься только на работе (удаленно), а с модемом это невозможно.

Поправить внешний вид страниц, например. Стили поставить правильные.

AndreyUA
25-01-2011, 10:43
Я не совсем веб программер, вернее совсем не веб программер :), поэтому получилось что-то типа такого:
7573
В консоли выполняем:

nvram set ussd_web_locale=UTF-8 #локаль
nvram set ussd_port=/dev/usb/tts/2 # порт куда слать запросы, для huawei E1550 на ядре 2.4 он /dev/usb/tts/2
nvram set ussd_query=*100# # ussd для баланса, для utel это *100#
В скрипте не хватает сообщения об ошибке или о том, что ответ не получен.
Локаль проверить не могу, т.к. мой оператор отвечает транслитом.


2 rss: я хз как сохранить nvram из вебморды.
Я думаю, что как у вас появится время, то вы доделаете как положено. ;)


upd: Не работает получение сигнала, чето не так в скрипте.

dlukanidin
26-01-2011, 00:58
Локаль проверить не могу, т.к. мой оператор отвечает транслитом.
2 rss: я хз как сохранить nvram из вебморды.
Я думаю, что как у вас появится время, то вы доделаете как положено. ;)
upd: Не работает получение сигнала, чето не так в скрипте.
1. UTF-8 на русском работает
2. Сохранение всех изменений: flashfs save && flashfs commit && flashfs enable
3. Сигнал в скрипте поправил
4. Поправил asp, чтобы ссылался на скрипт, куда его положил rss.
Всё пересобрал, проверил, работает, только окошко браузера, я думаю, надо побольше сделать, чтобы сразу все элементы помещались.

rollon
26-01-2011, 05:56
1. UTF-8 на русском работает
2. Сохранение всех изменений: flashfs save && flashfs commit && flashfs enable
3. Сигнал в скрипте поправил
4. Поправил asp, чтобы ссылался на скрипт, куда его положил rss.
Всё пересобрал, проверил, работает, только окошко браузера, я думаю, надо побольше сделать, чтобы сразу все элементы помещались.

Не пришлете файл прошивки для тестирования?

AndreyUA
26-01-2011, 06:45
1. UTF-8 на русском работает
Надо бы проверить в другой кодировке



2. Сохранение всех изменений: flashfs save && flashfs commit && flashfs enableможно просто
nvram commit

3. Сигнал в скрипте поправилРаботает



4. Поправил asp, чтобы ссылался на скрипт, куда его положил rss.Забыл вернуть назад. Может путь сохранять в nvram?


Всё пересобрал, проверил, работает, только окошко браузера, я думаю, надо побольше сделать, чтобы сразу все элементы помещались.См. архив, собрал все до кучи, увеличил размер окна.
Если нужно, то позже соберу тестовые прошивки.

dlukanidin
26-01-2011, 10:01
Надо бы проверить в другой кодировке

Не смог, На переменную nvram не реагирует, такое впечатление, что кто-то парсит кодировку и вставляет UTF-8. Проверял и на IE и на Firefox.

Не пришлете файл прошивки для тестирования?
Извините, у меня сильно несимметричный канал, с upload проблемы.

AndreyUA
26-01-2011, 10:13
Не смог, На переменную nvram не реагирует, такое впечатление, что кто-то парсит кодировку и вставляет UTF-8. Проверял и на IE и на Firefox.

Извините, у меня сильно несимметричный канал, с upload проблемы.
А в исходнике станицы что, если изменить переменную nvram?


Собрал прошивки, кто хочет - пробуйте
http://rapidshare.com/files/444626066/DIR320-1.9.2.7-d-r2509M-ussd.trx
http://rapidshare.com/files/444626162/WL500gp-1.9.2.7-d-r2509M-ussd.trx
http://rapidshare.com/files/444626311/WL500gpv2-1.9.2.7-d-r2509M-ussd.trx

в телнете надо сделать

mkdir /udr/local/sbin
cp /usr/sbin/modem_stat.sh /usr/local/sbin/

или создать свой файлик modem_stat.sh

dlukanidin
26-01-2011, 10:26
А в исходнике станицы что, если изменить переменную nvram?
UTF-8, именно исходники (исходный код страницы в Firefox, просмотр HTML кода в IE) и проверял. Пробовал и вручную в броузере кодировки менять, и настройки авто отключал, результат неизменный.

[root@DIR320 root]$ nshow ussd
ussd_web_locale=windows-1251
ussd_query=*100#
ussd_port=/dev/usb/tts/2
[root@DIR320 root]$

<html><head><title>WL500g.PremiumV2 Web Manager</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="style.css" media="screen"><script type="text/javascript" src="overlib.js"></script><script type="text/javascript" src="general.js"></script><script type="text/javascript">function get_syscmd_out(xhr)
{
var url = "http://"+window.location.host+"/syscmd_out.asp";
getHTTPRequest( url, show_result );
}

AndreyUA
26-01-2011, 11:32
UTF-8, именно исходники (исходный код страницы в Firefox, просмотр HTML кода в IE) и проверял. Пробовал и вручную в броузере кодировки менять, и настройки авто отключал, результат неизменный.

[root@DIR320 root]$ nshow ussd
ussd_web_locale=windows-1251
ussd_query=*100#
ussd_port=/dev/usb/tts/2
[root@DIR320 root]$

<html><head><title>WL500g.PremiumV2 Web Manager</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><link rel="stylesheet" type="text/css" href="style.css" media="screen"><script type="text/javascript" src="overlib.js"></script><script type="text/javascript" src="general.js"></script><script type="text/javascript">function get_syscmd_out(xhr)
{
var url = "http://"+window.location.host+"/syscmd_out.asp";
getHTTPRequest( url, show_result );
}


Я не учел, что при сборке прошивки эти строчки правятся. Исправил линки, попробуйте.

dlukanidin
26-01-2011, 12:38
Я не учел, что при сборке прошивки эти строчки правятся. Исправил линки, попробуйте.
Не понял, какие строчки и какие линки.
Прошивку я сам собираю.
---
Со строчками понятно. А где нужно поправить ?

AndreyUA
26-01-2011, 12:42
Не понял, какие строчки и какие линки.
Прошивку я сам собираю.Исправил ссылки в посте выше, там с локалью должно работать.
Строчки эти

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
правятся файликом mkweb при сборке. Хотите - поправьте сами этот файлик, или залейте собранную прошивку из поста выше.

dlukanidin
26-01-2011, 14:44
правятся файликом mkweb при сборке. Хотите - поправьте сами этот файлик, или залейте собранную прошивку из поста выше.
Разобрался, внёс следующие исправления в mkweb, кстати и имя переменной поправил
# Add uniform Content-Type line to all .asp-s
if [ ! -z $(echo $i | grep "modem_ussd") ]; then
sed -ri 's|</title>|</title>\n<meta http-equiv="Content-Type" content="text/html; charset=<% nvram_get_x("lan.log","ussd_web_locale"); %>">|' $i
else
sed -ri 's|</title>|</title>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">|' $i
fi

В результате в коде страницы
<html><head><title>WL500g.PremiumV2 Web Manager</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><link rel="stylesheet" type="text/css" href="style.css" media="screen"><script type="text/javascript" src="overlib.js"></script><script type="text/javascript" src="general.js"></script><script type="text/javascript">function get_syscmd_out(xhr)
{

т.е. ожидаемый результат достигнут,
:( только эффекта нет.
В общем предложенная схема не работает. Если ответ закодирован в UTF-8, то показывает правильно при любых установках для страницы, если нет, то кракозябры, опять при любых установках. Кстати, чтобы это увидеть необязательно иметь ответ от оператора, набейте просто текст в скрипте и пусть он его отвечает.
Самое плохое, что в IE показывает в статусе, что у него системная ошибка и не показывает ответ ussd совсем, если он не в UTF-8.
В общем надо спецов по сайтостроительству просить помочь.
А я только ещё раз могу ткнуть в свой пост несколько выше и посоветовать остановиться на UTF-8 и не заморачиваться.

AndreyUA
26-01-2011, 16:33
Разобрался, внёс следующие исправления в mkweb, кстати и имя переменной поправил
# Add uniform Content-Type line to all .asp-s
if [ ! -z $(echo $i | grep "modem_ussd") ]; then
sed -ri 's|</title>|</title>\n<meta http-equiv="Content-Type" content="text/html; charset=<% nvram_get_x("lan.log","ussd_web_locale"); %>">|' $i
else
sed -ri 's|</title>|</title>\n<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">|' $i
fi

В результате в коде страницы
<html><head><title>WL500g.PremiumV2 Web Manager</title><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"><link rel="stylesheet" type="text/css" href="style.css" media="screen"><script type="text/javascript" src="overlib.js"></script><script type="text/javascript" src="general.js"></script><script type="text/javascript">function get_syscmd_out(xhr)
{

т.е. ожидаемый результат достигнут,
:( только эффекта нет.
В общем предложенная схема не работает. Если ответ закодирован в UTF-8, то показывает правильно при любых установках для страницы, если нет, то кракозябры, опять при любых установках. Кстати, чтобы это увидеть необязательно иметь ответ от оператора, набейте просто текст в скрипте и пусть он его отвечает.
Самое плохое, что в IE показывает в статусе, что у него системная ошибка и не показывает ответ ussd совсем, если он не в UTF-8.
В общем надо спецов по сайтостроительству просить помочь.
А я только ещё раз могу ткнуть в свой пост несколько выше и посоветовать остановиться на UTF-8 и не заморачиваться.Похоже что js не любит кодировки, отличные от utf8 и ему пофигу на charset. Ну тогда надо убрать эту хрень
<% nvram..... %>
из заголовка страницы, вписать там UTF-8, сделать

nvram unset ussd_locale
nvram commit
и радоваться utf8 :)

rss
26-01-2011, 18:13
Похоже что js не любит кодировки, отличные от utf8 и ему пофигу на charset. Ну тогда надо убрать эту хрень
<% nvram..... %>
из заголовка страницы, вписать там UTF-8, сделать

nvram unset ussd_locale
nvram commit
и радоваться utf8 :)

Внимательно посмотреть пока не могу. Избежать проблем с различными кодировками в js можно если вместо <textarea name="result"> страницы modem_ussd.asp сделать iframe.

Соответственно в функции



function get_syscmd_out(xhr)
{
var url = "http://"+window.location.host+"/syscmd_out.asp";
getHTTPRequest( url, show_result );
} вместо getHTTPRequest прописать подстановку src этому iframe.

andr128
27-01-2011, 22:53
Что то не могу разобраться со встроенными скриптами установки и запуска модема на новых прошивках.
Цель - при загрузке роутера должен по умолчанию работать Ethernet (Wan) в Automatic или Static IP.
Должны грузиться драйвера модема, но модем не должет подключаться.
Что делал описал тут http://wl500g.info/showpost.php?p=220531&postcount=17

Имею 3 модема: ZTE626, HW E1550, AnyDATA ADU-510A.
2 роутера: Dir-320 (r382M), WL-500G PV2 (r2174/r2506)

Эксперимент делаю на WL500gpv2. C ADU-510A все получилось, а вот с E1550, ZTE626 (CD-ROM у обоих отключен) что-то не выходит.
измененный файл initmodem вызывается из post-boot.

после выполнения скрипта initmodem
имеею:


P: Vendor=12d1 ProdID=1001 Rev= 0.00
S: Manufacturer=HUAWEI Technology
S: Product=HUAWEI Mobile
C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff 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= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=83(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=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
I: If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1

Драйвер почему-то не подключился
Читал wiki.vectormm.net

"... на странице USB Network Devices - 3G/CDMA Modem в поле USB device location ID имеется кнопка View, при нажатии на которую открывается таблица подключенных устройств. То же можно получить командой cat /proc/bus/usb/devpath"

[root@alfa root]$ cat /proc/bus/usb/devpath
Device : Location : Info

Но если нажать Custom USB device parameters - USB device location ID кнопку View
http://myrouter/devpath_select_form.asp

Драйвера волшебным образом подключаются. :(


[root@alfa root]$ cat /proc/bus/usb/devpath
Device : Location : Info
/dev/usb/tts/0 : 1.2.0 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
/dev/usb/tts/1 : 1.2.1 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"
/dev/usb/tts/2 : 1.2.2 : Manufacturer="HUAWEI Technology" : Product="HUAWEI Mobile"

Концовка лога:

Jan 27 17:58:41 kernel: I/O error: dev 08:00, sector 0
Jan 27 17:58:41 kernel: unable to read partition table
Jan 27 17:59:44 dropbear[303]: Child connection from 192.168.1.11:1794
Jan 27 17:59:44 dropbear[303]: password auth succeeded for 'root' from 192.168.1.11:1794
Jan 27 18:20:02 kernel: usbserial.c: USB Serial support registered for Option GSM modem
Jan 27 18:20:02 kernel: usbserial.c: Option GSM modem converter detected
Jan 27 18:20:02 kernel: usbserial.c: Option GSM modem converter now attached to ttyUSB0 (or usb/tts/0 for devfs)
Jan 27 18:20:02 kernel: usbserial.c: Option GSM modem converter detected
Jan 27 18:20:02 kernel: usbserial.c: Option GSM modem converter now attached to ttyUSB1 (or usb/tts/1 for devfs)
Jan 27 18:20:02 kernel: usbserial.c: Option GSM modem converter detected
Jan 27 18:20:02 kernel: usbserial.c: Option GSM modem converter now attached to ttyUSB2 (or usb/tts/2 for devfs)
Jan 27 18:20:02 kernel: option.c: USB Driver for GSM modems: v0.7.2a

Даже по времени видно, ткнул на кнопку через 20 минут :) .

Далее если вызываю pppd call dialup происходит соединение.
но если остановить killall pppd и вновь вызвать pppd call dialup
соединения не происходит...



[root@alpha root]$ nvram set rc_service=wan_disconnect,0
[root@alpha root]$ kill -SIGUSR1 1
[root@alpha root]$ sleep 2
[root@alpha root]$ pppd call dialup
[root@alpha root]$ killall pppd
[root@alpha root]$ pppd call dialup
[root@alpha root]$ ps
..........
299 root 1188 S pppd call dialup
304 root 1484 S sh -c /tmp/ppp/peers/chat.sh
305 root 1484 S /bin/sh /tmp/ppp/peers/chat.sh
307 root 664 S chat -s -S -V -t 10 -f /tmp/ppp/peers/1.chat
308 root 1484 R ps

всe, вечная попытка подсоединения..

Calling UMTS/GPRS
ATZ
OK
AT+CGDCONT=1,"IP","internet"
OK
ATD*99***1#
CONNECTchat: Jan 28 06:15:33 CONNECT
Calling UMTS/GPRS
Failed
Calling UMTS/GPRS
Failed
Calling UMTS/GPRS
Failed
Calling UMTS/GPRS
Failed

скрипт: 7587
лог: 7588

dlukanidin
28-01-2011, 01:08
Что то не могу разобраться со встроенными скриптами установки и запуска модема на новых прошивках.
Логика загрузки драйверов следующая:
1. Драйвера грузятся в скрипте dial.
2. Если они уже загружены, то вновь не грузятся.
3. acm грузится в любом случае и подхватывает устройства в нём прописанные.
4. Если указан vid pid, то грузится usbserial с параметрами, иначе без параметров и option. usbserial без параметров это generic для других, он порты модема не поднимает. В option прописано много модемов и он цепляет прописанные в нём.
5. если указан usbloc то номер порта определяется по нему, иначе по параметру заданному в морде.

Проверьте vid, pid записанные в морде. Иногда они могут сохраниться от предыдущего модема и тогда usbserial грузится с кривыми параметрами и модем не поднимается. У Вас видно, что запустился option.
У меня он тоже иногда вылезает в непредсказуемые моменты и вдруг поднимается второй неактивный модем. Не разбирался почему.

Теперь по вопросу huawei (впрочем и zte ведёт себя похоже). Если происходит внезапный для модема обрыв связи, например при перезагрузке , то он намертво вешается и у нового pppd нет шансов. Кстати при перезагрузке как правило тоже. У Вас в начале всё делается правильно, а потом вы его грубо убиваете.
Для борьбы с этим гадким зависом у меня сделано так: у pppd есть 10 (это много) попыток, не смог - ребут, не помогло - рестартуем модем командой AT+CFUN=1,1 через UI порт, ждём 7 сек и опять ребут, и так 20 раз. Если всё ещё не поднялось, то ждём оператора. Хотя, наверное можно упростить.

andr128
28-01-2011, 12:57
1. Если вызвать переключатель режима так:
usb_modeswitch -c /path/anydata.conf
или так:
usb_modeswitch -v 0x05c6 -p 0x1000 -V 0x16d5 -P 0x6502 -M 5553424312345678000000000000061b000000020000000000 000000000000

нужно ли потом явно указывать usbserial параметры vendor и product:
insmod usbserial vendor=0x16d5 product=0x6502 maxSize=4096

или достаточно:
insmod usbserial maxSize=4096

2. http://192.168.1.1/devpath_select_form.asp
что делает эта функция в эквиваленте командах bash?
сразу скажу что cat /proc/bus/usb/devpath не одно и тоже!

AndreyUA
28-01-2011, 13:15
1. Если вызвать переключатель режима так:
usb_modeswitch -c /path/anydata.conf
или так:
usb_modeswitch -v 0x05c6 -p 0x1000 -V 0x16d5 -P 0x6502 -M 5553424312345678000000000000061b000000020000000000 000000000000

нужно ли потом явно указывать usbserial параметры vendor и product:
insmod usbserial vendor=0x16d5 product=0x6502 maxSize=4096

или достаточно:
insmod usbserial maxSize=4096

2. http://192.168.1.1/devpath_select_form.asp
что делает эта функция в эквиваленте командах bash?
сразу скажу что cat /proc/bus/usb/devpath не одно и тоже!
#!/bin/sh

kernel="$(uname -r)"
kernel=${kernel:0:3}

if [ "$kernel" = "2.4" ]; then
acm_mod="acm"
else
acm_mod="cdc-acm"
fi

usbserial="$(lsmod | grep usbserial)"
acm="$(lsmod | grep $acm_mod)"
option="$(lsmod | grep option)"

[ -z "$usbserial" ] && insmod usbserial;
[ -z "$acm" ] && insmod $acm_mod;
[ -z "$option" ] && insmod option;

cat /proc/bus/usb/devpath

dlukanidin
29-01-2011, 16:32
Переделал пользовательскую часть скрипта, чтобы убрать двойную перекодировку и добавил процедуры для работы с ZTE.

dlukanidin
30-01-2011, 03:14
1. Если вызвать переключатель режима так:

ещё раз о логике подключения: не важно как Вы переключаете модем, важно, чтобы он переключился из режима ZERO CD в режим многопортового устройства.
Драйвер usbserial работает или как оболочка для других драйверов (generic) или как собственно драйвер для устройства (vid, pid).
По информации AndreyUA видно почему подключается Option. Попробую написать альтернативную процедуру выбора модема без поднятия драйверов (инфо то есть).

Вопрос к гуру: является ли наличие порта
E: Ad=81(I) Atr=03(Int.) MxPS= 64 Ivl=5ms
непременным условием, что именно это порт модема. По тому, что я вижу вроде да, но может быть по другому ? можем ли мы принимать этот порт как порт модема по умолчанию?
Можно ли определить какой порт модема из оставшихся является UI или DM, а какой предназначен для голосовых или видео звонков?

andr128
30-01-2011, 09:05
...Теперь по вопросу huawei (впрочем и zte ведёт себя похоже). Если происходит внезапный для модема обрыв связи, например при перезагрузке , то он намертво вешается и у нового pppd нет шансов. Кстати при перезагрузке как правило тоже. У Вас в начале всё делается правильно, а потом вы его грубо убиваете.

Да нет вы не правы.
Взял старый скрипт от sorine подкорректировал его для новых переменных nvram wan_modem_xxxxx


#!/bin/sh

#======================================
# Script set-modem
# !! Only USB modem /kernel 2.4
# No Phone Device !!
#======================================

#======================================
# Get nvram parametrs
#======================================
apn=$(nvram get wan_modem_apn)
dialnumber=$(nvram get wan_modem_dialno)
modem=$(nvram get wan_modem_type)
username=$(nvram get wan_modem_username)
port=$(nvram get wan_modem_tts_port)
portspeed=$(nvram get wan_modem_portspeed)
password=$(nvram get wan_modem_passwd)
mtu=$(nvram get wan_modem_mtu)
mru=$(nvram get wan_modem_mru)
vend=$(nvram get wan_modem_vid)
prod=$(nvram get wan_modem_pid)
pppdoptions=$(nvram get wan_modem_options)
initoptions=$(nvram get wan_modem_dialup_init)
demand=$(nvram get wan_modem_demand)
idle=$(nvram get wan_modem_idle)
maxfail=$(nvram get wan_modem_maxfail)
hot_restart=$(nvram get wan_modem_hot_restart)
serial_enable=$(nvram get wan_modem_serial_enable)
usbloc=$(nvram get wan_modem_usbloc)
zerocd=$(nvram get wan_modem_zerocd_mode)


log=/tmp/setmodem.log

if [ $modem == 0 ]; then
username="mobile"
password="internet"
fi

logger " !! Run set-modem script !! See log: cat $log"

echo "
Log set-modem script
" > $log

echo "===================================
# Info nvram for set modem #
===================================
modem = $modem (0-CDMA 1-GPRS)
port = $port
apn = $apn
dialnumber = $dialnumber
username = $username
password = $password
portspeed = $portspeed
mtu = $mtu
mru = $mru
vend = $vend
prod = $prod
pppdoptions = $pppdoptions
initoptions = $initoptions
demand = $demand
idle = $idle
maxfail = $maxfail
hot_restart = $hot_restart
serial_enable = $serial_enable
usbloc = $usbloc
zerocd = $zerocd
===================================
" >> $log


if [ "$zerocd" == "UserDefined" ]; then
echo "run usb_modeswitch" >> $log
usb_modeswitch -c /usr/local/etc/usb_modeswitch.conf >> $log
fi
sleep 10 # пауза для usb_modeswitch
insmod usbserial vendor=$vend product=$prod maxSize=4096
echo "insmod usbserial vendor=$vend product=$prod maxSize=4096" >> $log

#mkdir /tmp/ppp/peers/
#sleep 20

#=============================================
# chat for CDMA/EVDO modems
#=============================================
echo "'' ''
'' 'ATZ'
'OK' 'ATDT#777'
'CONNECT' 'ATO'" > /tmp/ppp/peers/0.chat

#=============================================
# chat for GPRS/EDGE/UMTS/HSPDA modems
#=============================================
echo "'' ''
'' 'ATZ'
'' 'AT+CGDCONT=1,\"IP\",\"$apn\"'
'OK' 'ATD$dialnumber'
'CONNECT' ''" > /tmp/ppp/peers/1.chat

#=============================================
# dialup
#=============================================
echo "debug
/dev/usb/tts/$port
$portspeed
crtscts
noipdefault
ipcp-accept-local
lcp-echo-interval 60
lcp-echo-failure 6
mtu $mtu
mru $mru
usepeerdns
noauth
$pppdoptions
maxfail 0
#nodetach
persist
user '$username'
password '$password'
connect \"/usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/peers/$modem.chat 2>/tmp/chat.log\"" > /tmp/ppp/peers/dialup

#pppd call dialup & >> /tmp/chat.log

теперь ZTE и Huawei работают без проблем убиванием и поднятием pppd

pppd call dialup
killall pppd
pppd call dialup
здесь соединение нормально поднимается
Но вот что выяснил. Как я писал ранее ZTE и Huawei без CD-ROM и не требуют переключения с помощью usb_modeswitch.
А вот AnyDATA 510 требуется переключение на режим модема.
так вот теперь он не раработает после прибивания pppd.
Я полагаю что killall pppd каким-то образом влияет на режим работы модема.
Что еще интересно usb_modeswitch вызывается сам даже если
в Set as WAN Connection Type by default галки не стоит.
достаточно в Zero CD Configuration поставить Auto или Config at /usr/local/etc/usb_modeswitch.conf

andr128
30-01-2011, 18:01
Объясните пожалуйста а что делает скрипт chat.sh


#!/bin/sh
if [ $(nvram get wan_modem_need_chat) == 1 ]; then
chat -s -S -V -t 10 -f /tmp/ppp/peers/0.chat 2>>/tmp/chat.log
res=$?
else
echo "<<< chat.sh >>> Modem session may be up, try to reconnect" >>/tmp/chat.log
nvram set wan_modem_need_chat=1
return 0;
fi

if [ $res = 4 ]; then
echo "<<< chat.sh >>> Modem session is up, force reconnect" >>/tmp/chat.log
return 0;
fi
return $res


и что за переменная wan_modem_need_chat :confused:
кто-то ее обнуляет?

dlukanidin
31-01-2011, 00:18
Объясните пожалуйста а что делает скрипт chat.sh
и что за переменная wan_modem_need_chat :confused:
кто-то ее обнуляет?
Некоторые модемы, например Anydata ADU300A при завершении сессии по инициативе pppd или при его принудительном завершении не разрывают связь с провайдером. В результате модем остаётся в дата режиме и не принимает никаких AT команд. При этом для того, чтобы поднять новое соединение не нужно собственно выполнять chat, а просто вернуть pppd код 0.
Этот скрипт и предназначен для ловли такой ситуации.
В случае, если при подобных "зависаниях" в ответах модема не приходит символ '~', то нужно установить nvram set wan_modem_hot_restart=1.
При этом добавляется скрипт, который обнуляет соответствующую переменную после поднятия соединения и следующая попытка после разрыва будет сделана как будто соединение уже установлено.
В подавляющем большинстве случаев этого не требуется и поэтому переменная не вынесена в морду, но в некоторых частных ситуациях это позволяет обойти псевдо зависание.


теперь ZTE и Huawei работают без проблем убиванием и поднятием pppd

Из какого скрипта запускается pppd на модем влиять не должно ИМХО. Влияние могут оказать опции pppd, а также как запускается сам скрипт. Разницу заметил только в опции nodetach и отключенных протоколах компрессии. Возможно задержки в 2 сек перед повторным запуском мало.

---- Добавлено ----

При определении USB device location ID сейчас загружаются драйвера, в результате это определение не всегда работает правильно (например не показывает всех устройств) и запускает option, в правильной работе которого нет полной уверенности. По крайней мере у меня с ним возникали зависания, которые отсутствовали при использовании usbserial.
Чтобы решить этот вопрос написал скрипт.
To Rss - прошу Вас посмотреть и решить есть ли смысл вставлять этот скрипт. Туда можно добавить ZERO CD устройства с комментарием (need usb-modeswitch). Результат можно использовать для автоматического определения VID PID на выбранном модеме. Также возможна дополнительная автоматизация. Ну и это ещё один шажок в сторону multi wan.
To Остальные - просьба проверить скрипт на Ваших конфигурациях и прислать замечания (с приложением cat /proc/bus/usb/devices)

andr128
31-01-2011, 22:08
dlukanidin наконец то я разобрался в чем проблема :)
1. Да вы правы. Для CDMA AnyData скрипт chat.sh необходим именно для моего случая когда я убиваю pppd. Для ZTE626, HW E1550 он по барабану.
Я так и не понял по поводу пременной set wan_modem_need_chat
и упростил скрипт

#!/bin/sh
echo >>/tmp/chat.log
echo "New calling chat: `date`" >>/tmp/chat.log

chat -s -S -V -t 10 -f /tmp/ppp/peers/0(1).chat 2>>/tmp/chat.log
res=$?

if [ $res = 4 ]; then
echo "Modem session is up, force reconnect" >>/tmp/chat.log
# (это работает у меня только в случае с AnyData после убивания и поднятия pppd)
return 0;
fi

return $res

Я убрал из dialup nodetach для того чтобы можно было удалить процесс pppd (из-за этого параметра pppd не падает) для того чтобы можно переключится на интерфейс WAN. Если вы знаете способ лучше подскажите.

2. По поводу загрузки драйверов option и usbserial.
Тут вообще интересно.
Выяснил что если поставить в скрипт перед загрузкой драйверов паузу
sleep 5..10 сек, то тогда всегда нормально грузится usbserial c параметрами vid и pid
/usr/ppp/uni/dial


.......
fi
}
sleep 5
load_drivers
sleep 1
write_dialup_file

while true; do
sleep 1
......

иначе драйвер
insmod usbserial vendor=$(nvram get wan_modem_vid) product=$(nvram get wan_modem_pid) $maxpacket
не загрузится!!! Вернее он грузится, но не присваивается модему.
А с паузой все ОК. (можете проверить сами)

Мне не понятна опция USB device location ID: и связанная с ней кнопка <View> как выяснилось после ее нажатия грузятся

[ -z "$usbserial" ] && insmod usbserial;
[ -z "$acm" ] && insmod $acm_mod;
[ -z "$option" ] && insmod option
после этого драйвер serial уже назначен модему (cat /proc/bus/usb/devices) через option, но если прибить процесс pppd и снова поднять его, то как я писал ранее больше коннекта мы не получим.
Короче я понял драйвер option вреден для меня :eek:
Более того каким то странным образом опции между собой связаны
USB device location ID:
Autodetect device ( )Yes (*)No
USB tts(ac) port: 3
и не дают изменить порт модема если не очистить поле USB device location ID. Логику вообще не понял. :confused:

если выгрузить драйвера:
rmmod option
rmmod usbserial
и дать команду cat /proc/bus/usb/devpath
она покажет к примеру это:

Device : Location : Info
/dev/usb/tts/0 : 1.2.0 : Manufacturer="ZTE,Incorporated" : Product="ZTE WCDMA Technologies MSM"
/dev/usb/tts/1 : 1.2.1 : Manufacturer="ZTE,Incorporated" : Product="ZTE WCDMA Technologies MSM"
/dev/usb/tts/2 : 1.2.2 : Manufacturer="ZTE,Incorporated" : Product="ZTE WCDMA Technologies MSM"
/dev/usb/tts/3 : 1.2.3 : Manufacturer="ZTE,Incorporated" : Product="ZTE WCDMA Technologies MSM"
хотя ls /dev/usb/tts ни чего не покажет. :) :) :)

3. Мне очень импонирует ваш подход к определению порта модема через cat /proc/bus/usb/devices по моему это правильный путь. Я например когда перепрошил ZTE MF626 на MTS прошивку (vendor=0x19d2 product=0x2003) я долго не мог понять на каком порту он должен работать, оказывается на 3-ем :rolleyes:
............
А можно просто чтоб ваш скрипт возвращал номер порта модема плиз :)
может сразу в переменную set wan_modem_tts_port= port и nvram commit чтобы с портом не мучится :)
..............

Туда можно добавить ZERO CD устройства с комментарием (need usb-modeswitch). Результат можно использовать для автоматического определения VID PID на выбранном модеме. Также возможна дополнительная автоматизация. Ну и это ещё один шажок в сторону multi wan.
Воткнул модем нажал одну кнопочку установить и все модем готов к работе :D


To Остальные - просьба проверить скрипт на Ваших конфигурациях и прислать замечания (с приложением cat /proc/bus/usb/devices)
Проверил на всех своих 3 модемах работает отлично!
спецом поменял на неправильный порт, но скрипт показал тот который нужен :D

dlukanidin
01-02-2011, 09:42
А можно просто чтоб ваш скрипт возвращал номер порта модема плиз :)
может сразу в переменную set wan_modem_tts_port= port и nvram commit чтобы с портом не мучится :)

К сожалению нельзя. Если у Вас один модем, то действительно нет проблем, и кстати Вы правы, этот случай можно предусмотреть в скрипте. Но если модемов несколько, то нумерация портов может зависеть от того, какие драйвера грузятся и в каком порядке. Но поскольку номер 1.2.3 устройства возвращаемого скриптом зависит только от того, в какую розетку хаба оно включено, то можно использовать и существующую процедуру выбора порта по USB location.


Я так и не понял по поводу пременной set wan_modem_need_chat

Символ '~' для определения ситуации поднятой сессии был выбран из-за того, что он наиболее часто встречается в потоке данных принимаемых модемом. Но поскольку, это всё таки кривое решение, то бывают ситуации, что в протоколе этот символ не присутствует вообще, или встречается крайне редко. При определении способов решения этой проблемы я с этим сталкивался. Именно для этого и предусмотрена эта переменная. Если Вы её не устанавливаете, то эта ветка не используется вообще и никак не влияет на остальное. Кроме того, я иногда использую эту ветку, чтобы управлять лампочками на модеме (добавляя соответствующие строки в пользовательском скрипте).

To Rss - по поводу nodeattach. Я не совсем понимаю как это работает. ИМХО в нашей ситуации эта опция не имеет никакого влияния, мы же не трогаем stdin. Но поскольку могут быть побочные эффекты, то предлагаю рассмотреть возможность её убрать из скрипта и оставить её включение на усмотрение пользователя в pppd options. (Я действительно время от времени сталкиваюсь с ситуацией, когда pppd висит и ничего не делает.)

rss
02-02-2011, 20:12
To Rss - по поводу nodeattach. Я не совсем понимаю как это работает. ИМХО в нашей ситуации эта опция не имеет никакого влияния, мы же не трогаем stdin. Но поскольку могут быть побочные эффекты, то предлагаю рассмотреть возможность её убрать из скрипта и оставить её включение на усмотрение пользователя в pppd options. (Я действительно время от времени сталкиваюсь с ситуацией, когда pppd висит и ничего не делает.) Можно убрать. Пользователь сам впишет, если понадобится.

Немного поправил страницы и скрипты. Только ответ от скрипта почему-то не получил. Больше пока времени нет...

dlukanidin
03-02-2011, 01:39
Можно убрать. Пользователь сам впишет, если понадобится.

Немного поправил страницы и скрипты. Только ответ от скрипта почему-то не получил. Больше пока времени нет...

Скрипт не вызывается (вставлял логгер). Почему не понял, недостаточно разбираюсь, к сожалению.
Сам скрипт рабочий. Только зачем Вы пользовательскую часть в /usr/sbin поместили ? Ведь совсем ничего изменить нельзя даже для отладки. Чтобы проверить любые изменения надо перекомпилировать прошивку. Да и по логике - она же пользовательская.
Системная часть просто выдаёт тестовые строки. Их можно будет заменить на подсказку.

rss
03-02-2011, 06:17
Скрипт не вызывается (вставлял логгер). Почему не понял, недостаточно разбираюсь, к сожалению. Вообще-то вызывался. По крайней мере modem_ussd.sh (разметка html, которая в нём встроена, появляется). Посмотрю сегодня, если успею.


Сам скрипт рабочий. Только зачем Вы пользовательскую часть в /usr/sbin поместили ? Ведь совсем ничего изменить нельзя даже для отладки. Чтобы проверить любые изменения надо перекомпилировать прошивку. Да и по логике - она же пользовательская.
Системная часть просто выдаёт тестовые строки. Их можно будет заменить на подсказку.
Чтобы было хоть что-нибудь по-умолчанию. Я думаю, что в любом случае надо ориентироваться на стандартное большинство (естественно с описанием того, что считаем большинством). Остальные - действительно сделают сами. (можно просто поставить проверку существования пользовательского файла и считать его приоритетным).

andr128
04-02-2011, 16:41
Люди, знаю что не по теме, но более подходящего места не нашел.
Думаю вопрос уже задавался (поиск не помог), ткните носом если есть материал.
Как отправлять SMS сообщения через свисток?
Ситуацию бы спасло наличие пакета smstools, но его нет :-(
про smstools что-то здесь (http://forum.lissyara.su/viewtopic.php?t=12237) было и сам smstools3 (http://smstools3.kekekasvi.com/index.php?p=packages), но его по моему компилировать надо под роутер увы я не умею.
И здесь (http://sovetic.ru/communication/blog/index.php?page=post&blog=Connect_to_the_internet&id=3) по моему dlukanidin что-то выкладывал.
Тоже хотел бы принимать и отправлять СМС через модем может уважаемый dlukanidin поможет сделать универсальное что-то под GPRS и CDMA EVDO модемы :) К тому же что бы узнать баланс на CDMA модеме USSD не работает, а вот через СМС пожалуйста.

dlukanidin Изменил ваш скрипт для автоматического определения порта модема. Посмотрите пожалуйста может криво сделал. Я понимаю что наверно это не универсально, но большинство использует (и я в том числе) один модем на роутере. Вы как автор лучше оптимизируете скрипт. :)

andr128
04-02-2011, 17:54
Тo dlukanidin
Попытался ваш скрипт запустить, который для AnyDATA /CDMA
(у меня ADU-510A) что-то не выходит у меня, что не так ?
sms.conf



sms_filename=sms.txt
sms_filelen=100
sms_sleep=100
sms_device=/dev/usb/tts/1
sms_phone=мой_сот_телефон
sms_script=sms.sh
sms_delete=1




[root@alpha root]$ ls /tmp/harddisk/sms/
sms.conf sms.sh sms.txt smsloop.sh smsread.sh

[root@alpha root]$ /tmp/harddisk/sms/smsloop.sh
Error read sms info: no answer , status=10
'leep: invalid number '100
Error read sms info: no answer , status=10
'leep: invalid number '100
Error read sms info: no answer , status=10
'leep: invalid number '100
Error read sms info: no answer , status=10
'leep: invalid number '100



[root@alpha root]$ cat /proc/bus/usb/devices
T: Bus=02 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=480 MxCh= 2
B: Alloc= 0/800 us ( 0%), #Int= 1, #Iso= 0
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.04
S: Manufacturer=Linux 2.4.37.11 ehci_hcd
S: Product=PCI device 14e4:471a
S: SerialNumber=00:03.1
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=256ms
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=480 MxCh= 2
D: Ver= 2.00 Cls=09(hub ) Sub=00 Prot=01 MxPS=64 #Cfgs= 1
P: Vendor=0424 ProdID=2502 Rev= 0.01
C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr= 2mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 1 Ivl=256ms
T: Bus=02 Lev=02 Prnt=02 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=3538 ProdID=0901 Rev= 1.00
S: Manufacturer=PQI
S: Product=PQI USB Flash Drive
S: SerialNumber=02AA0000000000000000000000000054
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
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=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
T: Bus=02 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 40 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=16d5 ProdID=6502 Rev= 0.00
S: Manufacturer=AnyDATA Corporation
S: Product=AnyDATA CDMA Products
C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=500mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=serial
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=serial
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=serial
E: Ad=86(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=06(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I: If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=87(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=08(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 0.00
S: Product=USB OHCI Root Hub
S: SerialNumber=b8003000
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms


Пробовал во время коннекта и без.

Поставил sms_device=/dev/usb/tts/2 и все заработало :)

dlukanidin
05-02-2011, 00:17
Поставил sms_device=/dev/usb/tts/2 и все заработало :)
скрипт проверялся на ADU-300A. У него только 2 порта. У Вас 3 + флэшка. Вы обнаружили, что ADU-510A DM порт - 3-й ( с номером 2). Отлично, добавьте инфо в ВИКИ, чтобы остальные могли это увидеть и не мучиться.
Спасибо за Вашу информацию.
P.S. Я про эти скрипты уже начал забывать, а они кому то нужны, супер.
P.P.S Мне сейчас разбираться с СМС на CDMA не очень требуется. Если хотите, подключайтесь, помогу, чем смогу, пишите в личку.

to Rss:
вроде разобрался с причинами, мешающими работать последним версиям скриптов статистики. Сделал новую версию. Особенности:
1. переименовал все скрипты единым образом.
2. если есть пользовательский скрипт, то вызывается он.
3. Иначе проверяем производителя и вызываем один из 3-х скриптов для Huawei, ZTE или AnyDATA.
4. Добавил инфо по сессии ( для Huawei есть более полный вариант, добавлю позже)
5. Внёс иcправления в modem_ussd.asp (надо бы его тоже переименовать вместе с кнопкой вызова)
Посмотрите пожалуйста и выскажите Ваши замечания.

---- Добавлено ----

Добавил для Huawei более полный вариант инфо по сессии.

rss
06-02-2011, 19:19
to Rss:
вроде разобрался с причинами, мешающими работать последним версиям скриптов статистики. Сделал новую версию. Особенности:
1. переименовал все скрипты единым образом.
2. если есть пользовательский скрипт, то вызывается он.
3. Иначе проверяем производителя и вызываем один из 3-х скриптов для Huawei, ZTE или AnyDATA.
4. Добавил инфо по сессии ( для Huawei есть более полный вариант, добавлю позже)
5. Внёс иcправления в modem_ussd.asp (надо бы его тоже переименовать вместе с кнопкой вызова)
Посмотрите пожалуйста и выскажите Ваши замечания.

---- Добавлено ----

Добавил для Huawei более полный вариант инфо по сессии.
Вот и замечательно ;).

Проверил у себя на zte 626 - работает.

Дальше надо решать;

Нужно ли иметь возможность выдавать скриптом в кодировке, отличной от utf-8. Если это не нужно, то ни к чему тащить iframe. Соответственно, долой html-разметку из скрипта.
Что-то надо делать с дизайном.....
И проверяем на пользователях.


Параллельно надо доделывать страницу Status & Log - PPP Chat Log. Впрочем, после появления ряда кнопок на новой странице, надо опять подумать, что же нам на ней нужно. Или пока все требования без изменений?

AndreyUA
06-02-2011, 20:10
Вот и замечательно ;).

Проверил у себя на zte 626 - работает.

Дальше надо решать;

Нужно ли иметь возможность выдавать скриптом в кодировке, отличной от utf-8. Если это не нужно, то ни к чему тащить iframe. Соответственно, долой html-разметку из скрипта.
Что-то надо делать с дизайном.....
И проверяем на пользователях.


Параллельно надо доделывать страницу Status & Log - PPP Chat Log. Впрочем, после появления ряда кнопок на новой странице, надо опять подумать, что же нам на ней нужно. Или пока все требования без изменений?
Не помешало бы добавить отправку AT команд модему.

dlukanidin
07-02-2011, 13:00
Не помешало бы добавить отправку AT команд модему.
Это есть - если запрос ussd начинается с AT или at то скрипт считает, что это AT команда, отправляет её и выводит её ответ.



Нужно ли иметь возможность выдавать скриптом в кодировке, отличной от utf-8. Если это не нужно, то ни к чему тащить iframe. Соответственно, долой html-разметку из скрипта.
Что-то надо делать с дизайном.....
И проверяем на пользователях.


1. Я всегда голосовал за UTF-8. Но вот HTML вместо простого текста даёт другие возможности. А сам iframe нам не сильно мешает, в нём всего 6 символов (ну с учётом всего тега чуть больше :) ), я - за оставить.
2. С дизайном что-то надо делать ... думаю, сделаю предложение
3. Как то народ не активничает. И пока в прошивку не добавим откликов не будет. Но это рано.

С моей точки зрения TODO
1. индикацию уровня сигнала и скорости обмена в динамике
2. решение - где и как задавать порт (to rss - Вы смотрели мой скрипт по альтернативе usb loc ?)
3. функционал - можно добавить некоторые стандартные команды, типа переключения режимов модема, сети и операторов. Но здесь важно ограничится необходимым.
4. дизайн

rss
07-02-2011, 19:21
1. Я всегда голосовал за UTF-8. Но вот HTML вместо простого текста даёт другие возможности. А сам iframe нам не сильно мешает, в нём всего 6 символов (ну с учётом всего тега чуть больше :) ), я - за оставить.
С одной стороны возможностей больше, с другой - размазываем по коду формирование отображения.



3. Как то народ не активничает. И пока в прошивку не добавим откликов не будет. Но это рано.
Думаю, после очередного релиза можно будет постепенно добавлять.




С моей точки зрения TODO
1. индикацию уровня сигнала и скорости обмена в динамике

Ок. Думаю как обеспечить.


2. решение - где и как задавать порт (to rss - Вы смотрели мой скрипт по альтернативе usb loc ?)
Серьезное это дело разбирать скриптом /proc/bus/usb/devices ;)

Однако вопрос следующий. Как определить, на какой USB-порт сядет интерфейс? Особенно, если модемов несколько?

T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 6 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 CDMA Technologies MSM
C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
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=(none)
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=(none)
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

Device : Location : Info
/dev/ttyUSB0 : 1.1.0 : Manufacturer="ZTE,Incorporated" : Product="ZTE CDMA Technologies MSM"
/dev/ttyUSB1 : 1.1.11 : Manufacturer="ZTE,Incorporated" : Product="ZTE CDMA Technologies MSM"
/dev/ttyUSB2 : 1.1.23 : Manufacturer="ZTE,Incorporated" : Product="ZTE CDMA Technologies MSM"

T: Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#= 6 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 CDMA Technologies MSM
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

: 1.1.0 : 0x19d2 : 0x0031 : ZTE,Incorporated : ZTE CDMA Technologies MSM
: 1.1.1 : 0x19d2 : 0x0031 : ZTE,Incorporated : ZTE CDMA Technologies MSM
(auto modem port) : 1.1.3 : 0x19d2 : 0x0031 : ZTE,Incorporated : ZTE CDMA Technologies MSM

dlukanidin
08-02-2011, 02:15
Однако вопрос следующий. Как определить, на какой USB-порт сядет интерфейс? Особенно, если модемов несколько?

Согласен, скриптом плохо, но пока так.
Так мысль была в том, чтобы выбирать устройство по этому скрипту (сразу можно и vid, pid устанавливать), а интерфейс определять как и сейчас, но уже после поднятия драйверов - по devpath. Так будет намного корректнее. Можно также проверить поднялись ли драйвера для нужного устройства, в случае одного устройства полностью автоматизировать выбор. Кроме этого можно добавить в скрипт определение zero cd с соответствующим комментом для пользователя, чтобы он не выискивал по логу отработал usb-modeswitch или нет.
Что касается выбора порта для статистики, то прихожу к выводу, что единственным корректным способом будет список - vid : pid : port1 : port2 в отдельном файле. Для части модемов можно взять из настольного линукса, остальное добавлять по мере появления инфо. Ну и конечно надо оставить пользователю возможность установить свой порт.

rss
08-02-2011, 06:59
Согласен, скриптом плохо, но пока так.
Так мысль была в том, чтобы выбирать устройство по этому скрипту (сразу можно и vid, pid устанавливать), а интерфейс определять как и сейчас, но уже после поднятия драйверов - по devpath. Так будет намного корректнее. Можно также проверить поднялись ли драйвера для нужного устройства, в случае одного устройства полностью автоматизировать выбор. Драйвер проверим. А как номер порта определить? Как ассоциировать номера интерфейсов из usb/devices с номером devpath/usb_loc?


Кроме этого можно добавить в скрипт определение zero cd с соответствующим комментом для пользователя, чтобы он не выискивал по логу отработал usb-modeswitch или нет. В лог можно добавить расширенный вывод usb-modeswitch. Или перенаправить сразу в отдельный лог, в который выводится информация о подключении.


Что касается выбора порта для статистики, то прихожу к выводу, что единственным корректным способом будет список - vid : pid : port1 : port2 в отдельном файле. Для части модемов можно взять из настольного линукса, остальное добавлять по мере появления инфо. Ну и конечно надо оставить пользователю возможность установить свой порт. Второй порт можно вычислить, зная первый (по крайней мере предполагаю, что это так. Исключение - телефоны с acm). Главная проблема - несколько модемов.

dlukanidin
08-02-2011, 08:58
Драйвер проверим. А как номер порта определить? Как ассоциировать номера интерфейсов из usb/devices с номером devpath/usb_loc?
Так в моём скрипте это и делается. По розетке usb в которую включен модем.


В лог можно добавить расширенный вывод usb-modeswitch. Или перенаправить сразу в отдельный лог, в который выводится информация о подключении.
Да, но это же хуже, чем если в табличке usb loc, при выборе модема, будет перед устройством написано - ZERO CD

Второй порт можно вычислить, зная первый (по крайней мере предполагаю, что это так. Исключение - телефоны с acm). Главная проблема - несколько модемов. ИМХО вычислить нельзя. Кроме того кто то присылал лог от модема с ACM в котором и простые порты поднимались. Но это надо разбираться отдельно с устройством на руках.
Решение со списком через vid, pid годится и для случая с несколькими модемами.

rss
08-02-2011, 18:16
Так в моём скрипте это и делается. По розетке usb в которую включен модем.
В целом согласен, но требуется некоторая правка драйвера devpath.
До подключения драйверов:

T: Bus=01 Lev=02 Prnt=02 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 CDMA Technologies MSM
C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
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=(none)
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=(none)
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

T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=16d5 ProdID=6501 Rev= 0.00
S: Manufacturer=AnyDATA Corporation
S: Product=AnyDATA CDMA Products
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms

[admin@WL500 root]$ list_modems.sh
: 1.1.0 : 0x19d2 : 0x0031 : ZTE,Incorporated : ZTE CDMA Technologies MSM
: 1.1.1 : 0x19d2 : 0x0031 : ZTE,Incorporated : ZTE CDMA Technologies MSM
(auto modem port) : 1.1.3 : 0x19d2 : 0x0031 : ZTE,Incorporated : ZTE CDMA Technologies MSM
(auto modem port) : 1.2.0 : 0x16d5 : 0x6501 : AnyDATA Corporation : AnyDATA CDMA Products
: 1.2.1 : 0x16d5 : 0x6501 : AnyDATA Corporation : AnyDATA CDMA Products

После подключения:

T: Bus=01 Lev=02 Prnt=02 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 CDMA Technologies MSM
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

T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 5 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=16d5 ProdID=6501 Rev= 0.00
S: Manufacturer=AnyDATA Corporation
S: Product=AnyDATA CDMA Products
C:* #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=500mA
I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
E: Ad=84(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms



[admin@WL500 root]$ check_devpath
Device : Location : Info
/dev/ttyUSB0 : 1.1.0 : Manufacturer="ZTE,Incorporated" : Product="ZTE CDMA Technologies MSM"
/dev/ttyUSB1 : 1.1.11 : Manufacturer="ZTE,Incorporated" : Product="ZTE CDMA Technologies MSM"
/dev/ttyUSB2 : 1.1.23 : Manufacturer="ZTE,Incorporated" : Product="ZTE CDMA Technologies MSM"
/dev/ttyUSB3 : 1.2.30 : Manufacturer="AnyDATA Corporation" : Product="AnyDATA CDMA Products"
/dev/ttyUSB4 : 1.2.41 : Manufacturer="AnyDATA Corporation" : Product="AnyDATA CDMA Products"

devpath сейчас содержит номер USB-порта.


Да, но это же хуже, чем если в табличке usb loc, при выборе модема, будет перед устройством написано - ZERO CD А это откуда возьмём?

ConstAntz
08-02-2011, 18:53
прошивка 1.9.2.7-d-r2541M, модем HUAWEI E1750
скрипт откликнулся на порт №3 (attach)
можете добавлять в список поддерживаемых

Замечания по архиву state_modem_110206.tar.gz
файл state_modem:

- очепятка r29:c30
- команда Print signal information - как интерпретировать значение параметра Signal?

функция IsDriversLoaded() - строка 56
- в моем случае, на моей текущей прошивке, модуль option не подгружен и, следовательно, скрит отваливается
- отсюда вопрос: почему нет проверки модуля pl2303 или ftdi_sio? для каких целей вообще идет проверка модулей и нужна ли она?


$./state_3g_huawei /dev/usb/tts/3 i
Modem: huawei E1750
SysInfo: WCDMA(WCDMA) : home network : normal access : normal SIM
Operator: "MegaFon RUS"(3G)
SysCfg: Auto-WCDMA prefered(Roaming Supported)



$./state_3g_huawei /dev/usb/tts/3 s
Signal: 19 : db : -75 dBm : Persent : 63 % : Bit Error : not detectable
^о чем говорит 19?


$./state_3g_huawei /dev/usb/tts/3 r *100#
USSD *100# : 1.00руб.Дари любимым подарки от МегаФон! Инф. 0565
^ это поле можно убрать, или выводить результат новой строкой


$ ./state_3g_huawei /dev/usb/tts/3 t
sh: 2394682067: out of range
^а вот здесь спотыканыч (возможно - переполнение), за 10 дней более 2300 террабайт ???
Speed calculation in progress, repeat please
Session Connection time: 0 days 2 hours 40 min 44 sec :
Total Connection time: 10 days 19 hours 46 min 0 sec :
Total Sent data : 65.91 MB :
Total Received data : 2394682067.00 MB :

информация для размышления к Print traffic information:

$ ./state_3g_huawei /dev/usb/tts/3 t && ifconfig ppp0 && nvram get wan_modem_old_traf
sh: 2394689521: out of range
Up:0.00 Kb/s, Dn:0.00 Kb/s, Tx:1.97 KB, Rx:13.33 KB
Session Connection time: 0 days 3 hours 28 min 32 sec :
Total Connection time: 10 days 20 hours 33 min 48 sec :
Total Sent data : 65.91 MB :
Total Received data : 2394689521.00 MB :
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.220.134.94 P-t-P:10.64.64.64 Mask:255.255.255.255
UP POINTOPOINT RUNNING MULTICAST MTU:1492 Metric:1
RX packets:166 errors:0 dropped:0 overruns:0 frame:0
TX packets:34 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:13648 (13.3 KiB) TX bytes:2000 (1.9 KiB)

1259157:13648:2000

dlukanidin
09-02-2011, 01:47
В целом согласен, но требуется некоторая правка драйвера devpath.
devpath сейчас содержит номер USB-порта.

А это откуда возьмём?
Согласен, буду смотреть драйвера, всё это пока слишком сыро.
На 2.4 такого вроде не наблюдается, хотя есть большое подозрение, что это option гадит. Как то мне этот драйвер всё больше и больше не нравится. И на линуксе в виртуалке ведёт себя как минимум странно. Взял тут и после перевтыкания модема поднял вместо 0,1,2,3 устройства 0,2,3,4. Т.Е. 1 - скорее всего не освободил правильно. Это уж совсем всё криво будет работать. Может написать простенький аналог, который ничего сам делать не будет, всё через usbserial, а только список устройств из option в нём прописать, чтобы подхватывал ?
По поводу zero cd, все которые я видел, содержат эти слова в атрибутах S. Хотя это конечно слабое предположение, но в скрипте много места не займёт.
В общем надо всё ещё раз посмотреть, и может быть написать всё это на Си основываясь на lsusb, чтобы и работало побыстрее и было поуниверсальнее.


Замечания по архиву state_modem_110206.tar.gz
файл state_modem:

- очепятка r29:c30
- команда Print signal information - как интерпретировать значение параметра Signal?

функция IsDriversLoaded() - строка 56
- в моем случае, на моей текущей прошивке, модуль option не подгружен и, следовательно, скрит отваливается
- отсюда вопрос: почему нет проверки модуля pl2303 или ftdi_sio? для каких целей вообще идет проверка модулей и нужна ли она?


Спасибо за замеченные ошибки, исправлю
Сигнал - это то, что непосредственно возвращает модем (от 0 до 31) может понадобится для отрисовки в динамике.
функция IsDriversLoaded() вываливается, только если НИ ОДИН из указанных драйверов не загружен. Пока в скрипте диал для модема загружаюся только они, поэтому если их нет, то и искать нечего. Хотя option действительно можно убрать, он дочерний к usbserial и без него не загружается.
pl2303 или ftdi_sio предназначены для usb - serial адаптеров и шнурков. К модему их пока никто вроде не подключал и возможность их загрузки - это просто шаг в сторону многих пользователей, которые их используют (для чего - тема не этой ветки).

---- добавлено ----
to Rss: разбираюсь потихоньку с драйверами. Ткните пожалуйста пальцем где посмотреть логику запуска скрипта dial, чтобы время на поиски не тратить.

AndreyUA
09-02-2011, 11:24
dlukanidin, возможно не стоит связываться с динамическим отображением сигнала? Ведь это постоянно нужно опрашивать модем AT командой. Не приведет это к новым глюкам? Мой модем иногда вис во время тестирования, когда я ему отправлял подряд несколько команд. Приходилось делать ребут.

ConstAntz
09-02-2011, 15:15
Согласен, буду смотреть драйвера, всё это пока слишком сыро.
На 2.4 такого вроде не наблюдается, хотя есть большое подозрение, что это option гадит. Как то мне этот драйвер всё больше и больше не нравится.подтверждаю, ковырял дрова из комплекта брелка - там тоже идет выгрузка модуля option

функция IsDriversLoaded() вываливается, только если НИ ОДИН из указанных драйверов не загружен.
каюсь, виноват, неправильно проанализировал условие

rss
09-02-2011, 16:24
Согласен, буду смотреть драйвера, всё это пока слишком сыро.
На 2.4 такого вроде не наблюдается, хотя есть большое подозрение, что это option гадит. Думаю, что это следствие переноса драйвера с 2.4. devpath - это же драйвер, взятый у чехов.

Как то мне этот драйвер всё больше и больше не нравится. И на линуксе в виртуалке ведёт себя как минимум странно. Взял тут и после перевтыкания модема поднял вместо 0,1,2,3 устройства 0,2,3,4. Т.Е. 1 - скорее всего не освободил правильно. Это уж совсем всё криво будет работать. Может написать простенький аналог, который ничего сам делать не будет, всё через usbserial, а только список устройств из option в нём прописать, чтобы подхватывал ?
Вот уж не думаю, что стоит свой писать... Породим еще один недоделанный вариант.

По поводу zero cd, все которые я видел, содержат эти слова в атрибутах S. Хотя это конечно слабое предположение, но в скрипте много места не займёт.
В общем надо всё ещё раз посмотреть, и может быть написать всё это на Си основываясь на lsusb, чтобы и работало побыстрее и было поуниверсальнее. Неплохо бы документацию найти на zero-cd контроллер и посмотреть как он идентифицируется.
Впрочем а нужно ли всё это? Если в базе usb_modeswitch модема нет, то сильно вероятно пользователь будет не в состоянии руками написать команду переключения.

ConstAntz
09-02-2011, 17:20
Неплохо бы документацию найти на zero-cd контроллер и посмотреть как он идентифицируется. такая (http://www.usb.org/developers/docs/usb_20_020411.zip) пойдет?

Впрочем а нужно ли всё это? Если в базе usb_modeswitch модема нет, то сильно вероятно пользователь будет не в состоянии руками написать команду переключения.поддерживаю

dlukanidin
09-02-2011, 17:52
Думаю, что это следствие переноса драйвера с 2.4. devpath - это же драйвер, взятый у чехов.

Теперь понял, почему не смог найти его в 2.6. Впрочем он здесь всё равно не причём. Номер задаётся в вызывающем его usbserial. Причём в 2.6. всё это сделано уже по другому и надо смотреть патчи, скорее всего там ошибка. Потому, что в 2.4. всё работает правильно. У меня с такими проверками проблема, т.к. устройства нет, а на убунте 10.4. вообще usbfs не смонтирована.


Вот уж не думаю, что стоит свой писать... Породим еще один недоделанный вариант.

Собственно для статистики конечно нет. Но если Вы хотите поднять несколько разных модемов то придётся стартовать option. На 2.6. это вроде как стандарт, а на 2.4. возможны проблемы с портированой версией. А доделывать портированый гораздо сложнее, чем написать болванку со списком модемов.

Если в базе usb_modeswitch модема нет, то сильно вероятно пользователь будет не в состоянии руками написать команду переключения.
Конечно нет. Но он хотя бы поймёт, что модем не переключился и в WIKI можно будет написать, что ему делать в таком случае.

dlukanidin, возможно не стоит связываться с динамическим отображением сигнала? Ведь это постоянно нужно опрашивать модем AT командой. Родной софт делает именно так, опрашивает силу сигнала, текущего оператора и текущий тип сигнала. Так, что модему должно быть всё равно, падало скорее всего по другой причине. Попрбуйте ёще пожалуйста и напишите после каких действий происходит падение.

ConstAntz
09-02-2011, 19:02
Драйвер проверим. А как номер порта определить? Как ассоциировать номера интерфейсов из usb/devices с номером devpath/usb_loc?В родном софте E1750 идет жесткая привязка портов к интерфейсу. Фрагмент 10-Huawei-Datacard.rules:
BUS=="usb", SYSFS{modalias}=="usb:v12D1p140C*", KERNEL=="ttyUSB*", SYSFS{bInterfaceNumber}=="00", SYSFS{bInterfaceProtocol}=="ff", NAME="ttyUSB_utps_modem"
BUS=="usb", SYSFS{modalias}=="usb:v12D1p140C*", KERNEL=="ttyUSB*", SYSFS{bInterfaceNumber}=="01", SYSFS{bInterfaceProtocol}=="ff", NAME="ttyUSB_utps_ndis"
BUS=="usb", SYSFS{modalias}=="usb:v12D1p140C*", KERNEL=="ttyUSB*", SYSFS{bInterfaceNumber}=="02", SYSFS{bInterfaceProtocol}=="ff", NAME="ttyUSB_utps_diag"
BUS=="usb", SYSFS{modalias}=="usb:v12D1p140C*", KERNEL=="ttyUSB*", SYSFS{bInterfaceNumber}=="03", SYSFS{bInterfaceProtocol}=="ff", NAME="ttyUSB_utps_pcui"Выход - вести свою БД модемов

theMIROn
09-02-2011, 22:32
Думаю, что это следствие переноса драйвера с 2.4. devpath - это же драйвер, взятый у чехов.
Если вы про option - то наоборот, он портировался с 2.6 в 2.4.
Чехи не при чем абсолютно, за исключением патча devpath

dlukanidin
10-02-2011, 00:02
Если вы про option - то наоборот, он портировался с 2.6 в 2.4.
Чехи не при чем абсолютно, за исключением патча devpath
Окончательно запутался, что от куда.
Попробовал найти в svn патчи для usbserial и devpath в ветке rtn, ничего не нашёл.
devpath в исходниках linux-2.6.22.19.tar.bz2 тоже не нашёл.
Ткните кто нибудь из знающих пальцем, где смотреть.
И ещё пожалуйста - где посмотреть логику запуска скрипта dial.

Исправил замеченные в скриптах ошибки

rss
10-02-2011, 07:25
Окончательно запутался, что от куда.
Попробовал найти в svn патчи для usbserial и devpath в ветке rtn, ничего не нашёл.
devpath в исходниках linux-2.6.22.19.tar.bz2 тоже не нашёл.

devpath - наследие чехов.
2.4:
http://wl500g.googlecode.com/svn/trunk/kernel/810-usb-devpath.patch


2.6
http://wl500g.googlecode.com/svn/branches/rt-n/kernel-2.6/116-devpath.patch
http://wl500g.googlecode.com/svn/branches/rt-n/kernel-2.6/810-usb-devpath.patch

Проблема наша в usb_devpath_read в строках

+ start += sprintf(start, "Device : Location : Info\n");
+
+ mutex_lock(&usb_devpath_list_lock);
+
+ for (tmp = usb_devpath_list.next; tmp != &usb_devpath_list; tmp = tmp->next) {
+ struct usb_devpath *devpath = list_entry(tmp, struct usb_devpath, devpath_list);
+
+ start += sprintf(start, "/dev/%s : %s.%d", devpath->devfs, devpath->dev->devpath, devpath->index); Т.е. сам он ничего не правит - просто выводит текущее значение.

lly
10-02-2011, 08:07
devpath - наследие чехов.

Угу, так было проще добавлять 3g от чехов. Главное определиться с желаемой схемой работы. Видимые варианты:

увеличение кол-ва полей в devpath
добавление файлов в sysfs для каждого девайса (по этому пути пошли в TomatoUSB)

rss
10-02-2011, 08:48
Главное определиться с желаемой схемой работы. Видимые варианты:

увеличение кол-ва полей в devpath
добавление файлов в sysfs для каждого девайса (по этому пути пошли в TomatoUSB)

По-моему немного не туда... Скрипт из http://wl500g.info/showpost.php?p=223615&postcount=1132 предполагается использовать для того, чтобы определить физический номер порта из /dev/bus/usb/devices, обходясь без вообще загрузки драйверов.
Проблема в том, что в 2.6 поле devpath->index содержит пару ttyUSB+физический порт.

lly
10-02-2011, 08:58
Проблема в том, что в 2.6 поле devpath->index содержит пару ttyUSB+физический порт.
devpath можно корёжить как угодно. Вы главное поставьте нам чёткое ТЗ ;)

dlukanidin
10-02-2011, 15:19
devpath:
2.6
http://wl500g.googlecode.com/svn/branches/rt-n/kernel-2.6/116-devpath.patch
http://wl500g.googlecode.com/svn/branches/rt-n/kernel-2.6/810-usb-devpath.patch

Спасибо за инфо. К сожалению патча для usb-serial.c там нет, а именно из него должен вызываться usb_register_devpath, которому и передаётся во втором параметре кривой номер.
В 2.4 этот вызов выглядит так


for (i = 0; i < serial->num_ports; ++i) {
tty_register_devfs (&serial_tty_driver, 0, serial->port[i].number);
info("%s converter now attached to ttyUSB%d (or usb/tts/%d for devfs)",
type->name, serial->port[i].number, serial->port[i].number);
#ifdef CONFIG_USB_DEVPATH
sprintf(devfsname, serial_tty_driver.name, serial->port[i].number);
usb_register_devpath(dev, ifnum+i*10, devfsname);
#endif
}

Причём для для всех устройств у которых на одном интерфейсе один порт (например модемов) делается только одна итерация и i всегда равно 0. Таким образом в этом параметре просто передаётся номер интерфейса.
Судя по результатам работы devpath в ядре 2.6 выложенным уважаемым rss, при портировании последней строки цикла она была скорректирована следующим образом


usb_register_devpath(dev, ifnum+serial->port[i].number*10, devfsname);

Как результат - такие странные цифры в devpath.

Угу, так было проще добавлять 3g от чехов. Главное определиться с желаемой схемой работы.
Моё предложение по схеме работы с модемными подключениями:

Вариант 1. В системе 1 модем.
По анализу devices находим vid pid, по базе (при отсутствии - дефолтные значения) определяем интерфейсы для модема и для статистики, поднимаем usbserial, по devpath определяем поднятые для этих интерфейсов порты. Пользователю надо дать возможность переопределить номера интерфейсов для модема и для статистики.
Возможна максимальная степень автоматизации.
Вариант 2. В системе несколько модемов.
- режим авто: По анализу devices находим первый модем, дальше Вариант 1.
- режим ручной (модем идентефицируется по vid pid, если несколько одинаковых, то ещё и по розетке usb в которую воткнут):
По анализу devices предлагаем пользователю для каждого модема из списка назначить номер интерфейса ppp.
Если номер не назначен, то этот интерфейс не поднимаем. Иначе поднимаем драйвера (на данном этапе это acm, usbserial и если несколько модемов, то option), далее для каждого из интерфейсов по варианту 1.

Можем также добавить параметры подключения в диагностик инфо.

В процессе реализации определимся с необходимостью вносить изменения в драйвера. На данном этапе желательно только подкорректировать вызов usb_register_devpath, чтобы он вёл себя единообразно во всех версиях. Имхо в 2.4. более правильно, т.к. используются именно физически существующие параметры, независящие от того в какой последовательности устройства подключаются.

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

rss
10-02-2011, 19:23
Спасибо за инфо. К сожалению патча для usb-serial.c там нет, а именно из него должен вызываться usb_register_devpath, которому и передаётся во втором параметре кривой номер.



diff '-x.*' -urNBp a/drivers/usb/serial/bus.c b/drivers/usb/serial/bus.c
--- a/drivers/usb/serial/bus.c 2010-09-04 04:00:00.000000000 +0400
+++ b/drivers/usb/serial/bus.c 2010-09-04 23:22:59.000000000 +0400
@@ -68,6 +68,14 @@ static int usb_serial_device_probe (stru
"%s converter now attached to ttyUSB%d\n",
driver->description, minor);

+#ifdef CONFIG_USB_DEVPATH
+ {
+ int ifnum = port->serial->interface->cur_altsetting->desc.bInterfaceNumber;
+
+ usb_register_devpath(port->serial->dev, ifnum+minor*10, usb_serial_tty_driver->name, minor);
+ }
+#endif
+

Соответственно, убрать minor*10. При этом надо разобраться, зачем в 2.4 было так написано.



Моё предложение по схеме работы с модемными подключениями:

Вариант 1. В системе 1 модем.
По анализу devices находим vid pid, по базе (при отсутствии - дефолтные значения) определяем интерфейсы для модема и для статистики, поднимаем usbserial, по devpath определяем поднятые для этих интерфейсов порты. Пользователю надо дать возможность переопределить номера интерфейсов для модема и для статистики.
Возможна максимальная степень автоматизации.
Вариант 2. В системе несколько модемов.
- режим авто: По анализу devices находим первый модем, дальше Вариант 1.
- режим ручной (модем идентефицируется по vid pid, если несколько одинаковых, то ещё и по розетке usb в которую воткнут):
По анализу devices предлагаем пользователю для каждого модема из списка назначить номер интерфейса ppp.
Если номер не назначен, то этот интерфейс не поднимаем. Иначе поднимаем драйвера (на данном этапе это acm, usbserial и если несколько модемов, то option), далее для каждого из интерфейсов по варианту 1. Без option в общем случае разве можем обойтись?
Сюда же вопрос к моменту запуска драйверов. В принципе, usbserial можно запускать по событию hotplug.


Можем также добавить параметры подключения в диагностик инфо.

Надо тщательно продумать всю логику настройки и управления (буквально что делать, когда вставили модем и что делать, если он не заработал сразу). Исходя из этого разделить (или продублировать) функции по двум страницам - первоначальная настройка и дальнейшее ковыряние/получение статистики.



В процессе реализации определимся с необходимостью вносить изменения в драйвера. На данном этапе желательно только подкорректировать вызов usb_register_devpath, чтобы он вёл себя единообразно во всех версиях. Имхо в 2.4. более правильно, т.к. используются именно физически существующие параметры, независящие от того в какой последовательности устройства подключаются. Надо проверить, как нумеруются порты в случае подключения модемов через USB-хабы.

dlukanidin
10-02-2011, 21:13
Соответственно, убрать minor*10. При этом надо разобраться, зачем в 2.4 было так написано.

Насколько я понимаю - то, что сейчас в 2.4 это решение для ситуации когда на одном интерфейсе поднимаются несколько портов (т.е. на нём есть несколько ендпойнтов типа out bulk). То, что вижу в приведённом коде - скорее всего неудачная попытка портировать или оптимизировать код без точного понимания, что он делал.
Править, я думаю нужно так - убрать minor*10, а в usb_register_devpath вставить проверку - искать последнее зарегестрированное устройство dev с этим номером интерфейса и если найдено, то прибавлять к номеру интерфейса 10 и регистрировать, если нет, то просто регистрировать.


Без option в общем случае разве можем обойтись?

В общем - нет. в 2.6. это стандарт и не вижу смысла что-то менять, если всех устраивает. В 2.4. работает некорректно. Точно в этом убедился - вот ситуация в которой он у меня вешает процесс. на портах 0 и 1 висит Anydata поднятый через usbserial. Физически подключены ещё 2 модема. Поднимаю их через option на портах 2,3,4 и 5,6,7 всё нормально. Посылаю ATI получаю ответ и всё. Прцесс виснет. Убиваю option, запускаю снова и всё повторяется.
Поэтому в 2.4. надо без него обходиться насколько возможно.


Сюда же вопрос к моменту запуска драйверов. В принципе, usbserial можно запускать по событию hotplug.

давайте пока оставим запуск драйверов в dial - перед запуском usbserial надо определиться с vid pid и нужен ли option, а если мы запустим его без параметров, то потом перезапускать с параметрами это слишком криво.


Надо тщательно продумать всю логику настройки и управления (буквально что делать, когда вставили модем и что делать, если он не заработал сразу). Исходя из этого разделить (или продублировать) функции по двум страницам - первоначальная настройка и дальнейшее ковыряние/получение статистики.

Давайте я попробую написать скелет нового скрипта исходя из изложенного мной выше и потом будем методом последовательных приближений приводить его в порядок и доделывать интерфейс. При этом постараемся решить следующие задачи:
1. Наиболее полная автоматизация в случае одного модема.
2. Возможность для пользователя легко определить на каком модеме он хочет сейчас работать из нескольких подключеных и формирование для этого модема правильного окружения
3. Возможность одновременно поднимать несколько модемов, пока только в виде эксперимента, как шаг в направлении multiwan


Надо проверить, как нумеруются порты в случае подключения модемов через USB-хабы.
Они по любому подключаются через них, т.к. первый сидит в самом роутере. С остальными - аналогично - добавляется путь хаба. Т.е. логика - такая: номер розетки корневого хаба, номер розетки следующего хаба, ... хаба, номер интерфейса устройства.
А tty порты строго последовательно.

P.S. только с minor*10 разберитесь пожалуйста, а то придётся для 2.6. ещё номер интерфейса из devpath вычислять.

dlukanidin
18-02-2011, 16:14
Итак вот новый скрипт.
Что в архиве:
1. dial - собственно сам скрипт
2. lsmodem, lsmodem.c - программа печатающая список модемов в системе, исполняемый файл и исходник
3. modems.conf - файл с конфигурациями модемов
4. readme.txt - файл с изложением соображений на основе которых писался скрипт, на русском языке (gedit ubuntu 10.4).

Что в скрипте:
1. Конфигурация модемов берётся из USB и файла конфигураций.
2. Одновременно можно поднимать до 10 модемов.
3. Для каждого модема хранятся параметры и создаётся свой набор скриптов.
4. Предусмотрены запуск скриптов, их остановка, создание инфо для web интерфейса.
5. Запуск драйверов приближен к "нормальному".

Сделано/сделать:
1. Собственно написана вся основа
2. Частично протестировано на предмет правильного формирования скриптов. Боевого тестирования не проводилось.
3. Необходимо согласовать с запуском драйверов и подключением,отключением устройств.
4. Необходим новый интерфейс в веб морде.

Как я приблизительно вижу интерфейс:
1. Общие для всех модемов параметры
2. Таблица устройств подключенных к системе в правой части которой для каждого устройства можно:
Разрешить/Запретить соединение
Выбрать тип (CDMA/WCDMA(GSM)
Выбрать номер поднимаего интерфейса - одна цифра
Выбрать номер порта данных (в рамках устройства) - одна цифра
Выбрать номер порта UI (в рамках устройства) - одна цифра
Кнопка Редактировать параметры подключения
Кнопка Подключить/Отключить соединение

3. При нажатии кнопки редактирования параметров открывается дополнительное окно с параметрами имя, пароль и т.д.

andr128
18-02-2011, 16:53
dlukanidin
Где-то видел у Вас в сообщении о Segmentation fault
Ситуация такая, когда возился с модемом ни какой софт не ставил.
Тут решил подключить флэшку поставил OPT..
Теперь не хочет стартовать модем. Все видится и определяется корректно, но не поднимает соединение. В логе после попытки поднятия коннекта Segmentation fault и ... по циклу с любыми модемами. В розетки разные "пихал" перегружал не выходит. Вынул флэшку и все завелось. Думал может нагрузка на БП, но нет с такой-же но пустой флэшкой работает.
Пробовал ipkg update && ipkg upgrade - не помагает.
Может знаете, что за зараза.

lsmodem скомпилил под роутер :)
вот что выдает с разными модемами

[root@alpha root]$ lsmodem
19d2:0016:W:2:1:1.2:ZTE,Incorporated:ZTE WCDMA Technologies MSM
[root@alpha root]$ lsmodem
16d5:6502:C:0:2:1.2:AnyDATA Corporation:AnyDATA CDMA Products
[root@alpha root]$ lsmodem
12d1:1001:W:0:2:1.2:HUAWEI Technology:HUAWEI Mobile

dlukanidin
18-02-2011, 18:17
dlukanidin
Все видится и определяется корректно, но не поднимает соединение. В логе после попытки поднятия коннекта Segmentation fault.

A кто конкретно вешается ?
У меня конфликтов со сторонним софтом никогда не было. Я правда ставил не руками а скриптом для чайников, правда немного доведённым, но не принципиально.

lsmodem скомпилил под роутер :)
А исполняемый файл из архива не работает ?
Результаты можно добавить в базу ? (особенно касательно ui порта) ?

andr128
18-02-2011, 18:28
A кто конкретно вешается ?
У меня конфликтов со сторонним софтом никогда не было. Я правда ставил не руками а скриптом для чайников, правда немного доведённым, но не принципиально.
Ну кто там звонить пытается - chat, он и выдает Segmentation fault :)



А исполняемый файл из архива не работает ?
нет не работает:
[root@alpha root]$ lsmodem
/usr/local/sbin/lsmodem: line 1: syntax error: unexpected "("
чем компилировали?


19d2:0016:W:2:1:1.2:ZTE,Incorporated:ZTE WCDMA Technologies MSM # ZTE-626 (прошивка MTS) удалены оба флага, т.е. нет ни CD-ROM ни SD-CARD
16d5:6502:W:0:2:1.2:AnyDATA Corporation:AnyDATA CDMA Products # Это ADU-510A
12d1:1001:W:0:2:1.2:HUAWEI Technology:HUAWEI Mobile # Это E1550 без CD-ROM (убран с помощью AT команд)

я так понял то что выделено
красным - порт модема
синим - порт управления модемом (статистика, СМС)
так?

dlukanidin
18-02-2011, 19:01
я так понял то что выделено
красным - порт модема
синим - порт управления модемом (статистика, СМС)
так?
Правильно. В комментариях к modem.conf всё написано
Действительно положил не тот исполняемый файл. Поправляюсь.

-добавлено-
поправил ещё несколько ошибок

dlukanidin
19-02-2011, 23:19
Поправил ещё несколько мелких ошибок.
Сделал тестовый запуск с одним активным модемом из трёх подключенных.
Для этого:

1. скопировал lsmodems в /usr/local/sbin
2. скопировал dial в /usr/local/dial/
3. скопировал modems.conf в /usr/local/etc
4. запустил /usr/local/dial/dial -v

при этом вывелся список модемов и сформировались следующие переменные nvram:


wan_3g_options_1=*99#::::0:1200:
wan_3g_options_2=*99#::::0:1200:
wan_3g_options_3=*99#::::0:1200:
wan_3g_extras_1=1500:1500:921600:::0:
wan_3g_extras_2=1500:1500:921600:::0:
wan_3g_extras_3=1500:1500:921600:::0:
wan_3g_modem_1=0:0:16d5:6501:C:0:1:1.2:AnyDATA Corporation:AnyDATA CDMA Products
wan_3g_modem_2=0:1:12d1:1001:W:0:2:1.3:HUAWEI Technology:HUAWEI Mobile
wan_3g_modem_3=0:2:12d1:1001:W:0:2:1.4:HUAWEI Technology:HUAWEI Mobile

5. отредактировал следующие переменные nvram: (в моём случае активизировал Anydata и указал имя пользователя и пароль)


wan_3g_options_1=#777:mobile:internet::0:1200:
wan_3g_modem_1=1:0:16d5:6501:C:0:1:1.2:AnyDATA Corporation:AnyDATA CDMA Products

6. Сохранил всё это
8. Снял Set as WAN Connection Type by default т.к. сейчас проверяется запущен ли dial. А в новом скрипте он завершается. И будут множественные запуски.
9. Перезапустил роутер
10. Запустил /usr/local/dial/dial

Соединение поднялось и нормально работает.

rss
20-02-2011, 13:03
Поправил ещё несколько мелких ошибок.
Сделал тестовый запуск с одним активным модемом из трёх подключенных.

Разбираюсь.

Сразу вопросы.
Правильно ли понимаю:
dev->data_port - порт передачи данных?
dev->ui_port - порт для получения статистики?
Если да, то название ui не способствует пониманию. Лучше info (если, конечно, нет какой-нибудь спецификации, где это именно так написано).

Из того, что вижу:

ZTE:
I: If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=serial
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

AnyData:
I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=serial
E: Ad=81(I) Atr=03(Int.) MxPS= 16 Ivl=128ms
E: Ad=82(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms

Получается, что порт передачи данных - тот, в котором имеется Endpoint Atr=03(Int.), т.е. режим Interrupt Transfers. Так? (неплохо бы найти спецификацию)

По каким признакам из трёх портов выделить порт для статистики?




при этом вывелся список модемов и сформировались следующие переменные nvram:


wan_3g_options_1=*99#::::0:1200:
wan_3g_options_2=*99#::::0:1200:
wan_3g_options_3=*99#::::0:1200:
wan_3g_extras_1=1500:1500:921600:::0:
wan_3g_extras_2=1500:1500:921600:::0:
wan_3g_extras_3=1500:1500:921600:::0:
wan_3g_modem_1=0:0:16d5:6501:C:0:1:1.2:AnyDATA Corporation:AnyDATA CDMA Products
wan_3g_modem_2=0:1:12d1:1001:W:0:2:1.3:HUAWEI Technology:HUAWEI Mobile
wan_3g_modem_3=0:2:12d1:1001:W:0:2:1.4:HUAWEI Technology:HUAWEI Mobile


Видимо будем двигаться в направлении мультивана. Тогда именовать переменные следует по номеру wan, т.е. wan21_3g_options, wan22_3g_options...

Относительно программирования на C. Просьба придерживаться http://www.kernel.org/doc/Documentation/CodingStyle
Глобальные переменные не использовать.

Кроме того, есть одна проблема. Чтобы всё влезло в 4МБ прошивку, надо будет уложить все скрипты, новые страницы и новый код в объём ~5-6 кБ (в архиве).

PS: нашел баг в lsmodem - прилагаю. (подключена гирлянда хабов)

PPS: драйвер pl2303 должен загружаться после usbserial

dlukanidin
20-02-2011, 20:14
Сразу вопросы.
Правильно ли понимаю:
dev->data_port - порт передачи данных?
dev->ui_port - порт для получения статистики?
Если да, то название ui не способствует пониманию. Лучше info (если, конечно, нет какой-нибудь спецификации, где это именно так написано).

Название переменных в исходнике не принципиально. Название UI идёт от названия портов в "родных" драйверах. ИМХО info менее информативно, но не принципиально.


По каким признакам из трёх портов выделить порт для статистики?

У меня нет такой информации. Причём судя по косвенным признакам (например дистрибутив UBUNTU) её может и вообще не существовать. Относительно основного порта, это тоже не точно, но при отсутствии точной информации о модеме достаточно вероятно. В связи с этим и необходимостью сразу знать тип модема и добавил modems.config


Видимо будем двигаться в направлении мультивана. Тогда именовать переменные следует по номеру wan, т.е. wan21_3g_options, wan22_3g_options...

Наименование переменных сделано по порядку перечисления модемов. Связь с номером wan для меня не очевидна, как реализовать пока не понятно.


Относительно программирования на C. Просьба придерживаться http://www.kernel.org/doc/Documentation/CodingStyle
Глобальные переменные не использовать.

Документ внимательно прочитал. Это не модуль ядра. Существенных расхождений не вижу. Комментарий не принимаю.


Кроме того, есть одна проблема. Чтобы всё влезло в 4МБ прошивку, надо будет уложить все скрипты, новые страницы и новый код в объём ~5-6 кБ (в архиве).

Не уверен, что это возможно. Если размер оставшегося свободного места так мал, то нет смысла заниматься этим вопросом. По крайней мере в основной ветке. Можно конечно lsmodem заменить на скриптовую версию, приводимую ранее (работает медленно и прцессор грузит нещадно, но ужмётся, я думаю, лучше), отказаться от modems.conf.

Желательно определиться сейчас, т.к. желания писАть в корзину нет совсем.



PS: нашел баг в lsmodem - прилагаю. (подключена гирлянда хабов)

Исправлено, проверяйте.


PPS: драйвер pl2303 должен загружаться после usbserial

Это не понял. Просмотрел ещё раз скрипт и не нашёл.

andr128
20-02-2011, 21:46
Кроме того, есть одна проблема. Чтобы всё влезло в 4МБ прошивку, надо будет уложить все скрипты, новые страницы и новый код в объём ~5-6 кБ (в архиве).
А как тогда вмещают MPCS ~ 200кб? вроде не чем не жертвуют или я не прав.

ConstAntz
20-02-2011, 22:56
А как тогда вмещают MPCS ~ 200кб? вроде не чем не жертвуют или я не прав. Там пожертвовали madwimax-ом(если речь о прошивке из подписи AndreyUA).
По каким признакам из трёх портов выделить порт для статистики? у мну hauwei откликается на "AT команды". Другие модемы - тоже должны так уметь,я думаю. Может определение порта к этому отклику привязать, вместо БД? При отключенном инете - идет отклик от data_port0 и ui_port, при подключенном - только ui_port, data_port ругается - говорит, что занят чем-то :).
А если его на прослушку поставить
cat /dev/usb/tts/3 каждые 2 секунды валит инфа о времени соединения, входящей/исходящей скорости, входящем/исходящем трафике на данный момент времени, скорости установленного соединения.
Скопипастил на днях на просторах
#!/bin/sh
awk '
BEGIN
{
FS="[:,]";
}
{
if($1=="^DSFLOWRPT"){
print "\0";
}
if($1=="^DSFLOWRPT"){
##When the MS is in the online_data state, this proactive message is sent once every other 2s. The reported contents include the connection time of this DS, current transmitting rate, current receiving rate, current DS transmitting traffic, current DS receiving traffic, the PDP connection transmitting rate determined after negotiation with network side, the PDP connection receiving rate determined after negotiation with network side.
##:
## 00000000-FFFFFFFF, 8-digit hexadecimal number, indicating the current DS connection time, unit: s.
##:
## 00000000-FFFFFFFF, 8-digit hexadecimal number, indicating the current transmitting rate, unit: bps.
##:
## 00000000-FFFFFFFF, 8-digit hexadecimal number, indicating the current receiving rate, unit: bps.
##:
## 0000000000000000-FFFFFFFFFFFFFFFF, 16-digit hexadecimal number, indicating the current DS transmitting traffic, unit: byte.
##:
## 0000000000000000-FFFFFFFFFFFFFFFF, 16-digit hexadecimal number, indicating the current DS receiving traffic, unit: byte.
##:
## 00000000-FFFFFFFF, 8-digit hexadecimal number, indicating the PDP connection transmitting rate determined after negotiating with the network side, unit: Bps.
##:
## 00000000-FFFFFFFF, 8-digit hexadecimal number, indicating the PDP connection receiving rate determined after negotiating with the network side, unit: Bps.
printf("%8d %8d %8d %8d %8d %8d %8d ","0x"$2,"0x"$3,"0x"$4,"0x"$5,"0x"$6,"0x"$7,"0x"$8);
}
if($1=="^BOOT"){
##Shake hand between MS and TE.
##: 8 digits, used to recognize MS.(последние восемь цифр imei)
##: represent the action type of TE.
## 0: TE is living
## 1: TE is stopped
##: indicate the protocol state of the module
## 0: Module is running at APP
## 1: Module is running at BOOT
##:
## 0: online
## 1: offline
## 2: LPM
##: product class
printf("%8s %8s %8s %8s %8s",$2,$3,$4,$5,$6);
}
if($1=="^MODE"){
##When the system mode or sub-mode changes, the MS will report this indication to the TE.
##: System mode. The values are as follows:
## 0 No service.
## 1 AMPS mode (not in use currently)
## 2 CDMA mode (not in use currently)
## 3 GSM/GPRS mode
## 4 HDR mode
## 5 WCDMA mode
## 6 GPS mode
##: System sub mode. The values are as follows:
## 0 No service.
## 1 GSM mode
## 2 GPRS mode
## 3 EDEG mode
## 4 WCDMA mode
## 5 HSDPA mode
## 6 HSUPA mode
## 7 HSDPA mode and HSUPA mode
printf("%8s %8s %8s %8s ",$2,$3,$4,$5);
}
if($1=="^RSSI"){
##When the change of RSSI is more than 5dBm, the MS will report this indication to the TE.
##: Strength of the receiving signal. The values are defined as follows:
## 0 Equal to or less than -113 dBm
## 1 -111 dBm
## 2...30 -109... -53 dBm
## 31 Equal to or higher than -51 dBm
## 99 Unknown or unmeasurable.
printf("%8s %8s %8s %8s ",$2,$3,$4,$5);
}
}
' /dev/usb/tts/3

AndreyUA
20-02-2011, 22:57
А как тогда вмещают MPCS ~ 200кб? вроде не чем не жертвуют или я не прав.Жертвуют. Можно выкинуть чего-нить из модулей.

Там пожертвовали madwimax-ом(если речь о прошивке из подписи AndreyUA).Не только им, nfs тоже и камерами.

dlukanidin
21-02-2011, 00:16
Другие модемы - тоже должны так уметь,я думаю. Может определение порта к этому отклику привязать, вместо БД?
Нельзя. Некоторые модемы управляются в DM режиме (т.е. не AT командами.) На многих никакой информации без запроса нет (да и на huawei это может быть отключено). Также некоторые модемы после обращения не к тому порту просто виснут.
Реально пока вижу только 2 варианта - база данных (понадобится не более 3 КБайт на 1000 записей) либо указывает пользователь при настройке.
Можно также базу не включать в прошивку, а поддерживать актуальное состояние на отдельной ветке форума или в WIKI. Хочет user - грузит и добавляет ручками.

andr128
21-02-2011, 05:14
Жертвуют. Можно выкинуть чего-нить из модулей.
Не только им, nfs тоже и камерами.

USB камеры особенно на wl500 считаю вообще извращение, уж лучше альтернатива - дешевая IP камера.
madwimax - по моему тоже не беда, на просторах России не так уж и распространено. А вот 3G модемы это уже как стандарт :rolleyes:

Вопрос к Вам как к сборщику прошивки, если выкинуть то что перечислил сколько можно поиметь свободной флэш памяти. Не много не по теме, достаточно ли чтобы убрать "жертву" подправить /whatever-you-want/broadcom/src/gateway/.config например так


....
#CONFIG_SAMBA=y
....

Насколько я понял прошивка будет собираться без этого пакета.
Если стандартно ни чего не выкидывать имеем только 5-6 кб в сжатом виде.
А как узнать сколько можно запихать? Или прошивка просто не соберется.

rss
21-02-2011, 07:16
Название переменных в исходнике не принципиально. Название UI идёт от названия портов в "родных" драйверах. ИМХО info менее информативно, но не принципиально.
ок. Надо комментарии в коде сделать. Иначе не очевидно. Не все смотрели код драйверов модема. Надо думать о последователях ;)


У меня нет такой информации. Причём судя по косвенным признакам (например дистрибутив UBUNTU) её может и вообще не существовать. Относительно основного порта, это тоже не точно, но при отсутствии точной информации о модеме достаточно вероятно. В связи с этим и необходимостью сразу знать тип модема и добавил modems.config Понятно. Надо принять решение относительно способа выявления портов. Возможно, посмотреть что показывают другие модемы. Есть ли у них на порте передачи данных Endpoint в режиме Interrupt Transfers.



Наименование переменных сделано по порядку перечисления модемов. Связь с номером wan для меня не очевидна, как реализовать пока не понятно.
Объясняю. Сейчас есть возможность хранить описания wan в количестве от 0 до 255 (так уже сделано). Поэтому в качестве простейшего варианта мультивана можем разбить этот диапазон на поддиапазоны по принципу физического разделения типов интерфейсов, т.е. ethernet, vpn, 3g/cdma, wimax. Соответственно по каждому каналу wan будет префикс для его настроек в формате wanX_. Сейчас же неявно настройки из wan_ копируются в соответствующие wan0_ (модемные настройки для 3g/cdma используются напрямую).




Документ внимательно прочитал. Это не модуль ядра. Существенных расхождений не вижу. Комментарий не принимаю. Тут всё просто. Страемся придерживаться данного стиля. См. /rc. Основные замечания в части оформления операторных блоков и пробелов.


Не уверен, что это возможно. Если размер оставшегося свободного места так мал, то нет смысла заниматься этим вопросом. По крайней мере в основной ветке. Можно конечно lsmodem заменить на скриптовую версию, приводимую ранее (работает медленно и прцессор грузит нещадно, но ужмётся, я думаю, лучше), отказаться от modems.conf. Есть небольшой резерв, связанный с тем, что код lsmodem может быть интегрирован в rc. Это будет существенно меньше, чем отдельная программа.
+ можно выбросить часть по разбору конфигурации. У нас же есть возможность разложить всё в nvram по отдельным полям.


Это не понял. Просмотрел ещё раз скрипт и не нашёл. Про pl2303 написал, взглянув по-диагонали на скрипт после того, как руками попытался подключить без usbserial.... Вопрос снимаю. В скрипте всё правильно.

dlukanidin
21-02-2011, 11:13
1. Надо комментарии в коде сделать. Иначе не очевидно. Не все смотрели код драйверов модема. Надо думать о последователях ;)
2. Понятно. Надо принять решение относительно способа выявления портов.
3. Соответственно по каждому каналу wan будет префикс для его настроек в формате wanX_.
4. Есть небольшой резерв, связанный с тем, что код lsmodem может быть интегрирован в rc.
5. + можно выбросить часть по разбору конфигурации. У нас же есть возможность разложить всё в nvram по отдельным полям.

1. Сделал
2. ИМХО база в файле
3. Понятно, нет возражений
4. Попробую посмотреть, но это скорее вопрос для Вас.
5. Не понял, но это скорее всего связано с предыдущим, так что OK

Разобрался почему в devpath оставался мусор: исправленный usbserial для 2.4 выкладываю.
Как и обещал простейшая замена option, которая ничего не делает, только объявляет таблицу устройств для usbserial, выкладываю.
Протестировал на новом скрипте с этими драйверами работу 2-х модемов одновременно. Устройства поднимаются нормально. на ppp0 поднимается интернет. на ppp1 только соединение с провайдером. Дальше нужно настраивать ваны.

AndreyUA
21-02-2011, 12:36
USB камеры особенно на wl500 считаю вообще извращение, уж лучше альтернатива - дешевая IP камера.
madwimax - по моему тоже не беда, на просторах России не так уж и распространено. А вот 3G модемы это уже как стандарт :rolleyes:

Вопрос к Вам как к сборщику прошивки, если выкинуть то что перечислил сколько можно поиметь свободной флэш памяти. Не много не по теме, достаточно ли чтобы убрать "жертву" подправить /whatever-you-want/broadcom/src/gateway/.config например так


....
#CONFIG_SAMBA=y
....

Насколько я понял прошивка будет собираться без этого пакета.
Если стандартно ни чего не выкидывать имеем только 5-6 кб в сжатом виде.
А как узнать сколько можно запихать? Или прошивка просто не соберется.
Перед make в gateway нужно выполнить make menuconfig

dlukanidin
21-02-2011, 15:28
код lsmodem может быть интегрирован в rc.
В общем я так понимаю, что usbmodem.c надо переписывать практически полностью под новый скрипт. И по дороге воткнуть туда lsmodem.
- добавлено -
В общем влез таки, а так не хотелось.
Буду пробовать готовить свою версию.
To rss : прошу проверить - чтобы hotplug работал для acm модемов не имеющих интерфейса ff надо изменить в файле services_ex.c строку 1637
с
if (strncmp(interface, "255/", 4) == 0)
на
if (strncmp(interface, "255/", 4) == 0 || strncmp(interface, "2/", 2))

Кстати на ветке по подключению модемов кто-то уже жаловался, что dial не запускается

rss
22-02-2011, 19:04
В общем я так понимаю, что usbmodem.c надо переписывать практически полностью под новый скрипт. И по дороге воткнуть туда lsmodem.
Вообще-то не весь. Но править придётся.




- добавлено -
В общем влез таки, а так не хотелось.
Ну вот и хорошо. Лучший стимул для выполнения работы - личная заинтересованность. Ничего там страшного нет ;)
Впрочем на этой неделе я плотнее займусь вопросом.




Буду пробовать готовить свою версию.
To rss : прошу проверить - чтобы hotplug работал для acm модемов не имеющих интерфейса ff надо изменить в файле services_ex.c строку 1637
с
if (strncmp(interface, "255/", 4) == 0)
на
if (strncmp(interface, "255/", 4) == 0 || strncmp(interface, "2/", 2))

Кстати на ветке по подключению модемов кто-то уже жаловался, что dial не запускается

Ок, спасибо. Но только strncmp(interface, "2/", 2) == 0).


PS: usbserial всё понятно. Есть ли уверенность в том, что options не нужен и проблем с обменом данными, с детектированием отключений не будет?

TReX
22-02-2011, 19:20
.

.

Спасибо вам за вашу большую работу по модемам! И что не забываете о нас простых пользователях )

rss
23-02-2011, 15:52
lsmodem.
Немного причесал в первом приближении.

dlukanidin
23-02-2011, 17:50
Впрочем на этой неделе я плотнее займусь вопросом.

Ну и хорошо. Будет две версии моя и Ваша, выбирайте, что больше нравится. А сколько переписывать - я когда начал смотреть, тоже думал, ну чуть чуть поправить и всё. Но то, что есть сейчас написано под single wan. Если уж править, то с прицелом на multiwan и тут малой кровью не обойтись.


usbserial всё понятно. Есть ли уверенность в том, что options не нужен и проблем с обменом данными, с детектированием отключений не будет?
По драйверам. Только для ядра 2.4.
1. Если речь идёт об одном подключенном модеме, то есть уверенность, что сделанный мной простой драйверок отлично заменит option, для всех модемов кроме собственно option.
2. Если модемов несколько, то option всё равно не работает, по крайней мере у меня, а этот драйвер работает. Но тут уже уверенности значительно меньше т.к. судя по комментам в исходнике option они натыкались на какие то ошибки.

ИМХО. В 2.4. сделать возможность выбора между option и моим драйвером, по крайней мере на этапе тестирования.
Драйвера загружать следующим образом: для 2.6. acm, usbserial, option.
для 2.4. acm, usbserial и либо option либо modem. При этом загрузку драйверов можно смело убирать из скрипта и делать при поднятии устройства.

rss
23-02-2011, 18:37
Ну и хорошо. Будет две версии моя и Ваша, выбирайте, что больше нравится. У меня нет цели соревноваться в написании одного и того же кода. По-поему задача несколько в другом.


А сколько переписывать - я когда начал смотреть, тоже думал, ну чуть чуть поправить и всё. Но то, что есть сейчас написано под single wan. Если уж править, то с прицелом на multiwan и тут малой кровью не обойтись. Проблема в детектировании модемов с одинаковыми VID:PID. Остальное решаемо.
Подготовка под мультиван там проведена (см. переменную prefix). То же в отношении запуска/остановки процессов, связанных с конкретным wan.

Также, просьба не забывать про dialup-модемы.



По драйверам. Только для ядра 2.4.
1. Если речь идёт об одном подключенном модеме, то есть уверенность, что сделанный мной простой драйверок отлично заменит option, для всех модемов кроме собственно option.
2. Если модемов несколько, то option всё равно не работает, по крайней мере у меня, а этот драйвер работает. Но тут уже уверенности значительно меньше т.к. судя по комментам в исходнике option они натыкались на какие то ошибки.

ИМХО. В 2.4. сделать возможность выбора между option и моим драйвером, по крайней мере на этапе тестирования.
Драйвера загружать следующим образом: для 2.6. acm, usbserial, option.
для 2.4. acm, usbserial и либо option либо modem. При этом загрузку драйверов можно смело убирать из скрипта и делать при поднятии устройства. Протестировать можно. Потом надо решать конкретно.

dlukanidin
23-02-2011, 19:56
Проблема в детектировании модемов с одинаковыми VID:PID. Остальное решаемо.

Делаю по usb location.
Если не сложно - напомните зачем проверяем не убилось ли соединение ?
функция - usb_modem_check. А то поддержка этой проверки в случае нескольких процессов, да ещё если они поднимаются скриптом становится замороченой.

rss
23-02-2011, 20:34
Делаю по usb location.Проблема в том, что hotplug выдаёт только VID : PID (например 255/255/255-add-19d2/31/0). А если таких модемов два - как понять, к какому порту он подключен? На момент обработки в usbfs может быть например только второй .


Если не сложно - напомните зачем проверяем не убилось ли соединение ?
функция - usb_modem_check. А то поддержка этой проверки в случае нескольких процессов, да ещё если они поднимаются скриптом становится замороченой.
На случай аварийного падения скрипта или на случай если его прибили руками по ошибке (в прошивке много чего может подниматься самостоятельно). В соответствующих файлах /var/run/wan0_, /var/run/wan1_... хранится pid запущенного скрипта для каждого wan.

--------
Мысли по поводу мультивана на модемах. Попробую переделать идеологию интерфейса из ленточной в табличную. Тогда можно будет вписать мультиван в статическую html-структуру (например 5 строк на 5 модемов).

dlukanidin
24-02-2011, 08:53
Проблема в том, что hotplug выдаёт только VID : PID (например 255/255/255-add-19d2/31/0).
Мы с него ещё номер устройства получим, а по нему и всё остальное.
Основную часть уже подготовил. Сейчас ещё скрипты поправлю и выложу.

-- Добавлено --
Итак вот новая версия. Кроме скрипта изменения к rc и драйверам в одном архиве. Всё это, за исключением драйверов, совсем сырое и даже пока не компилировалось. Выкладываю только для того, чтобы можно было высказать замечания по функционалу и архитектуре.
To Rss: прошу Вас ещё раз рассмотреть вопрос о usb_modem_check. Ну никак она корректно не стыкуется ни с multiwan ни с пользовательскими скриптами. Я конечно постарался сделать поддержку, но ИМХО это не нужно. Единственное для чего она бы пригодилась это проверять состояние соединения и в зависимости от состояния управлять multiwan.