Возникла необходимость в подключении 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 |
Последние комментарии
1 год 15 недель назад
1 год 40 недель назад
3 года 40 недель назад
4 года 10 недель назад
4 года 33 недели назад
4 года 49 недель назад
4 года 49 недель назад
5 лет 4 дня назад
5 лет 12 недель назад
5 лет 16 недель назад