====== 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}}