Возникла необходимость в подключении ZyXEL OMNI 56K USB Plus EE к серверу под управлением FreeBSD. Подключается он по интерфейсу USB.
Перелопатив в Интернете массу информации, так и не нашел "хау ту", как его подключить. Были посты только по подключению данного модема к серверам под управлением Linux.
В основном же, все советы сводились к тому, что необходимо поменять этот модем на такой же, но с подключением через COM-порт, что, конечно же, не очень устраивает.
На официальном сайте ZyXEL драйвера тоже нашлись только под Windows-системы. Пришлось "копать" наобум...
Итак, имеется система с установленной FreeBSD 8.1 Release:
# uname -a FreeBSD router.office 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Aug 23 04:33:46 ICT 2010 root@router:/usr/obj/usr/src/sys/Router amd64 |
Ядро собрано без поддержки USB, поэтому, чтобы не пересобирать ядро еще раз, подгрузим необходимые модули. Загрузим модуль поддержки шины USB:
# kldload /boot/kernel/usb.ko |
Потом загружаем модуль хост-контроллера UHCI:
# kldload /boot/kernel/uhci.ko |
После этого можно наблюдать то, как проинициализировались устройства на USB-шине (данные валятся в /var/log/messages):
Aug 25 19:52:19 router kernel: uhci0: <Intel 82801G (ICH7) USB controller USB-A> port 0xd400-0xd41f irq 23 at device 29.0 on pci0 |
Следующим шагом будет загрузка модуля модуля поддержки USB-модемов:
# kldload /boot/kernel/umodem.ko |
Кстати, он автоматически подгружает зависимый модуль ucom.ko. В результате наблюдаем следующие сообщения в логах:
Aug 25 20:09:21 router kernel: umodem0: <ZyDAS > on usbus1 |
Также, можно воспользоваться командой usbconfig, чтбы узнать что за устройство висит на шине:
# usbconfig -u 1 -a 2 |
В результате этих "танцев с бубном" появляется устройство /dev/cuaU0, что и требовалось доказать. Теперь только осталось проверить работу устройства. Для этого воспользуемся утилитой minicom:
# minicom Добро пожаловать в minicom 2.4 ПАРАМЕТРЫ: I18n Нажмите CTRL-A Z для получения подсказки по клавишам |
Необходимо minicom на работу с портом USB. Для этого сочетанием клавиш CTRL+O вызываем меню конфигурации:
+-----------[конфигурация]-----------+ | Каталоги и файлы | | Протоколы | | Настройка последовательного порта | | Модем и дозвон | | Экран и клавиатура | | Сохранить настройки как dfl | | Сохранить настройки как... | | Выход | +------------------------------------+ |
Клавишами навигации (вверх-вниз), выбираем пункт "Настройка последовательного порта", и жмем клавишу "Enter":
+-----------------------------------------------------------------------+ | A - Последовательный порт : /dev/cuau0 | | B - Размещение lock-файла : /var/spool/lock | | C - Программа при выходе : | | D - Программа при запуске : | | E - Скорость/Чётность/Биты : 57600 8N1 | | F - Аппаратное управление потоком : Да | | G - Программное управление потоком : Нет | | | | Какую настройку изменить? | +-----------------------------------------------------------------------+ |
Жмем клавишу "А" и прописывем последовательный порт как /dev/cuaU0 и жмем "Enter", потом жмем клавишу "Е" и в открывшемся окне еще раз "Е", устанавливая етим самым максимальную скорость обмена с портом - 115200. Возвращаемся в minicom, и набираем волшебную команду - ATZ:
ATZ OK |
В ответ получаем ответ от модема - OK, что подтверждает, что модем "на связи" и ожидает команд.
Последний штрих - добавим автоматическую загрузку модулей после запуска системы:
# echo 'usb_load="YES"' >> /boot/loader.conf |
Последние комментарии
21 неделя 6 дней назад
46 недель 19 часов назад
2 года 46 недель назад
3 года 16 недель назад
3 года 39 недель назад
4 года 2 недели назад
4 года 3 недели назад
4 года 6 недель назад
4 года 18 недель назад
4 года 22 недели назад