LinuxBegin.ru - offline-версия от 26.04.2004
Главная | Все темы | Все статьи | Ссылки | Аналоги Windows-программ в Linux | Top 20

Настройка модема ZyXEL Omni 56K Plus в Linux через USB
(Аппаратное обеспечение / Драйвера)


- Дмитрий Шубадеев aka ppp, 23.02.2004, Nixp.ru, оригинал -

Данная статья посвящена подключению и настройке модема ZyXEL Omni 56K Plus в ОС Linux через USB.

В ядре Linux нет драйвера для модема ZyXEL Omni 56K Plus, но зато есть драйвер для ZyXEL Omninet, который путем небольших изменений прекрасно работает и с ZyXEL Omni 56K Plus (и, возможно, с другими USB-модемами фирмы ZyXEL).


Подготовка ядра.

Файл, который мы будем изменять лежит здесь:
исходники ядра/drivers/usb/serial/omninet.c

Перед изменением мы должны узнать Vendor Id и Product Id нашего модема. Для ZyXEL Omni 56K Plus это будет 0x0586h и 0x1500 соответственно. Если вы пытаетесь настроить другой USB-модем, то для определения Vendor Id и Product Id можно воспользоваться утилитой "usbview".

Открываем наш файл и добавляем следующие строки:

#define ZYXEL_VENDOR_ID 0x0586 (или Vendor Id вашего модема )
#define ZYXEL_OMNIPLUS_ID 0x1500 (или Product Id вашего модема)


Находим структуру id_table, и добавляем новый элемент, который будет описывать наш модем:

{USB_DEVICE( ZYXEL_VENDOR_ID, ZYXEL_OMNIPLUS_ID)}

В итоге мы получаем такую структуру:

static struct usb_device_id id_table[] = {
{USB_DEVICE( ZYXEL_VENDOR_ID, ZYXEL_OMNINET_ID)},
{USB_DEVICE( ZYXEL_VENDOR_ID, ZYXEL_OMNIPLUS_ID)},
{}
};


Сохраняем файл. Вот и все изменения :).

Т.к. модем работает через USB, необходимо будет включить поддержку USB в ядре, а также USB serial convert и, конечно, сам драйвер USB ZyXEL omni.net LCD Plus Driver. Теперь перекомпилируем и устанавливаем ядро (как это делать я описывать не стал, так как об этом много написано) [например, см. статью "Новичкам: компилируем Linux-ядро" — прим. ред.].

reboot


Настройка /dev

Создаем файл устройства:

mknod /dev/ttyUSB0 c 188 0

Для второго модема — mknod /dev/ttyUSB0 c 188 1 и т.д.

Делаем символическую ссылку на файл устройства:

ln -s /dev/ttyUSB0 /dev/modem


Настройка программы

В программе, которой ты будешь звонить, в качестве устройства выбираем /dev/modem.
На этом все.

З.Ы. Данный модем у меня работал с ядром 2.4.x и 2.6.x. Насчет других USB-модемов за неимением оных ничего сказать не могу.

Просмотров: 758  |  Рейтинг статьи: 4.66 (Голосов: 3).
4.66
Дата размещения статьи: 2004-02-26 19:49:17



5 последних поступлений в раздел Аппаратное обеспечение / Драйвера:

26.02.04: Настройка модема ZyXEL Omni 56K Plus в Linux через USB (В ядре Linux нет драйвера для модема ZyXEL Omni 56K Plus, но зато есть драйвер для ZyXEL Omninet, кот...)
20.02.04: Настройка мультимедийной клавиатуры (Необходимо ассоциировать имена с кодами клавиш. Преимущество данного метода заключается в том, что ва...)
07.02.04: USB ADSL модем. Часть 2 - Руководство по установке EciAdsl драйвера (EciAdsl - это свободно распространяемый Linux драйвер для подключения вашего компьютера к сети интерн...)
22.01.04: Переход на Linux 2.6 (Я потратил целый день, переводя свой Red Hat 9 на ядро 2.6. Этот документ не претендует на полноценно...)
22.01.04: Горячая замена IDE дисков в Linux (hot swap) (В IDE-дисках ATA-стандарта не предусмотрено горячее подключение, поэтому вся отвественность за порчу ...)

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

Re: Настройка модема ZyXEL Omni 56K Plus в Linux через USB (Оценка: 0)
от Anonymous на 30.03.04

Подключение модемов ZyXEL Omni 56K по шине USB в ОС Linux.


СОДЕРЖАНИЕ

1. Подключение модемов ZyXEL Omni 56K PLUS & DUO по шине USB в ОС Linux.2. Подключение модема ZyXEL Omni 56K UNO по шине USB в ОС Linux.

1. Подключение модемов ZyXEL Omni 56K PLUS & DUO по шине USB в ОС Linux.
Модемы ZyXEL Omni 56K PLUS & DUO имеют 2-а интерфейса подключения к компьютеру, это RS-232 и USB. Если подключение по RS-232 не вызывает каких-либо вопросов и проблем, то для подключения по USB требуются специальные драйвера. В составелюбого ядра Linux, начиная с версии 2.2, входит стандартный драйвер для работыUSB serial устройств под названием usbserial, его требуется загрузитьсразу после загрузки модулей usbcore и usb-uhci(usb-ohci), так как данныйдрайвер содержит только протокол общения с устройствами USB-to-RS232, то дляработы модемов ZyXEL Omni 56K PLUS & DUO необходим еще дополнительный драйвер,который будет общаться с модемами на аппаратном уровне и обмениваться даннымипо протоколу, который реализован в драйвере usbserial. Такой драйвер входитв стандартное ядро Linux и называется omninet, однако этот драйвер не будет работать с данными модемами, так как требуется дополнительная доработка этогодрайвера на предмет Product ID. Патч для доработки драйвера omninet прилагаетсяк данному описанию и называется omninet.diff, либо приведен ниже: --- drivers/usb/serial/omninet.c.orig 2002-11-29 02:53:15.000000000 +0300+++ drivers/usb/serial/omninet.c 2003-08-27 13:11:51.000000000 +0400@@ -66,6 +66,8 @@ #define ZYXEL_VENDOR_ID 0x0586 #define ZYXEL_OMNINET_ID 0x1000+#define ZYXEL_OMNI_56KPLUS_ID 0x1500+#define ZYXEL_OMNI_56K_DUO_ID 0x1512 /* function prototypes */ static int omninet_open (struct usb_serial_port *port, struct file *filp);@@ -78,6 +80,8 @@ static struct usb_device_id id_table [] = { { USB_DEVICE(ZYXEL_VENDOR_ID, ZYXEL_OMNINET_ID) },+ { USB_DEVICE(ZYXEL_VENDOR_ID, ZYXEL_OMNI_56KPLUS_ID) },+ { USB_DEVICE(ZYXEL_VENDOR_ID, ZYXEL_OMNI_56K_DUO_ID) }, { } /* Terminating entry */ }; Для установки патча необходимо произвести следущую процедуру в директории,где установлены исходные тексты вашего ядра:cp omninet.diff /usr/src/linux-2.4cd /usr/src/linux-2.4patch -p0





-- Lawyer (off@mail.ru)


LinuxBegin.ru © 2003-2004 Valery V. Kachurov | Условия использования материалов | О проекте