====== Huawei 173 - 3G от Мегафон ====== Исходные данные: Ubuntu 10.04.2, Мегафон (Красноярск) Вообще в самом модеме уже есть софт для работы. Поддерживаются Windows и Linux (вроде бы и MAC OS, но не пробовал). Но после перепрошивки модема новым Firmware в Linux работа приложения Mobile Partner прекратилась. Переустановка не помогла. Понижать версию прошивки модема не хотелось и я стал пробовать оживить устройство через Network Manager. Сразу скажу - фирменный софт написан на Java и довольно тормозной, поэтому ну его нафиг. Единственный его плюс - можно удобно смотреть и пополнять балансы, отправлять SMS. На этом удобства заканчиваются. **Внимание! Фирменный софт модифицирует sudoers, что небезопасно и вообще ай-ай-ай**: http://habrahabr.ru/blogs/linux/131302/ Поэтому я решил избавиться от этой поделки и жить проще и удобнее. Для начала обязательно удаляем Mobile Partner (если конечно он был установлен): # ./UninstallMobilePartner Далее нужно установить пакет usb-modeswitch, иначе NM не увидит наш модем: # sudo apt-get install usb-modeswitch Создаем файлик /etc/usb_modeswitch.d/12d1:140c (да, именно такое имя файла - 12d1:140c) ######################################################## # Huawei E173 (HSPA+ modem) DefaultVendor= 0x12d1 DefaultProduct=0x140c TargetVendor= 0x12d1 TargetProduct=0x140c CheckSuccess=20 MessageContent="55534243123456780000000000000011060000000000000000000000000000" Создаем еще один файлик /etc/udev/rules.d/45-huawei173.rules SUBSYSTEM=="usb", SYSFS{idProduct}=="140c", SYSFS{idVendor}=="12d1", RUN+="/lib/udev/modem-modeswitch --vendor 0x12d1 --product 0x140c --type option-zerocd" Далее настраиваем NM: * Щелкаем правой кнопкой мыши по NM, выбираем "Изменить соединения", открываем закладку "Мобильные", жмем "Добавить" * В списке должно быть ваше устройство, если нет - значит что-то не так и надо разбираться * Выбираем страну Russia, оператора Megafon, тарифный план "Другой" и вводим "Internet" (без кавычек, разумеется) * Прописываем параметры: * Мобильные * Номер: *99# * APN: Internet * Параметры PPP * Аутентификация: CHAP * Сжатие: отключаем все галочки * Параметры IPv4 * Автоматически (PPP) Перетыкаем модем, ждем пока определятся всего его запчасти, соединяемся. **Примечание**: почему-то мое субъективное мнение таково, что скорость соединения стала выше и само соединение стабильнее. **Еще примечание:** первая попытка подключения завершается неудачей, при повторном подключении все ОК. Ощущение что просто не успевает подгрузиться какой-то модуль, но не проверял. {{:ubuntu:huawei-173.jpg|}} ====== Скрипт для отправки USSD-запросов ====== Неопробовано в боевых условия, взял отсюда: [[http://wiki.russianfedora.ru/index.php/USB-модемы]] #!/bin/bash function decodeUCS2 () # декодирует UCS { bytes=$(echo -n $1 | sed "s/\(.\{2\}\)/\\\x\1/g") REPLY=$(printf $bytes | iconv -f UCS-2BE -t UTF-8) } function encodePDU () # кодирует в PDU { in=$1 let "in_len=${#in}-1" for chr in $(seq 0 $in_len) do let "chr2=$chr+1" let "t=$chr%8+1" if [ "$t" -ne 8 ]; then byte=$(printf "%d" "'${in:$chr:1}") let "c=$byte>>($chr%8)" let "c2=(1<<$t)-1" byte2=$(printf "%d" "'${in:$chr2:1}") let "b=$byte2 & $c2" let "c=$b<<(8-$t) | $c" REPLY=$REPLY$(echo "obase=16; $c" | bc | sed "s/^\(.\{,1\}\)$/0\1/") fi done } function USSD () # выполняет USSD запрос { $(printf "AT+CUSD=1,$1,15\r\n" > /dev/ttyUSB$ttyID) REPLY=$(grep -m 1 "+CUSD" /dev/ttyUSB$ttyID | sed "s/.*\"\([A-F0-9]*\)\".*/\1/") decodeUCS2 $REPLY } function data_traffic () # преобразователь инфы авторепортов модема { i= 0 REPLY=$1 REPLY2=$1 data_text=( "байт" "Кбайт" "Мбайт" "Гбайт" "Тбайт" ) #ИМХО больше никто не скачает while [ $REPLY2 -gt 1024 ] do REPLY=$(echo "scale = 2 ; $REPLY/1024" | bc) REPLY2=$(echo "$REPLY2/1024" | bc) let "i=i+1" done REPLY="$REPLY ${data_text[$i]}" } if ls /dev/ttyUSB* > /dev/null; then ttyID= Здесь должен быть номер вашего /dev/ttyUSB, например ttyID=2. В подключенном и отключенном режимах он разный. if [ -z "$*" ]; then op=$(zenity --list --text="Выберите операцию:" --column="" --column="" --height="280" --width="280" --title="Билайн Интернет Дома" --print-column=1 --hide-column=1 "balance" "Проверить баланс" "start" "Активация стартового баланса" "req" "Выполнить USSD запрос" "at" "Выполнить AT комманду" "info" "Информация о соединении") elif [ $# -gt 1 ]; then op=$(echo -n $* |sed "s/\(.*\) .*/\1/") op2=$(echo -n $* |sed "s/.* \(.*\)/\1/") else op=$* fi case $op in balance) USSD "AA184C3602" MSG=$(echo -n $REPLY | sed "s/\.Дета.*//") ;; start) USSD "AA182CA68AC562B111" MSG=$REPLY ;; req) if [ -z "$op2" ]; then number=$(zenity --entry --text="Введите номер" --title="Билайн Интернет Дома" --width=270) else number=$op2 fi encodePDU $number USSD $REPLY MSG=$REPLY ;; at) if [ -z "$op2" ]; then cmd=$(zenity --entry --text="Введите AT комманду" --title="Билайн Интернет Дома" --width=270) else cmd=$op2 fi cmd=$(echo -n $cmd | tr a-z A-Z) cmd2=$(echo -n $cmd | sed "s/^AT//; s/\(.[A-Za-z0-9]*\).*/\1/") $(printf "$cmd\r\n" > /dev/ttyUSB$ttyID) MSG=$(grep -m 1 "$cmd2" /dev/ttyUSB$ttyID) ;; info) DSFLOWRPT=$(grep -m 1 "SFLOWRPT" /dev/ttyUSB$ttyID | sed "s/.*://g") for i in `seq 1 5` do info_[$i]=$(echo -n "$DSFLOWRPT" | cut -f$i -d, | sed "s/./ibase=16; /" | bc) done let "time=${info_[1]}/60" let "speed_trans=${info_[2]}/1024" let "speed_rec=${info_[3]}/1024" data_traffic "${info_[4]}" ; trans_data=$REPLY data_traffic "${info_[5]}" ; rec_data=$REPLY MSG="Время соединения: $time мин.
Передача данных: $speed_trans Кбит/c
Получение данных: $speed_rec Кбит/с
Передано данных: $trans_data
Получено данных: $rec_data" ;; *) MSG="Неверная операция" esac else MSG="Модем не подключен" fi if [ -n "$MSG" ]; then $(notify-send "Билайн Интернет Дома" "$MSG") fi
====== Переключение в разные режимы ====== режим "только модем" echo -e "AT^U2DIAG=0" > /dev/ttyUSB0 режим "modem + CD-ROM" echo -e "AT^U2DIAG=1" > /dev/ttyUSB0 режим "modem + CD-ROM + Card Reader" echo -e "AT^U2DIAG=255" > /dev/ttyUSB0 режим "modem + Card Reader" echo -e "AT^U2DIAG=256" > /dev/ttyUSB0 режим "edge/gprs" echo -e "AT+ZSNT=1,0,0\r\n" > /dev/ttyUSB0 режим 3g echo -e "AT+ZSNT=0,0,2\r\n" > /dev/ttyUSB0 ====== Разлочка модема ====== * http://gisclub.tv/index.php?topic=1499.0 * [[http://www.unlock-modem.ru/threads/20-Разлочка-Huawei-E173-от-Мегафона]] * http://trustoff.ru/page.php?18.10 ====== Asus WL-500gP + E173 (Мегафон) ====== Для начала необходимо обновить прошивку модема, взять можно здесь: http://kras.shop.megafon.ru/modems/88430.html#files Прошивку для Asus WL-500gP берем тут: https://code.google.com/p/wl500g/, аккуратно выбираем среди прощивок именно свою модель! Перешиваем роутер, делаем базовые настройки (SSID, шифрование и т.д.). Втыкаем модем в роутер, открываем USB Network Devices => 3G/CDMA Modem, устанавливаем следующие параметры: * Set as WAN Connection Type by default: Yes * Zero CD Configuration: Auto * Modem type: GPRS/EDGE/UMTS/HDSPA * Username: gdata * Password: gdata * APN: internet * Dial Number (usually *99***1# or *99#): *99# * Call on Demand: Yes * Idle time before disconnect (sec): 600 Остальные настройки по желанию Применяем изменения: Apply => Finish После перезагрузки все должно заработать. {{tag> ubuntu huawei 173 мегафон megafon 3G разлочка unlock}}