VoIP-телефоны на чипах Yealink в Linux

()

Некоторое время назад автор этих строк стал обладателем USB VoIP трубки Skypemate USB-P1K и озадачился организацией нормальной работы этой трубки в Linux (используется Xubuntu 10.10 amd64). Skypemate USB-P1K является (как и большинство трубок такого класса) полным клоном трубки Yealink USB-P1K, и это заметно упростило задачу.

Skypemate USB-P1K

Как оказалось поддержка трубок на чипах yealink в Linux всё-таки есть, но входящий в состав ядра (по крайней мере в дистрибутивах на основе Ubuntu) модуль является очень старым и поддерживает только минимальный функционал (в частности не работает клавиатура). Далее будет показано как можно установить современную версию модуля yealink и так же организовать автоматическую сборку модуля для новых ядер через DKMS.

Первым делом "поднимемся" до суперпользователя:

sudo su -

Затем получим полный срез репозитория с исходными текстами модуля:

svn co --username guest --password readonly svn://devbase.homelinux.org:5070/voip/yealink-module

Установим необходимые для сборки модуля пакеты:

apt-get install linux-headers-generic linux-source dkms

Далее посмотрим в директорию "yealink-module/tags" и выберем подходящий срез. Автор этих строк выбрал самый новый (на момент написания статьи): "yld-20101214". Перейдём в директорию с выбраной версией:

cd yealink-module/tags/yld-20101214

Далее можно просто собрать модуль и установить его, но тогда придётся при каждом обновлении ядра пересобирать модуль вручную. Гораздо интереснее автоматизировать эту задачу, переложив её на плечи системы. Именно для этого и создавался механизм DKMS.

Создадим архив с необходимыми файлами (фактически дистрибутив исходных текстов модуля) и развернём его в директорию "/usr/src":

make dist && tar jxfv yealink-module-* -C /usr/src/

Теперь создадим файл "/usr/src/yealink-module-20101214/dkms.conf", который содержит правила сборки модуля через DKMS. Его содержание:

PACKAGE_NAME="yealink"
PACKAGE_VERSION="20101214"
CLEAN="rm -f *.*o"
BUILT_MODULE_NAME[0]="yealink"
DEST_MODULE_LOCATION[0]="/kernel/drivers/input/misc/"
REMAKE_INITRD="yes"
AUTOINSTALL="yes"

Добавим модуль в список обрабатываемых с помощью dkms:

dkms add -m yealink-module -v 20101214 

Соберём модуль:

dkms build -m yealink-module -v 20101214 

Установим его:

dkms install -m yealink-module -v 20101214 

Теперь осталось выгрузить уже загруженный модуль и загрузить новый:

modprobe -r yealink && modprobe yealink

Теперь в системе установлен новый модуль и трубка работает гораздо лучше. Появилась возможность использовать клавиатуру и динамик звонка. Кроме того при установке новых ядер модуль будет автоматически собираться под новое ядро.

На этом всё. Приятной работы!

Ключевые слова: yealink, skypemate, usb-p1k, dkms.

Комментарии:

Anonymous 2011-02-11 18:33:01 (#)

Доброй день .Трубка SkypeMate Usb -P1M система Ubuntu 10.04 АMD 64 , все установил изменений не заметил ,чем мне можно еще помочь.Заранее спасибо.

MooSE 2011-02-11 22:42:27 (#)

Цитата:

Доброй день .Трубка SkypeMate Usb -P1M система Ubuntu 10.04 АMD 64 , все установил изменений не заметил ,чем мне можно еще помочь.Заранее спасибо.

А модуль точно перегрузили?

Anonymous 2011-02-12 10:22:00 (#)

Добрый день!
На 100 % не уверен. Напишите пожалуйста, как можно проверить. Думаю, что моя трубка имеет другой чипсет, т.к. на сайте yaelink аналога нет.

Заранее спасибо.

Сергей.

MooSE 2011-02-12 13:34:53 (#)

Цитата:

Добрый день!
На 100 % не уверен. Напишите пожалуйста, как можно проверить. Думаю, что моя трубка имеет другой чипсет, т.к. на сайте yaelink аналога нет.

Заранее спасибо.

Сергей.


А как трубка видна по lsusb? Обычно это многое проясняет.

Anonymous 2011-02-12 16:49:22 (#)

Bus 004 Device 004: ID 090c:1000 Feiya Technology Corp. Flash Drive
Bus 004 Device 003: ID 6993:b700 Freshtel
так смотрится мой телефон.
Сергей

MooSE 2011-02-12 20:50:56 (#)

Цитата:

Bus 004 Device 003: ID 6993:b700 Freshtel

Ну ты понял на какую тему гуглить, да? :)

Хотя если верить гуглу - должно из коробки неплохо работать.

Anonymous 2011-02-13 18:18:59 (#)

Из коробки работает только Трубка ,хотелось еще звонок и клавиатуру ,а если еще дисплей было очень хорошо.Трубки у нас очень похожи , у меня только еще память 128 мв. Думал
будет работать!!!!

MooSE 2011-02-14 01:18:14 (#)

Цитата:

Трубки у нас очень похожи

Вообще-то как раз нет. У меня на чипе yealink, а у тебя - на чипе freshtel.

Anonymous 2011-02-14 09:40:38 (#)

Все понял . Большое спасибо

Anonymous 2011-06-20 15:14:24 (#)

Трубка на чипе yealink. Все сделал по инструкции, но клавиатура все же не работает.

MooSE 2011-06-20 17:43:39 (#)

Цитата:

Трубка на чипе yealink. Все сделал по инструкции, но клавиатура все же не работает.


Какая версия модуля? Модуль точно собрался? Какая модель трубки?

Anonymous 2011-06-21 09:14:07 (#)

Цитата:

Цитата:

Трубка на чипе yealink. Все сделал по инструкции, но клавиатура все же не работает.


Какая версия модуля? Модуль точно собрался? Какая модель трубки?

Модуль 20101214 (новее не видел), модель трубки SkypeMate USB-P1K. При сборке модуля ошибок не выдавало.

MooSE 2011-06-21 21:11:16 (#)

Цитата:

Модуль 20101214 (новее не видел), модель трубки SkypeMate USB-P1K. При сборке модуля ошибок не выдавало.


Эта версия модуля с последними версиями не работает. Бери версию из транка - она у меня нормально собралась и работает.

Anonymous 2011-06-23 10:35:05 (#)

Взял версию из trunk. Клавиатура все равно не работала. После нескольких часов поиска в гугле, нашел решение - "отобрать" устройство у usbhid и передать его yealink. Если вдруг еще кому-нибудь понадобиться, то вот тут можно посмотреть как это делается.
Новый комментарий



© 2006-2016 Вадим Калинников aka MooSE