Алло, пингвин на проводе!

Аватар пользователя Tolstik

Алло, пингвин на проводе!

Вадим Марков

Описание возможных спообов подключения мобильного телефона Siemens A65 к Internet

Печатается с любезного разрешения автора

Обновил я недавно телефон. По акции UMC-Bonus почти на халяву дали Siemens A65. Это должно было насторожить, но я сильно обрадовался. Оказалось зря. Телефон зверски вис при входе в Internet. Ну ладно, это неприятно, но не смертельно. Лично мне от телефона надо три вещи- звонить, использовать JAVA и немного SMS писать-читать. Телефон был в ремонте, менялся по гарантии (!), еще раз ремонтировался, но ничего не помогло- свежей прошивки в сервис-центре нет, а в магазине все аппараты из одной партии. Для проверки читателем своего аппарата привожу информацию о прошивке. Ее можно узнать нажав *#06# и выбрав "Info":

Product: A65
P.-Date: 2004-11-14
SW-Version: 06
SW-Date: 2004-09-16
Variant: S 915
Std-Map/SW: 1/6
D-Map/Prov.: 18/173
Lang./T9: lg91/255
Codecs: FR/EFR/HR
Audio-Par.: NfV 4
Acc.: none
DSP P.:0025/0012 ROM

IMEI начинается с 354495, что отличается от другого телефона этой же модели. Обобщая вышесказанное, можно прийти к выводу, что телефон какой-то непонятный. Это подтвердится в дальнейшем.

Недавно в МК был цикл статей про JAVA. Мне больше всего нужна текстовая читалка, что бы читать на лекциях анекдоты Улыбка . Описаный Bookshelf меня не устроил, у меня нет Джавы для настольной части софтины и не понравился подход с вшиванием книги в апплет, более естественным кажется вариант, когда книги скармливаются апплету в виде отдельных файлов, пусть и без сжатия. Но для этого явно нужно дата-кабель. Это легко решаемо, 65 грн и кабель мой. Опять-таки, надо было прислушаться к продавцу, а он сказал: "Если чего работать не будет- приходи, поменяем. Но только сегодня, завтра уже нельзя." На кабеле был переключатель неизвестного назначения. У знакомого есть кабель той же фирмы, но для SonyEricsson - там это переключатель включает подзарядку. У меня щелчок переключателем не дает абсолютно ничего.

В комплекте со шнурком был диск с софтом. Под Виндоус. Я даже один раз перегрузился, посмотрел. Ну что сказать, 60 Мб ХЛАМА. Прога работала через раз и жутко тормозила. Я на это забил и решил поднять аппарат из-под Родной и Правильной Оси.

Первым делом, в Интернет. Поиск показал интересный сайт ilovelinux.nm.ru (ныне загнулся). Там лежала ссылка на не менее интересный проект SieFS. Я начинал работу с версии 0.4, но 5 апреля вышла версия 0.5. Я остановлюсь на отличиях между этими версиями, там есть тонкости. Далее, указывалась прога obexftp/openobex, которая работает через протокол obex с Siemens (указана 45 серия и выше через все возможные соединения, но также упоминается и S25 через шнур) и Ericsson (идут вразнобой, но много, начиная с R320 и до T68i, но я думаю, будут работать и SonyEricsson T610/630).

Скажу честно, я с этой программой не разобрался и не смог запустить. Но мой аппарат в списке совместимых и не упоминался, так что не удивительно. Вообще-то, эта программа нуждается в серьезном тестировании на нормальных телефонах. Есть добровольцы?

Еще я нашел Самую Главную Программу для Сименсов. Называется SCMxx, в Сети лежит много хороших отзывов. Я готов поддержать, но не могу. При попытке использования простого ключа -i (информация) получаю вот такое:

[buba@big buba]$ scmxx -d /dev/usb/ttyUSB0 -i
Accessing device /dev/usb/ttyUSB0...done
OK, a modem device is present.
Phone related information:
Vendor: SIEMENS
Model: A65
Revision: 06
IMEI: 354495000413165
Battery: 40%
Charsets: GSM, UCS2

Time: Fri Apr 15 21:16:35 2005
SIM card related information:
IMSI: 255013000721036
card ID: 8938001300007210368

Network related information:
Status: checked in
Area code: 2724
Cell ID: 7695
Operator: UA UMC
SMS server: +38050000501
Signal: -89 dBm
GPRS class: B
GRPS status: not registered, not   searching, detached

Available memories: 
Binary files: bmp, mid, vcf, t9d
здесь происходит подвисание на несколько секунд
Error on reading from device: Connection timed out
Phonebooks: [buba@big buba]$ 
И все, попытка сделать reset не удается:
[buba@big buba]$ scmxx -d /dev/usb/ttyUSB0 --reset
Accessing device /dev/usb/ttyUSB0...done
Sending reset frame...
здесь виснет совсем, но по Ctrl-C убивается

А теперь расскажу про SieFS (http://chaos.allsiemens.com/siefs). Это виртуальная файловая система, которая позволяет подмонтировать телефон как обычный диск. Поддерживаются все модели Siemens с цветным экраном и S/ME/SL45, SL42, etc. Драйвер работает полностью в пользовательском пространстве. Конечно, связь с ядром необходима. Для этого используется модуль FUSE (Filesystem in USErspace, http://fuse.sf.net) Нас интересуют две версии этого модуля - 1.3 и 2.2.1. Вернее, это те версии, которые я использовал, уже есть 1.4. Ветка 1.х используется для SieFS 0.4, для SieFS 0.5 необходим FUSE 2.0 и выше.

Как указано в начале статьи, телефон у меня глючный, поэтому необходимы некоторые усложнения. В частности, телефон придется монтировать через командную строку без занесения в /etc/fstab . Это связано с тем, что имена устройств для преобразователей USB<->tty назначаются динамически. Да, кстати. Для этого преобразователя (та самая коробочка на шнуре) нужен драйвер. Подавляющее большинство шнуров делается на микросхеме Prolific 2303. Это обычно указывается где-то на коробке. Драйвер под Линукс называется pl2303 и обычно есть в ядре, которое поставляется с дистрибутивом. А если читатель сам перебрал ядро, то и драйвер сможет включить самостоятельно. Если устройство одно, то оно явно получит имя /dev/usb/ttyUSB0 , но если шнур выдернуть и вставить снова (борьба с глюком), то имя может остаться прежним, а может измениться на /dev/usb/ttyUSB1 . Я вижу один выход - монтирование руками из командной строки. Это требует право root. Оно же надо и для работы с FUSE 2, с FUSE 1.х можно работать обычному пользователю.В этой версии поумолчанию вся работа с этим модулем запрещена обычным пользователям, это сделано из соображений безопасности. Конечно, можно дать допуск обычному юзеру, но я не смог. Игра с файлом /etc/fuse.conf ничего не дала. Этот момент требует дальнейшего изучения.

Итак, начнем с сборки модулей для ядра, затем соберем сам драйвер. Скачиваем обе софтины, сбрасываем в /usr/src и распаковываем. Получаем два каталога. Сначала надо собрать FUSE:

[root@big fuse-2.2.1]# ./configure   --enable-kernel-module --enable-lib --enable-util -enable-auto-modprobe
[root@big fuse-2.2.1]# make
[root@big fuse-2.2.1]# make install Следует заметить, что первая команда   должна набиваться в одну строку.

Проверяем корректность установки:

[root@big fuse-2.2.1]# modprobe fuse
[root@big fuse-2.2.1]# lsmod|grep   fuse

fuse 37900 0

Все нормально, модуль в ядре. Далее надо собрать сам SieFS:

[root@big siefs-0.5]# ./configure   && make && make install

Подключаем телефон, монтируем файловую систему:

[root@big root]# mount -t siefs   -o nohide,users /dev/usb/ttyUSB0 /mnt/mobile/

Проверяем:

[root@big root]# df
Filesystem	1K-blocks	Used	Available	Use%	Mounted on
/dev/hda5	4948896	4661940	31508	100% 	/
none 	1048576 	784	1047792	1%	/tmp
/dev/hda2 	14475328	14117568	357760 	98%	/mnt/98
/dev/hda7 	7158988	6232184	926804	88%	/mnt/xp
/dev/hda4	7328480	4115984	3212496	57%	/home
mount.siefs	1920 	1328 	0 	100%	/mnt/mobile

Все, у нас появился еще один диск. На него можно писать, с него можно читать.
НО НЕ ОДНОВРЕМЕННО!!! Драйвер в альфа-версии, это его убивает. Желательно вообще не обращаться к телефону пока идет запись. Даже безобидная команда df вызывает выпадение куска файла при закачке на телефон.

Про скорость работы наблюдения интересные. При заливке файлов в телефон посредством mc скорость за несколько секунд падает с 8 кб/с до 1кб/с, где и держится всю закачку. А при копировании через командную строку "Звонок" (книга, не фильм Улыбка ) в 405 кб уходит в телефон за 75 с, а назад - за 45 с. Я не знаю как на эти цифры влияют дисковые кэши.

В общем, этот раздел требует уточнения. (Если в процессе записи происходит полное заполнение памяти, драйвер падает и требует перевтыкания (перевтыкивания? перевтыкновения? Улыбка ) шнура.Это надо делать, если в протоколе (вызывается командой dmesg) появляется подобная строчка:

usb 1-1: pl2303_write_bulk_callback - failed resubmitting write urb, error -1 . Это справедливо для всех описаных программ) Но тут я проверил этот факт без mc и обнаружил, что всего-навсего подвисает cp, но прибивается по Ctrl-C . Я не могу объяснить столь странное поведение mc.

Еще в комплект входят утилиты slink и vmo2wav. Первая является некой оболочкой к obexftp, вторая конвертирует диктофонные записи в обычный wav. Я полагаю, что это предназначено для 45-й серии, т.к. М55 пишет в AMR, а мой аппарат - в хитрый wav, который иногда с кучей ошибок открывается волновыми редакторами.

Уже в процессе работы над статьей в юниксовой рассылке пришло сообщение о новой программе для мобильников- kmobiletools. Данная софтина позволяет звонить, принимать, отбивать звонки, работать с SMS (кириллицу не держит) и телефонной книгой, проверять качество приема и заряд батареи. Программа предназначалась для Моторол, но сейчас (в версии 0.4.3.1) поддерживет МНОГО разных моделей через кабель и ИК-порт. Для сборки требуются библиотеки KDE и компилятор c++ . Безусловно, эту программу нельзя запускать одновременно с другими, которые используют то же устройство. Программа собирается стандартным ./configure && make && make install , никаких ключей добавлять не надо. После запуска получаем красивый экран для настройки:

Надо прописать устройство телефона, которое нам уже известно. Кодировку ставим UCS2. Это дает возможность читать кириллицу в телефонной книге, но не в СМСках. Про строку инициализации сказать не могу ничего, поэтому оставляем по умолчанию. В следующей вкладке выбираем ATD Dial system (для Siemens), для других производителей выбираем в меню соответствующий пункт. В оставшихся вкладках надо понажимать кнопочки Refresh, тогда получим доступ ко всем разделам телефонной книги и СМС, включая списки набранных и пропущенных звонков. Думаю, дальше читатель разберется сам, программа красивая и понятная.

Остался один неочевидный момент: после изменения настроек мало нажать ОК, надо еще выбрать в меню Reinitialize GSM device. На эту тему рекомендую почитать статьи Олега Бройтмана- http://www.linuxrsp.ru/artic/Siemens-S55.html

На этом откланиваюсь и жду отзывов. До встречи!

Your rating: Нет Average: 5.4 (31 vote)
RSS-материал