Linux usb mobile phone

RU Linux

Если сотовый с Mini-USB разъемом подключить к USB-порту компьютера под управлением ОС на основе современного ядра Linux, то в выводе команды просмотра сообщений ядра dmesg можно увидеть такое:

cdc_acm 2-1:1.0: ttyACM0: USB ACM device
usbcore: registered new interface driver cdc_acm
drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters

После этого в системе появляется файл /dev/ttyACM0, через который с телефоном можно делать разные штуки.

Подключение к интернету в Linux по GPRS

Нужна звонилка, например kppp, в качестве адреса устройства модема указываем /dev/ttyACM0.

Указываем строку инициализации модема для Билайн AT+CGDCONT=1,»IP»,»internet.beeline.ru», для МТС AT+CGDCONT=1,»IP»,»internet.mts.ru» и для Мегафон AT+CGDCONT=1,»IP»,»internet»

В качестве номера звонка используем *99# или *99***1#.

Логин/пароль всегда beeline/beeline, mts/mts или gdata/gdata для Билайна, МТС и Мегафона соответственно.

UPD: В Debian/Ubuntu не забываем добавиться в группу dip и, при использовании kppp, раскомментировать noauth в файле /etc/ppp/peers/kppp-options

Синхронизация адресной книги с компьютером, отправка и просмотр СМС в KMobileToos

Программе KMobileToos требуются библиотеки KDE для работы, в Debian/Ubuntu устанавливается пакетом kmobiletools, выглядит так:

В настройках нужно указать все тот же файл /dev/ttyACM0 и выбрать тип телефона: Generic GSM, Nokia, Motorolla, Erisson. Программа умеет показывать уровень заряда батареи и дзынькать при полной зарядке телефона, показывать уровень связи, синхронизировать контакты с KAddressBook, читать контакты в телефоне, читать сохраненные СМС, отправлять СМС и делать звонки с компьютера. Последнее я не понял зачем нужно. Работает это все через AT-команды для большинства телефонов.

Аналог под Gnome называется Gnome Phone Manager. Более мощная порграмма на GTK для синхронизации мобильника и компьютером с поддержкой туду-листа и календаря называется Wammu, работает через консольную программу gammu. Интеграция с gammu появилась в KMobileToos в версии 0.5, которая пока находится в стадии беты.

Скачивание и загрузка файлов в телефоны Motorola с помощью Moto4lin

Это бывает полезно для установки J2ME-приложений, картинок/рингтонов на телефоны, где это нельзя сделать в режиме USB Mass Storage. Программа Moto4lin в Debian/Ubuntu устанавливается одноименным пакетом и умеет работать с файловой системой большинства современных телефонов Motorola через фирменный протокол P2K. Написана на Qt3, не требует KDE, выглядит так:

Программа работает нормально только под root, поэтому для запуска из под пользователя нужно выставить suid-бит на исполняемый файл командой:

# chmod u+s /usr/bin/moto4lin

В настройках нужно указать ACM Device /dev/ttyACM0, Set P2K Vendor ID 22b8, Set P2K Product ID 4901:

После этого в логе внизу должно быть написано Phone pluged as P2K, нажимаем Connect, потом Update list и можно гонять файлы.

Аналог на GTK для телефонов Nokia называется gMobileMedia, работает на gammu.

Спасибо за статью. Как раз кстати. Недавно купил себе новый мобильник SE k530i. Поддерживаемая синхронизация с Вистой меня не очень устроила. Соединить телефон c убунтой я и не надеялся 🙂 Сейчас попробовал kmobiletools, там какие-то проблемы с кодировкой. Поставил Wammu (как раз пользуюсь Gnome) — то, что надо.

Да, найти как называется нужная программа под Linux бывает труднее, чем заставить ее работать 🙂 Если поискать «mobile» по репозитариям (в Synaptic можно) то кроме упомянутых программ для работы с телефонами потенциально полезны: gmobilemedia, xgnokii, gnome-phone-manager, gsm-utils, kandy, scmxx (для Siemens), synce-kpm (для Windows Mobile).

В настройках kmobiletools есть поле для ввода кодировки, наверняка заработает если попробовать UTF-8 или одну из однобайтовых кириллических кодировок.

Вот спасибо! Как-нибудь из спортивного интереса потыркаюсь. Обычно хватает флэш-карты и картридера))

Читайте также:  Windows server 2012 забыли пароль

Для нокии хорошо юзать obexftp. Через кабель видит фс симбиан смартфонов, но только флэху.

Подскажите еще кое что. Мой телефон может определятся как флешка. Вот вывод сообщений ядра [40425.152080] usb 4-2: new full speed USB device using uhci_hcd and address 4

[40425.349114] usb 4-2: configuration #1 chosen from 1 choice

[40425.397982] scsi6 : SCSI emulation for USB Mass Storage devices

[40425.400628] usb-storage: device found at 4

[40425.400633] usb-storage: waiting for device to settle before scanning

[40430.401356] usb-storage: device scan complete

[40430.404565] scsi scan: INQUIRY result too short (26), using 36

[40430.404574] scsi 6:0:0:0: Direct-Access FLASH DI SK — 6218B PQ: 0 ANSI: 0 CCS

[40431.203211] sd 6:0:0:0: [sdd] 124545 512-byte hardware sectors: (63.7 MB/60.8 MiB)

[40431.206183] sd 6:0:0:0: [sdd] Write Protect is off

[40431.206188] sd 6:0:0:0: [sdd] Mode Sense: 03 00 00 00

[40431.206193] sd 6:0:0:0: [sdd] Assuming drive cache: write through

[40431.217186] sd 6:0:0:0: [sdd] 124545 512-byte hardware sectors: (63.7 MB/60.8 MiB)

[40431.220708] sd 6:0:0:0: [sdd] Write Protect is off

[40431.220714] sd 6:0:0:0: [sdd] Mode Sense: 03 00 00 00

[40431.220718] sd 6:0:0:0: [sdd] Assuming drive cache: write through

[40431.220728] sdd: sdd1

[40431.250372] sd 6:0:0:0: [sdd] Attached SCSI removable disk

[40431.250483] sd 6:0:0:0: Attached scsi generic sg4 type 0

[40435.428116] sd 6:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK

[40435.428125] sd 6:0:0:0: [sdd] Sense Key : Medium Error [current]

[40435.428133] sd 6:0:0:0: [sdd] Add. Sense: Recorded entity not found

[40435.428142] end_request: I/O error, dev sdd, sector 124544

[40435.428149] __ratelimit: 191 callbacks suppressed

[40435.428154] Buffer I/O error on device sdd, logical block 124544

[40435.428270] sd 6:0:0:0: [sdd] Result: hostbyte=DID_ERROR driverbyte=DRIVER_OK,SUGGEST_OK

[40435.428277] end_request: I/O error, dev sdd, sector 32

[40435.428282] Buffer I/O error on device sdd, logical block 32

[40435.428287] Buffer I/O error on device sdd, logical block 33

[40435.428292] Buffer I/O error on device sdd, logical block 34

[40435.428297] Buffer I/O error on device sdd, logical block 35

[40435.428301] Buffer I/O error on device sdd, logical block 36

[40435.428306] Buffer I/O error on device sdd, logical block 37

[40435.428311] Buffer I/O error on device sdd, logical block 38

[40435.428315] Buffer I/O error on device sdd, logical block 39

[40435.428320] Buffer I/O error on device sdd, logical block 40

[40435.428390] sd 6:0:0:0: [sdd] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE,SUGGEST_OK

[40435.428396] sd 6:0:0:0: [sdd] Sense Key : Medium Error [current]

[40435.428402] sd 6:0:0:0: [sdd] Add. Sense: Recorded entity not found

[40435.428408] end_request: I/O error, dev sdd, sector 124544

[40435.428520] usb 4-2: USB disconnect, address 4

[40435.438523] sd 6:0:0:0: [sdd] Result: hostbyte=DID_NO_CONNECT driverbyte=DRIVER_OK,SUGGEST_OK

[40435.438534] end_request: I/O error, dev sdd, sector 124536

незнаю, для начала надо гуглить что эти ошибки значат и как их исправлять, можно попробовать разные версии ядра, те что поновее, написать баг-репорт в конце концов

Гуглил. Не помогае. Мобила старая, ядро новое — по этому врядли кто то этим займется.

Источник

Linux USB phone howto

Документ описывает установку и настройку USB телефона для Linux, на базе Yealink P1K. В результате было достигнуто полное управление вызовами с телефона, без участия мышки и клавиатуры.

Введение

Всегда хотелось иметь мобильный VoIP телефон. Это такой телефон, который всегда с тобой, прямо как мобильник, но при этом это VoIP телефон, т.е. подключенный к твоему собственному серверу IP АТС (варианты типа Nokia E65 и аналогичные не предлагать, не хочется греть уши мобильной Wi-Fi микроволновкой, поэтому остаются только USB телефоны). Пользователям Windows жить просто, всякие там X-Lite и прочие включают в себя драйвера для всевозможных USB телефонов, а всевозможные USB телефоны поставляются с диском с разными софтфонами. А вот тем, у кого на десктопе Linux, легкие пути заказаны Но тем не менее, в путь!

Читайте также:  Битлокер windows 10 home
Выбор USB телефона

Гуглинг на тему «linux usb phone» показал, что практически единственным телефоном, который удалось успешно подключить, оказался Yealink P1K USB phone. При этом, половина пытавшихся так и не смогла его подключить. Ну что же, давайте попробуем.

Установка

Не буду описывать длинный путь, проделанный в процессе хождения по граблям. Скажу только спасибо Томасу Рейтмайру, автору пакета Yeaphone www.devbase.at/voip/yeaphone.php, за его отзывчивость и помощь. Итак, чтобы получить мобильный VoIP phone, нужны следующие компоненты: — USB телефон P1K — модуль ядра p1k yealink.ko — программный телефон linphone. — пакет yeaphone.

USB phone Yealink P1K и модуль ядра yealink.ko

Начиная с какой-то версии, Linux содержит в разделе Device drivers → Input device support → Miscellaneous devices → Yealink usb-p1k voip phone. Однако, данный модуль устарел! Надо брать модуль с сайта Томаса. Судя по всему, это его домашняя машина, поэтому копия файлов, актуальная на момент написания этой статьи приложена сюда же (Revision: 142). Как сказал Томас:

You might own a P1KH (USB ID 6993:b700) which uses a slightly different
communication protocol compared to the P1K. The P1K is the only model
supported by the kernel module shipped with the regular Linux kernel.
However if yours is a P1KH (or a B2K, B3G, P4K) then you should try my
version of this module:

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

Это как раз был мой случай, и вывод lsusb доказал это:

explorer t2-trunk # lsusb
.
Bus 003 Device 019: ID 6993:b700 Freshtel

Модуль без проблем собрался на моем относительно свежем 2.6.31-gentoo.Сборка проста:

max@explorer /tmp/yealink-module/trunk $ make
make -C /usr/src/linux SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/linux-2.6.31-gentoo-r6′
CC [M] /tmp/yealink-module/trunk/yealink.o
Building modules, stage 2.
MODPOST 1 modules
CC /tmp/yealink-module/trunk/yealink.mod.o
LD [M] /tmp/yealink-module/trunk/yealink.ko
make[1]: Leaving directory `/usr/src/linux-2.6.31-gentoo-r6′
max@explorer /tmp/yealink-module/trunk $

Получившийся файл нужно отправить в нужное место:

cp yealink.ko /lib/modules/2.6.31-gentoo-r6/kernel/drivers/input/

Софтфон linphone и обертка yeaphone

Другая «ложная дорога» заключается в версии софтфона linphone. Дело в том, что все пакеты, опубликованные на сайтах, предназначены для версий ветки 2.x, а все свежие дистрибутивы устанавливают linphone версии 3.x. Например, у меня установлен net-voip/linphone-3.1.1. Именно с версией связана ошибка сборки yeaphone, что-то типа такого:

home/adyna/Desktop/yeaphone-0.1.6/src/ylcontrol.c:578: undefined reference to `gstate_get_state’
/home/adyna/Desktop/yeaphone-0.1.6/src/ylcontrol.c:579: undefined reference to `gstate_get_state’
/home/adyna/Desktop/yeaphone-0.1.6/src/ylcontrol.c:580: undefined reference to `gstate_get_state’

Дело в том, что в 3-й ветки изменили API. Томас сделан патч, но почему-то не обновил пакеты tar.gz, и нормально компилирующийся код лежит только в svn. Если возникает какая-то проблема сбоки, рекомендую прочесть раздел комментариев на сайте Томаса. Для Вашего удобства также прилагаю к статье и пакет с yaphone.

Борьба с usbhid

Даже после того, как я все собрал, попытка запуска yaphone приводила к сообщению:

No appropriate handset found, exiting.

А выглядело это так:

usbcore: registered new interface driver yealink
yealink: Yealink phone driver: 20090418 (C) Thomas Reitmayr, Henk Vergonet
usb 3-1: USB disconnect, address 22
usb 3-1: new full speed USB device using uhci_hcd and address 23
usb 3-1: configuration #1 chosen from 1 choice
generic-usb 0003:6993:B700.0020: hiddev0,hidraw3: USB HID v1.10 Device [Yealink Network Technology Ltd. VOIP USB Phone ] on usb-0000:00:1a.1-1/input3

Все дело в том, что модуль usbhid «забирает» себе устройство, и модуль yealink его не видит. Если отгрузить модуль usbhid (внимание, тут остаемся без мышки), и временно переместить usbhid.ko, скажем, в tmp, перезагрузить модуль yealink, и воткнуть телефон, то сообщение dmesg будет таким:

yealink: Yealink phone driver: 20090418 (C) Thomas Reitmayr, Henk Vergonet
usb 3-1: new full speed USB device using uhci_hcd and address 19
usb 3-1: configuration #1 chosen from 1 choice
yealink: Detected Model USB-P1KH (Version 0x1005)
yealink: Serial Number ff0adb4abc96
input: Yealink USB-P1KH as /devices/pci0000:00/0000:00:1a.1/usb3/3-1/3-1:1.3/input/input20

Читайте также:  Windows versions and ram support

Как видим, телефон определился, и показал свой серийный номер. Чтобы не приходилось каждый раз вручную играться с модулем, необходимо добавить правило в udev, которое будет вызывать скрипт, «отцепляющий» телефон от usbhid и «прикрепляющий» его к yealink. Скрирт приведен в приложении, а вот вывод его работы:

explorer /tmp # sh /tmp/rebind-yealink.sh
Found Yealink phone at /sys/devices/pci0000:00/0000:00:1a.1/usb3/3-1
found HID interface at 3-1:1.3
successfully detached driver ‘usbhid’
successfully reattached driver ‘yealink’
explorer /tmp #

Вывод dmesg подтвердит, что все прошло успешно.

udev и разрешения

Последним штрихом является адаптация /etc/udev/rules.d/99-yealink.rules

# cat /etc/udev/rules.d/99-yealink.rules
KERNEL==»event*», ATTRS==»Yealink*», GROUP=»max», RUN+=»/bin/sh -c ‘/bin/chgrp max /sys$env/device/device/*'»
ACTION==»add|change», SUBSYSTEMS==»usb», ATTRS==»6993″, ATTRS==»b700″, RUN+=»/usr/local/sbin/rebind-yealink.sh»

Обратите внимание, что вместо max нужно вставить группу, под которым работает Ваша учетная запись. Чтобы увидеть свои группы, выполните команду groups. Скрипт rebind-yealink.sh есть в приложении. Если при запуске телефон выдает нечто такое:

$ yeaphone
path_sysfs = /sys/bus/usb/drivers/yealink/5-1:1.3/
path_event = /dev/input/event11
/sys/bus/usb/drivers/yealink/5-1:1.3/model: Permission denied
Detected handset Yealink USB-P1K
/sys/bus/usb/drivers/yealink/5-1:1.3/line2: Permission denied
/sys/bus/usb/drivers/yealink/5-1:1.3/line1: Permission denied
/sys/bus/usb/drivers/yealink/5-1:1.3/line3: Permission denied
/sys/bus/usb/drivers/yealink/5-1:1.3/hide_icon: Permission denied

это значит, что надо разбираться с 99-yealink.rules — он либо не отрабатывает из-за синтаксической ошибки, либо допущена ошибка в учетной записи. cd /sys/bus/usb/ и смотреть разрешения.

Стартап

Прописать в стартап запуск телефона (rc.local, local.start или как в Вашем дистрибутиве правильно):

su — max -c ‘/usr/local/bin/yeaphone -w’ > /dev/null 2>&1 &

Тут также надо изменить max на имя Вашей учетной записи.

Настройка
Учетная запись SIP
  • Это можно сделать двумя способами:
  • Запустить графический интерфейс linphone-3 (если собирали), и в нем настроить учетную запись .
  • выполнить конфигурацию из консоли. Приведем пример из консоли:

linphonec> proxy add
Adding new proxy setup. Hit ^D to abort.
Enter proxy sip address: sip:sipnet.ru
Your identity for this proxy: sip:1234567890@sipnet.ru
Do you want to register on this proxy (yes/no): yes
Specify register expiration time in seconds (default is 600): 180
Expiration: 180 seconds
Specify route if needed:
No route specified.
———————————————
sip address: sip:sipnet.ru
route:
identity: sip:1234567890@sipnet.ru
register: yes
expires: 180
registered: no
———————————————
Accept the above proxy configuration (yes/no) ?: yes
Proxy added.
linphonec> Registration on sip:sipnet.ru successful.
linphonec> Registration on sip:sipnet.ru successful.
linphonec>

Конфигурация audio

Далее необходимо настроить используемое аудио-устройство. Если собрался GTK интерфейс, то можно сделать это в нем, иначе следующим образом:

linphonec> soundcard list
0: ALSA: default device
1: ALSA: HDA Intel
2: ALSA: VOIP USB Phone
linphonec> soundcard use 2
Using sound device ALSA: VOIP USB Phone
linphonec>

Эта команда настроит все звуковые каналы (playback, capture & ring) на использование USB телефона.

Настройка Yeaphone

/.yeahonerc содержит конфигурацию, а папка

max@explorer /tmp $ cat

/.yeaphonerc
intl-access-code 810
natl-access-code 8
country-code 7
display-id » —123—»
ringtone_default default_p1k.bin
#ringtone_default default_p1kh.bin
#ringtone_default falling2_p1k.bin
#ringtone_default falling_p1k.bin
#ringtone_default rising_p1k.bin
#ringtone_default special_p1k.bin

Рингтоны противные, было бы здорово, если бы кто-то добавил свои более мелодичные, типа «в траве сидел кузнечик»…
Также, надо убедиться, что настроен только один прокси сервер, и он же выбран как default в файле

/.linphonerc. Если Вы получаете такое сообщение

Warning: Could not parse given sip address. A sip url usually looks like sip:user@domain

то это значит, что надо подредактировать ручками

Заключение

В результате, как только я подключаю USB телефон Skype mate P1K к своему ноутбуку, в течение максимум 10 секунд он подключается к серверу. Как только я вытаскиваю USB кабель из ноута, софтфон снимает регистрацию. За уже 3-й день эксплуатации проблем не обнаружено.

Источник

Оцените статью