Прогресс не стоит на месте, и вот краем это коснулось и меня — под
Новый год появился у меня Alcatel 535. Вполне удобная штуковина, кроме
того, у него есть встроенный GPRS-модем.
Который мне, как это и должно было быть, захотелось попробовать
использовать для доступа в internet. К тому же надеяться, что к месту
моего обитания проведут телефонную линию, способную удовлетворить
нынешние модемы — просто глупо.
Вот и вся предыстория.
Google
знает много по теме настройки GPRS в Linux-е. Даже и если телефончик
подключается через инфракрасный порт. Несколько из этих страничек даже
на русском, но они являются переводами с английского.
Итак, исходные данные:
— сотовый телефон Alcatel 535(735);
— инфракрасный адаптер Tekram IRmate IR-210B, подключаемый к последовательному порту компьютера;
— собственно сам компьютер;
— с установленным Debian GNU/Linux(или это еще был ALT Linux Master 2.2? — уже не помню. да и без разницы это).
В процессе поиска чего и как, кроме Google, сильно помогли Tux-мобильный, где собрано много информации о мобильной жизни линуксоидов, и сайт Linux-irda, c которого скачивается последняя версия пакета irda-tools.
Так как сам по себе GPRS — это такое же удаленое соединение, как и
при обычном dial-up, то основная проблема, которая стояла передо мной —
это настройка ИК-порта и соединения с телефоном.
Общение с модемом телефончика возможно только благодаря присутствию поддержки ядром протокола IrDA и пакету irda-tools.
Поэтому необходимо в ядре включить следующие модули(названия
модулей приведу из ядра 2.6.7, так как поглядеть для ветки 2.4
представляется затруднительным):
—irda — собственно сам модуль протокола IrDA;
—ircomm_tty — модуль последовательного терминального соединения IrCOMM;
—ircomm — протокол ик-соединения IrCOMM;
—sir_dev — ядро протокола работы с адаптерами ик-портов, подключаемых к последовательному порту компьютера;
—tekram_sir — модуль управления адаптером ик-порта Tekram IRmate IR-210B.
Компилируем соответственно ядро, чтобы данные модули были доступны.
Такие модули желательно не включать в ядро статически, поскольку это
вещи приходяще-уходящие, а перекомпилировать каждый раз из-за этого
ядро непрактично. Кстати, так как у нас будет использоваться удаленое
соединение, необходимо так же включить Point-to-Point Protocol(ppp).
Осталось подготовить irda-tools. Можно использовать дистрибутивный
пакет, а можно скачать исходники новой версии и собрать бинарный пакет
самостоятельно. Собирается пакет без особых проблем. Единственный
момент, который тут надо упомянуть — это то, что для ядер ветки 2.6
необходимо использовать irda-tools версии 0.9.16 и выше.
Теперь осталось только запустить и настроить irattach:
[root@host:~]# irattach /dev/ttyS1 -d tekram -s
Включаем ик-порт на телефоне и кладем его рядом(на расстоянии 5—50
см) с ик-адаптером. Через некоторое время(до 5 секунд) на адаптере
начнет помаргивать зелеенький светодиод. Телефон обнаружился. Это видно
так:
Если
этого не произошло, значит какой-то этап не сделан правильно. У меня
такое было при переезде с ядра 2.4.18 на 2.6.3, когда, как оказалось
позже, надо было обновить irda-tools, пакет которого стал называться к
этому времени irda-utils.
Казалось бы все — можно настраивать почти обычное удаленое
соединение(у меня подключение к BeeLine; МТС и Мегафон настраиваются
аналогично, по информации с сайта в соответствующем разделе).
Файл /etc/ppp/chap-secrets:
# Secrets for authentication using CHAP
# client server secret IP addresses
beeline * beeline *
Теоретически, этого достаточно, чтобы, при включенном пакете GPRS-услуг на BeeLine, пользоваться GPRS-интернетом.
[root@host:~]$ pppd call beeline
Однако, практика оказалась несколько не столь радужной.
Так уж получилось, что сотовые телефоны Alcatel 535 и 735 рассчитаны на работу с ик-адаптерами версии 2.0(USB Tekram IRmate
IR-410 и аналогичными), а не 1.1(который 210). И вот… Соединение
установилось, и заткнулось.
Как бы сильно того мне не хотелось,«что и как» пришлось экспериментальным путем выяснять в Windows.
Там-то это оказалось просто: чтобы телефон заработал нормально,
необходимо, дважды кликнув по иконке ик-адаптера в трее, на вкладке«Режимы» найти параметр«Ограничить скорость ИК-соединения» и выставить
его в 38,4 кбит/сек.
Где это указать в Linux? Недельный поиск в Google, чтение
документации по IrDA, просмотр исходников — ничего не дало. Пока,
однажды, на одном из форумов, посвященом мобильникам, не был дан совет
выполнить перед запуском irattach такую вот команду:
Посмотрев, что же там записано по умолчанию, я немножко так
удивился: стояло даже не 115,2 кбит/сек, а 16 Мбит/сек!!! Вот это я
понимаю, вот это скорости!
Как бы то ни было, записав в эту переменную нужное мне ограничение в 38400, случилось чудо! Все прекрасно заработало!
Вот с тех самых пор, с холодного зимнего 10-го январьского вечера 2004 года и появился дома в Linux интернет.
А чтобы не набирать эту команду каждый раз при загрузке, добавил ее
скрипт /etc/init.d/irda в секцию start перед вызовом irattach.
PS: Все вышеизложенное справедливо практически для всех сотовых
телефонов, за исключением той самой неполной совместимости по версии
протокола IrDA.