2009-10-27

3G от Мегафона

Недавно поставил брату Arch, но, так как у него ожидается переезд, не стали подключать кабельный интернет, а решили обойтись 3G-модемом с его работы. Три дня рыл по вечерам инет, т.к. модем нужно было возвращать, пробовал разные варианты, но все никак не ладилось. Нужно сказать, что информации по настройке в российских сотовых сетях маловато, IMHO. Вроде пишут, что в Ubuntu все делается легко, т.к. в NetworkManager есть настройки для всех сотовых операторов, но в Arch'е подобная перспектива не улыбается, да и не хочется ставить NM. Но в итоге, собрав отрывочные сведения в онлайне и оффлайне, заставил работать 3G-интернет.
Итак, имеется 3G-модем Huawei E220, залоченный под Мегафон и, собственно, мой любимый Arch :). Собственно, проблема в том, что модем сначала подключается как дисковое устройство, что препятствует его нормальной работе как модема. И все из-за Windows, под которую написано все ПО модема. Проблема решается установкой usb_modeswitch, но и его установка не столь тривиальна, как кажется. Бинарник уже скомпилирован, но только для 32-разрядной системы, поэтому сначала придется пересобрать его под x86_64 (описано в README):
gcc -l usb -o usb_modeswitch usb_modeswitch.c

далее стандартно:
# make install

вроде можно радоваться, ан нет. Еще вручную надо раскидать файлы:
usb_modeswitch.sh и usb_modeswitch.tcltcl установлен?) в /usr/sbin
80-usb_modeswitch.rules в /etc/udev/rules.d
каталог usb_modeswitch.d в /etc
и еще взять с этого же сайта последний usb_modeswitch.conf и закинуть его в /etc.

Ну теперь вроде все. Остается настроить в /etc/usb_modeswitch.conf секцию соответствующего модема (по умолчанию все секции закомментированы):

########################################################
# Huawei E220 (aka "Vodafone EasyBox II", aka "T-Mobile wnw Box Micro")
# Huawei E230
# Huawei E270
# Huawei E870
# and probably most other Huawei devices (just adapt product ID)
#
# Two options: 1. removal of "usb-storage" 2. the special control
# message found by Miroslav Bobovsky
#
# Contributor: Hans Kurent, Denis Sutter, Vincent Teoh

DefaultVendor= 0x12d1;
DefaultProduct= 0x1003

# choose one of these:
;DetachStorageOnly=1
HuaweiMode=1


и после можно втыкать модем :)
Теперь настраиваем соединение через pppd. Описывать мучения с настройкой не буду, а приведу готовые конфиги (некоторые опции здесь наверняка лишние, как-нибудь надо будет подчистить):

/etc/ppp/peers/megafon-h3g

# /etc/ppp/peers/huawei-e220 pppd script
# pppd call huawei-e220

/dev/ttyUSB0
460800
modem
crtscts
user megafon
password megafon
noccp
nopcomp
noaccomp
nobsdcomp
nodeflate
novj
novjccomp
debug
dump

noipdefault
defaultroute
persist
nodetach
usepeerdns
connect "/usr/sbin/chat -v -f /etc/ppp/megafon-h3g.chat"
noauth

/etc/ppp/megafon-h3g.chat

TIMEOUT 3
ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT DELAYED
'' ATZ
OK 'AT+CGDCONT=1,"IP","internet"'
OK ATQ0V1E1S0=0&C1&D2+FCLASS=0
OK ATDT*99#
CONNECT ''

/etc/ppp/options
закомментировал все опции


После всех настроек ppp0 поднимается командой:
# pon megafon-h3g

Конечно, для нормального использования (после окончательной шлифовки) нужно закомментировать опции nodetach, dump и debug.
Тестил скорость через speedtest.net, показало download 0,51 Mb/s, upload 0,28 Mb/s, ping 208 ms на сервер в Воскресенске. EDGE нервно курит в сторонке :)
Теперь претензии. Иногда (а большей частью тестил вечером) не удается получить адрес от DHCP-сервера. На выходных тестил, иногда адрес получает с 1-2 попытки. Наверно, зависит от загрузки сети и станций. Другая проблема в том, что выданные DNS-сервера не отвечают, поэтому лучше, скорее всего, завести в /etc/resolv.conf свои, закомментировав опцию usepeerdns в /etc/ppp/peers/megafon-h3g.

6 комментариев:

beroal комментирует...

А пробовали собирать пакет через AUR?

Agamestor комментирует...

Хм... Странно, камрад. Я думал, все Хуавеи одинаково работают, а оказывается, что нет. У меня E156G заработал с пол пинка, pppd call mts и здравствуй сеть. За инфу спасибо, может быть пригодится.

mao(tm) комментирует...

beroal
Хм, как-то на тот момент не подумал, а вчера как-то задумался, нафига я его вручную ставил, когда наверняка в AUR есть, да лень было комп включать, чтобы проверить, отдохнуть хотелось :)

Agamestor
Да это и можно считать с пол-пинка, но я потерял время, пытаясь завести без usb_modeswitch. Да и возвращать модем приходилось, по-нормальному посидеть и настроить не получалось...

mao(tm) комментирует...

beroal
Попробовал собрать пакет из AUR. Контрольная сумма одного из компонентов неправильна, надо корректировать, ну да это не вопрос.
Ставить не стал, ограничившись просто сборкой и последующим анализом пакета. Оказалось, что также ставится исполняемый бинарник и файл конфигурации в /etc, а все остальные указанные мной файлы идут лесом. Так что пользы от этого пакета никакой. Самому, что ли, собрать??

beroal комментирует...

2 mao(tm):
Так что пользы от этого пакета никакой.
Просто мой взгляд зацепился за то, что вы не заглянули в AUR. Взяли бы на себя сопровождение package, если он неправильный. Там как раз просят.

mao(tm) комментирует...

Никогда не занимался этим, но попробовать стоит :)