Намедни приобрёл я вышеозначенный комплект. Поискав, что пишут люди по этому поводу (а MF620 прекрасно работает под линуксом), я предположил что проблем не будет, но, не тут-то было!
1. Устройство определяется с vid=0x19d2 pid=0x2000 и подключается как usb диск (на котором расположены драйверы и программа для Windows). В сети пишут, что нужно запустить usb_modeswitch, чтобы отключить диск и подключить модем, но в реальности всё оказалось несколько сложнее... Вот что случается при подключении:
usb 1-5: new high speed USB device using ehci_hcd and address 9
usb 1-5: configuration #1 chosen from 1 choice
usb-storage: device ignored
usb 1-5: New USB device found, idVendor=19d2, idProduct=2000
usb 1-5: New USB device strings: Mfr=2, Product=1, SerialNumber=0
usb 1-5: Product: ZTE CDMA Technologies MSM
usb 1-5: Manufacturer: ZTE, Incorporated
И тишина... Немного поискав в исходниках ядра, можно найти
# cat /usr/src/linux/drivers/usb/storage/unusual_devs.h
...
...UNUSUAL_DEV( 0x19d2, 0x2000, 0x0000, 0x0000,
"Onda ET502HS",
"USB MMC Storage",
US_SC_DEVICE, US_PR_DEVICE, NULL,
US_FL_IGNORE_DEVICE),
После комментирования этого фрагмента, пересборки, перезагрузки, и создания правила для udev, которое использует usb_modeswitch, получаем:
usb 1-7: new high speed USB device using ehci_hcd and address 5
usb 1-7: configuration #1 chosen from 1 choice
scsi7 : SCSI emulation for USB Mass Storage devices
usb 1-7: New USB device found, idVendor=19d2, idProduct=2000
usb 1-7: New USB device strings: Mfr=2, Product=1, SerialNumber=0
usb 1-7: Product: ZTE CDMA Technologies MSM
usb 1-7: Manufacturer: ZTE, Incorporated
usb-storage: device found at 5
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 7:0:0:0: CD-ROM ZTE USB SCSI CD-ROM 2.31 PQ: 0 ANSI: 0
sr1: scsi3-mmc drive: 0x/52x cd/rw xa/form2 cdda tray
sr 7:0:0:0: Attached scsi CD-ROM sr1
sr 7:0:0:0: Attached scsi generic sg2 type 5
usb 1-7: USB disconnect, address 5
usb 1-7: new high speed USB device using ehci_hcd and address 6
usb 1-7: configuration #1 chosen from 1 choice
scsi8 : SCSI emulation for USB Mass Storage devices
usb 1-7: New USB device found, idVendor=19d2, idProduct=0031
usb 1-7: New USB device strings: Mfr=2, Product=1, SerialNumber=3
usb 1-7: Product: ZTE CDMA Technologies MSM
usb 1-7: Manufacturer: ZTE, Incorporated
usb 1-7: SerialNumber: 1234567890ABCDEF
usb-storage: device found at 6
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 8:0:0:0: Direct-Access ZTE MMC Storage 322 PQ: 0 ANSI: 2
sd 8:0:0:0: [sdb] Attached SCSI removable disk
sd 8:0:0:0: Attached scsi generic sg2 type 0
Как видно, модем опознан. После modprobe usbserial vendor=0x19d2 product=0x0031 появляется устройство /dev/ttyUSB0... Казалось бы, всё в порядке, и можно подключаться, но, не тут то было...
2. Соединение с сетью у данного модема происходит сразу при подключении (в отличие от того что пишут в интернетах про MF620). И на первый взгляд это хорошо (не надо сочинять строку инициализации, или пользоваться спец. утилитами, типа umtstools или comgt), но примерно через 2-3 минуты модем отключается от сети. Помогает посылка команды через спец. утилиты, но если в этот момент pppd работал, он отключается (радостно сообщив о зависании модема). Вот лог
pppd[11167]: Plugin passwordfd.so loaded.
pppd[11168]: pppd 2.4.4 started by root, uid 0
/etc/init.d/net.ppp1[11090]: WARNING: net.ppp1 has started, but is inactive
chat[11173]: abort on (BUSY)
chat[11173]: abort on (ERROR)
chat[11173]: abort on (NO ANSWER)
chat[11173]: abort on (NO CARRIER)
chat[11173]: abort on (NO DIALTONE)
chat[11173]: abort on (Invalid Login)
chat[11173]: abort on (Login incorrect)
chat[11173]: timeout set to 5 seconds
chat[11173]: send (ATZ^M)
chat[11173]: expect (OK)chat[11173]: ^M
chat[11173]: +ZPASR: "EDGE"^M
chat[11173]: ATZ^M^M
chat[11173]: OK
chat[11173]: -- got it
chat[11173]: send (AT+CGDCONT=1,"IP","home.beeline.ru"^M)
chat[11173]: timeout set to 60 seconds
chat[11173]: expect (OK)
chat[11173]: ^M
chat[11173]: AT+CGDCONT=1,"IP","home.beeline.ru"^M^M
chat[11173]: OK
chat[11173]: -- got it
chat[11173]: send (ATDT*99#^M)
chat[11173]: expect (CONNECT)
chat[11173]: ^M
chat[11173]: ATDT*99#^M^M
chat[11173]: CONNECT
chat[11173]: -- got it
chat[11173]: send (^M)
chat[11173]: timeout set to 5 seconds
chat[11173]: expect (~)
chat[11173]: ^M
chat[11173]: alarm
chat[11173]: send (^M)
chat[11173]: send (^M)
pppd[11168]: Serial connection established.
pppd[11168]: Using interface ppp1
pppd[11168]: Connect: ppp1 <--> /dev/ttyUSB0
pppd[11168]: CHAP authentication succeeded
pppd[11168]: CHAP authentication succeeded
pppd[11168]: IPCP: timeout sending Config-Requests
pppd[11168]: Connection terminated.
pppd[11168]: Modem hangup
Настройки /etc/conf.d/net
config_ppp1="ppp"
modules_ppp1="usbserial"
link_ppp1="/dev/ttyUSB0"
username_ppp1='beeline'
password_ppp1='beeline'
pppd_ppp1="usepeerdns defaultroute modem crtscts noipdefault noip"
chat_ppp1="
ABORT BUSY
ABORT ERROR
ABORT 'NO ANSWER'
ABORT 'NO CARRIER'
ABORT 'NO DIALTONE'
ABORT 'Invalid Login'
ABORT 'Login incorrect'
TIMEOUT 5
'' ATZ
OK 'AT+CGDCONT=1,\"IP\",\"home.beeline.ru\"'
TIMEOUT 60
OK 'ATDT*99#'
CONNECT ''
TIMEOUT 5
'~--' ''
"
Теперь собственно вопрос: кто нибудь знает, что надо этому сволочному модему, чтобы он не отключался каждые две минуты?
P.S. В винде модем не отключается через две минуты...
P.P.S. решено! статья http://ru.gentoo-wiki.com/wiki/MF626 милости просим, дополняйте её, если у Вас есть написать чего интересного по поводу данного модема.
Читать man pppd на
Читать man pppd на тему использования опций
persist
Do not exit after a connection is terminated; instead try to reopen the connection. The maxfail
option still has an effect on persistent connections.
idle n Specifies that pppd should disconnect if the link is idle for n seconds. The link is idle when no
data packets (i.e. IP packets) are being sent or received. Note: it is not advisable to use this
option with the persist option without the demand option. If the active-filter option is given,
data packets which are rejected by the specified activity filter also count as the link being
idle.
Я ♥ Gentoo & Funtoo
Это не то. OpenRC
Это не то. OpenRC сам следит за разрывом соединения. Но что делать с отключением от сети? После этого надо послать команду AT+CFUN=1, и подождать, но в любом случае, отключение от сети произойдёт снова примерно через две минуты.
P.S. В тот момент, когда модем отключается от сети, он пишет в порт следующее
После чего периодически снова появляется "+ZOPERTER: 0"
Ну вот, всё и
Ну вот, всё и выяснилось! Родная утилита посылает раз в минуту следующую команду: AT+ZOPERTE="beeline"! Кто-нибудь знает как реализовать подобное с pppd?
Возможно поможет
Трейс утилиты для мака можно глянуть тут: выложил http://dl.getdropbox.com/u/239457/terminal_export.txt
Quote: Трейс
К сожалению, там другое устройство (idProduct=0x0001) Кроме того, у меня есть полно трейсов передач родной программы под виндой, но ведь ещё нужно понять, что там главное, а что нет, и как это реализовать в линуксе...
.
Недавно аналогично приобрел такой девайс. И вот в чем делема:
eject /dev/sr0 ничего не дает и последующий модпроб также безрезультатен :(
dmesg выдает кучу непонятных сообщений от usb-storage (к сожалению сейчас не могу их продемонстрировать)
Не подскажете в какую сторону копать...
Без dmesg ничего
Без dmesg ничего сказать нельзя. Могу только предложить подождать пару минут, может быть модем переподключиться...
P.S. с отсылкой команды модема оказалось всё далеко не так просто. Сейчас я застрял на том, что оказывается родная программа как-то хитро передаёт эти команды (не в туже конечную точку что и данные, команды AT+ZOPERTE, AT+ZSTART, AT+ZOPRT и т.п. во вторую, а AT, ATDT, ATE, и данные в четвёртую, которая является обычным преобразователем USB<->serial)... А если интернет-соединения нет, то echo -e "AT+ZOPERTE=\"beeline\"\r\n">/dev/ttyUSB0 работает как надо.
P.P.S. правка и использование драйвера option также не даёт результата (появляются три порта вместо одного, но читать и писать можно только в один).
P.P.P.S. запись во все конечные точки кроме четвёртой невозможна. Видимо надо посылать в устройство что-то ещё. Сейчас я как раз анализирую какие ещё пакеты и куда отсылаются...
MF626 - это то же
MF626 - это то же железо, что и ONDA MT503HS ( http://www.ondacommunication.com )
Для ONDA есть GUI софт в том числе и под Линух. А также есть драйвер в текстах под 2.6.x
Драйвер создаёт три TTY-устройства - для модема, для диагностики и для "NMEA".
Minicom успешно чтаится только с модемом. Остальные - отваливаются.
Зато этот модем
Зато этот модем работает, как флешка! При переводе в режим модема создаются /dev/ttyUSB0 и, кроме того, /dev/sdb, /dev/sdb1.
Я вставил в модем карточку MicroSD, перевёл его в режим модема и подмонтировал /dev/sdb1: mount /dev/sdb1 /mnt/flash. Карточка прочиталась! Круто, теперь у меня есть карт-ридер для MicroSD за 2000 р! Спасибо билайну!
А если серьёздно, идея хорошая - флешка, а она не флешка, а ещё и модем. Приходишь в любое место, втыкаешь флешку и выходишь в сеть. Жаль, что с этой флешки нельзя грузиться, а то можно было бы поставить туда систему, было бы здорово.
$BOC(\pi, e)$
ArtSh
Ах, я был так же наивен!
$BOC(\pi, e)$
Quote: Ах, я был
Я ещё надеюсь на драйвера, которые посоветовали выше... (сейчас заодно проверим, за сколько они скачаются через этот модем, там архив больше 70 МБ)
Ура!
Граждане, я кажется решил проблему!
Я написал программу, которая посылает АТ-команду в нужный интерфейс через libusb при подключенной сети. Сейчас я испытал её и в течении 15 минут связь не обрывалась по вине модема. Программа однократно отсылает строку "AT+ZOPERTE=\"beeline\"\r\n" в оконечную точку 0x02 первого интерфейса в первой альтернативной конфигурации. Пока я запускал её вручную, но можно, например, заставить это делать crond.
Итак, создаём файл UnBeeline.c следующего содержания:
#include
#include
#include
int OpenMyDevice(struct usb_device **device, usb_dev_handle **udev_handle, int VID, int PID)
{
struct usb_bus *bus;
struct usb_device *dev;
usb_dev_handle *udev;
int isFound = 0;
usb_init();
usb_find_busses();
usb_find_devices();
for (bus = usb_busses; bus; bus = bus->next) {
for (dev = bus->devices; dev; dev = dev->next) {
udev = usb_open(dev);
if ( (dev->descriptor.idVendor == VID) &
(dev->descriptor.idProduct == PID)) {
isFound = 1;
break;
} else {
if (udev) usb_close(udev);
};
}
if (isFound)
break;
}
*device = dev;
*udev_handle = udev;
return isFound;
}
int main(void)
{
struct usb_device *dev;
usb_dev_handle *udev;
int rc;
char msg[] = "AT+ZOPERTE=\"beeline\"\r\n";
int NUM = strlen(msg);
if (OpenMyDevice(&dev, &udev, 0x19d2, 0x0031)) {
printf("Device found\n");
} else {
printf("Device not found\n");
exit(1);
};
printf("Claim_interface: %d\n", usb_claim_interface(udev, 1));
printf("Alt_interface: %d\n", usb_set_altinterface(udev, 1));
rc = usb_bulk_write(udev, 2, (char *)msg, NUM, 1000);
printf("USB bulk write: %d (%d)\n", rc, NUM);
usb_close(udev);
return 0;
}
Создаём Makefile:
all:
gcc -lusb -o UnBeeline UnBeeline.c
Далее компилируем программу командой "make" и получаем исполняемый файл UnBeeline. После установки сетевого соединения этот файл нужно запускать раз в минуту, и связь не будет обрываться.
При нормальной работе данная программа выдаёт:
Device found
bNumConfigurations: 1
bNumInterfaces: 4
bNumEndpoints: 2
Claim_interface: 0
Alt_interface: 0
USB bulk write: 22 (22)
Последняя цифра 22 - длина сообщения, которое удалось записать в устройство (в скобках - сколько должно быть). Если две цифры совпадают, значит транзакция USB прошла успешно. Запускать из под root.
Программа пока сырая, без различных проверок, потом я её переделаю.
$BOC(\pi, e)$
Прошу
Прошу протестировать!
$BOC(\pi, e)$
Проблема решена
Ну всё, теперь я уверен, проблема решена. Модем отработал ночь, уже более 6 часов. При этом совершенно чётко связь обрывалась раз в полтора часа. Как говорит pppd -
LCP terminated by peer
Connect time 90.2 minutes.
Этот обрыв связи, как известно, инициирован уже Билайном. pppd успешно автоматически восстанавливает связь.
Таким образом, модем работает.
$BOC(\pi, e)$
UnBeeline.c
На pppd ещё не проверял, но контакт с оператором уже не рвёт (синий светодиод
горит постоянно).
Победа
Ну все, я протестировал. Вчера как включил в полночь, так до сих пор работает.
Предлагаю считать вопрос решённым.
$BOC(\pi, e)$
Подтверждаю. И спасибо
Подтверждаю. И спасибо огромное...
Прошу прощения,
Прошу прощения, недосмотрел. После директив #include в треугольных строках стоят названия файлов.
#include stdio.h
#include string.h
#include usb.h
Нужно добавить треугольные скобки, они теряются при форматировании страницы в движке форума, т.к. в треугольных скобках стоят команды HTML. Я не знаю, как в форуме писать строки в треугольных скобках.
Кстати, для работы, естественно, должна быть установлена libusb.
$BOC(\pi, e)$
Автоматизация через cron
Пока я так и сделал - использовал cron (у меня vixie-cron). Если всё сделать совсем по-простому, то можно так. Создаём файл cron_task с содержанием:
* * * * * /bin/UnBeeline
Заносим его в базу данных cron:
>> crontab -u root cron_task
Проверяем, понял ли cron:
>> crontab -l
Данная команда должна выдать что-нибудь вроде:
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (cron installed on Thu Oct 16 23:43:56 2008)
# (Cron version V5.0 -- $Id: crontab.c,v 1.12 2004/01/23 18:56:42 vixie Exp $)
* * * * * /bin/UnBeeline
Далее нужно, чтобы cron был запущен. Запустить можно командой
>> cron
а убедится -
>> ps aux | grep cron
Ну всё, теперь программа (должна быть в /bin/UnBeeline) каждую минуту посылает сообщение в порт модема. Если модем не вставлен, она будет ругатся на отсутствие модема "в пустоту", потом это переделаю.
Сейчас я пишу данное сообщение через модем ZTE MF626 из-под Linux, заведённый данным способом (карточка, кстати, МТС, Beeline у меня работает отвратительно). Модем уже работает более десяти минут, и никаких намёков на сбои.
$BOC(\pi, e)$
Какая версия
Какая версия ядра?
2-6-20-gentoo-r8
2-6-20-gentoo-r8.
А есть ли разница? Здесь используется libusb (кстати, версия libusb-0.2.12-r1).
$BOC(\pi, e)$
Quote: 2-6-20-gentoo-r8. А
есть. На 2.6.26-r1 и 2.6.27 ENOENT - no such file or directory. С этим и есть проблема. А что касаемо родных дров, так это слегка изменённый option. Он работает точно также.
P.S. На счёт 2.6.27 я поторопился. Работает!!! Вот мой вариант программы:
#include usb.h #include unistd.h #include iostream //отладка #include errno.h //отладка #include string.h //отладка using namespace std; void SendToDevice( char* bi, int &len, usb_dev_handle *udev) { int t; t=usb_bulk_write(udev, 2, bi, len, 200); if(t<0)len=0; else len=t; if (t<0) cout t ":" strerror(errno) endl; cout t endl; //для отладки } int main(void) { struct usb_bus *bus=NULL; struct usb_device *dev=NULL; usb_dev_handle *udev=NULL; char com[]="AT+ZOPERTE=\"beeline\"\r\n"; char initcom1[]="AT+ZOPRT=5\r\n"; char initcom2[]="AT+ZSTART\r\n"; char initcom3[]="AT+CPBS=\"SM\"\r\n"; char initcom4[]="AT+CPMS=\"SM\",\"SM\",\"\"\r\n"; int lenc,lenc1,lenc2,lenc3,lenc4,len; usb_init(); usb_find_busses(); usb_find_devices(); //find device and open handle for (bus = usb_busses; bus; bus = bus->next) for (dev = bus->devices; dev; dev = dev->next) if( (dev->descriptor.idVendor==6610) && ( dev->descriptor.idProduct==49) ) //0x19d2 0x0031 { udev = usb_open(dev); } if(udev==0)return -1; usb_claim_interface(udev, 1); usb_set_altinterface(udev, 1); usb_resetep(udev, 1); lenc=0;while(com[lenc]!=0)lenc++; lenc1=0;while(initcom1[lenc1]!=0)lenc1++; lenc2=0;while(initcom2[lenc2]!=0)lenc2++; lenc3=0;while(initcom3[lenc3]!=0)lenc3++; lenc4=0;while(initcom4[lenc4]!=0)lenc4++; len=lenc; SendToDevice(com, len, udev); len=lenc1; SendToDevice(initcom1, len, udev); sleep(5); len=lenc; SendToDevice(com, len, udev); len=lenc2; SendToDevice(initcom2, len, udev); len=lenc3; SendToDevice(initcom3, len, udev); len=lenc4; SendToDevice(initcom4, len, udev); while(1) { sleep(59); len=lenc; SendToDevice(com, len, udev); } if(udev)usb_close(udev); return 0; }Ruby
А вот аналогичная программа на Ruby (unbeeline.rb):
#!/usr/bin/env ruby require 'rubygems' require 'usb' def find_device (vendor, product) bus = USB.first_bus while bus != nil dev = bus.first_device while dev != nil return dev if dev.idVendor == vendor and dev.idProduct == product dev = dev.next end bus = bus.next end return nil end def send_msg (d, msg) d.usb_claim_interface 1 d.usb_set_altinterface 1 d.usb_bulk_write 2, msg, 1000 d.usb_release_interface 1 end puts "Looking for ZTE MF626 modem" unless (zteModem = find_device(0x19d2, 0x0031)) == nil puts "ZTE MF626 modem found" d = zteModem.usb_open send_msg d, "AT+CFUN=1\r\n" puts "\'Revival\' command sent to NMEA interface" `modprobe usbserial vendor=0x19d2 product=0x0031` puts 'ttyUSB0 device created' while true sleep 60 send_msg d, "AT+ZOPERTE=\"beeline\"\r\n" puts "\'Alive\' command sent to NMEA interface" end d.usb_close else puts "ZTE MF626 modem not found" endТребуется интерпретатор Ruby, пакет libusb, а также ruby-usb (Ruby-обёртка над libusb).
Запускается программа следующим образом:
sudo ruby unbeeline.rb
Программа делает следующие вещи:
1. оживляет модем путём посылки AT+CFUN=1;
2. создаёт ttyUSB0 через вызов modprobe;
3. висит в бесконечном цикле, посылая каждую минуту AT+ZOPERTE="beeline".
P.S. Я использую модем ZTE MF626, во внутренней файловой системе которого предварительно удалён напрочь файл CD_STARTUP_FLAG.
-EBUSY
Прошу помочь: добился переключения устройства в модемный режим, но не могу заслать ему этот ZOPERTE.
Попробовал обе приведённые программы, написал свою с нуля - в каждом случае usb_claim_interface (запущенный от рута) возвращает "Device or resource busy". Куда можно покопать?
Не могу запустить usbserial
Подключаю модем пишу eject /dev/sr0
в lsusb -v
Затем пишу в консоль modprobe usbserial vendor=0x19d2 product=0x0031 ответ
В dmesg следующее
Не могу понять что не так делаю...
Скорее всего драйвер generic
Скорее всего драйвер generic не включён в конфиге ядра. Давайте вывод zcat /proc/config.gz|grep USB_SERIAL
Спасибо! заработало!
Спасибо! заработало!
собрал новое ядро 2.6.27 Не
собрал новое ядро 2.6.27 Не могу переключить в режим модема так как не появляется устройство sr0 в dmesg...
Идите, и снова правьте
Идите, и снова правьте unusual_devs.h
ZTE CDMA ...
Я первый раз подключил этот девайс в Linux-e. Девайс подключился с idVendor=19d2, idProduct=0031. Слегка поковырявшись переключился в Windows. После этого девайс в Linux-е стал включаться как idProduct=2000. В Виндузе кстати он тоже не сразу завелся - ему требуется для старта инсталятора свободная буковка E: Инсталлятор видимо и прописывает тот самый файлик CD_STARTUP_FLAG.
SaM
Вести с полей
В Linux начиная с версии 2.6.28 наш модем по-умолчанию поддерживается драйвером option. Решил я потестить его работу в новом ядре, накатив патч 2.6.28-rc7 - последняя версия на сегодняшний день.
Собрал, поставил. После втыкания модема получил привычный usb-storage: device ignored. Сразу же пришлось править drivers/usb/storage/unusual_devs.h, комментируя строчки. После этого девайс стал нормально определяться в системе как порты ttyUSB0, ttyUSB1, ttyUSB2. Поднял pppd, и после 5 минут работы модем привычно завис, погасив индикатор. Но! USB-хаб при этом не завис, и после выдергивания модема и втыкания в этот же порт можно опять поднимать pppd, который проработает так же 5 минут.
Тогда я решил проверить, как оно будет работать через HSO в новом ядре: закомментил две строчки в option.c, содержащие упоминания о mf626, и внес соответствующие добавления в hso.c Устройства HS0 и HS1 успешно появились, коннект отлично поднялся, и держался, кажется, несколько часов - вечером устал ждать, когда оно зависнет, пошел спать. Однако ж утром модем опять был в дауне, но зависания системы (как с предыдущей версией ядра) или usb-порта так же не происходит, т.е. можно выдергивать модем, тут же втыкать обратно и еще некоторое время работать.
Мои ламерские знания позволяют мне предположить, что в ядре чего-то исправили в USB-протоколе в целом, так что теперь не происходит зависания хаба и системы, но специфичные для нашей железки глюки все же остались.
В связи с этим несколько риторичных вопросов:
1. Отчего могут происходить подобные зависания, причем через четко определенные промежутки времени?
2. Почему в ядре в файле unusual_devs.h не убрали упоминание о нашем модеме, однако ж поддержку его драйвером option сделали? Может быть все дело в release candidate-версии ядра?
3. Неужели мы насовсем потеряли manuel'а? :(
может его qpost ом и не завсинет?
http://forum.ixbt.com/topic.cgi?id=16:39216-32
Подтверждаю. Удалил файлы "FLAG_NO_DOWNLOAD" и "CD_STARTUP_FLAG", модем не выключается через 2 мин., продолжает работать. Проверил с симками МТС и Билайн. (ZTE MF626)
Удалил из ZTEMF626, 2 файла "CD_STARTUP_FLAG"и"FLAG_NO_DOWNLOAD"прогой "QPST 2.7 build 264"
И переключил в режим модема прогой"zte_switch_mode"
Родную прогу удалил,теперь при подключению к компу он сразу модем,для подключеня к инету
пользуюсь ранее созданным тел.соединением,строку инициализации не запоняю,оператор билайн,
он и был заточен под билайн.С мегафон тоже работает,но надо заполнить строку инициализации.
И самое главное он стал работать с DIR-320,теперь у меня полноценный мобильный роутер.
может просто выкинуть флэхи и иметь обычный не залоченный модем?
Новая прошивка это счастье какое-то :)
С новой прошивкой от забугорного оператора модем не просто разлочился, но и теперь даже usbserial выдает ему три порта :))
прошивку искать тут http://forum.ixbt.com/topic.cgi?id=16:39216-41
к тому же говорят что улучшилось качество связи и модем меньше теряет пакетов :)
З.Ы. проверял на mdv 2009.0 kernel 2.6.27-rc8.2
Препрошил модем таким
Препрошил модем таким образом, в Винде работает отлично с разными симками без проги от Билайна. В линуксе не появляется устройство ttyUSB0, подскажите куда копать.
Цитата:В линуксе не
В сторону логов. Без них ничего сказать нельзя. Перед тем как задавать следующий вопрос, прочитайте внимательно статью в вики.
А у меня после удаления
А у меня после удаления FLAG_NO_DOWNLOAD устройство сменило VID:PID на 0x19d2:0x0016. Состав интерфейса такой же, как и в режиме 0x19d2:0x0031, так что работать должна (пока, правда, не работает - под Linux, думаю, настрою)
Проблема в том, что родная программа QPST перестала определять этот модем и больше не получается ничего изменить. Кто-нибудь знает, как вернуть контроль из QPST?
$BOC(\pi, e)$
Всё, управление из QPST
Всё, управление из QPST восстановил путём переустановки родной программы от Билайн (из ZTEMODEM.ISO - http://il.perm.ru/filesharing/download.php?file=1155) и, соответственно, переустановкой драйверов. QPST заработала.
$BOC(\pi, e)$
Xandros и ZTE MF626
Купил модем ZTE MF626, который залоченый, система XANDROS бук eeePC. Почти завелся, ПОМОГИТЕ разобраться.....
(все файлы есть, могу выслать кому нужно пишите mr.manson(sobaka)mail.ru)
Установка драйвера: Закинуть onda.ko нужно в папку ./lib/modules/2.6.21.4-eeepc/kernel/drivers/usb/serial/.
Переключение режима: Теперь когда втыкаем модем он определяется как виртуальный CD-ROM, нужно его извлечь: или в трее правый клик - "Извлечь", или в консоли (CTRL+ALT+T) sudo eject /dev/sr0.
Проверяем интерфейсы: Теперь ждем когда снова загорится синий (или зеленый) огонек, значит модем зарегился в сети, проверяем появились ли интерфейсы модема в системе: dmesg должен показать что-то типа usb 5-2: GSM modem (1-port) converter now attached to ttyUSB0, должны так же быть ttyUSB1 и ttyUSB2.
Качаем и ставим wvdial, в /etc/wvdial.conf должно быть так:
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+ZOPERTE="beeline"
Init4 = AT+ZOPRT=5
Init5 = AT+ZSTART
Init6 = AT+CPBS="SM"
Init7 = AT+CPMS="SM","SM",""
Modem = /dev/ttyUSB2
Phone = *99#
Idle Seconds = 0
Password = beeline
Modem Type = Analog Modem
Stupid Mode = 1
Compuserve = 0
Baud = 460800
Auto DNS = 1
Dial Command = ATDT
Ask Password = 0
ISDN = 0
Username = beeline
Подключение: набираем в консоли wvdial, он активирует модем (даже если горел красный огонек), и подключает к сети, но примерно на 5 минут, потомучто MF626 залочен.
До этого момента, помойму, подходит и для MF622, далее взлом MF626.
Взлом: Залоченый модем требует команду AT+ZOPERTE="beeline" каждую минуту, это можно выполнить с помошью программы UnBeeline, к сожалению найденая версия в интернете требует GLIBC верси 2.4, тогда как в Xandros 2.3, вот тут-то я и застрял, на работе стоит UBUNTU 8, параллельно делал там, не работало пока не установилось какое-то очередное обновление, теперь все ОК.
На Xandros пробовал два варианта:
-Компилировал вручную исходники UnBeeline (необходимо ставить libusb и libusb-dev), программы запускались но команды не доходили до модема и он отключался каждые 5 минут.
-Пытался запустить UnBeeline из инета, для этого устанавливал GLIBC 2.7 в Synaptic, UnBeeline запустился, команды пошли в модем, соединение простояло больше часа, ура!!!, но после перезагрузки от UnBeeline снова перестали доходить команды, .
Сейчас пытаюсь разобраться что изменяется после перезагрузки (надеюсь на помошь), и параллельно качаю eeebuntu.
UnBeeline пишет типа set usb altinterface: connection timed out, похоже на то что неможет найти куда слать команды, есть соображения в сторону libusb, но переустановка библиотек не дает эффекта, что делать?
С ядром 2.6.28 я пока не
С ядром 2.6.28 я пока не встретил ни одного зависания, видимо действительно что-то подправили в USB-стеке... Хотя option всё также работает некорректно. Пришлось убирать упоминания из option и править hso...
P.S. в нашей деревне появилась 3G сеть, после чего модем успешно перестал работать. При соединении не было строчки "CS_PS" были только "CS_ONLY", в родном ПО в том месте где писался тип услуги была тоже только буква "С". В результате долгого общения с техподдержкой выяснилось, что следует заменить сим карту (например в фирменном салоне или в салонах "Связной") и установить тип сети "Только 3G".
Черт возьми, и вправду починили
Черт возьми, и вправду починили, шойтаны! :) Отличный подарок к Новому Году!
Т.е. это касаемо конкретного оператора и конкретной сим-карты? А какой у вас оператор? Правда, "в нашей деревне" такого счастья ждать еще долго :)
Цитата: Т.е. это касаемо
В Казани только у билайна есть действующая 3G сеть. Можно предположить что это касается конкретно билайна, потому как у соседей наблюдаются аналогичные проблемы...
Я действительно живу в деревне (называется "посёлок Залесный"), только она в черте города Казань ;) именно по этому самый доступный и быстрый интернет на данный момент именно 3G от билайна.
..
Я живу в городе Горно-Алтайск. По идее это столица Республики Алтай, но назвать его городом можно с натяжкой - скорее похоже на деревню. Ни о каком 3G речи быть вообще не может, причем не ожидается он и в некоторых не очень далеких от нас, но больших городах.
Выбор инет-провайдеров у нас очень скуден - есть только один DSL от Сибирьтелекома, но за довольно немалые деньги. Поэтому народ активно ищет альтернативы. Я, например, юзаю спутниковый инет в связке с EDGE для исходящего канала.
Был тут в Питере месяца
Был тут в Питере месяца полтора назад, брал с собой этот модем - специально, чтобы опробовать 3G. Работает! Фантастика! wget мне писал про 200 кб/c!. Среднюю скорость не скажу, но это реально было быстро. И светодиод зелёный горел.
А в Московской области, наверное, 3G не будет никогда...
$BOC(\pi, e)$
Извините, что ворошу старую
Извините, что ворошу старую тему. Но результат, всё же, неполон. Я когда-то давно настроил модем своей версией программы (выше я писал об этом), всё работало, я так и оставил. А теперь переставил систему и решил настроить, по рецепту от ArtSh из gentoo-wiki. Естественно, сразу не заработало. Начал копаться, оказалось, программы не отсылают сообщения в модем с ошибкой -16 (Device is busy), вызвано это тем, что драйвер option занял соответствующий интерфейс модема, навесив на него порт /dev/ttyUSB0 (модемный порт при этом /dev/ttyUSB2). Соответственно, через libusb к нему обратиться нельзя, а напрямую (через echo ... > /dev/ttyUSB0) он тоже не работает из-за неправильной реализации option, о чём тут писали выше. Решения:
1) хак option, описанный выше;
2) подправить option, чтобы он не цеплялся за модем MF626;
3) снести вообще модуль option.
Сейчас я пишу это сообщение, используя п.2.
Так или иначе, рецепт из gentoo-wiki напрямую не работает, а там это не отражено. Можно ли добавить туда пару слов про option? Я, конечно, сам могу добавить, но хотелось бы всё же видеть мнение автора странички.
$BOC(\pi, e)$
Цитата:Можно ли добавить туда
"Правьте смело!"
Это зависит от версии ядра. Когда страница писалась, всё работало именно так как написано.
P.S. Я сейчас пользуюсь драйвером hso.
Исправление
Для себя сначала разберусь, я пока в процессе. Много странностей. Так, программа beeline_script, приведённая в gentoo-wiki, приводит к подвисанию модема через несколько минут, о чём выше много написано (ядро у меня 2.6.27-gentoo-r10). Но старый вариант, который я использовал - через cron, не вызывал проблем за последние полгода. В чём разница? Я не понимаю - тут цикл в C, там цикл в cron, а так - всё то же самое. И ещё надо решить проблему глючности самого билайна. Если разместит запуск модема в стартовый скрипт - это было бы очень хорошо, но связь довольно нестабильна, тут прямо хоть какой-нибудь kppp запускай для обратной связи. Я все полгода запускал интернет вручную командой "pon beeline debug nodetach", чтобы видеть сообщения. Не знаю, как это всё культурно оформить.
Да, я заметил - у меня сообщения порядочно отличаются.
Нужно попробовать.
$BOC(\pi, e)$
Разница
В чём разница - понятно. Сейчас как раз использую старый вариант через cron. Отличается моя старая программа от той, что описана в wiki составом отправляемых в модем команд. Моя программа посылает в порт только AT+ZOPERTE="beline"\r\n, и всё. И ничего не виснет. А beeline_script посылает сначала несколько команд, вот и вся разница. Непонятно только, почему в ядре 2.6.28 тогда зависания модема пропадают, какая связь ядра с AT-командами. Темное, короче говоря, дело.
$BOC(\pi, e)$
Цитата: Темное, короче
А я вот заметил, что модем практически всегда зависает при слабом сигнале, а если сигнал сильный, то практически никогда...
да. и еще виснет при низкой
да. и еще виснет при низкой напруге по 5В(по USB). у меня когда была напруга 4,2-4,4 он часто вис. когда поменял БП и стало 5,1 перестал :)
Разница не в составе команд.
Разница не в составе команд. Экспериментировал, оставил в программе beeline_script (http://ru.gentoo-wiki.com/wiki/MF626) только ту команду, которая уже год успешно работает у меня в программе UnBeeline (http://www.gentoo.ru/node/12140#comment-84684) - модем всё равно через некоторое время подвисает, и никакой comgt поднять его обратно уже не в силах - нужно выдёргивать и вставлять заново. В то же время связка UnBeeline+cron у меня работает уже год и ничего не виснет вообще. Ядро не патченое, пробовал разные, сейчас 2.6.30.
Разница, видимо, в том, что UnBeeline+cron каждый раз открывает/закрывает устройство, а beeline_script открывает его один раз и в бесконечном цикле шлёт данные. Попробую соответсвующим образом поменять beeline_script - должна же она заработать.
Промучавшись год с Билайном и МТС год, на днях тут попробовал поработать в Мегафоне - шикарно! Скорость 25 кбайт/с - максимум возможного в EDGE - круглые сутки! А раньше было проблемой даже просто подключиться к сети. Принять почту - что-то нереальное. Но это видимо особенность местной соты, на работе у меня Билайн ешё как-то работает.
$BOC(\pi, e)$
eugene_b
У меня по части качества проблем не было, но вот Билайн испортил ночной безлимит — после 2ГБ скорость обрезают до 64 килоБИТ!!! А следующие быстрые 2ГБ предлагают покупать отдельно... Поэтому я тоже перешёл на Мегафон.
P.S. Сегодня в 20:30 у Мегафона заработал 3G в Казани!!!
кстати общедоступного решения
кстати общедоступного решения для новых модемов MF626 (с новой версией прошивки, для которых обычного ZOPERTE=beeline мало, и которое описано на вики) до сих пор нет. пришлось беспокоить человека, который оставил мыло там :)
Экспериментировал с
Экспериментировал с программой beeline_script. Инициализировать каждый раз в цикле пока не получилось, почему - не знаю, надо ещё пробовать. А пока я смотрел, что происходит в исходной версии программы, где в цикле есть только запись команды AT+ZOPERTE в модем.
С начала всё работает нормально, usb_bulk_write бодро возвращает количество записанных байт (22). Однако через несколько минут на модеме вообще гаснет светодиод, а usb_bulk_write начинает возвращать код -110. Что это такое, непонятно. В документации libusb (http://libusb.sourceforge.net/doc/function.usbclaiminterface.html#AEN299) такого кода нет. errno/strerror ничего не об этом не пишут (пишут последнюю ошибку, произошедшую где-то до запуска beeline_script).
После возникновения этой ситуации модем уже ни на что не реагирует, выгрузить из памятьи usbserial нормально уже не получается - "rmmod -f usbserial" ни на что не реагирует и не останавливается. Без перезагрузки всей системы обойтись уже не получается. lsof | grep ttyUSB ничего не даёт.
Мне не понятна причина этих проблем. В UnBeeline было то же самое, только вместо бескониченого цикла был cron. Разницы больше нет.
$BOC(\pi, e)$
eugene_b
ошибка -110 мне тоже известна, обычно связана с низким уровнем сигнала. Я использую драйвер hso, при зависании модема я просто вытаскиваю его и делаю rmmod -f hso; после этого можно снова всё включать...
P.S. я использую ~arch ядра.
Пожалуй, я так и дальше буду
Пожалуй, я так и дальше буду работать с помощью UnBeeline+cron. Приведённым в wiki методом я ничего не добился - модем через некоторое время виснет. А так проблем нет.
Мне ещё нужно было сделать удобный запуск интернета, чтобы моя жена могла им пользоваться. Если бы интернет работал стабильно, можно было бы поместить его запуск в инициализационный скрипт и запускать автоматически при загрузке. Но так как работа нестабильна (хотя мегафон сейчас работает хорошо), я всегда запускал вручную из консоли командой
pon beeline debug nodetach
чтобы видеть сообщения pppd и знать, что происходит. Но это же не решение для обычного пользователя. Хотел сделать всё через kppp - но эта программа имеет слишком много лишнего. В результате я просто в меню KDE поместил команду pon megafon debug nodetach с галочкой "выполнять в терминале" и всё. На том, видимо, и остановлюсь.
Но рецепт из wiki не работает, на страничке wiki я сделаю примечание, что в случае проблем есть другие решения.
$BOC(\pi, e)$
Может кто так пробовал? Итак,
Может кто так пробовал? Итак, суть дела. В модеме ZTE626 есть карт-ридер для MicroSD объёмом до 2 Гб, который может работать (и работает) одновременно с модемом. В результате получается флешка-модем.
И захотелось мне поставить на эту флешку Gentoo, чтобы можно было мы на (любом) компьютере загрузить свою систему и сразу же, в том же флаконе, иметь доступ в сеть.
Принципиально я тут вижу две возможности:
1) Установить ядро и загрузчик вместо образа ZTEMODEM.ISO, загрузиться, как с CD-ROMа, затем, проведя необходимые действия, переконфигурировать модем, подмонтировать флешку и использовать её в качестве рута.
2) Отключить образ CD-ROM вообще путём удаления CD_STARTUP_FLAG и видеть при этом модем, как флешку сразу и грузится с неё.
Второй путь казался проще. Я взял образ Gentoo LiveCD в качестве экспериментальной системы и начал пытаться установить его в качестве LiveFlash (по официальной мурзилке с www.gentoo.org) на модем. Естественно, сразу не заработало. Тогда я поставил систему на контрольную обычную флешку для проверки. Флешка была со странностями всегда, и с неё система грузится не захотела. Тогда я взял флешку посовременнее, с неё система пошла нормально. Вывод. BIOS позволяет грузится не с каждой флешки. А уж с флешкой-модемом точно возможны проблемы. Удалось ли кому-нибудь такое провернуть с ZTE626?
Пока я поэксперементирую с образом ZTEMODEM.ISO, может быть так получится. Было бы очень неплохо.
$BOC(\pi, e)$
Пока есть только одна
Пока есть только одна зацепка. Если убрать CD_STARTUP_FLAG (режим без CD), BIOS (у меня, по крайней мере) вообще отказывается видеть устройство, как Flash. Зато если включить режим с CD, то BIOS воспринимает устройство, как ZTE CDROM. Уже хорошо.
Места там мало, если удалить исходный ZTEMODEM.ISO, будет около 30 Мб. Но этого хватит для загрузчика, ядра и initrd. Я собрал небольшой образ LiveCD на основе LiveCD gentoo, выбросив оттуда все большие, пусть и существенные для работы файлы, но без которых можно загрузить само ядро (пусть даже это и кончится чем-нибудь вроде Kernel Panic, сейчас это неважно, для меня важен сам факт загрузки).
Сразу, естественно, ничего не загрузилось. Но я пока до конца не уверен, что правильно собрал усечённый LiveCD с переконфигурацией isolinux и записью загрузочного сектора. Нужно проверить, записав его на обычный CD-ROM. Попробую, проверю...
$BOC(\pi, e)$
Цитата: Пока есть только одна
Проблема именно в BIOS. Например биос моей мат.платы прекрасно (правда несколько дольше чем другие диски) распознаёт флешку (если CD_STARTUP_FLAG убран), и в принципе, с неё можно загрузиться...
Проверил образ с помощью >>
Проверил образ с помощью
>> qemu -cdrom img.iso
На эмуляторе грузится. Хотя, это совсем ещё не значит, что будет грузится с настоящего диска.
$BOC(\pi, e)$
Пока меня опять постигла
Пока меня опять постигла неудача. Я проверил собранный усечённый ISO-образ. Записал его на настоящий CD-ROM и удалось загрузить компьютер (правда, со второй попытки - пришлось переконфигурировать). Таким образом, сам ISO-образ нормальный.
Потом я поместил его в модем вместо ZTEMODEM.ISO. Записал туда CD_STARTUP_FLAG(=0x01), теперь, как и положено, первым делом устройство определяется, как CD-ROM и на этом CD-ROMе видно содержимое ISO-образа, который я записал.
В BIOSе (для надёжности) я запретил все остальные устройства, установил загрузку только с ZTE626, который BIOS называет "ZTE USB SCSI CDROM". При загрузке, к сожалению, появляется надпись, что данный диск не содержит операционной системы и предложение вставить другой.
Материнская плата Asus P4P800 (кажется), BIOS - AMI v2.51 (2002 г).
На своём ноутбуке HP я столь подробного исследования пока не проводил, но там очень странный BIOS, много изменить не позволяет.
$BOC(\pi, e)$
ArtSh написал(а):Цитата:Пока
И всё же я просмотрел - BIOS воспринимает ZTE626, как флешку. Он называет его "ZTE MMC Storage" и позволяет установить в качестве загрузочного устройства. Но при загрузке выводит надпись:
Формально всё выглядит так, что флешку BIOS видит, но неправильно записана туда операционная система, а точнее, загрузчик. Но до этого у меня данным способом (в соответствии с Gentoo Linux LiveUSB HOWTO) удавалось загрузить систему на одной флешке (Kingston), но не удавалось на другой (Transcend). То ли делаю что-нибудь неправильно, то ли BIOS привередливый, то ли флешки такие - не знаю.
Попробую со всех трёх флешек загрузится на других компьютерах.
$BOC(\pi, e)$
Одна флешка (Kingston)
Одна флешка (Kingston FAT32) грузится на двух компьютерах без проблем.
Вторая флешка (Transcend VFAT) пытается грузится на двух компьютерах, но везде неудачно - пишет, что нет операционной системы. Хотя файлы на флешках одинаковые, а дополнительные манипуляции сделаны точно по мурзилке:
>> dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdc
>> syslunux /dev/sdc1
Файл ldlinux.sys создаётся. Может быть, это какой-то глюк самой флешки.
С ZTE626 (VFAT) такая история. На настольном компьютере BIOS к нему обращается (ZTE MMC Storage), но говорит, что там нет опрерационной системы. Ноутбук HP (непонятный BIOS, версия 1.3a) вообще не воспринимает ZTE626, как флешку. Там вообще BIOS куцый. В общем, как всегда. Если вещь стандартная (AMI или Award), то всё хорошо. Как только появляется что-то нестандартное (т.н. "брендовое", оригинальное, короче говоря, "самостийное") - сразу проблемы.
$BOC(\pi, e)$
Слил со всех трёх флешек
Слил со всех трёх флешек содержимое начального сектора:
>> dd if=/dev/sdX of=/tmp/sector_X.bin bs=410 count=1
и сравнил друг с другом и с исходным /usr/lib/syslinux/mbr.bin
Полное совпадение. И, просматривая содержимое, можно убедится, что это действительно похоже на загрузочный код.
Но среди прочего там есть сообщение "Missing operating system". Я вижу данное сообщение при неудачной загрузке.
Так что, может быть, данный код всё-же исполняется. И я это доказал. Я исправил эту надпись и записал на флешку Transcend. В результате при загрузке у меня выводится "Missing operating sys___.". Так что загрузочный код исполняется, просто где-то есть ошибки с конфигурированием LiveUSB.
Аналогичную штуку удалось провернуть и с ZTE626! Значит в принципе BIOS грузится с флешки, вставленной в модем. Но есть проблемы с самими данными, которые на неё записаны.
Пока я вижу только одно отличие - на работающей флешке FAT32, на двух неработающих - VFAT. Если бы было наоборот, я бы принял это за причину. Но так... Даже не знаю, уж очень невероятно то, что с FAT32 система грузится, а с FAT16 - нет.
Есть вообще вариант сделать там ext2fs и использовать extlinux вместо syslinux.
Пока ясно только то, что в принципе с этого модема можно загрузить систему.
$BOC(\pi, e)$
Результат (отсутствие
Результат (отсутствие результата) на данный момент такой. Модем ZTE626 с карточкой MicroSD и флешка Transcend ведут себя одинаково. В принципе, с них можно грузится. Программа в MBR выполняется.
Тем не менее загрузится не удаётся. Я думал, что-то совсем неправильно делаю. Тогда я взял unetbootin, взял родной ISO образ Gentoo LiveCD 2008.0, записал его с помощью unetbootin на флеш (ошибиться тут уже нельзя - всего два параметра - имя образа и имя файла устройства флешки). Не заработало - компьютер начинает выполнять программу с флешки, лампочка непрерывно бешенно моргает, и больше ничего.
Экспериментируя с unetbootin, я добился появления его собственного загрузочного меню, но в этот момент на флешке не было операционной системы...
Мистика, как всегда.
$BOC(\pi, e)$
Я всё-таки достиг
Я всё-таки достиг (частичного) успеха - удаётся начать грузится с флешки, вставленной в модем ZTE626!
Для этого я заменил ISOLINUX на GRUB.
Теперь появляется меню GRUB, можно выбирать и редактировать варианты загрузки.
Начинает грузится ядро. Но зарузка обрывается зависанием на строке "ACPI version ..." (не помню, какую версию он пишет). Данная строка появляется через одну после строки "Checking `hlt` instruction" (на данной строке компьютер всю жизнь иногда зависал).
Ещё одна странность - не работает Framebuffer. А ведь система взята с Gentoo LiveCD 2008.0 ISO, который, будучи записанным на настоящий компакт-диск, грузится нормально вплоть до появления иксов.
Конфигурационный файл grub (/grub/menu.lst) содержит следующее:
default 0
timeout 30
title Gentoo LiveCD 2008.0
root (hd0,0)
kernel /gentoo root=/dev/ram0 init=/linuxrc dokeymap looptype=squashfs loop=/image.squashfs cdroot slowusb initrd=gentoo.igz vga=791
Параметры ядра взяты с LiveCD. Для загрузки я в GRUBе удалял в конце строки vga=791, т.к. Framebuffer не работает.
$BOC(\pi, e)$
Загрузка
Да, я так и не написал, чем всё кончилось. Вывод такой - да!, на этот модем можно поставить линукс и грузится с него. Но! все компьютеры воспринимают его по-разному, не так просто загрузится. Да и полно сейчас компьютеров, биосы которых вообще с флешек не грузятся.
Так что, универсальной "палочки-выручалочки" не получилось.
$BOC(\pi, e)$
Добрый день. Не могу добиться
Добрый день.
Не могу добиться нормальной работы данного модема на генерик ядре. Вот что выдает dmesg:
Вот вывод lsusb:
Пробовал подменять deviceid в options.c и пересобирать, не помогло.
Можно ли запустить этот модем под линухом?
Bus 001 Device 002: ID
Как бы намекает, что у Вас не MF626. Посмотрите наклейку сзади. Вы перепрошивали модем левой прошивкой? Из Вашего сообщения также не понятно, что же всё-таки не работает?
Модем прекрасно работал из
Модем прекрасно работал из под убунты на рабочем компе и определялся там как mf626. Модем не перепрошивал, хотя может это делал старый хозяин.
Не работает отправка смс из под gammu, проверял в той же убунте, в ней все прекрасно работает, задача этого модема gsm сигнализация.
Давайте сюда cat
Давайте сюда cat /proc/bus/usb/devices из под убунты, ошибки gammu. Попробуйте также сделать следущее:
где вместо Х цифра. Таким образом можно проверить корректно ли работает драйвер и сам модем при запросе различные порты.
Вывод из под убунты привести
Вывод из под убунты привести не могу, модем в серверной, серверная в другом здании.
Вот из под генты:
Вот что пишет gammu:
Вот вывод команды приведеной выше:
Решил погуглить на тему
Решил погуглить на тему +ZUSIMR:2 и нашел вот это:
http://linuxforum.ru/index.php?showtopic=72408&st=30&start=30
по совету передал команду в модем:
После этого удалось отправить смс. Соответсвенно можно считать что модем заработал. Теперь буду курить на тему работоспособности после ребута.
Пытаюсь позвонить на обычный
Пытаюсь позвонить на обычный аналоговый модем, но не выходит.
Ни кто не подскажет он вообще это умеет?
По умолчанию, тарифный план
По умолчанию, тарифный план Би-лайна запрещает звонки на все номера кроме специальных. Модем, по идее, должен спокойно соединятся с аналоговым модемом (просто надо подправить скрипт инициализации)...
Сорри за небольшой
Сорри за небольшой оффтоп.....
Кто-нибудь пробовал его в качестве смс-гейта, например через smstools???
Хочу прикрутить к nagios
SMS-Tools
Целый день сегодня крутил ZTE MF636. Терял сеть, регулярно. Понял что не с проста. Сначала писал ему в /dev/ttyUSB2, через echo, но увы иногда было смертельно для smstools. Пошел другим путем...
С данным патчем, при регулярных потерях сигнала, восстанавливается за 2 секунды)))
--- smstools3/src/modeminit.c<->2009-05-30 20:06:23.000000000 +0400
+++ smstools3/src/modeminit.c<->2010-06-08 16:20:17.000000000 +0400
@@ -1469,7 +1469,9 @@
}
else if (strstr(answer,"+CREG:"))
{
- writelogfile(LOG_NOTICE, 0, "MODEM IS NOT REGISTERED, WAITING %i SEC. BEFORE RETRYING %i. TIME", waitnetwork_errorsleeptime, retries +1);
+<----->char fuck[500];
+ put_command("AT+CFUN=1\r", fuck, sizeof(fuck), 2, "(\\OK)|(ERROR)");
+ writelogfile(LOG_NOTICE, 0, "MODEM IS NOT REGISTERED, FUCKING %i SEC. BEFORE RETRYING %i. TIME", waitnetwork_errorsleeptime, retries +1);
if (t_sleep(waitnetwork_errorsleeptime))
return -2;
}
MF626 немного нестандартное решение
Всё-таки удалось заставить работать модем ZTE MF626 под линуксом нормально.
Изначально он работал около трёх минут и разрывал соединение. Казалось бы проблема решается или элементарной перепрошивкой на версию M02 с австралийского сайта, или переодически посылать в модем какие-то команды, чтоб он не разрывал соединения.
Последний вариант, как понимаете костыль. Железо (в данном случае модем) должно выполнять свою работу чётко, независимо от ОС, в которой функционирует.
Теперь про смену прошивки модема. А не прошивается он! И всё тут! Ну никак!:( Речь идёт о последней версии модема (дефолтная билайновская прошивка BD_BLNP673M3V1.0.1B02). Программа смены прошивки MF626_M02_Upgrade Tool.exe немного поработав пишет switch to DownLoad mode... switch to DownLoad mode fail!
И что же получается!? Я заплатил деньги за модем, а он у меня не работает! Ну чтож, беру гарантийник, модем и всё что с ним было, несу в сервисный центр с диагнозом "в ОС Linux работает 3 минуты и разрывает соединение". Модем принимают на гарантийный ремонт, через несколько дней возвращают и говорят, что перепрошили его. Как они это сделали для меня пока загадка...
Я радостно вставляю модем в ноутбук, устанавливаю соединение, проверяю что инет поднялся и работает и...бац! через три минуты дисконнект. Но кричать о том, что мастера из сервисного центра - халтурщики пока рано. Отыскав виндовый компьютер, подключаю модем и запускаю MF626_M02_Upgrade Tool.exe. Модем успешно прошивается до M02! В сервисном центре хоть и не отремонтировали мне его полностью, но сделали великое дело - разлочили чтоб его можно было прошивать.
Теперь обратно подключаю модем к ноутбуку, проверяю, с австралийской прошивкой инет работает нормально, оставляю соединение подключеным. Модем проработал 258 минут (четыре с лишним часа!), но потом завис, светодиод перестал моргать вообще, помогло только отключение от порта USB и повторное подключение, ну да ладно, по этому поводу я не слишком расстраиваюсь. 258 минут и 3 минуты - разница очевидна. И насколько я слышал отзывы, в родной ОС с родной программой модем работает полтора-два часа, потом происходит программная ошибка (кривые драйвера?).
Проблема с работой модема именно в качестве модема в ОС Linux решена. Что же осталось? Посылка USSD запросов и приём/отправка SMS. Предлагаю комьюнити объединится и допилить это, тем более что работы в этом направлении насколько мне известно уже идут.
Посылка USSD запросов нужна скажем для проверки баланса, перехода на другой тарифный план и пр.
А вот возможность отправлять/получать SMS сообщения будет очень полезна тем, кто устраивает SMS рассылки или создаёт автоматизированную систему обработки запросов с помощью SMS.
Созданим некий mf626-tools порт, в котором будут эти две универсальные консольные программы, а кому надо создадут для этих программ GUI.
И последнее. Если вдруг эту ветку будут читать программисты, которые по заказу билайн создали эту самую прошивку для MF626 и разработали эту глупую кривую программу "Билайн Интернет дома" или "USB модем от билайн", то знайте: ваши действия не что иное как прямое нарушение антимонопольного законодательства. Ваш монополизированный прозомбированный мозг не способен мыслить как мыслят свободные люди. И ваша цель заставить людей пользоваться ОС Windows для работы с этим модемом потерпела неудачу.
>Созданим некий mf626-tools
>Созданим некий mf626-tools порт
Начинайте... Ну а проще говоря никто за вас ничего делать не будет.
Каков сакральный смысл вашего поста?
TheMixa
Да, пожалуй я на базе уже существующих решений разработаю для своих задач необходимые программы. Даже тут ничего никому не надо...
Ну почему не надо, просто не
Ну почему не надо, просто не сто́ит чересчур серьёзно воспринимать комментарий человека, первый раз отметившегося в дискуссии. В чём «сакральный смысл» его комментария, мне тоже неясно, кстати говоря.
А кому нужно будет, стукнется сам, предложит посильную помощь.
Текстовый редактор vi имеет два режима работы: в первом он пищит, а во втором — всё портит.
Цитата: Последний вариант,
Если производитель захотел, чтобы в модем посылалась команда, то это не костыль. Ведь под виндовс Вы не можете запустить модем не посылая команды?
А у меня (с драйвером hso) он работает минимум по 16-18 часов... А какой у Вас уровень сигнала? А питания достаточно?
Это уже всё есть. Первое делается с помощью АТ комманд, второе с помощью gammu (есть фронтенд wammu).
А где же Ваше обращение в ФАС или хотя бы в роспотребнадзор?
ArtSh написал(а): Если
Производитель в данном случае компания ZTE и этот самый производитель ничего не захотел, посылать какие-то команды в модем уж точно. Захотел как раз билайн, вот только чего: посылать команды в модем или сделать возможной работу модема под виндовс?
Действительно модем может работать намного дольше, наверное в том месте был слабый уровень сигнала. Вот например модем от МТС у меня вообще проработал двое суток непрерывно и НИ ЕДИНОГО РАЗРЫВА (с). Может он и дольше проработал бы, но мне надо было выключать и забирать ноут, поэтому эксперимент пришлось прекратить. Кстати на модеме от МТС я даже прошивку не менял, он и так работает хорошо.
Не знал о существовании gammu. Спасибо, посмотрю.
Пока это надо одному мне так что думаю обращение будет бесполезно. Достаточно вспомнить как сейчас производители ноутбуков "охотно" возвращают деньги за предустановленную висту.
unixioid написал(а): ArtSh
Конечно захотел ZTE (как я понимаю это штатная функция, которая активизируется специальным флагом)! Или Вы думаете, что оператор связи обладает ресурсами для разработки прошивки?
Один думает что пока это надо одному, другой, третий, а производители потом говорят, что это не нужно никому...
ArtSh написал(а): Конечно
Хз, спорить не буду. Хотелось бы получше изучить прошивку. Кто-нить знает как можно в ней поковыряться под отладчиком?
Хотел спросить, но решение
Хотел спросить, но решение нашёл, напишу здесь результат.
Использую я этот модем уже более года, всё было нормально. Но вчера выяснилось, что появилось в нашем городе такое чудо двадцать первого столетия, как сеть 3G от Megafon. Раньше я использовал 3G от Beeline в Питере и там такого эффекта не было.
Значит так - скорость действительно большая. То, что я видел (по данным wget при скачивании больших файлов) - 210 кбайт/c. По сравнению с тем, что было в EDGE - 25 кбайт/с это действительно много. Но возникла проблема. Интернет после некоторого времени работы начинал тормозить. Если отправить повторный запрос, опять немного скачивал и начинал тормозить.
Эту проблему я узнал, т.к. с этим уже сталкивался в своё время при настройке VPN местного проводного провайдера. Причина - в значениях MTU и MRU. По умолчанию они заданы 1500 (это можно посмотреть с помощью ifconfig). Тогда для VPN я уменьшил их до 1024. А вот сколько взять теперь для Мегафона? Я попробовал 1024, по-моему, скорость передачи данных несколько упала.
Как узнать? Очень просто. Запускаем ping, указав объём пакета:
ping www.ya.ru -s 1500
Это может работать без ошибок, нужно дождаться проявления тормозов. И тогда ping начинает ругаться, что не все данные возвращаются правильно. У меня ping писал, что байт номер 1436 не соответствует переданному и выводил содержимое принятого пакета. Оно должно быть заполнено линейно растущими значениями. И действительно, начиная с 1436 пакета шли несколько нулей, а потом - мусор:
>> ping www.ya.ru -s 1500
PING ya.ru (93.158.134.8) 1500(1528) bytes of data.
1508 bytes from ya.ru (93.158.134.8): icmp_seq=1 ttl=47 time=309 ms
wrong data byte #1436 should be 0x9c but was 0x0
#8 8 9 a b c d e f 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27
#40 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 38 39 3a 3b 3c 3d 3e 3f 40 41 42 43 44 45 46 47
.......
#1416 88 89 8a 8b 8c 8d 8e 8f 90 91 92 93 94 95 96 97 98 99 9a 9b 0 0 0 0 0 0 0 0 0 0 0 0
#1448 0 0 0 0 0 0 0 0 0 0 5 e4 10 38 aa 6b 7e 97 4b 19 ff 58 af 49 c0 c1 c2 c3 c4 c5 c6 c7
#1480 c8 c9 ca cb cc cd ce cf d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 da db
Отсюда я сделал вывод, что MRU и MTU не следует делать больше 1435 байт. У себя я поставил 1400, теперь всё работает. Устанавливать это нужно в параметрах pppd: mru 1400 mtu 1400.
$BOC(\pi, e)$
ловил похожий глюк на однмо
ловил похожий глюк на однмо из первых MF626. не разобрался с ним и завел MF622й вместо него.
но он еще у меян есть. надо будет попробовать еще раз.
те что посвежее модемы не имеют этого бага.
А у меня ничего такого не
А у меня ничего такого не наблюдается, всё работает без проблем именно с 3G и именно с мегафоном... Может в службу поддержки стоит позвонить?
У меня раньше тоже этого не
У меня раньше тоже этого не было. Что поменялось - теперь на модеме горит зелёная лампочка, а была синяя. Ну и скорость стала больше. Вот в этот момент проблема и возникла. То есть при появлении 3G от Мегафона.
$BOC(\pi, e)$
У меня тоже зелёная, раз 3G
У меня тоже зелёная, раз 3G ;) Поэтому я и пишу — обратитесь в службу поддержки мегафона.
помоему для этого как раз
помоему для этого как раз создана программка tracepath
Страницы