Page 2 of 13 FirstFirst 123412 ... LastLast
Results 16 to 30 of 181

Thread: Модем ZTE MF100/MF112/MF180/MF190/MF192 и роутер Asus

  1. #16
    Quote Originally Posted by a005 View Post
    Завелось "вручную" после следующих действий:

    [CODE]
    rmmod option
    rmmod usbserial
    insmod usbserial vendor=0x19d2 product=0x1217
    insmod option
    Хорошо. Значит на верном пути.


    Теперь вписываем в "Device initial script" следующую строку:
    Code:
    usb_modeswitch -v $VID -p $PID -V 0x0x19d2 -P 0x1217 -M 5553424308EB1D8400000000000010FF000000000000000000000000000000 && sleep 1 && insmod usbserial vendor=0x19d2 product=0x1217
    Сохраняем и перезагружаем.


    Также просьба проверить usb_modeswitch -c 19d2_1216.txt. (естественно до вписывания в Device initial script). Если всё в порядке, могу добавить в прошивку.


    Впрочем, есть еще один способ, при котором не надо будет вписывать строку инициализации. Если пересборка прошивки трудностей не вызывает, просьба проверить следующее:
    В драйвер linux/drivers/usb/serial/option.с вписать строку своего модема.

    Code:
    	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1169, 0xff, 0xff, 0xff) },
    	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1170, 0xff, 0xff, 0xff) },
    	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1217, 0xff, 0xff, 0xff) },
    	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1244, 0xff, 0xff, 0xff) },
    Заодно можно и 19d2_1216.txt положить в gateway/usb_modeswitch/data/usb_modeswitch.d/19d2:1216

    Далее в gateway make && make install
    Last edited by rss; 09-05-2011 at 18:29.
    * Wiki *

  2. #17
    Quote Originally Posted by rss View Post
    Хорошо. Значит на верном пути.
    Спасибо за поддержку!

    Quote Originally Posted by rss View Post
    Теперь вписываем в "Device initial script" следующую строку:
    Code:
    usb_modeswitch -v $VID -p $PID -V 0x0x19d2 -P 0x1217 -M 5553424308EB1D8400000000000010FF000000000000000000000000000000 && sleep 1 && insmod usbserial vendor=0x19d2 product=0x1217
    Вот он ключ к разгадке! Это видимо, аналог того, что в udev (в 2.6) в /lib/udev/rules пишется?

    Quote Originally Posted by rss View Post
    Также просьба проверить usb_modeswitch -c 19d2_1216.txt. (естественно до вписывания в Device initial script). Если всё в порядке, могу добавить в прошивку.
    Заодно можно и 19d2_1216.txt положить в gateway/usb_modeswitch/data/usb_modeswitch.d/19d2:1216
    Это я уже проделал (забегая вперед) на текущей прошивке. Как я уже писал, переключение происходит, а вот правильные insmod'ы - не проходят (ну правильно, я и не знал, что их надо для незнакомых системе модемов вручную прописывать).



    Quote Originally Posted by rss View Post

    Впрочем, есть еще один способ, при котором не надо будет вписывать строку инициализации. Если пересборка прошивки трудностей не вызывает, просьба проверить следующее:
    В драйвер linux/drivers/usb/serial/option.с вписать строку своего модема.

    Code:
    	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1169, 0xff, 0xff, 0xff) },
    	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1170, 0xff, 0xff, 0xff) },
    	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1217, 0xff, 0xff, 0xff) },
    	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1244, 0xff, 0xff, 0xff) },
    Попробую данную модификацию. О результатах отпишу!

    Вызывает озабоченность, почему идентификаторы модемов необходимо жестко в код прописывать? Это особенность реализации прошивки, ядра 2.4 или как?
    Опять же на убунте все работало только настройкой usb_modeswitch.

  3. #18
    Quote Originally Posted by a005 View Post
    Вызывает озабоченность, почему идентификаторы модемов необходимо жестко в код прописывать? Это особенность реализации прошивки, ядра 2.4 или как?
    Опять же на убунте все работало только настройкой usb_modeswitch.
    Определить, что имеем дело с модемом можно без проблем. А вот дальше должен быть подключен какой-то драйвер, который соответствует этому устройству. Либо в убунте в фоне программа подключения сама присоединяет usbserial, либо идентификатор устройства всё таки где-то прописан. Самый простой способ посмотреть, какой драйвер подключен - usbfs.
    * Wiki *

  4. #19
    К сожалению, ни один из дальнейших советов (в том числе и пересборка с модифицированным option.c) продвинуться дальше не помог:
    Модем переключается -> драйвера не загружаются.

    Работает, только если вручную выгрузить модули модема и потом опять загрузить.
    Так же, не пойму, почему файл wan0_pppd не содержит упоминаний о /dev/usb/tts/0. Правильно ли я понимаю, что этот файл генерится скриптом
    "/usr/ppp/dial wan0_"?
    Вот что в файле wan0_pppd после запуска этого скрипта (после загрузки вручную модулей модема):
    Code:
    debug
    
    921600
    crtscts
    noipdefault
    ipcp-accept-local
    lcp-echo-interval 60
    lcp-echo-failure 6
    mtu 1492
    mru 1492
    usepeerdns
    noauth
    holdoff 5
    maxfail 0
    nodetach
    persist
    unit 0
    novj nobsdcomp novjccomp nopcomp noaccomp
    user 'mts'
    password 'mts'
    connect "/tmp/ppp/peers/wan0_chat.sh"
    К сожалению, совсем не ориентируюсь в архитектуре прошивки, чтобы целенаправленно двигаться дальше...

  5. #20
    Quote Originally Posted by a005 View Post
    К сожалению, ни один из дальнейших советов (в том числе и пересборка с модифицированным option.c) продвинуться дальше не помог:
    Модем переключается -> драйвера не загружаются.

    Работает, только если вручную выгрузить модули модема и потом опять загрузить.
    Так же, не пойму, почему файл wan0_pppd не содержит упоминаний о /dev/usb/tts/0. Правильно ли я понимаю, что этот файл генерится скриптом
    "/usr/ppp/dial wan0_"?
    Вот что в файле wan0_pppd после запуска этого скрипта (после загрузки вручную модулей модема):
    Code:
    debug
    
    921600
    crtscts
    noipdefault
    ipcp-accept-local
    lcp-echo-interval 60
    lcp-echo-failure 6
    mtu 1492
    mru 1492
    usepeerdns
    noauth
    holdoff 5
    maxfail 0
    nodetach
    persist
    unit 0
    novj nobsdcomp novjccomp nopcomp noaccomp
    user 'mts'
    password 'mts'
    connect "/tmp/ppp/peers/wan0_chat.sh"
    К сожалению, совсем не ориентируюсь в архитектуре прошивки, чтобы целенаправленно двигаться дальше...
    Скрипт дозвона запускается после того, как модем определён и загружены драйверы. Если сейчас использовать "Device initial script", подключение происходит?

    Часть с usb_modeswitch можно выбросить, если конфигурация уже вставлена в прошивку.
    * Wiki *

  6. #21
    Quote Originally Posted by rss View Post
    Скрипт дозвона запускается после того, как модем определён и загружены драйверы. Если сейчас использовать "Device initial script", подключение происходит?
    Нет не происходит. А когда вообще вызывается Device initial script? У меня создается впечатление, что он либо не вызывается, либо вызывается "не вовремя".
    Сейчас, чтобы запустить соединение, я выполняю следующее действие (его же вставил, Device initial script, но там не помогает):
    Code:
    rmmod option && rmmod usbserial && insmod usbserial vendor=0x19d2 product=0x1217
    После чего в логах идут следующие записи:
    Code:
    Jan  1 03:03:43 root: wan0_pppd exit code: 2
    Jan  1 03:03:45 pppd[667]: no device specified and stdin is not a tty
    Поэтому, приходится редактировать файл /tmp/ppp/peers/wan0_pppd, в который я вставляю строку "/dev/usb/tts/0".
    После чего, если нажать на вебморде "Connect", то все работает.

    Ручной запуск скрипта "/usr/ppp/dial wan0_" перетирает файл /tmp/ppp/peers/wan0_pppd, убирая из него упоминание о $usbdev

  7. #22
    Quote Originally Posted by a005 View Post
    Нет не происходит. А когда вообще вызывается Device initial script? У меня создается впечатление, что он либо не вызывается, либо вызывается "не вовремя".
    Скрипты из Device initial script вызываются сразу после usb_modeswitch.

    Как только обнаруживается модем, для него подгружаются драйверы. Можно попробовать вписать в gateway/rc/usbmodem.c
    Code:
    	if( ret && found_dev ){
    		nvram_set(strcat_r(prefix, "usb_device_name", tmp), found_dev->prod );
    		eval("insmod", "usbserial  vendor=0x19d2 product=0x1217");
    		eval("insmod", "option");
    #ifndef LINUX26
    		eval("insmod", "acm");
    #else
    		eval("insmod", "cdc-acm");
    #endif
    	}
    Device initial script, естественно, перед этим очистить.


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

  8. #23
    Join Date
    Jan 2011
    Location
    Нижний Новгород
    Posts
    543
    Quote Originally Posted by rss View Post
    Скрипты из Device initial script вызываются сразу после usb_modeswitch.
    Если смотреть правде в глаза, то сперва hotplug_usb_modeswitch() вызывается для каждого экземпляра простого USB устройства:
    1. CD-ROM
    2. Storage

    и если в Device initial script прописан еще один вызов usb_modeswitch, то по факту, имеем четыре вызова последнего.

    Причем, будь то 2 или 4 вызова - они генерируются практически одновременно. Самый первый еще не успел отработать (usb_modeswitch - инертен), следом порождается еще один вызов для того-же vid : pid.

    Самое интересное появляется дальше. Неизвестно после какого экземпляра usb_modeswitch простое устройство переключиться в составное, но когда оно переключится - последует еще несколько вызовов hotplug_usb_modeswitch()
    1. новое составное устройство с новыми vid : pid
    2. cdrom
    3. storage

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

    Может я ошибся? Ранее выкладываемые логи говорят об обратном (так-же есть в предыдущих моих сообщениях).
    DIR-320 & RTN-r3297 from USB>r3478>r3539>r3722>r3815>r3877>r4051>r4990>r5163

  9. #24
    Quote Originally Posted by ConstAntz View Post
    Если смотреть правде в глаза, то сперва hotplug_usb_modeswitch() вызывается для каждого экземпляра простого USB устройства:
    1. CD-ROM
    2. Storage

    и если в Device initial script прописан еще один вызов usb_modeswitch, то по факту, имеем четыре вызова последнего.
    Если в usb_modeswitch.d отсутствует правило для подключаемого модема, то всё будет нормально. Всё переключится в Device initial script.

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

    usb_modeswitch ищет указанное устройство. Если устройство уже переключилось, значит не найдет и завершит работу.
    * Wiki *

  10. #25
    Join Date
    Apr 2009
    Location
    г. Ангарск, Иркутская обл.
    Posts
    267
    У меня была проблема перед вызовом загрузки драйверов ставил паузу в 5 сек тогда все было ОК. http://wl500g.info/showpost.php?p=223711&postcount=1027

    p.s.

    может ее в новых прошивках стоит вставить
    http://code.google.com/p/wl500g/sour...s/usr/ppp/dial
    Code:
    ....
    238 init_global
    sleep 5
    239 load_drivers
    240 get_usb_structure
    ...
    Last edited by andr128; 10-05-2011 at 09:03.
    DIR-320 / WL-500gPv2 / O'Play R1

  11. #26
    Спасибо. Попробую вечером поставить паузу 5 сек.

    У меня встречный вопрос:
    Драйвера грузятся через скрипт /usr/ppp/dial или через usbmodem.c ? Есть еще /usr/ppp/uni/dial - там еще одна версия загрузки модема?
    Второй вопрос, почему при загрузке usbserial не используется метод из uni/dial:
    Code:
    insmod usbserial vendor=$(nvram get wan_modem_vid) product=$(nvram get wan_modem_pid) $maxpacket
    ?

  12. #27
    Join Date
    Apr 2009
    Location
    г. Ангарск, Иркутская обл.
    Posts
    267
    Quote Originally Posted by a005 View Post
    Спасибо. Попробую вечером поставить паузу 5 сек.

    У меня встречный вопрос:
    Драйвера грузятся через скрипт /usr/ppp/dial или через usbmodem.c ?

    Есть еще /usr/ppp/uni/dial - там еще одна версия загрузки модема?
    Второй вопрос, почему при загрузке usbserial не используется метод из uni/dial:
    Code:
    insmod usbserial vendor=$(nvram get wan_modem_vid) product=$(nvram get wan_modem_pid) $maxpacket
    ?
    У меня еще старая прошивка стоит, новую не пробовал. Задача была иметь резервый канал через модем и переключаться на него по необходимости кнопкой. http://wl500g.info/showpost.php?p=220531&postcount=17
    В конце есть скрипт который я использовал.
    там как раз происходит загрузка драйвера через
    Code:
    insmod usbserial vendor=$(nvram get wan_modem_vid) product=$(nvram get wan_modem_pid) $maxpacket
    без option

    Сейчас я насколько понимаю уважаемые rss и dlukanidin что-то подправили в option и в прошивке. Тут я подсказать точно не могу как грузится usbserial и как ему передаются VID и PID.

    /usr/ppp/uni/dial - в новых прошивках на исходниках уже пропал (не вижу его)

    Раньше если я грузил
    insmod usbserial
    insmod option

    у меня были проблемы драйвер serial подхватывался, но соединения не было.
    DIR-320 / WL-500gPv2 / O'Play R1

  13. #28
    Quote Originally Posted by a005 View Post
    Спасибо. Попробую вечером поставить паузу 5 сек.

    У меня встречный вопрос:
    Драйвера грузятся через скрипт /usr/ppp/dial или через usbmodem.c ?
    Из usbmodem.c

    Quote Originally Posted by a005 View Post
    Есть еще /usr/ppp/uni/dial - там еще одна версия загрузки модема?
    Второй вопрос, почему при загрузке usbserial не используется метод из uni/dial:
    Code:
    insmod usbserial vendor=$(nvram get wan_modem_vid) product=$(nvram get wan_modem_pid) $maxpacket
    ?
    Не используется, поскольку форму usbserial vendor=... product=... нельзя использовать в случае нескольких модемов.
    * Wiki *

  14. #29
    Quote Originally Posted by rss View Post
    Можно попробовать вписать в gateway/rc/usbmodem.c
    Никаких изменений не произошло...

    Code:
     #cat /proc/tty/driver/usb-serial
    usbserinfo:1.0a driver:v1.4
    после rmmod && insmod
    Code:
     #cat /proc/tty/driver/usb-serial
    usbserinfo:1.0a driver:v1.4
    0: module:usbserial name:"Generic" vendor:19d2 product:1217 num_ports:1 port:1 path:usb-01:03.2-1

    Quote Originally Posted by rss View Post
    В любом случае можно отключить запуск скрипта дозвона, установив тип модема в User, после чего сделать свою копию с тем порядком запуска, который нужен.
    А вот это уже грустно, т.к. непонятно, почему же стандартный способ не работает?

    Может надо собрать прошивку с отладочным режимом?

  15. #30
    Quote Originally Posted by a005 View Post
    Никаких изменений не произошло...

    Code:
     #cat /proc/tty/driver/usb-serial
    usbserinfo:1.0a driver:v1.4
    после rmmod && insmod
    Code:
     #cat /proc/tty/driver/usb-serial
    usbserinfo:1.0a driver:v1.4
    0: module:usbserial name:"Generic" vendor:19d2 product:1217 num_ports:1 port:1 path:usb-01:03.2-1


    А вот это уже грустно, т.к. непонятно, почему же стандартный способ не работает?

    Может надо собрать прошивку с отладочным режимом?
    Попробую подключиться к обсуждению.
    1. При подключении нового модема проблемы собственно 2-е. Правильно переключить и загрузить драйвера.
    2. Насколько я понял с переключением разобрались. Его можно делать конечно через device initial script, но как уже писал раньше я очень внимательно смотрел на код этого вызова и не увидел разницы со штатным механизмом через подстановку параметров переключения в файле пользователя в пункте морды zero cd. К сожалению пока не получу модем для которого эти методы будут вести себя по разному проверить сам причины не смогу.
    3. Теперь загрузка драйверов. Сейчас грузятся usbserial без параметров который работает в таком случае только как драйаер нижнего уровня и option, в котором собственно и прописаны все модемы. Если нового модема там нет, то порты естественно не поднимутся. Если есть, то должны поднятся по любому, кроме случаев ошибки при инициализации.

    Теперь мои рекомендации как понять где происходит сбой.
    1. собрать прошивку с модифицированным option по рекомендации rss (ещё раз внимательно посмотреть, что модем прописан правильно).
    2. загрузить роутер без модема.
    3. воткнуть модем и смотреть сислог. убедится, что сообщений от option нет, если есть, то показать здесь какие. Убедиться, что option загружен.
    4. выгрузить option, usbserial и загрузить usbserial с параметрами.
    5. посмотреть сислог и убедится, что порты поднялись или нет.

    Если действительно на option порты не поднимаютя, а на usbserial с параметрами поднимаютя, то найти (извините выложить сейчас не могу) мой драйвер заменяющий option (простейший wrapper для usabserial) в теме по скрипту или просто по моим сообщениям (файл modem.c если не ошибаюсь), поправить там изменения аналогичные тем которые делались в option, и собрать прошивку с ним вместо option. Проверить поднимаютя ли порты. Если поднимутся только в таком варианте, то будем думать как включать это в прошивку, хотя и не хотелось бы.

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

    P.S. Вот не зря мне не нравится прдукция ZTE, хотя в последнее время и Huawei стали так чудить, (см. тему по CDMA модемам на Украинском Пиплнете), что в пору уже новых производителей искать, совсем сырые изделия плохо совместимые с роутерами да и с линём в целом.
    ASUS RT-AC66U <Merlin 384.15>
    ASUS RT-N66U <Merlin>
    ASUS RT-N16 <Merlin>

    Макет нового WEB интерфейса Для iPhone/iPad

Page 2 of 13 FirstFirst 123412 ... LastLast

Similar Threads

  1. Asus WL-500gP и 3G модем ZTE MF622/MF626/MF627
    By mathad in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 639
    Last Post: 04-02-2017, 04:21
  2. WeTelecom WM-D200/D300 CDMA модем от SkyLink и роутер Asus
    By dlukanidin in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 55
    Last Post: 22-02-2014, 19:08
  3. Asus WL-500gP & CDMA модем Sierra 595U/598U
    By Lukasarts in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 57
    Last Post: 08-02-2014, 21:05
  4. ICQ и роутер Asus WL-500gP
    By ZeusEX in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 111
    Last Post: 14-07-2012, 22:49
  5. ADSL модем + роутер Asus WL-500gP
    By ilan in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 284
    Last Post: 15-11-2010, 20:04

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •