|
Настройка модема 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).
 Дата размещения статьи: 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) |
|