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.

2009-10-03

Проблема после обновления pacman'а

Вчера нарвался на необычную проблему. При обновлении пакетов через какое-то время внезапно закачиваемый пакет начинал расти в размерах, пока не заполнял собой все свободное пространство на винчестере. На русскоязычном форуме Archвыяснилось, что проблема существует не первый день, и активно обсуждается на англоязычном форуме. Опуская подробности, которые можно прочесть на обоих форумах, предлагается:
1. Подредактировать файл /etc/pacman.conf, разблокировав одну из опций XferCommand;
2. Скачать патченый pacman той же версии, что и оригинальный. Существует для обоих веток дистрибутива.
Поначалу отредактировал настроечный файл, но потом все же поставил патченый pacman. пока претензий нет.