написание драйвера для USB устройства (модем airplus mcd-650)

Взгляд изнутри

Модератор: Модераторы разделов

BlacklabeLSD
Сообщения: 20
ОС: Mint 7

написание драйвера для USB устройства

Сообщение BlacklabeLSD »

Всем доброго времени суток...

у меня на днях возникла проблема с модемом airplus mcd-650...нет драйвера под Linux тока под виндовозы...

теперь вопрос...Как написать этот драйвер самому?
Спасибо сказали:
Аватара пользователя
devilr
Сообщения: 3692
ОС: Mandriva => Gentoo (~amd64)

Re: написание драйвера для USB устройства

Сообщение devilr »

Ну народ вроде как запускает. Хотя бы тут
А вообще, в том же гугле строку запроса делаете такой linux+"airplus mcd-650" и читаете.
Драйвер устройства писать, не имея навыков, довольно сложно. Хотя книжки есть.
Мудрость приходит с возрастом.
Иногда возраст приходит один.
Эхо разума
Спасибо сказали:
BlacklabeLSD
Сообщения: 20
ОС: Mint 7

Re: написание драйвера для USB устройства

Сообщение BlacklabeLSD »

Читал я этот форум...пробовал дома повторить ничего не получается...может я чего не допонял...вобщем решил написать драйвер сам...что для этого нужно? если кто умеет писать поделитесь опытом...хочется не то чтобы побострее выйти в инет а написать драйвер и положить его на общий доступ естественно...пусть это займет больше времени зато будет работать четко...
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: написание драйвера для USB устройства

Сообщение serzh-z »

BlacklabeLSD
Для начала нужен Linux Driver Development Kit - http://www.kernel.org/pub/linux/kernel/people/gregkh/ddk/ (с документацией), затем документация по аппаратному устройству MCD-650, либо по устройству аналогичных девайсов. Сам девайс. Ну и свободное время. Пожалуй всё.
Спасибо сказали:
BlacklabeLSD
Сообщения: 20
ОС: Mint 7

Re: написание драйвера для USB устройства

Сообщение BlacklabeLSD »

Для начала нужен Linux Driver Development Kit

Скачал...
Сам девайс в наличии из документации всё что было в комплекте при покупке...
время тоже есть...меня интересует на чем писать? и какое нить руководство по написанию...
за ссылку благодарен...

возникла идея...читал что модемы any data ложаться на линь без проблем...может попробовать переделать их драйвер под мой девайс?
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: написание драйвера для USB устройства

Сообщение serzh-z »

BlacklabeLSD писал(а):
13.07.2009 14:53
и какое нить руководство по написанию...
Оно есть в LDDK.

С примерами.

BlacklabeLSD писал(а):
13.07.2009 14:53
меня интересует на чем писать?
C, вестимо.
Спасибо сказали:
Аватара пользователя
deadhead
Сообщения: 1913
Статус: zzz..z

Re: написание драйвера для USB устройства

Сообщение deadhead »

BlacklabeLSD
serzh-z писал(а):
13.07.2009 13:44
затем документация по аппаратному устройств

это как бы спецификация, а не
BlacklabeLSD писал(а):
13.07.2009 14:53
из документации всё что было в комплекте при покупке


собственно поэтому не под все устройства есть драйвера :-(
[x] close
Спасибо сказали:
forth32
Сообщения: 2

Re: написание драйвера для USB устройства

Сообщение forth32 »

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

Тут ведь уже давали ссылку. Модем представляет собой обыкновеннейшее USB-SERIAL устройство, просто с необычными идентификаторами, о которых стандартный модуль ничего не знает. Надо подключить модем, дать команду lsusb, и посмотреть идентификаторы модема. Они будут такими - vendor=0x1011 product=0x3198

Далее находим файл параметров модулей - /etc/modprobe.conf и дописываем туда строчку

options usbserial vendor=0x1011 product=0x3198

В вашей системе вместо этого файла может быть каталог /etc/modprobe.d. Тогда в нем надо создать файл usbserial.conf с вышеукащанной строкой.
После этого выгружаем модуль usbserial - rmmod usbserial, проверяем по lsmod что модуль действительно выгрузился, вынимаем и снова втыкаем модем. Смотрим dmesg и видим, что модему назначились два устройства - /dev/ttyUSB0 и ttyUSB1. Вот теперь через ttyUSB0 можно работать.
Вместо игр с загрузкой-выгрузкой модуля можно просто отключить модем, перезагрузить систему и воткнуть модем обратно.
Спасибо сказали:
BlacklabeLSD
Сообщения: 20
ОС: Mint 7

Re: написание драйвера для USB устройства

Сообщение BlacklabeLSD »

Благодарю всех за содействие и понимание ситуации...если уж всё таки напишу более менее живой и здоровый драйвер обязательно поделюсь им...думаю тему можно закрывать так как не вижу смысла дальнейшего обсуждения(если будут какие то идеи и советы пишите в личку)
Спасибо сказали:
Аватара пользователя
Voler
Сообщения: 498
ОС: Fedora

Re: написание драйвера для USB устройства

Сообщение Voler »

Проблема актуальная.
Читал тут не работает этот способ

Не помогло.
Ядро 2.6.28-13-generic
Модем Airplus MCD-650
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: написание драйвера для USB устройства

Сообщение serzh-z »

Voler писал(а):
21.07.2009 10:47
Проблема актуальная.
Какая проблема? Проблема написания драйвера?
Спасибо сказали:
forth32
Сообщения: 2

Re: написание драйвера для USB устройства

Сообщение forth32 »

Voler писал(а):
21.07.2009 10:47
Не помогло.
Ядро 2.6.28-13-generic
Модем Airplus MCD-650


Да не может этот способ не работать в принципе. По крайней мере, во всех ядрах линейки 2.6, где есть модуль usbserial, он обязан работать.

После того, как пропишите параметры модуля usbserial в modprobe.conf или modprobe.d, перезагрузитесь, дайте от рута команду

modprobe usbserial

и посмотрите вывод dmesg. Должно появиться 2 устройства - /dev/ttyUSB0 и ttyUSB1
Если не появились - давайте сюда вывод dmesg, будем разбираться.

А писать аналог стандартного usbserial - пустая затея. Оно, конечно, полезно в плане научиться писать ядерные модули, но практической пользы от такой затеи - 0. Впрочем, если человек способен написать модуль ядра, то уж подключить стандартный usbserial у него не будет никаких проблем.

Гораздо интереснее разобраться с пропиетарными командами данного модема (те, которые at*skt* ), для использования смс и голосовых функций. Например, команда at*skt*ori=номертелефона набирает телефонный номер для голосовой связи, а команда at*skt*keyemul=e прерывает голосовую сессию.
Спасибо сказали:
BlacklabeLSD
Сообщения: 20
ОС: Mint 7

Re: написание драйвера для USB устройства

Сообщение BlacklabeLSD »

Да не может этот способ не работать в принципе. По крайней мере, во всех ядрах линейки 2.6, где есть модуль usbserial, он обязан работать.

После того, как пропишите параметры модуля usbserial в modprobe.conf или modprobe.d, перезагрузитесь, дайте от рута команду

modprobe usbserial

и посмотрите вывод dmesg. Должно появиться 2 устройства - /dev/ttyUSB0 и ttyUSB1
Если не появились - давайте сюда вывод dmesg, будем разбираться.

Я всё таки выгрузил usbserial способом описаным здесь
Настроил широкополосное но к инету всё равно не подключается,сразу обрывается связь...
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: написание драйвера для USB устройства

Сообщение serzh-z »

iУведомление от модератора serzh-z
Voler, forth32, BlacklabeLSD, господа, вы чего? Этот топик про написание драйверов, а не про "как завести мой модем?", для этого есть другие разделы.
Спасибо сказали:
Аватара пользователя
DRUID3
Сообщения: 8
ОС: Linux mandriva 2009.1 pwp

Re: написание драйвера для USB устройства

Сообщение DRUID3 »

Может автору ветки поможет вот этот материальчик?
Спасибо сказали:
Аватара пользователя
HomeCraft
Сообщения: 220
ОС: Lubuntu 18.04, Lubuntu 14.04

Re: написание драйвера для USB устройства

Сообщение HomeCraft »

DRUID3 писал(а):
09.11.2009 00:08
Может автору ветки поможет вот этот материальчик?

Ну это так обзорчик поверхностный. Внизу идет отсыл на спецификации USB и Kernel. Вот оно и отбивает желание заниматься написанием драйверов.
Для меня тема пока актуальна, т.к. имею USB-девайс с дровами только под винду. Спецификации и исходники открыты остается дело за малым - написать драйвер :)
Спасибо сказали:
sciko
Сообщения: 1744
Статус: Ъ-участник
ОС: Debian/Ubuntu/etc

Re: написание драйвера для USB устройства

Сообщение sciko »

Малость не в тему, но иногда есть устройство на USB, которое работает только в винде, а нужно его запустить под Линуксом. Спеков как всегда нет. Но это не повод впадать в уныние. Можно заюзать сниффер USB для винды USB Snoopy.
Спасибо сказали:
IMB
Сообщения: 2566
ОС: Debian

Re: написание драйвера для USB устройства

Сообщение IMB »

HomeCraft писал(а):
15.02.2010 19:21
Ну это так обзорчик поверхностный. Внизу идет отсыл на спецификации USB и Kernel. Вот оно и отбивает желание заниматься написанием драйверов.

Для начало тоже неплохо, реализуйте сначала минимальный фукционал и по мере необходимости дописывайте.
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: написание драйвера для USB устройства

Сообщение Stauffenberg »

IMB писал(а):
16.02.2010 17:54
Для начало тоже неплохо, реализуйте сначала минимальный фукционал и по мере необходимости дописывайте

Для начала надо написать хоть что-то, что можно подгрузить в ядро. Потом что-то, что будет "подавать хоть какие-то признаки жизни". Затем несколько книг по сабсистемам ядра и драйверам. Может быть после этого получится реализовать хоть какой-то минимальный функционал.
Но настроения в этой ветке форума мне больше всего нравятся (:
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
IMB
Сообщения: 2566
ОС: Debian

Re: написание драйвера для USB устройства

Сообщение IMB »

Stauffenberg писал(а):
16.02.2010 18:38
Для начала надо написать хоть что-то, что можно подгрузить в ядро. Потом что-то, что будет "подавать хоть какие-то признаки жизни". Затем несколько книг по сабсистемам ядра и драйверам. Может быть после этого получится реализовать хоть какой-то минимальный функционал.

Ну первые пукты достаточно просты, примеров достаточно. Не знаю как там с USB, но я бы не забывал просматривать имеющиеся драйвера и, никто не мешает, использовал бы их как "рыбу".
Всё это конечно при условии, что драйвер не планируется вносить в основную ветку ядра, в этом случае без хорошего знания теории и достаточного навыка пожалуй не обойтись. Хорошо, что мне это не светит в ближайшее время и я могу себе позволить ряд волностей. :rolleyes:
Ну а чем хорош метод "от простого к сложному" думаю объяснять не надо. Возьмём, для примера, меня - я сейчас работаю с CMOS-матрицами, представленные в ядре V4L2 драйвера для них нам не подходят, по ряду причин. Пишим свой - сейчас я реализовал минимальный базовый фукционал: загрузка модуля, в другом режиме не проверял, выгрузка, обращение к нему из kernel/user-space по V4L2-ioctl. По мере необходимости буду наращивать фукционал.
P.S. Я всё это к тому, что глаза боятся, а руки делают.
Спасибо сказали:
Аватара пользователя
HomeCraft
Сообщения: 220
ОС: Lubuntu 18.04, Lubuntu 14.04

Re: написание драйвера для USB устройства

Сообщение HomeCraft »

serzh-z писал(а):
13.07.2009 15:04
C, вестимо.

Это, как я понимаю, без вариантов?
Спасибо сказали:
Аватара пользователя
Stauffenberg
Сообщения: 2041
Статус: ☮ PEACE ☮
ОС: открытая и свободная

Re: написание драйвера для USB устройства

Сообщение Stauffenberg »

IMB писал(а):
16.02.2010 20:40
Не знаю как там с USB, но я бы не забывал просматривать имеющиеся драйвера и, никто не мешает, использовал бы их как "рыбу".

Да, это очень помогает. Я еще люблю писать авторам и спрашивать "ну как же это работает?" (:

IMB писал(а):
16.02.2010 20:40
P.S. Я всё это к тому, что глаза боятся, а руки делают.

Было бы здорово если бы кернел хакеры максимально подробно документировали свою работу (:
Это было бы интересно ОЧЕНЬ многим, в том числе и мне.
Labor omnia vincit

"Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.” (Brian Kernighan)
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: написание драйвера для USB устройства

Сообщение serzh-z »

HomeCraft писал(а):
16.02.2010 20:48
Это, как я понимаю, без вариантов?
Да.
Спасибо сказали:
Аватара пользователя
HomeCraft
Сообщения: 220
ОС: Lubuntu 18.04, Lubuntu 14.04

Re: написание драйвера для USB устройства

Сообщение HomeCraft »

А это кто-нибудь пробовал?
Спасибо сказали:
olegteror
Сообщения: 16
ОС: Debian.

Re: написание драйвера для USB устройства

Сообщение olegteror »

Внизу идет отсыл на спецификации USB и Kernel. Вот оно и отбивает желание заниматься написанием драйверов.


Было желание :-) но русской документации по написанию драйверов не нашел=) чтож) придеться винду на 2 харде держать для принтера(LEXMARK X3550)
Спасибо сказали:
IMB
Сообщения: 2566
ОС: Debian

Re: написание драйвера для USB устройства

Сообщение IMB »

olegteror писал(а):
29.04.2010 19:29
Было желание :-) но русской документации по написанию драйверов не нашел=)

Плохо искали. Не конкретно по USB, но информация на русском есть, например http://www.opennet.ru/docs/RUS/lkmpg/ , http://electronix.ru/forum/index.php?act=A...st&id=14159
Ну и классика http://lwn.net/Kernel/LDD3/ , на английском, но если поскать можно найти переводы отдельных глав.
Спасибо сказали:
BratSinot
Сообщения: 812
ОС: Slackware64

Re: написание драйвера для USB устройства

Сообщение BratSinot »

BlacklabeLSD писал(а):
13.07.2009 00:15
Всем доброго времени суток...

у меня на днях возникла проблема с модемом airplus mcd-650...нет драйвера под Linux тока под виндовозы...

теперь вопрос...Как написать этот драйвер самому?

Драйвера в ядре есть. не знаю как с этим, но у Alcatel можемы в Linux по умолчанию модемами не являются. Здесь скорее всего так-же. Надо через usb_swtich поменять режим и все.
Спасибо сказали: