6 June 2009

Kyocera KE 301 и Linux

Lumber room
Год назад ко мне в руки попал телефон японского производства Kyocera KE 301 станратра CDMA2000 (Skylink, Белсел/Diallog). Телефон прекрасно работает как CDMA-1x модем, однако ни Ubuntu, ни Xandros(eee pc 1000) «из коробки» его не понимают.

Для использования как модем, к телефону поставляется USB-кабель и диск с windows драйверами.
Найти путь по хлебным крошкам удалось не сразу.
Первое, что стало понятно — выглядит нормально подключеный модем примерно вот так:
набрав dmesg | tail после подкючения USB-кабеля в консоли должна появиться строка вида:
[ хх.ххх ] usb х-х: pl2303 converter now attached to ttyUSB0
Ни одной конкретной статьи по подключению именно этой модели найдено не было, поэтому просмотрев свой dmesg и увидев:
[ 738.220000] usb 1-2: new full speed USB device using uhci_hcd and address 2
[ 738.380000] usb 1-2: configuration #1 chosen from 1 choice

пошёл «бараньими» тропами.

Начав с того, что уже есть, windows-драйвер состоит из 2х файлов:
MDMSAUSB.inf
SER2PL.sys
Из inf-файла я узнал, что кабель — вовсе не простой(иначе говоря прямой) кабель, а USB-Serial.
Поиск по SER2PL — показал, что конвертер базируется на микросхеме Prolific PL2303, которая теоретически поддерживается Debian, что уже большой плюс.

Нижеприведённое решение одинаково верно для xandros (применялась версия установленная на eeepc 1000) и ubuntu 9.04(установлена на десктопе), в случае с xandros вышло немного сложнее, об этом будут пометки по тексту.

Понадобиться консоль, утилиты lsmod, depmod, lsusb, modprobe, модуль ядра pl2303, административный доступ по sudo(или в случае с xandros sudo su), и какой-нибудь текстовый редактор.

Шаг первый: выполнив в консоли lsusb до подключения
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000

и после подключения
Bus 001 Device 001: ID 0000:0000
Bus 001 Device 004: ID 2900:0016
Bus 002 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000

Мы идентифицируем устройство по 2 параметрам vid и pid (сокращённо от vendor id и product id), они выделены жирным. Пока USB кабель можно отключить.

Шаг второй: Для поддержки linux-системой PL2303 устройства надо загрузить модуль ядра pl2303
для этого необходимо выполнить комманду
sudo modprobe pl2303 sudo для этой операции обязательно
Если никаких сообщениях об ошибках не было, можно проверяить загружен ли у Вас в системе модуль ядра pl2303.
Выполнив команду lsmod | grep pl2303, если среди появившихся строк присутствует строка pl2303 в первой колонке и нуль — в последней, двигаемся к следующему шагу.
Важное примечание для Xandros: из коробки модуль pl2303 недоступен. Включить его можно проведя несколько манипуляций:
в папке /lib/modules/2.6.21.4-eeepc/kernel/drivers/usb/serial/
вместо /2.6.21.4-eeepc/ следует искать Вашу версию ядра, если вы его обновляли
есть файл pl2303.ko.huawei, который надо переименовать или скопировать в эту же папку с именем pl2303.ko и выполнить комманду sudo depmod и только после этого продвигаться к следующему шагу.

Шаг третий: Определение USB устройства с заданным vid:pid как pl2303-устройство.
Важное замечание: загрузить модуль PL2303 необходимо до выполнения следующей комманды
Строкой
sudo echo 2900 0016 >/sys/bus/usb-serial/drivers/pl2303/new_id
к устройствам pl2303 добавляется заданная комбинация vid:pid, при следующем подключении кабеля система будет использовать модуль/драйвер pl2303 для взаимодействия.
В случае с xandros придётся сначала выполнить sudo su, а потом echo 2900 0016 >/sys/bus/usb-serial/drivers/pl2303/new_id

Теперь кабель можно подключить и выполнить lsmod |grep pl2303, среди строк должна оказаться такая, в которой pl2303 окажется в первой колонке и 1 — в последней.
и смотреть dmesg |tail
[10442.180000] usb 1-2: new full speed USB device using uhci_hcd and address 5
[10442.340000] usb 1-2: configuration #1 chosen from 1 choice
[10442.350000] pl2303 1-2:1.0: pl2303 converter detected
[10442.350000] usb 1-2: pl2303 converter now attached to ttyUSB0

Выделеное жирным означает, что устройство успешно опознано и подключено.

Чтобы «закрепить» результат проделанного (если всё заработало): добавьте строку pl2303 в файл /etc/modules — это включит автозагрузку модуля при старте системы.

Остальная настройка по подключению к интернету неоднократно описана и не представляет интереса.
К слову сказать в xandros следует проверить файл /etc/ppp/peers/cdma, чтобы /dev/xxx вместо xxx было именно ttyUSB0 (соблюдайте регистр символов), выполнив sudo pppd call cdma после всего вышеописанного можно будет установить связь с интернетом без доводки(работает на Белсел/Diallog, не было возможности проверить у Skylink)

p.s.: в xandros после перезагрузки мне пришлось снова вводить sudo su; echo 2900 0016 >/… это пока единственное, что сделать не удалось(ваши предложения в комментарии).
p.p.s.: пока решился написать статью — телефон убрали из продажи(на сайте skylink уже нету, а у Diallog он не только остался на сайте, так ещё и в акции участвует).

Спасибо FRAGIL3 за возможность публикации этой статьи.
Спасибо АЕР и ЛОРу за решение описанное в третьем шаге
Tags:linuxcdmaxandrosubuntu
Hubs: Lumber room
+4
343 0
Comments 7