Назад | Перейти на главную страницу

Установка карты последовательного ввода-вывода FreeBSD

Я пытаюсь установить последовательную карту ввода-вывода PCI в коробку FreeBSD 9.1 (предварительная версия). У меня не было успеха в часы работы. Я перекомпилировал ядро, используя параметры puc и COM_MULTIPORT. Безуспешно.

Это результат "pciconf -l | grep ^ none":

none0@pci0:0:9:0:       class=0x070002 card=0x32534348 chip=0x32534348 rev=0x10 hdr=0x00
none1@pci0:0:17:5:      class=0x040100 card=0x45521106 chip=0x30591106 rev=0x50 hdr=0x00

Если мы переведем часть сообщения, мы получим следующее:

none0@              no driver attached
pci0:0:9:0:         location of the card (on the PCI bus)
class=0x070002      This seems to indicate serial IO cards
card=0x3253 4348    4348 indicates Nanjing Qin Heng Electronics Co. Ltd ( http://wch.cn )
                    The PCI database identifies 0x3253 as a 
                    "Placa PCI serial paralela multiserial"

Другими словами, мы знаем, что это за карта. Но ваше ядро ​​его не распознало. Не распознав этого, правильный драйвер не был загружен.

Отсюда есть три возможных решения:

  1. Найдите правильный драйвер (часто через веб-сайт производителя) и используйте его.
  2. Или обновите ядро ​​до версии, которая понимает это устройство
  3. Или напишите свой драйвер.

3) Работы много.

2) Проще всего обновить ядро, но вы уже используете самое последнее, не текущее ядро. Вы можете попробовать 10 / ток, но я сомневаюсь, что это сработает. Тем не менее, стоит попробовать.

Или измените исходный код ядра. Скачайте, если у вас его еще не было, тогда:
cd /usr/src/sys/dev/uart/ vim uart_bus_pci.c /TOPIC Semiconductor TP560 56k modem (ищет вперед до строки, содержащей Модем TOPIC Semiconductor TP560 56k )

Добавьте строку, отмеченную плюсом. (используйте i войти в режим вставки)

 { 0x151f, 0x0000, 0xffff, 0, "TOPIC Semiconductor TP560 56k modem", 0x10 },
+{ 0x4348, 0x3253, 0xffff, 0, "WinChipHead Dual Port RS-232", 0x10 },
 { 0x9710, 0x9820, 0x1000, 1, "NetMos NM9820 Serial Port", 0x10 },

Сохранить (Escape:wq)

Перекомпилируйте ядро. Вы уже сделали это с параметрами puc и COM_MULTIPORT, поэтому знаете, как это делается. Для других читателей с подобными проблемами см. http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-building.html

Если все пойдет хорошо, ядро ​​теперь [пытается] прикрепить драйвер. Надеюсь, тот, который работает.
Последнее не гарантируется, поскольку не все последовательные карты используют множители одинаково.