LINUX.ORG.RU — Русская информация об ОС Linux

[#]  
babich (фотография)

Контроль над питанием USB-модема

Всем доброго времени суток!

Имеется 3G-модем ZTE-627. В принципе, устройство неплохое, но есть у него неприятная особенность - через некоторое время работы в интернете модем как будто зависает, иногда при этом обрывается соединение, иногда нет. Так сложилось, что других способов доступа в Интернет в данный момент не имеется.

Спасает от зависания только "перезагрузка" модема, то есть отключение его от шнурка (используется штатный USB-удлинитель на полметра) и потом поднятие соединения через ppp.

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

И вот, внимание, вопрос - есть ли какой-либо способ управлять питанием модема? Какая-нибудь команда, программа... По идее, после отключения порта и включения его, модем тоже должен перезагружаться. Опровергните, если не так. Была мысль сделать какой-нибудь аппарат из старого cd-rom и открывать-закрывать его, но не могу придумать, как прикрутить модем к cd-rom.

Какие у кого есть мысли, поделитесь, пожалуйста!

babich * (11.03.2010 16:41:25)
Juick

[#]  
YAR (фотография)

> Была мысль сделать какой-нибудь аппарат из старого cd-rom и открывать-закрывать его

/me из USB-мыши делал =)

YAR *** (11.03.2010 17:42:59)
[#] Ответ на: комментарий от YAR 11.03.2010 17:42:59  
babich (фотография)

А можно немножко побольше подробностей? Как именно и что из этого получилось, например?

И вообще, я так понимаю, эта проблема с подвисаниями есть не только у меня?

babich * (11.03.2010 19:12:12)
[#] Ответ на: комментарий от babich 11.03.2010 19:12:12  
YAR (фотография)

У меня (некоторое время назад) был ZTE AC8700, так же само вис, иногда достаточно часто. Для устранения проблемы решил снимать питание с модема, но сам модем не умеет саспендиться, зато умеет компьютерная мышь (или флешка). Нашел на USB-мыши точку, меняющую свой уровень при саспенде и прицепил туда ключ, нагруженный на реле. В результате получилось такое устройство - http://rain.homelinux.org/fileupload/photos/hardware/switcher_01.jpg - сейчас оно в разобранном виде, в общем 2 провода от реле размыкали шину питания модема. Модем, соответственно, втыкается через переходник слева.

Ну а дальше - скрипт, который вызывался после падения интерфейса (тут помогал wvdial) и отсылал сначала suspend, потом on в /sys/bus/usb/devices/${device}/power/level, давал время на инициализацию модема и снова запускал wvdial.

http://rain.homelinux.org/fileupload/photos/my_modem_01.jpg - в таком виде оно и работало (гусары, молчать!).

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

YAR *** (11.03.2010 19:29:32)
[#]  
nnz (фотография)

Имхо, проще релюхи на LPT навешать и через простенькую программу всем этим рулить.

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

nnz **** (11.03.2010 19:36:15)
[#]  
ist76 (фотография)

Проще всего найти нормальный модем, который не падает от длительной нагрузки. Но это не Ъ.

ist76 ***** (11.03.2010 21:09:46)
[#]  
mky (фотография)

Наверное, можно снять кожух с CD-ROM, просверлить дырочки в лотке, притянуть к лотку модем, а разъем удлинителя прикрепить к неподвижной части, но, ИМХО, у СD-ROМ просто может не хватить усилия выдернуть модем из разъёма, так что лучше паять. Но конструктивно, USB-раъем сначала подаёт питание, а уже потом данные, не знаю, можно ли рвать один проводник питания, как это делал YAR.

mky ***** (11.03.2010 22:05:37)
[#]  

>Какие у кого есть мысли, поделитесь, пожалуйста!

Возможно поможет: в ядре CONFIG_USB_SUSPEND=y

echo "suspend" > /sys/bus/usb/..../power/level echo "on" > /sys/bus/usb/..../power/level

и почитать Documentation/usb/power-management.txt

anonymous (12.03.2010 0:30:37)
[#] Ответ на: комментарий от mky 11.03.2010 22:05:37  
YAR (фотография)

Общий провод всегда подключен, так что все ок.

YAR *** (12.03.2010 0:49:12)
[#] Ответ на: комментарий от anonymous 12.03.2010 0:30:37  
YAR (фотография)

А теперь перечитай мой пост выше еще раз :)

YAR *** (12.03.2010 0:49:56)
[#] Ответ на: комментарий от YAR 11.03.2010 19:29:32  
babich (фотография)

Спасибо за хорошее описание технологии, а особенно за фотографии!

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

babich * (12.03.2010 1:30:42)
[#] Ответ на: комментарий от nnz 11.03.2010 19:36:15  
babich (фотография)

Такой вариант я тоже рассмотрю, спасибо.

babich * (12.03.2010 1:31:53)
[#] Ответ на: комментарий от mky 11.03.2010 22:05:37  
babich (фотография)

Сегодня попробуем собрать опытный образец. Там и выясним, хватит ли ему силы.

babich * (12.03.2010 1:33:28)
[#] Ответ на: комментарий от YAR 12.03.2010 0:49:56  

>А теперь перечитай мой пост выше еще раз :)

И чего там интересного кроме корявой перезагрузки от контроллера мыши ?

anonymous (12.03.2010 4:14:39)
[#] Ответ на: комментарий от anonymous 12.03.2010 4:14:39  
YAR (фотография)

> отсылал сначала suspend, потом on в /sys/bus/usb/devices/${device}/power/level

Специально для тебя выделил в отдельный абзац, но...

YAR *** (12.03.2010 10:38:44)
[#] Ответ на: комментарий от YAR 12.03.2010 10:38:44  

Да - это пропустил, но факт кривости решения это не отменяет :) Во-первых модемы разные, поэтому неизвестно сработает это или нет на 627, во вторых - это же целый миникомпьютер c arm ядром и dsp, даже если у него на usb-девайсе саспенд отключен есть еще диагностический режим (помоему у всех qualcomm это AT$QCDMG) а там наверняка есть команды сброса, нужно только их откопать.

anonymous (12.03.2010 11:27:05)
[#] Ответ на: комментарий от anonymous 12.03.2010 11:27:05  
YAR (фотография)

> модемы разные, поэтому неизвестно сработает это или нет на 627

Мой костыль выполняет одну безотказную вещь - отключает модем от шины и подключает обратно :) В моем случае хватает одного провода питания. Это гораздо проще, чем искать возможно несуществующий отладочный режим. Если тут можно обойтись чем-то более простым - прекрасно.

YAR *** (12.03.2010 12:16:58)
[#] Ответ на: комментарий от YAR 12.03.2010 12:16:58  

>Это гораздо проще, чем искать возможно несуществующий отладочный режим.

То что режим этот существует - это 100%, иначе как по твоему меняют прошивки и разлочивают эти модемы ? почти наверняка команда перехода в этот режим именно та что я написал, только дальше сложности с нахождением команд - там уже специальные последовательности (не АТ команды) и они у всех разные и производители их скрывают. Те кому это нужно берут фирменные тулзы и снифят usb, если поискать думаю найдется и готовое решение, искать только нужно не на линуксячих форумах для блондинок типа лора.

anonymous (12.03.2010 12:44:09)
[#] Ответ на: комментарий от anonymous 12.03.2010 12:44:09  

>иначе как по твоему меняют прошивки и разлочивают эти модемы

Через JTAG?

vga ** (12.03.2010 13:35:10)
[#] Ответ на: комментарий от vga 12.03.2010 13:35:10  

>Через JTAG?

Некоторые особо умные могут и под электронным микроскопом лазером на кристалле ченить выжигать, остальные нормальные люди это делают штатными средствами через usb/uart.

anonymous (12.03.2010 13:47:27)
[#]  

у меня была точно такая же хрень. продал zte, купил Huawei EC226. у него нет такой проблемы (если надо r-uim то EC228). советую и вам тоже самое сделать, потому как потраченное на трах со всякими реле время не стоит того.

ioan * (12.03.2010 23:34:05)

О Сервере - Правила форума
http://www.linux.org.ru/

Rambler's Top100 Рейтинг@Mail.ru