Соединимся без рук!

Авторский комментарий: "Я не профи. Я пользователь. Поэтому пользуюсь тем, что красивше.". Оригинальное введение в мир GPRS+Linux для тех, кто некомфортно чувствует себя в командной строке.

[Сидоров Иван Николаевич (http://f1.front.ru)]

Соединимся без рук!

или

Как я прикручивал к Линуксу Моторолу.

Я не профи. Я пользователь. Поэтому пользуюсь тем, что красивше. К командной строке стараюсь не прибегать. Ручками, как говорят в форумах, править файлы ленюсь. Мышом мне ткнуть в меню удобней.

Я Линукс выбрал не для учебы, а для работы. Потому что это дешевая среда для Intel-совместимых процессоров. (Сразу скажу, что до сих пор работал не только с Windows, но и с Макинтошами. Могу сравнивать.)

Купил IRu. Есть такие ноутбуки. Вполне приличные для своих денег.

На машине уже стоял AltLinux. Windows XP я тоже туда поставил. И начали у меня жить две системы. К большому моему сожалению, подсоединить к Linux сотовый через внешний инфракрасный порт для доступа в Интернет мне долгое время не удавалось. Еще к большему сожалению, среди доступных мне дистрибутивов (Suse 9.1, Mandrake 10.0, RedHat, ASPLinux 9.2) дистрибутива, могущего установиться на IRu не нашлось. ALTLinux Compact и Junior устанавлвались легко. Еще Knoppix работал. Но, сами понимаете, это так для пробы.

Может мне и можно было где-то там внутри поковыряться и наладить. Но зачем, если ALTLinux легко встает, прекрасно русифицирован, работает устойчивее Windows (но хуже apple), поддерживает как-то через Интернет обновления и доступен для понимания.

Поэтому в один вечер я решил все же телефон к ноутбуку с ALTLinux прикрутить через USB порт.

К моей радости безо всяких проблем с сетью соединился мой старенький Motorola V66i. Вся премудрость и хитрость соединения заключалась в том, что мне пришлось купить к нему дорогой USB-кабель и потыкать по очереди в меню выбора порта, а потом в опрос модема. После десяти минут двиганья мышью метод научного тыка свои результаты дал - я попал в порт /dev/ttyUSB0 и на этом эксперименты завершил.

Прикольно, что с Windows мой Motorola V66i так и не соединился. Зато с Windows соединился Nokia 6610 через внешний инфракрасный порт. Сразу замечу, что через кабель Nokia так под Windows и не завелся, до тех пор пока я не купил кабель DKU-5. С ним еще как-то Nokia и Windows между собой договариваются.

Но наступил день другой. Хуже.

Я приобрел Motorola C380. С 10 классом GPRS и mini-USB снизу. Подсоединил его к ноутбуку. Начал тыкать мышкой в меню. Но методика перебора вариантов результаты не дала.

Дальше я сделал дурацкую ошибку - я стал читать форумы, маны и другую документацию. Я затратил как минимум две недели на переписывание, копирование и вставку каких-то непонятных строк кода в файлы, которые закапывались среди веток файловой системы. В конечном итоге я запутался что и куда писать. Но сделал ряд важных открытий:

  1. В Линуксе мало кто разбирается. В основном люди блещут отдельными знаниями на уровне интуиции или зазубривания
  2. Множество интернет-страничек созданы времено помешанными на своей уникальности. Они только засоряют пространство Интернет дублями и клонами информации
  3. Документация устаревает очень быстро. Она отстает примерно на пол-года от программистов. А переводы на русский отстают еще на пол-года. Поэтому читать документацию к программам на русском языке обычно означает гадание о прошлом по запутанным линиям бледной черно-белой фотографии руки
  4. То, что есть в переводах - смесь компьютерных жаргонизмов и сокращений, объединенных предлогами русского языка.
  5. Все это следствие бесплатности Linux
Есть, есть хорошие книги. Но в них про конкретную задачу подсоединения сотового телефона Motorola C350 к USB порту ноутбука IRu ничего не говорится.

Пришлось разобраться самому. Я использовал для дозвона программу KPPP - утилиту дозвона.

Все началось с правильного по смыслу перевода.

GPRS расшифровывается как General Packet Radio Service, то есть по русски: "Обслуживание Пакетов Данных переданных по радио с технологией До востребования". А не "общее пакетное радиообслуживание" (сравни, например "general delivery -- до востребования").

Это значит, что данные передаются и ждут, когда их смогут принять при предъявлении документа.

То есть, если я подключаю свой сотовый к сети по каналу GPRS, то моя связь с Интернет уже присутствует. Но увижу я корресподенцию для меня, только удостоверив собственную личность. В сети сотовой связи собственная личность удостоверяется номером телефона. Это значит, что для настроек телефона ничего не нужно. Только указать ему на какую почту идти аппарату за письмами. Хотя вас в салоне сотовой связи засыпят настройками - знайте, что необходимо знать только адрес на который нужно прийти. Обычно это выглядит jcjecn.jknwskcd.kjdca

  • Для моего "Мегафона" internet.volga
  • Для моего оператора "Смартс" internet.smarts.ru
В общем, найдите в настройках оператора английские слова через точку без пробелов и запишите их. Это адрес, на который надо ходить аппарату. Мы его позже используем.

Теперь нужно объяснить телефону как попасть на почту.

Для этого в компьютерном мире нужно просто махнуть рукой. Типа: "Вон в ту сторону идите. Там увидите". Как ни странно, но подобный совет даже очень хорош.

Направление поиска указывается так:

  • *9# для телефонов европейцев и американцев
  • *99***1# для немецких телефонов. Почему у немцев по-другому я ниже объясню.
Эти замечательные сочетания указываются в строке набора номера. Но это не номер. Его в ручную вы не наберете. Проверить пищит ли модем на той стороне, набрав *99# не получится. На самом деле это команда для телефона: "В ту сторону". Укажите ее в строке набора номера.

Просто программисты не стали утруждать себя дополнительной строкой и включили команду указания направления в строку набору номера, еще и снабдив звездочкой (что часто означает переключение в режим тонального набора). Типа возьми соль в банке из под кофе, на которой написано "перец".

Что Вы напишите в других строчках - не важно. Если уж так хотите - пишите то, что требует оператор. Это ни на что не повлияет. Кстати, Linux в отличии от Windows заставляет заполнить строчки имени и пароля. Напишите там что-нибудь.

После команды *99# телефон пойдет в сеть, увидит почту, зайдет туда и ...

Теперь нужно объяснить телефону куда обращаться на почте.

В сети GPRS и среди производителей телефонов есть договоренность, что на почте есть три окошка - для открыток, для писем, для посылок и бандеролей. Поскольку старались для людей программисты, они, не долго думая, обозначили эти окошки как 1,2 и 3.

Первое окошко было зарезервировано программистами для общения с Интеренет без компьютера, с самого телефона. Этот путь предназначен для получения открыток и широко известен как WAP. Второе окошко уже приспособлено для общения с компьютера. По нему можно получать более обширную корреспонденцию. До третьего окошка многие не доходят.

Объяснять куда подойти, как обычно в компьютерном мире, приходится прямой командой.

Вам скажут в салоне связи, что это называется "строкой инициализацией модема"

Эта строка начинается так: AT+CGDCONT=1, .......... или AT+CGDCONT=2 .......... или AT+CGDCONT=3 .......... где цифирки 1,2 или 3 как раз и обозначают окошки.

В России, правда, сэкономили. Как обычно. На почте открывают только первое окошко. И всех отправлют туда. В результате образуется очередь у окошка. Скорость падает. Ну и ладно. Мы, те кто воспитаны, привыкшие.

Поэтому в строке инициализации укажите сразу единицу. В очереди модем постоит, но попадет. Кроме того, в строке инициализации укажите еще и адрес почты (тот, что английскими словами через точку) Получится так:

AT+CGDCONT=1,"ip","kjjvvd.ndfj.lsknc"
Это и есть соответствие словам: "Увидишь красный дом ("ip"), зайдешь туда, подойдешь к первому окошку и покажешь свой номер. То, что дадут - принесешь."

И для особо интересующихся: AT+ обозначает "внимание" от английского "attention" CGDCONT означает набор команд, указвающих направление

В принципе, к какому окошку подойти, можно сразу указать в команде "пошел". Немцы сразу так и делают:
*99***1# или *99***2# или *99***3#
Но, помня о наших реалиях следует ограничиться *99***1#
В случае с европейскими телефонами можно указывать
*99*1# или *99*2# или *99*3#
Но достаточно *99# Все равно окошко одно.
Еще на Западе используют команду *98# (Шнеллер, шнеллер). Но нам она ни к чему.

Итожим промежуточную информацию:

Чтобы телефон мог работать как модем в сети GPRS нужно записать строку-указание AT+CGDCONT=1,"ip","kjjvvd.ndfj.lsknc" в строке инициализации модема и дать команду *99# в строке набора номера

Что еще будет в настройках телефона - не имеет значения.

Теперь телефон нужно физически подсоединить. Для этого проще всего использовать кабель.

Первый вариант - у Вас телефон с широкой и плоской дырой с большим количеством контактов. Тогда спрашивайте: "Мне нужен кабель для соединения компьютера и телефона. ЮСБи". Но, скорее всего, Вам подсунут негодный кабель.

Не то, что не рабочий. А просто не тот. Дело в том, что раньше выпускались кабели, в средине которых была такая коробочка с микросхемами. И эти микросхемы переделывали сигнал от компьютера в сигналы телефона. Получив в руки кабель попросите продавца его протестировать под Windows. Причем, достаточно воткнуть кабель в компьютер и справа внизу появится его название. Драйвер ставить не нужно. Если в названии есть цифры "2303" - Вам крупно повезло. Этот кабель годится. Если нет - покупайте другой телефон снизу которого есть маленькая дырочка неправильной формы окантованая тонким железом. К такому телефону (например, к Motorola C380) нужно спрашивать кабель "мини юсби". Только дешевле купить кабель не в салоне сотовой связи, где он стоит от 400 до 900 рублей, а в ближайшем компьютерном магазине, где точно такой же кабель стоит 40 рублей.

Если Вами приобретен кабель "2303" - достаточно соединить аппараты, выбрать во вкладке "модем" утилиты KPPP устройство /dev/ttyUSB0 записать строку и номер. И все - можно работать.

С другим типом модема-телефона придется чуть помучиться.

Напомню, что я пользуюсь телефоном Motorola C380 и ALTLinux Junior.

Во-первых, нужно заставить Linux обнаружить модем в телефоне.

Это не сложно. Сначала нужно соединить кабелем телефон и компьютер, а затем перезагрузить компьютер. В начале загрузки ALTLinux обнаружит телефон. Высыпется окошко в котором Вам предложат сконфигурировать оборудование. Выберайте "Configure". Сразу предупреждаю, что окошко высыпется, если только Вы ничего шаловливыми ручками в системе не дергали. Если дергали - то процесс соединения Вы, возможно, не закончите.

После загрузки системы во вкладке "модемы" KPPP укажите что модем назвается "modem" или, как у меня, "modem1" (номер один, потому что первый модем (с точки зрения программистов нулевой) уже обозначает встроенный).

Тепперь нужно вернуться к объяснению аппарату куда идти. Для этого зайдите во вкладку "терминалы" и после того как пробегут несколько строчек запишите:
at+cgdcont=1,"ip","intwnk.myoperator.uujj"
(в последних кавычках тот адрес, который вы получили отоператора) А в строке инициализации укажите
at+cgdcont=1,"ip"
Я рекомендую сделать так, поскольку телефон Motorola несколько по-американски туповат. Для него проблема воспринимать сразу длинные команды. Приходится акцентировать его внимание на важных сообщениях.

Все. Можете жать на соединение.

Если все же Вы не удержались и пытались настроить соединение через консоль?

Тогда попытаемся исправить положение. И если уж Вы такие умные, что предпочитаете бить по дорогой клавиатуре вместо того, чтобы мягко регулировать процесс дешевой мышкой - то следующие несколько абзацев для Вас.

Сначала укажите модуль модема для ядра:

]# /sbin/insmod /lib/modules/2.4.22-std-up-alt28/kernel/drivers/usb/acm.o
Затем создайте устройство:
]#  mknod /dev/usb/ttyACM0 c 166 0
Делегируйте ему права
]#  chmod 666 /dev/usb/ttyACM*
Сошлитесь на вновь созданное устройство:
]#  ln -s /dev/usb/ttyACM0 /dev/modem
]# ln -s /dev/usb/ttyACM0 /dev/modem1
Пользуйтесь.

Примечание в конце: Я не злой. Я потребитель. Хочу проще и дешевле. Просто меня порою злят умники. Особенно тогда, когда я понимаю, что они в этих вопросах меня умнее. Но я не один. Нас много. Так что, умники, поберегитесь!

[ опубликовано 01/03/2004 ]

Сидоров Иван Николаевич (http://f1.front.ru) - Соединимся без рук!   Версия для печати