Настройка Linux для работы с мобильным телефоном "Sony Ericsson W810i"

Здравствуйте уважаемые пользователи Linux.
Всвязи с досадным отсутствием полезной информации(возможно, плохо искал) по прикручиванию в Linuxe мобил от производителя Sony Ericson (на момент написания данной статьи), я решил сам написать и разместить ее для таких как я любителей поизвращаться.

Для меня основными задачами были обмен файлами между телефоном и компьютером, и использование телефона в качестве gprs-модема. Модель телефона - Sony Ericson W810i. Подключение к компьютеру посредством Data-кабеля. Поскольку кабель был в комплекте стандартоной поставки телефона, я не счел необходимым покупку адаптера bluetooth. Дистрибутив - Debian 3.1r-хз, хотя полагаю, все нижеперечисленные действия будут справедливы и для многих других дистрибутивов. Версия ядра 2.6.15. Использую такое старье, исключительно из возможости любоваться bootsplash. Потому как для более новых ядер его еще не сделали.

Для определения телефона как устройств (должно быть 2 ,или 1, в зависимости от режима работы данной модели), необходимо в ядре включить следующие опции.
в меню редактирования опций ядра make menuconfig:

    USB support  --->
          Support for Host-side USB
           [*]   USB device filesystem
           [*]   Enforce USB bandwidth allocation (EXPERIMENTAL)
            EHCI HCD (USB 2.0) support
            OHCI HCD support
            UHCI HCD (most Intel and VIA) support
            USB Modem (CDC ACM) support
          USB Mass Storage support
           [*]   Datafab Compact Flash Reader support (EXPERIMENTAL)
           [*]   Microtech/ZiO! CompactFlash/SmartMedia support
           [*]   Lexar Jumpshot Compact Flash Reader (EXPERIMENTAL)
    SCSI device support  --->
          SCSI device support
           [*]   legacy /proc/scsi/ support
            SCSI disk support
  

или вручную править конфиг. Кому как удобнее:

   CONFIG_USB_ARCH_HAS_HCD=y
   CONFIG_USB_ARCH_HAS_OHCI=y
   CONFIG_USB=m
   CONFIG_USB_DEVICEFS=y
   CONFIG_USB_BANDWIDTH=y
   CONFIG_USB_EHCI_HCD=m
   CONFIG_USB_OHCI_HCD=m
   CONFIG_USB_OHCI_LITTLE_ENDIAN=y
   CONFIG_USB_UHCI_HCD=m
   CONFIG_USB_ACM=m
   CONFIG_USB_STORAGE=m
   CONFIG_USB_STORAGE_DATAFAB=y
   CONFIG_USB_STORAGE_DPCM=y
   CONFIG_USB_STORAGE_JUMPSHOT=y
   CONFIG_USB_SERIAL=m
   CONFIG_USB_SERIAL_GENERIC=y
   CONFIG_USB_SERIAL_PL2303=m

Также должна быть включена поддержка виндовых файловых систем.

 

Также должна быть включена поддержка виндовых файловых систем. Загружаемся на новом ядре, и смотрим правильно ли определились устройства. Не загружая иксов втыкаем шнур с телефоном в USB порт. На экране компьютера должна появиться отладочная информация, свидетельствующая об обнаружении устройств. На экране телефона должно появиться меню выбора режима работы. В случае выбора режима "Передача файлов", в консоли появится отчет о загрузке соответствующих модулей, и определении устройств sda1 - электронный диск телефона, и sbd1 - электронный диск флешки. Для систем с жесткми дисками на интерфейсе SATA (для ядер 2.6.*) этим устройствам будут даны имена соответственно sdb1 и sdc1. В случае выбора режима "Режим телефона", в консоли появится отчет об обнаружении USB модема (Communication Device Class Abstract Control Model interface) /dev/ttyACM0.

Далее, для обмена файлами правим /etc/fstab:
В конец дописываем две строки

   /dev/sda1       /mnt/flash      auto    rw,users,noauto 0 0
   /dev/sdb1       /mnt/flash1      auto    rw,users,noauto 0 0

 

теперь регистрируемся пользователеми создаем на рабочем столе два значка устройств для sda1 и sdb1. Подключаем телефон к компьютеру, выбираем в телефоне режим обмена файлами, ждем несколько секунд, пока растормозятся комп и телефон, и кликаем по значкам устройств. Если все сделано правильно, то должны открыться окна с содержимым памяти телефона, и флешки.

Для использования телефона в качастве GPRS-модема делаем следующее
создаем два файла
/etc/ppp/mobile скрипт дозвона, содержащий:

       ECHO ON
       ABORT '\nBUSY\r'
       ABORT '\nERROR\r'
       ABORT '\nNO ANSWER\r'
       ABORT '\nNO CARRIER\r'
       ABORT '\nNO DIALTONE\r'
       ABORT '\nRINGING\r\n\r\nRINGING\r'
       REPORT CONNECT
       '' \rAT
       TIMEOUT 12
       # OK ATH
       OK ATZE1
       OK AT+CGDCONT=1,"IP","www.umc.ua"
       OK ATD*99***1#
       CONNECT c

и /etc/ppp/peers/mobile содержащий эти и другие pppd опции:

        local lock /dev/ttyACM0 115200
        connect '/usr/sbin/chat  -f /etc/ppp/mobile'
        noauth
        novjccomp nopcomp noaccomp nodeflate novj nobsdcomp
        ipcp-accept-local ipcp-accept-remote
        usepeerdns noipdefault defaultroute
        ipcp-restart 4
        lcp-restart 4
        persist maxfail 0 holdoff 1
        user ""

В случае необходимости правим эти скрипты под своего оператора мобильной связи.

 

Для дозвона - pppd call mobile Для завершения соединения - poff mobile.

Вопросы, предложения и замечания по повоу данной статьи, просьба присылать сюда:

  • serega [at] doma dot net dot ua
  • ovserg [at] kah dot hs dot ukrtel dot net
  • ася 282-768-746

 

Овчар Сергей. 13 ноября 2006 года. 13-23