Показаны сообщения с ярлыком usb. Показать все сообщения
Показаны сообщения с ярлыком usb. Показать все сообщения

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.tcl (а tcl установлен?) в /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-03-09

Автомонтирование USB-устройств в менеджерах окон

Как известно, OpenBox, Awesome и прочие менеджеры окон являются самодостаточными средствами взаимодействия пользователя с окнами, в отличие от таких DE, как Gnome, XFCE и KDE, в которых интегрированы готовые наборы заранее определенных программ. Но вместе с тем такие менеджеры окон налагают на пользователя повышенные требования в части того, что ему теперь придется искать для каждой функции в DE непривязанный к ним аналог. В частности, за автомонтирование USB-устройств в традиционных DE отвечают встроенные средства, а в менеджерах окон об этом придется заботиться пользователю.
Первым делом мое внимание привлек пакет ivman, с которым я уже имел дело 2 года назад на Gentoo. Увы, с тех пор он не развивался, что сказалось на его функционировании в Arch'е. Заставить его автоматом монтировать флешки не удалось ни при каких условиях.
Опуская словесные прения в конференциях, скажу, что я все же решился остановиться на написании правил udev для автомонтирования и размонтирования. В jabber-конференции для быстрого решения проблемы мне указали эту, недавно появившуюся, ссылку.
Правила изначально выглядели так:

KERNEL=="sd[a-z]", DRIVER=="usb-storage", GROUP="storage"
ACTION=="add", KERNEL=="sd[a-z][0-9]", GROUP="storage", RUN+="/bin/mkdir -p /media/$env{ID_FS_LABEL_ENC}"
ACTION=="add", KERNEL=="sd[a-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="vfat", RUN+="/bin/mount -t vfat -o rw,flush,quiet,nodev,noauto,noexec,nosuid,noatime,dmask=000,fmask=111,iocharset=utf8 /dev/%k /media/$env{ID_FS_LABEL_ENC}"
ACTION=="add", KERNEL=="sd[a-z][0-9]", PROGRAM=="/lib/udev/vol_id -t %N", RESULT=="ntfs", RUN+="/bin/mount -t ntfs-3g -o rw,flush,quiet,nodev,noauto,noexec,nosuid,noatime,dmask=000,fmask=111,iocharset=utf8 /dev/%k /media/$env{ID_FS_LABEL_ENC}"
ACTION=="add", KERNEL=="sd[a-z][0-9]", RUN+="/bin/mount -o rw,noauto,noexec,nodev,noatime,dmask=000,fmask=111 /dev/%k /media/$env{ID_FS_LABEL_ENC}"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/umount /dev/%k"
ACTION=="remove", KERNEL=="sd[a-z][0-9]", RUN+="/bin/rmdir /media/$env{ID_FS_LABEL_ENC}"

но я решил еще добавить правила для файловых систем ext2/3. Попутно всплыла еще одна проблема. Поскольку для монтирования создается каталог в /media с меткой соответствующего раздела, то для разделов, у которых отсутствует метка (label), монтирование, соответственно, производится непосредственно в /media. Представляете себе эту кашу?
Из той же статьи выудил команду для поиска альтернативных способой наименования примонтированных разделов:
# udevadm monitor --env

и после многочисленных экспериментов решил остановиться на схеме именования через UUID:
ID_FS_UUID_ENC

Правда, все равно жаль, что "человеческие" названия разделов не видны, даже если есть, но зато избавился от вышеуказанного казуса. В принципе, вариантов именования масса...
Решил посмотреть, как отображаются примонтированные разделы в файловом менеджере PCMANfm, т.к. он максимально приближен к Nautilus :) Показывать примонтированные разделы он показывает, но отмонтировать не дает, т.к., судя по всему, имеет свою систему автомонтирования. Правда, назвать ее так можно с натяжкой, ибо разделы не монтируются, пока по ним не кликнешь. И отмонтировать раздел, находясь в нем, невозможно. Но все же лучше, чем ничего. В меню забил пункт с командой sync, после выполнения которого выдергиваю флешки.

2008-11-23

Настройка GPRS/EDGE через Bluetooth и по USB-кабелю.

Настроил сегодня GPRS/EDGE по Bluetooth. На этом тернистом пути меня подстерегали несколько препятствий.
Во-первых, поставив пакеты bluez-gnome и bluez-utils, я первым делом состыковал телефон с ноутом, а потом долго настраивал ноут по wiki, чему ноут при проверке соединения сопротивлялся, выдавая ошибку соединения. Только удалив ноут из списка зарегистрированных bluetooth-устройств в телефоне, и регистрируя заново, удалось добиться нормальной работы. Так что лучше не спешить и делать все по порядку. В принципе все так же, как в Debian'е.
Далее пытался настроить собственно доступ в интернет по bluetooth в той же wiki. Сделать это не получилось, не стал разбираться, почему, и решил настроить соединение проверенным способом, как это я сделал в Debian. Правда, скрипт соединения beeline-connect я перенес в /etc/ppp/peers/, соответственно скорректировав путь в конфиге соединения beeline.
Работу в интернет по USB-кабелю через телефон не проверял, но поддержка ACM-модемов в ядре есть (видно при втыкании телефона в /var/log/messages.log), так что проблем с этим быть не должно, а в конфиге соединения меняется в этом случае одна строчка...
Если устройство /dev/rfcomm0 не появляется в системе, надо выполнить команду:

# rfcomm bind 0 00:17:00:D5:A8:8B 1

Эту информацию я дописал, когда переустанавливал Arch на новом винчестере. В первый раз проблем с /dev/rfcomm0 не было. Может, кто просветит меня, почему в первый раз /dev/rfcomm0 уже существовал в системе?

2008-11-21

Установка принтера

В принципе установка принтера, для меня - дело привычное. Но в данном случае пришлось столкнуться с некоторыми сложностями. Необходимо внимательно читать wiki, иначе можно долго биться над разрешением проблемы. Мне необходимо было поставить драйвера для виртуального PDF-принтера, струйника HP DeskJet 660C и лазерника HP LaserJet 1018. Драйверы для первых двух принтеров входят в пакеты для Arch, а для последнего скачивается отсюда. Итак, я поставил следующие пакеты:

cups
ghostscript
foomatic, foomatic-db, foomatic-db-engine, foomatic-db-ppd, foomatic-filters
- установка драйвера для 1018 ругалась на отсутствие какого-то их них, и я решил поставить все.
hplip
cups-pdf


Проверка показала, что все необходимые модули для USB-принтеров грузятся автоматически при присоединении принтера. Демоны hplip и cups (именно в такой последовательности) прописал в rc.conf.
Далее скачал драйвер для HP LJ 1018 и ставил в строгом соответствии с рекомендациями wiki.
Правильность установки можно определить на слух, т.к. при включении принтер 2 раза прокручивает свои валики: в первый раз при включении, второй - при заливке специальной фиктивной страницы с прошивкой.
Кстати, не следует забывать про прописывание в /etc/hosts интерфейса localhost:

127.0.0.1 mao-note-arch.local mao-note-arch localhost

иначе возможны самые неожиданные эффекты, когда Firefox "ломится" в Интернет на поиски сайта localhost.com, а Opera "в упор не видит" в некоторых ссылках //localhost :)

UPD: Демон hplip сейчас не нужен.
UPD-2: Для HP LaserJet 6L (параллельный порт) не нужно никаких заморочек, все то же, но без USB-настроек, только в автозагрузку поставить модули lp и parport (возможно, и parport_pc, но в логах писалось, что такого модуля нет, и без него работало)