17.10.2008Подключение ZTE MF620 в Linux
Еще весной (после покупки MF620) я опубликовал статью, как этот самый модем использовать по прямому назначению в линуксе. Тогда приходилось шаманить с usb_modeswitch (для переключения с режима накопителя в режим модема) и comgt (для регистрации симки в сети). Сейчас же я использую решение «подключил — подключился к интернету».
Нужен установленный windows. Один раз, но нужен обязательно. Нужен для того, чтобы при подключении модем определялся как модем — так же, как и для Mac OS X. Переключаем режим устройства при подключении на модем (закачиваем прогу, запускаем родной софт, ждем, пока модем переключится и зарегистрируется в сети. После чего запускаем zte_switch_mode.exe и нажимаем “For MAC Users”. Ничего сложного, страшного и криминального.)
[все действия выполняем под root]
Дальше нужно добавить правило для udev. Для этого создаем файл /etc/udev/rules.d/zte.rules :
SYSFS{idProduct}==»0001″, SYSFS{idVendor}==»19d2″, PROGRAM+=»/usr/bin/namer %n», SYMLINK+=»zte%c», RUN+=»/usr/bin/zte_init», MODE=»660″, GROUP=»dialout»
!!!!!Никаких пробелов быть не должно, это ОДНА СТРОЧКА!!!!!
Создаем файл /usr/bin/namer с содержимым:
#!/bin/sh tmp=/tmp/usb (sleep 2 ; rm $tmp) & if [ -f $tmp ]; then num=`cat $tmp` else if [ ! -e /dev/ttyUSB0 ] || [ ! -e /dev/ttyUSB1 ] ; then num=0 echo 0 > $tmp else num=`ls /dev/ttyUSB* | tail -n 1 | sed 's/^.*USB//'` num=`expr $num + 1` echo $num > $tmpтреуется fi fi num=`expr $1 - $num` echo $num
Создаем файл /usr/bin/zte_init с содержимым:
#!/bin/sh /sbin/modprobe usbserial vendor=0x19d2 product=0x0001 sleep 2 echo at+cpbs="sm" > /dev/zte0 sleep 2 echo at+cpms="sm","sm","" > /dev/zte0 sleep 2 echo at+cfun=1 > /dev/zte0 pppd call zte
Назначаем для них правильные права доступа:
chmod 755 /usr/bin/namer
chmod 755 /usr/bin/zte_init
Первый скрипт (namer) нужен для того, чтобы присвоить правильные номера при создании ссылок zte0 > ttyUSB0 ; zte1 > ttyUSB1 ; zte2 > ttyUSB2 Второй — для регистрации сим-карты в сети и подключения к интернету. Хотя я предпочитаю подключаться к интернету вручную…
Создаем само подключение,
Удаляем содержимое /etc/ppp/ если ранее pppd не использовался (не забываем сделать бекап), Создаем там пустой файл options:
cd /etc/ppp
touch options
Создаем файлы pap-secrets и chap-secrets:
echo life life life > pap-secrets
chmod 600 pap-secrets
ln -s pap-secrets chap-secrets
Создаем папку peers:
mkdir peers
и в ней файл zte с содержимым:
lock debug /dev/zte0 modem crtscts defaultroute unit 0 updetach usepeerdns name life remotename life connect '/usr/sbin/chat -v \ "" "at" \ "" "at+cgdcont\=1\,\"IP\"\,\"internet\"" \ OK "atd\*99\*\*\*1#" \ '
Вместо internet пишем нужный APN (смотрим на сайте своего оператора, звоним другу или в службу поддержки), так же (если требуется) узнаем — нужен ли при подключении логин/пароль, У нас он обычно не требуется.
Обращаю внимание — модуль usbserial должен быть собран как модуль (в самом начале наступал на эти грабли — люблю монолитное ядро). Если модуля нет — придется пересобрать ядро с опциями в конфиге:
Device Drivers --->
USB support --->
USB Serial Converter support --->
<M> USB Serial Converter support
[*] USB Generic Serial Driver
Единственный нюанс — при замене сим-карты нужно будет править конфиг /etc/ppp/peers/zte, указывая правильный APN. Но это актуально только тем, кто часто меняет сим-карты в модеме. Ну а тот, кто использует одного оператора для доступа к интернету — это не нужно.
Вот и все. Теперь при подключении модема загрузится нужный модуль ядра, будут созданы необходимые симлинки, сим-карта зарегистрируется в сети и будет создано подключение к интернету. Мой совет — подключать модем нужно после полной загрузки системы. Если требуется производить все эти действия в автоматическом режиме при загрузке системы — лучше написать стартовый скрипт.
Если требуется переключение между сетями (gsm/umts) — тогда понадобится comgt, или внимательное чтение документации на АТ-команды,
PS: для чего нужен /usr/bin/namer — расскажу в следующей статье — «подключение palm zire 72 в линуксе»
PPS: Выкладываю по просьбе исходные файлы: files
10.11.2008 в 20:05
купил этот модем zte mf626
После установки linuxdriveronda1.0.1.tar.bz2 скачал тут http://forum.ubuntu.ru/index.php?topic=39060.0 проблема с распознанием zte mf626 решилась появились вот такие устройства:
/dev/ttyUSB0
/dev/ttyUSB1
/dev/ttyUSB2
/dev/ttyUSB3
настроил подключение через gnome-ppp, но через кажые 2 минуты отключается.
От рута запускал программу UnBeeline брал тут http://forum.ubuntu.ru/index.php?topic=39060.0 не помогла.
Пытался создать файл:
#!/bin/sh
PORT=/dev/ttyUSB0
while [ -w $PORT ]; do
echo «AT+ZOPERTE=\\\»beeline\\\»" > $PORT
sleep 60
done
echo $PORT: No such port
неоднократно менял названия устройства PORT=/dev/ttyUSB*
не помогло,как отключался так и отключается.
Напишите как приручить в ubuntu 8.04 модем zte mf626 очень прошу.
10.11.2008 в 21:47
Shemilixa, где-то встречал статью именно о MF626, но где — уже не вспомню… У меня MF620, причем не лоченый, так что подсказать не могу.
03.12.2008 в 17:38
а как быть с устройством huawei e219?
21.12.2008 в 18:45
у меня mf620, лайф гига год, linux mint.
я в никсах нюб и сперва сделал всё как вы написали. незаработало,
проблема в скрипте namer:
expr — синтаксис эрор.
потом заметил вот это «echo $num > $tmpтреуется» и заменил просто на «$num>$tmp»
ошибка осталась, стал пихать в каждую строчку echo ‘error tut!’
получилось что ошибка в
num=`expr $1 — $num`
что я делаю не так?
21.12.2008 в 23:16
Скоре всего где то в синтаксисе скрипта…
Нужно пошагово разбирать сам скрипт — и смотреть, где и что.
23.12.2008 в 13:11
Можете, пожалуйсто, выложить свои файлы скриптов namer и zte_init, которые у вас точно работают?
устройства /dev/ttyUSB0 и /dev/ttyUSB1 у меня появляются при подключении модема.
23.12.2008 в 21:42
Готово. Не забудь только права нужные выставить на файлы.
24.12.2008 в 12:05
спасибо, буду пробывать дальше
24.12.2008 в 12:49
как я понял соединение устанавливатся должно после подключения модема, однако этого не происходит. попробывал вручную из терминала
namer
zte_init
pppd call giga
появилось следуйщее:
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 /dev/zte0
sent [LCP ConfReq id=0x1 ]
rcvd [LCP ConfReq id=0x0 ]
sent [LCP ConfAck id=0x0 ]
rcvd [LCP ConfAck id=0x1 ]
rcvd [LCP DiscReq id=0x1 magic=0xc910d5]
rcvd [CHAP Challenge id=0x1 , name = "UMTS_CHAP_SRVR"]
sent [CHAP Response id=0x1 , name = "life"]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
CHAP authentication succeeded
sent [CCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
rcvd [LCP ProtRej id=0x2 80 fd 01 01 00 0f 1a 04 78 00 18 04 78 00 15 03 2f]
Protocol-Reject for ‘Compression Control Protocol’ (0x80fd) received
rcvd [IPCP ConfNak id=0x1 ]
sent [IPCP ConfReq id=0x2 ]
rcvd [IPCP ConfReq id=0x0]
sent [IPCP ConfNak id=0x0 ]
rcvd [IPCP ConfRej id=0x2 ]
sent [IPCP ConfReq id=0x3 ]
rcvd [IPCP ConfReq id=0x1]
sent [IPCP ConfAck id=0x1]
rcvd [IPCP ConfNak id=0x3 ]
sent [IPCP ConfReq id=0x4 ]
rcvd [IPCP ConfAck id=0x4 ]
Could not determine remote IP address: defaulting to 10.64.64.64
local IP address 79.124.159.201
remote IP address 10.64.64.64
primary DNS address 212.58.160.33
secondary DNS address 212.58.160.34
и тишина.
зы. сорри, я наверное уже достал)
27.12.2008 в 18:24
Нет, у меня установка соединения закомментирована. С этим были бяки при загрузке системы.
А из приведенного тобой лога вижу, что подключился нормально.
27.12.2008 в 23:49
ну и я вот думаю что раз DNS адреса присваиваются — значит всё нормально, но та же мозила из которой я читаю сию сохранёную статью «не видит» интернета.
есть ли какие-то настройки, фаервола например, о которых я не знаю, но после установки линуха их обязательно делать?
зы rm -rf не предлогать, пробывал не помогает:))
30.12.2008 в 23:54
Возможно не хочет работать какой-то кеширующий днс-сервер. Попробуй попинговать адреса: ya.ru [213.180.204.8], google.com.ua [66.249.93.104]
08.01.2009 в 16:04
сасибо, буду разбиратся. тема достаточно редкая, если не уникальная в интернетах.
07.04.2009 в 14:57
хм, на форуме ubuntu давным давно эта тема закрылась… читайте о линукс на линукс форумах…
07.04.2009 в 21:02
Ну конечно, после того, как на opennet разжевал все по полочкам — так сразу и закрылась. Где ж ты был год назад, когда инфы не то что на русском, ее и на английском почти не было.
09.04.2009 в 19:07
Здравствуйте. Помогите найти где затык.
Есть модем ZTE MF620, провайдер LIFE:)
Роутер ASUS WL-500gP
ФАЙЛ — dialup
============================================
lock
debug
/dev/usb/tts/0
modem
921600
crtscts
defaultroute
unit 0
updetach
usepeerdns
name life
remotename life
connect «/usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2>/tmp/chat.log»
============================================
ФАЙЛ — dialup.chat
============================================
» ‘AT’
» ‘AT+CGDCONT=1,»IP»,»internet»‘
‘OK’ ‘ATD*99#’
‘CONNECT’ »
============================================
Получаем в логе такое:
============================================
[admin@asus root]$ pppd call dialup
Script /usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2>/tmp/chat.log finished (pid 206), status = 0×0
Serial connection established.
using channel 1
Using interface ppp0
Connect: ppp0 /dev/usb/tts/0
sent [LCP ConfReq id=0x1 ]
rcvd [LCP ConfReq id=0xd ]
sent [LCP ConfAck id=0xd ]
rcvd [LCP ConfAck id=0x1 ]
rcvd [LCP DiscReq id=0xe magic=0x3dd2dffa]
rcvd [CHAP Challenge id=0x1 , name = "UMTS_CHAP_SRVR"]
sent [CHAP Response id=0x1 , name = "life"]
rcvd [CHAP Success id=0x1 ""]
CHAP authentication succeeded
CHAP authentication succeeded
sent [CCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
rcvd [LCP ProtRej id=0xf 80 fd 01 01 00 15 12 06 00 00 00 01 1a 04 78 00 18 04 78 00 15 03 2f]
Protocol-Reject for ‘Compression Control Protocol’ (0x80fd) received
sent [IPCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
sent [IPCP ConfReq id=0x1 ]
IPCP: timeout sending Config-Requests
sent [LCP TermReq id=0x2 "No network protocols running"]
sent [LCP TermReq id=0x3 "No network protocols running"]
Connection terminated.
Modem hangup
[admin@asus root]$
============================================
24.05.2009 в 19:46
С модемом ZTE AC5710 не срабатывает USB_switch_mode — Com port: NULL, синий search, все кнопки кроме Exit серые.
Как еще можно вылечить модем, чтобы был модемом а не флэшкой?
31.05.2009 в 20:53
Serge, попробуй после «переключения» родным софтом пошаманить с QPST
09.08.2009 в 23:56
Паук, скажы плз а если не делать все вышеописанное — родные дрова от MF620 будут работать под linux без глюков? или без этого вообще никак не выйдешь в интернет?