15. Подключение
оборудования
Общие сведения
При начальной загрузке
настольной ОСРВ QNX Neutrino сперва запускается программа распознавания устройств (device enumerator) —
управляющая программа, которая обнаруживает большинство из
подключенных аппаратных устройств. Служба распознавания
устройств загружает набор конфигурационных файлов из
каталога /etc/system/enum/devices, в которых определено, что
должна делать система (например, запускать конкретный
драйвер), когда добавляется или удаляется оборудование.
Конфигурационные файлы
службы распознавания устройств при необходимости можно
редактировать. Более подробные сведения приведены в разделе 8 и в подразделе о enum-devices в руководстве "Описание
программы. Часть 1. Справочник по утилитам" КПДА.10964-01 13
01.
В системе на основе
встраиваемой ОСРВ QNX Neutrino обычно входит вполне
определенный набор оборудования, поэтому при загрузке
системы, скорее всего, можно беспрепятственно запустить
соответствующие драйверы.
Список поддерживаемого на
текущий момент оборудования можно найти в разделе Community
на сайте http://www.qnx.com. На этих Web-страницах
приводится список наборов микросхем и оборудования, которые
тестировались на совместимость с ОСРВ QNX Neutrino. Однако
во многих случаях оказывается, что при небольших изменениях
в составе набора микросхем драйверы продолжали успешно
работать, даже если измененные компоненты набора
отсутствовали в списке. Часто имеет смысл для конкретного
набора микросхем просто попробовать, работает ли драйвер с
вашим оборудованием. Правда, будьте готовы к тому, что это
оборудование может вести себя не так, как ожидается.
Примечание. В
настоящее время ОСРВ QNX Neutrino не поддерживает работу со
средствами хранения на магнитных лентах.
Информация данного раздела
потребуется вам в том случае, если служба распознавания
устройств не сможет обнаружить какое-то системное устройство
или вы хотите вручную выполнить конфигурирование статических
устройств встраиваемой системы.
Примечание.
-
Для запуска
любого драйвера нужно войти в систему под учетной
записью root.
-
До запуска
ОСРВ QNX Neutrino проверьте, чтобы в BIOS была отключена
функция PnP-aware OS.
Устройства PCI/AGP
Если вы не знаете тип
используемого контроллера, то для его идентификации можно
воспользоваться утилитой pci:
pci –vvv | less
В результате работы этой
команды вы получите, например, следующий результат.
Class
= Mass Storage (IDE)
Vendor ID = 8086h, Intel
Corporation
Device ID = 7111h, 82371AB/EB
PIIX4 IDE Controller
PCI index = 0h
Class Codes = 010180h
Revision ID = 1h
Bus number = 0
Device number = 4
Function num = 1
Status Reg = 280h
Command Reg = 5h
I/O space access enabled
Memory space access disabled
Bus Master enabled
Special Cycle operations ignored
Memory Write and Invalidate
disabled
Palette Snooping disabled
Parity Checking disabled
Data/Address stepping disabled
SERR# driver disabled
Fast back-to-back transactions
to different agents disabled
Header type = 0h
Single-function
BIST = 0h Build-in-self-test
not supported
Latency Timer = 20h
Cache Line Size= 0h
PCI IO Address = d800h length
16 enabled
Max Lat = 0ns
Min Gnt = 0ns
PCI Int Pin = NC
Interrupt line = 0
Device Dependent Registers:
0x40: 07 c0 03 80 00 00 00 00 05
00 02 02 00 00 00 00
0x50: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0x60: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0x70: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0x80: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0x90: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0xA0: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0xB0: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0xC0: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0xD0: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0xE0: 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00
0xF0: 00 00 00 00 00 00 00 00 30
0f 00 00 00 00 00 00
Найдите запись
для необходимого устройства, и вы сможете выяснить
конкретные данные относительно идентификаторов
производителя/продавца и устройства. Для идентификации
устройства можно воспользоваться поиском по ключевым словам
(например, Audio).
Необходимую информацию можно
найти на сайте производителя или воспользоваться
идентификаторами Vendor ID и Device ID для установления
перекрестных ссылок в файле /usr/include/hw/pci_devices.h. Можно также поискать
нужную информацию на сайте http://www.pcidatabase.com/.
Устройства CD-ROM и DVD
Обычно CD и DVD-устройства
подключаются к шине SCSI или EIDE (АТА). Выбор драйвера
зависит от типа шины. Проверьте, чтобы оборудование было
правильно установлено и чтобы оно правильно распознавалось в
BIOS. Если CD-дисковод подключен к шине EIDE, то просто
используйте драйвер devb-eide. Если дисковод работает с
шиной SCSI, то нужно указать необходимый драйвер для
интерфейса SCSI (см. подразд. "Жесткие диски" далее в
этом разделе).
Разделяемый объект
cam-cdrom.so загружается драйвером по умолчанию, он
обеспечивает общий метод доступа для устройств CD-ROM. В
зависимости от того, какой драйвер запущен, загружается один
из следующих объектов:
• fs-cd.so
— поддержка CD-ROM (файловая система ISO-9660)
• fs-udf.so
— поддержка CD-ROM (файловая система ISO-9660) и DVD-ROM
(файловая система Universal Disk Format)
Примечание.
fs-cd.so
исключает fs-udf.so.
Устройства CD-ROM и DVD-ROM
указываются в каталоге /dev, как /dev/cdx, где x –
количество приводов, начиная с 0.
Простое монтирование
приводов с указанием типа файловой cd или udf. Например:
mount
-t cd /dev/cd0 /fs/cdrom
mount
-t udf /dev/cd0 /fs/dvdrom
При замене
дисков нет необходимости в перемонтировании привода. Для
более подробной информации о специальных опциях см. cam-cdrom.so,
fs-cd.so
и fs-udf.so
в справке по утилитам.
Приводы DVD RAM могут быть
интерпретированы, как жесткие диск. Они отображаются в
каталоге /dev, как CD, но при этом их можно монтировать и
использовать как жесткие диски – см. подраздел «Жесткие
диски» далее.
Дисководы для гибких дисков
Драйвером дисковода для гибких дисков
является devb-fdc. Для использования гибких
дисков необходимо разрешить в BIOS работу контроллера гибких
дисков, а также задать в BIOS конфигурацию правильного типа
дисковода (например, 1.44MB/2.88MB). По умолчанию драйвер
использует следующие настройки:
Если для
контроллера используются другие адреса, то нужно внести
соответствующие изменения в начальные установки драйвера.
Примечание. Размер кэша по умолчанию
задается параметром модуля io-blk.so в размере 15% от объема
системной памяти, что даже избыточно для драйвера devb-fdc. Возможно, вы захотите
уменьшить это значение до разумных пределов таким образом:
devb-fdc
blk cache=128K &
По умолчанию
распознавание устройств драйвером devb-fdc не
запускается (см. подразд. «Распознавание устройств»
раздела «Загрузка образа QNX Neutrino»). Если в системе
есть привод для гибких дисков, драйвер можно запустить
вручную или раскомментировать строку devb-fdc в файле
/etc/system/enum/devices/block.
Драйвером создается запись /dev/fdx, где x — порядковый номер
дисковода гибких дисков, начиная с 0. Если такая запись не
появляется, то, возможно, сделаны неправильные установки в
BIOS или есть какие-то проблемы с контроллером. Для
прояснения вопроса проверьте информацию, выдаваемую утилитой
sloginfo.
После появления записи в
каталоге /dev нужно смонтировать дисковод
для гибкого диска. Команда mount определяет тип используемой
файловой системы (DOS, QNX 4), но его также можно явно
указать в командной строке.
mount -tdos /dev/fdO
/fs/dos_floppy
Используйте команду mkdosfs для форматирования гибких и
жестких дисков DOS. Данная утилита поддерживает FAT 12/16/32.
mount -tqnx4 /dev/fdO
/fs/qnx_floppy
При замене
дисководов гибких дисков выполнять команду перемонтирования
устройства не требуется.
Примечание. Не
вытаскивайте дискету в момент чтения или записи данных.
Приводы гибких дисков работают медленнее жестких дисков,
поэтому приходится ждать некоторое время окончания операции.
Перед вытаскиванием дискеты убедитесь, что индикатор работы
дисковода погас.
Жесткие диски
По умолчанию, ОСРВ QNX
Neutrino детектирует контроллеры дисков, установленные в
системе, и запускает соответствующие драйверы.
В такой системе драйверы
блочных устройств ввода/вывода запускаются утилитой diskboot, включенной в образ ОС.
Если вы хотите изменить порядок запуска драйверов, нужно
изменить образ начального запуска и ключи запуска программы
diskboot. Например:
diskboot -о devb-eide,blk
cache=30m
Более подробные
сведения приведены в разделе 8 и в руководстве "Описание
программы. Часть 1. Справочник по утилитам" КПДА.10964-01 13
01, в подразделе о diskboot.
Устройства EIDE
Для интерфейсов EIDE используется
драйвер devb-eide, который по умолчанию
автоматически обнаруживает интерфейс и подключенные к нему
устройства. В драйвер, кроме поддержки стандартных режимов
программируемого ввода/вывода (Programmed Input/Output,
PIO), включена поддержка режимов UDMA (Ultra Direct Memory
Access, ускоренный прямой доступ в память). В список
поддерживаемого оборудования входят адаптеры и соответствующие
функции для них (см. разд. "Общие сведения" ранее в этом
разделе).
Драйвер devb-eide можно запускать без ключей
и по умолчанию системный контроллер EIDE будет обнаружен
автоматически:
devb-eide &
После запуска
драйвера автоматически обнаруживаются все устройства,
подключенные к контроллеру EIDE. Для каждого устройства
создается запись в каталоге /dev (например, жесткий диск
появляется как hdx, где x — порядковый номер
устройства, начиная с 0).
Например, пусть в системе
имеются два установленных жестких диска. В каталоге /dev драйвер создает следующие
записи:
Если в системе установлены
один жесткий диск и CD-ROM, то записи будут выглядеть так:
Примечание.
При наличии ведомого диска в системе обязательно должен
присутствовать ведущий диск.
При запуске драйвера на
консоль выводится тип обнаруженного оборудования, а также
другая отладочная информация, которая пересылается в
системный журнал slogger. Для просмотра журнала
служит утилита sloginfo.
Примечание. В информации, выводимой
утилитой sloginfo, может встретиться
некоторое число записей вида ASC_MEDIA_NOT_PRESENT. Драйвер выводит такие
записи в журнал в тех случаях,
когда в приводе CD-ROM отсутствует компакт-диск. Такие
записи можно игнорировать.
Устранение
неисправностей
драйвера devb-eide
Если драйвер не обнаруживает
интерфейс или подключенный к нему дисковод, попробуйте
применить приведенные далее действия.
Даже при
отсутствии интерфейса в списке поддерживаемых контроллер
EIDE может работать в стандартном режиме с программируемым
вводом/выводом (PIO), который работает более медленно, но
практически во всех случаях.
-
Проверьте правильность установок интерфейса в
BIOS, а также правильность идентификации дисков в BIOS.
-
Проверьте правильность назначения дисков.
Согласно стандарту ATAPI, для каждого ведомого диска
обязательно должен присутствовать ведущий диск. Не может
быть двух ведущих или двух ведомых дисков.
-
Убедитесь в
правильной работе разъема электропитания.
-
В конфигурационном файле драйвера должен быть
указан идентификатор устройства и идентификатор
продавца.
-
В конфигурационном файле драйвера devb-eide должны быть указаны
адрес порта ввода/вывода и номер прерывания IRQ.
Вы можете столкнуться и с
другими проблемами. Ниже даны рекомендации, что при этом нужно
делать.
-
При зависании драйвера отключите режим
управления шиной busmastering (например, командой devb-eide
eide nobmstr).
-
Если по команде sloginfo вы видите записи: eide_transfer_downgrade:
UDMA CRC error (downgrading to MDMA), уменьшите номер режима
передачи и проверьте кабели.
-
Если по команде sloginfo вы видите записи: eide_timer: timeout
path XX, device XX, проверьте, что
драйвером используется правильное прерывание, уменьшите
номер режима передачи и проверьте кабели.
-
Если при конфигурировании PCMCIA-диска
использовались смежные адреса отображения ввода/вывода,
т. е. 0x320 (а не 0x1f0, 0x170), задайте адрес
управляющего блока (control block address) интерфейса.
Адрес управляющего блока имеет смещение 12 относительно
базы. Если интерфейс PCMCIA размещен на порте
ввода/вывода с адресом 0x320 и использует прерывание
IRQ 7, то задайте такую строку:
devb-eide eide
ioport=0x320:0x32c,irq=7,noslave
-
Если устройства поддерживают
режим UDMA 4 или выше, но по команде sloginfo выдается, что драйвер
использует режим с меньшим номером, убедитесь, что вы
используете 80-контактный кабель.
-
Если у вас подключен 80-контактный кабель,
устройства поддерживают режим UDMA 4 или выше, но по
команде sloginfo выдается, что драйвер
использует режим с меньшим номером, то, возможно, дело в
устаревшей версии микропрограммного обеспечения
(firmware) устройства.
При определении
типа кабеля драйвер использует данные, предоставляемые
микропрограммным обеспечением устройства. Необходимо
убедиться в том, что производитель произвел обновление
микропрограммного обеспечения. Для переопределения режима
можно также использовать ключ udma=xxx в командной строке.
Например:
devb-eide eide
vid=0x8086,did=0x2411,pci=0,chnl=1,master=udma=4
Если дисководы успешно обнаружены, но работают медленно,
попробуйте следующие действия.
-
Используйте команду sloginfo, чтобы проверить
информацию, выдаваемую драйвером devb-* в системный журнал. Эта
информация позволит установить текущую скорость работы
драйвера (например, max
udma 5, cur udma 3).
Примечание.
В ОСРВ QNX Neutrino автоматически используется максимальное
значение для режима UDMA, если в BIOS это максимальное
значение не задано.
В табл. 15.1 указаны
максимальные номера режимов и скоростей для каждого типа
дискового интерфейса. Для режимов PIO, MDMA и режимов UDMA с
меньшими номерами используется 40-контактный кабель. Для
режимов UDMA с большими номерами требуется 80-контактный
кабель.
Примечание. Под
максимальной скоростью понимается максимальная теоретическая
пропускная способность интерфейса при пиковых нагрузках
(burst interface throughput). Пропускная способность для
продолжительной нагрузки (sustained throughput) зависит от
многих факторов, например от размера кэша дисковода,
скорости вращения диска, от шины PCI и от файловой системы.
Не следует ожидать от дисковода, работающего в режиме
UDMA-6, пропускной способности для продолжительных сигналов,
равной 100 Мбайт/с.
Таблица 15.1
|
Стандарт
|
PIO
|
MDMA
|
UDMA
(40 контактов)
|
UDMA (80 контактов)
|
Макс. скорость,
Мбайт/с
|
ATA
|
0
|
0
|
Не используется
|
Не используется
|
4
|
ATA 2
|
4
|
2
|
Не используется
|
Не используется
|
16
|
ATA 3
|
4
|
2
|
Не используется
|
Не используется
|
16
|
ATA 4
|
4
|
2
|
2
|
Не используется
|
33
|
ATA 5
|
4
|
2
|
2
|
4
|
66
|
ATA 6
|
4
|
2
|
2
|
5
|
100
|
ATA 7
|
4
|
2
|
2
|
6
|
133
|
-
Проверьте, действительно ли подсоединяемое
устройство предназначено для работы в данном режиме
UDMA.
-
Проверьте назначение первичного/вторичного и
ведущего/ведомого устройств на интерфейсе. Например,
установка двух жестких дисков на первичном и вторичном
интерфейсах вместо ведущего/ведомого на первичном
интерфейсе может привести к параллелизму в работе
драйвера.
Устройства для шины SCSI
Интерфейс малых компьютерных
систем SCSI (Small Computer Systems Interface), по сути,
является еще одной шиной, к которой можно подключать
несколько периферийных устройств. В ОСРВ QNX Neutrino
поддерживаются многие типы SCSI-адаптеров разных
производителей (см. описание devb-* в справочнике по
утилитам).
Когда запускается драйвер
шины SCSI, то происходит сканирование шины для обнаружения
подключенных устройств. Когда драйвер обнаруживает
поддерживаемое устройство, в каталоге /dev для него создается
соответствующая запись (например, hdx для жесткого диска, где x — порядковый номер
диска, начиная с 0).
Если драйвер не обнаруживает
никаких устройств, то, возможно, причина в том, что адаптер
имеет неизвестный идентификатор устройства (ID). Обычно
проблему можно разрешить, если драйверу передается
необходимый идентификатор устройства или продавца. Для
резидентной системы передача этих параметров происходит
через процедуру diskboot (см. раздел 8).
В приводимом далее примере
драйвер выполняет автоматическое сканирование подключенных
SCSI-устройств и добавляет записи о найденных устройствах в
каталог /dev. Например, если в системе
присутствуют четыре жестких диска, то записи о них будут
иметь вид:
При запуске
драйвера в системный журнал посылается отладочная
информация. Ее можно просмотреть с помощью утилиты sloginfo. Записи в этом журнале
могут оказаться очень полезными, когда вы пытаетесь выяснить
причину проблемы с SCSI-адаптером или SCSI-устройством.
Если драйвер неправильно
обнаруживает устройства, то нужно выполнить перечисленные
далее проверки.
-
Правильно ли установлен терминатор шины SCSI?
Это часто является причиной того, что устройство
показывается неправильно, появляется, а затем исчезает
либо оказывается вовсе невидимым.
-
Поддерживается ли данный тип SCSI-адаптера?
Даже если заявлено, что адаптер совместим с
поддерживаемым типом, это не означает, что драйвер с
этим адаптером будет работать правильно. Совместимость
не означает идентичность. Для полной уверенности
посмотрите, есть ли на нашем сайте идентификатор данного
адаптера (см. также разд. "Общие сведения" ранее в
этом разделе).
-
Проверьте, правильно ли распознаются
SCSI-устройства в BIOS?
Если эти
устройства там распознаются нормально, значит, их установки
сделаны правильно, и у них нет конфликтующих
идентификаторов. Это можно проверить, загрузив другую
операционную систему. Если при ее загрузке все устройства
правильно обнаруживаются и не выводятся никакие сообщения об
ошибках, значит, все устройства подключены правильно.
Помните о том, что при
неправильной установке терминаторов SCSI-цепочки устройство
может обнаруживаться в цепочке, но при его работе, скорее
всего, будут возникать проблемы. Каждое устройство в
SCSI-цепочке должно иметь уникальный идентификационный номер
между 1 и максимальным значением, поддерживаемым адаптером
(узнайте это значение из пользовательского руководства
адаптера). Если два устройства имеют один и тот же
идентификатор, то одно из них или оба будут работать
неправильно либо они не будут распознаваться компьютером.
-
Нет ли проблем с PCI-мостом? Попробуйте
переставить плату SCSI-адаптера
в другое гнездо шины PCI. Иногда проблемы с PCI-мостом в
ОСРВ QNX Neutrino могут мешать правильному подключению к
адаптеру. Это связано с тем, что в ОСРВ QNX Neutrino не
поддерживаются мосты с типом "other" ("другой").
-
Есть ли в BIOS установка для функции PnP-aware
OS? ОСРВ QNX Neutrino не поддерживает эту функцию.
-
Нужен ли для правильной работы адаптера или
цепочки внешний источник электропитания? В этом случае,
даже если устройство имеет внешний источник, оно не
сможет взаимодействовать с компьютером, если
SCSI-адаптер не имеет своего питания.
-
Проверьте тип кабеля SCSI. Имеется несколько
типов кабелей, и выбор конкретного типа кабеля зависит
от типа подключаемого адаптера.
Убедитесь в
том, что нет погнутых контактов в разъеме кабеля. Если вы
используете специальный адаптер для согласования, например,
шин SCSI 2 и SCSI 3, то проверьте, чтобы этот адаптер
соответствовал рекомендованному для вашего оборудования
типу. Не все адаптеры осуществляют корректно такое
согласование.
Примечание. В
операционной системе QNX 4 драйверы SCSI не поддерживают
устройства с идентификатором более 6. Для ОСРВ QNX Neutrino
такой проблемы не существует.
Максимальная скорость работы
SCSI-устройства соответствует максимальной теоретической
пропускной способности интерфейса для пиковых нагрузок. Как
указывалось ранее, пропускная способность для
продолжительных нагрузок зависит от многих факторов.
Устройства типа SCSI RAID
В настоящее время в ОСРВ QNX
Neutrino поддерживается оборудование типа RAID (Redundant
Arrays of Independent Disks, избыточные массивы независимых
дисков). Существует много типов сторонних производителей
дисков SCSI RAID, которые можно использовать в ОСРВ QNX
Neutrino. Информацию о них можно найти в Интернете.
Устройства типа LS-120
Устройство LS-120 — это
дисковод типа SuperDisk, в котором используется новая
технология, позволяющая существенно улучшить
позиционирование головок, что приводит к повышению емкости
дискет до 120 Мбайт — значительно больше емкости
обычных дискет формата 3,5". В ОСРВ QNX Neutrino устройство
LS-120 воспринимается как диск стандарта EIDE.
Устройства типа ORB
В дисководе типа ORB используются для работы
специальные сменные дискеты формата 3,5", работающие с высокой
скоростью и имеющие большую емкость. Дисковод подключается к
интерфейсу EIDE (ATA). Проверьте правильность подключения
оборудования и правильное распознавание этого оборудования в
BIOS. Дисководы типа ORB просто устанавливать, запись о них
появляется в каталоге /dev как запись о жестком диске.
Например:
Для монтирования дисковода
типа ORB используется команда:
mount /dev/hd1 /fs/orb_drive
При смене дисков не требуется производить операцию
перемонтирования.
Диски типов Zip и Jaz
Дисководы типов Zip и Jaz используют для работы специальные сменные
диски, имеющие большую емкость. Диски используются для
резервного копирования содержимого жестких дисков и для
транспортировки файлов большого размера. Дисководы
подключаются к интерфейсу EIDE (ATA). Перед началом
использования дисководов проверьте правильность их
подключения и правильное распознавание этого оборудования в
BIOS. Дисководы типа ORB просто устанавливать, запись о них
появляется в каталоге /dev как запись о жестком диске.
Например:
Для
монтирования дисковода типа Zip используется команда:
mount /dev/hd1 /fs/zip_drive
При смене дисков не требуется производить операцию
перемонтирования.
Магнитооптические
диски
Дисководы магнитооптических
(МО) дисков обычно подключаются к шине SCSI или EIDE (ATA).
Перед началом использования дисководов проверьте
правильность их подключения и правильное распознавание этого
оборудования в BIOS.
Тип драйвера зависит от
того, подключается ли дисковод к интерфейсу SCSI или ЕIDЕ.
Если используется интерфейс SCSI, то нужно определить для
него соответствующий драйвер. Для интерфейса ЕIDЕ подходит
драйвер devb-eide. Более подробно об этом
сказано в разд. "Жесткие
диски" ранее в этом разделе.
Драйверы для оптических
дисков загружают разделяемый объект cam-optical.so, который
обеспечивает метод прямого доступа для оптических дисков.
Запись о магнитооптическом
диске появляется в каталоге /dev в виде /dev/mox, где x — порядковый номер
диска, начиная с 0.
Для монтирования дисковода
магнитооптических дисков используется команда:
mount /dev/mo0 /fs/mo_drive
При смене
дисков не требуется производить операцию перемонтирования.
Виртуальные диски
Виртуальный диск – это
область памяти, выглядящая как жесткий диск. Виртуальный
диск в системе можно создать с использованием devb-ram,
но это виртуальный диск с функционалом блочной файловой
системы; по умолчанию, он инициализируется и форматируется в
файловую систему QNX4 (если не указана опция ram nodinit).
Примечание. По
умолчанию, io-blk.so выделяет 15% системной памяти под кеш.
Драйвер devb-ram взаимодействует с io-blk.so также как любой
другой драйвер диска, хотя в этом случае кеш не требуется.
Чтобы установить минимальный объём кеш, можно указать опцию
blk cache=512k.
Существует более удачный
способ создания виртуального диска, для этого надо указать
опцию blk ramdisk=... В результате будет создан внутренний
псевдодиск, с которым io-blk.so работает без кеширования и
будет использоваться секторы размером 4 кб.
При использовании одного из
devb-* драйверов, можно скомбинировать псевдодиск с ним
(указав, например, опцию blk ramdisk=10m).
Если действительно
необходимо использовать devb-ram, чтобы он также предоставил
внутренний песевдодиск, то применяется, например, следующая
команда:
devb-ram
disk name=ram ram capacity=0,nodinit blk
ramdisk=10m,cache=0,vnode=256
В этом случае,
надо игнорировать устройство /dev/ram1 нулевого размера,
которое создаёт devb-ram, и работать с устройством
/dev/ram0, которое предоставляется io-blk.so. Необходимо
проинициализировать псевдодиск перед первым использованием,
например:
dinit /dev/ram0
mount -tqnx4
/dev/ram0
Такой подход увеличивает производительность поскольку
исключает двойное копирование в памяти, не использует кеш и
оперирует размер секторов 4 кб, что уменьшает накладные
расходы.
Устройства
ввода информации
Для управления
вводом в графической оболочке Photon используется набор
драйверов devi-*. В зависимости от
присоединенного устройства ввода применяется соответствующий
драйвер. В оболочке Photon может использоваться либо только
мышь, либо мышь и клавиатура, либо одновременно несколько
мышей (при условии, что для этого есть место).
Утилита inputtrap автоматически обнаруживает
базовые устройства ввода (за исключением клавиатуры и мыши,
подключенных через интерфейс USB). Эта утилита запускается в
оболочке Photon после запуска графических адаптеров.
Вместо процедуры
автоматического обнаружения устройств вы можете создать файл
входного системного прерывания (input trap file), /etc/system/trap/input.имя_хоста (это место расположения
файла по умолчанию, при необходимости его можно изменить).
Каждая строка этого файла инициирует запуск драйвера:
kbd fd -d/dev/kbd ps2
mousedev
Мыши и клавиатуры
Для мыши и клавиатуры используется один и тот же
драйвер devi-hirun. Тип подключенной к системе
мыши определяет необходимый набор используемых параметров. Для
последовательной мыши надо задать правильный протокол
(например, протокол Microsoft Mouse).
Обнаружение клавиатуры
происходит при ее подключении к таким интерфейсам:
Если утилита inputtrap обнаруживает наличие
последовательной мыши типа Microsoft и клавиатуры, файловый
дескриптор, полученный при открытии файла /dev/kbd, то запуск драйвера devi-hirun производится следующим
образом:
devi-hirun kbd fd -d/dev/kbd
msoft fd &
Если утилита inputtrap обнаруживает наличие мыши
типа PS/2, подключенной к дополнительному порту контроллера
клавиатуры (mousedev), а клавиатура подключена
через первичный порт контроллера клавиатуры (kbddev), то запуск драйвера devi-hirun производится следующим
образом:
devi-hirun kbddev ps2 mousedev
&
После запуска мыши ее
поведение можно изменить с помощью утилиты конфигурирования
входных устройств (Input configuration utility) графической
оболочки Photon. Эта утилита запускается либо из командной строки
посредством команды input-cfg, либо на системной панели
выбирается пункт Mouse, либо выбирается пункт меню Launch→Configure→Mouse.
Драйвер
devc-con-hid поддерживает USB-клавиатуру в текстовом режиме
(devc-con
не поддерживает). Графическая оболочка Photon поддерживает
USB мыши и клавиатуры; более подробную информацию см. в
подразделе “Устройства USB” далее в этом разделе.
Сенсорные экраны
В ОСРВ QNX Neutrino осуществляется
поддержка различных типов сенсорных экранов (touchscreen).
Обратитесь к списку поддерживаемого оборудования на нашем
сайте, чтобы узнать, какой драйвер нужно использовать. См.
также описание devi-*в справочнике по утилитам. Определите,
какие параметры нужно задать для установки устройства, а
затем запустите нужный драйвер. Например, драйвер для
сенсорного экрана типа Dynapro SC4 запускается следующим
образом:
devi-dyna
dyna -4 fd -d/dev/ser1 &
По этой команде
запускается драйвер devi-dyna с помощью протокола SC4 (-4) и файлового дескриптора,
ассоциированного с последовательным портом 1 (fd -d/dev/ser1).
При первом запуске драйвер
возвращает сообщение об ошибке, где сказано о невозможности
прочитать калибрационный файл. Для калибровки сенсорного
экрана после запуска оболочки Photon можно использовать
утилиту calib.
Звуковые
карты
Звуковая карта обнаруживается операционной
системой по умолчанию. При запуске ОС служба распознавания
устройств идентифицирует карту и для ее запуска используется
драйвер io-audio. В ОСРВ QNX Neutrino
драйверы звуковых карт инициализируются очень просто. При
запуске драйвера io-audio для него можно использовать
ключ -d:
io-audio -vv -d audiopc &
Ознакомиться с другими ключами
запуска можно в руководстве "Описание программы. Часть 1.
Справочник по утилитам" КПДА.10964-01 13 01, в описании
утилиты io-audio, а также в описании
конкретной звуковой карты.
Если операционная система
определяет звуковую карту неправильно, то драйвер можно
запустить вручную. Для этого нужно вначале идентифицировать
карту. Список поддерживаемого оборудования можно найти на
нашем сайте (см. также подразд. "Общие сведения"
ранее в этом разделе).
Карты для шины ISA
Карты для шины ISA могут как
поддерживать, так и не поддерживать стандарт Plug and Play
(PnP). Устройства, не поддерживающие этот стандарт, обычно
устанавливаются вручную. Для идентификации устройства нужно
иметь его описание или получить информацию у производителя
(например, на его сайте). В настоящее время в ОСРВ QNX
Neutrino нет утилиты, которая выдает список всех установленных
в системе устройств типа ISA.
Карты, не
поддерживающие стандарт PnP
Для карт, не поддерживающих
стандарт PnP, нужно вручную запускать драйвер, указывая адрес
порта ввода/вывода (I/O), номер прерывания IRQ и номер канала
DMA. Например, для запуска драйвера звуковой карты Sound
Blaster используется такая команда:
io-audio
-dsb ioport=порт,irq=прерывание,dma=канал,dma1=канал &
Для определения
значений, которые нужно задать для порта ввода/вывода и
номера прерывания, нужно визуально исследовать саму плату.
Затем надо запустить драйвер, используя конфигурационные
установки карты.
Проверьте, чтобы нужные вам
номера порта ввода/вывода и прерывания в BIOS были
зарезервированы для использования устройствами, не
устанавливаемыми в шину PCI. При использовании звуковой
карты типа Sound Blaster проверьте следующее:
-
если драйвер не воспринимает карту, убедитесь в
том, что заданный порт ввода/вывода не конфликтует с
другим установленным оборудованием; попробуйте изменить
значение адреса порта ввода/вывода;
-
если звук вначале появляется, а затем исчезает,
убедитесь в том, что используемый номер прерывания IRQ
не конфликтует с другим установленным оборудованием и
что он зарезервирован в BIOS; можно также попробовать
изменить номер прерывания;
-
если драйвер запускается корректно, но звук
отсутствует, проверьте на карте установки для канала
DMA, попробуйте, если возможно, изменить номер канала.
Карты,
поддерживающие стандарт PnP
Конфигурация карт для шины
ISA, поддерживающих стандарт PnP, должна производиться
службой распознавания устройств при запуске ОС. Если этого
не происходит, то, возможно, потребуется получить копию
утилиты isapnp, которая используется для
инициализации карт данного вида. Данная утилита не входит в
состав ОСРВ QNX Neutrino, но ее можно найти в свободном
доступе в Интернете.
Карты для шины PCI
Карты для шины PCI должны
нормально запускаться службой распознавания устройств. Если
звуковая карта все же не работает, попробуйте установить ее
в другое гнездо. Иногда номер прерывания IRQ, установленный
для данного гнезда, некорректно работает с выбранной
звуковой картой.
Для получения дополнительной
информации по звуковой карте используйте утилиту pci. Список поддерживаемого
оборудования можно найти на нашем сайте (см. также
подразд. "Общие сведения" ранее в этом разделе).
Карты для стандартов PCCARD и PCMCIA
В ОСРВ QNX Neutrino
поддерживаются карты типов PCMCIA 1.0/2.0 и CardBUS. По
умолчанию драйвер обнаруживает наличие контроллера шин
ISA/PCI. Если адаптер не обнаруживается, зайдите на нашу
страницу со списком поддерживаемого оборудования, чтобы
проверить, поддерживается ли набор микросхем адаптера вашей
карты. В настоящее время драйвер не позволяет задавать
значение адреса порта ввода/вывода и номер прерывания IRQ,
однако вы можете задать эти параметры непосредственно на
карты.
Если драйвер не запускается,
выполните следующее:
-
убедитесь в том, что у сервера devp-pccard свободно окно памяти по
адресу 0xD4000;
-
в настройках BIOS компьютера или ноутбука
проверьте, чтобы эта область памяти не кэшировалась или
не использовалась другим устройством;
-
проверьте, чтобы контроллер РС-карт в BIOS был
установлен в режим CardBus/16bit, а не в режим
PCIC.
Если набор
микросхем настроен на работу в режиме, совместимом с PCIC,
то работа происходит в режиме совместимости с контроллером
PCMCIA для набора Intel 82365. В таком режиме набор
микросхем невидим в пространстве PCI. Если же набор
микросхем настроен на работу в режиме CardBus/16bit, то он видим в пространстве
PCI, и набор микросхем работает как адаптер РС-карт.
Для вывода информации о
РС-карте можно воспользоваться утилитой pin. Результат вывода на экран
может выглядеть следующим образом:
# pin
Sock Func Type Flags PID Base
Size IRQ
1 Empty -----MF------ None
1 Empty -----MF------ None
2 0 Network C---I-+------ None
0x300 32 7
2 Empty ----MF--------- None
Для каждого
гнезда существуют две записи, потому что драйвер (devp-pccard) поддерживает
комбинированные карты, которые позволяют для каждого гнезда
определить две функции. В приведенном выше примере категории
означают следующее.
-
Sock — гнездо, в
которое установлена PC-карта. В примере сетевая карта
установлена в гнездо 2;
-
Func — параметр
используется, если карта является многофункциональной
PC-картой;
-
Type — метка для
функции PC-карты. Если карта является сетевой, то
в этом столбце отображается значение Network;
-
Flags — не установленные флаги обозначаются
символом -. В табл. 15.2
приводится список обозначений для установленных флагов;
Таблица 15.2
|
Флаг
|
Значение
|
С
|
Карта присутствует в гнезде
|
В
|
Батарея разряжена
|
R
|
Запланировано для конфигурирования
|
N
|
Недостаточно ресурсов для
конфигурирования карты
|
I или М
|
Карта ввода/вывода (I/O) или карта
памяти
|
F
|
Не конфигурирована
|
+
|
Окно является частью предыдущей
конфигурации
|
U
|
Данное окно невозможно блокировать
|
Т
|
Окно является временным
|
В
|
Машина загрузилась с этого устройства
|
X или W
|
Заблокировано
эксклюзивно/заблокировано для операций
чтения/записи
|
R
|
Разрешен режим "только чтение"
|
L
|
Режим обработки прерывания IRQ при
срабатывании по уровню сигнала, а не по фронту
(level-mode IRQ*)
|
S
|
Разделяемое прерывание IRQ
|
A
|
Атрибутивная
память (attribute memory**)
|
W
|
Расширенный (wide) доступ к памяти
(16-битовый)
|
* Современные контроллеры прерываний
имеют возможность переключения от срабатывания по перепаду
входного сигнала (edge triggered
interrupt mode), где входной сигнал подается прямо
на вход цифровой микросхемы, к срабатыванию по уровню
входного сигнала (level triggered interrupt mode), где сигнал с
пологими фронтами вначале проходит через формирователь типа
триггера Шмитта.
** Устройства типа РС-карт имеют два
пространства памяти: атрибутивную (attribute
memory) и общую (common memory).
-
PID — идентификатор
процесса, присоединенного к драйверу РС-карты (devp-pccard);
-
Base — базовый адрес
PC-карты. Эта информация полезна при запуске драйверов
устройств;
-
Size — число байтов в
диапазоне адресов порта ввода/вывода;
-
IRQ — номер прерывания
IRQ PC-карты. Эта информация полезна при запуске
драйверов вручную.
Устройства USB
Универсальная последовательная шина
(USB) обеспечивает интерфейс с возможностью "горячей" замены
для USB-устройств (например, сетевых адаптеров, входных
устройств, устройств символьного ввода, звуковых устройств,
хабов и т. п.). Более подробные сведения об
особенностях USB-устройств, спецификациях и др. можно
найти на сайте www.usb.org.
Если вы не знаете, какой тип
USB-устройства вы используете, то для идентификации можно
воспользоваться утилитой usb:
usb -vvv | less
Результат работы команды выглядит примерно так:
Device
Address : 1
Vendor : 0x05c7 (QTRONIX)
Product : 0x2011 (USB Keyboard
and Mouse)
Device Release : r1.12
USB Spec Release : v1.00
Serial Number : N/A
Class : 0x00 (Independent per
interface)
Max PacketSize0 : 8
Languages : 0x0409 (English)
Current Frame : 511 (1024
bytes)
Configurations : 1
Configuration : 1
Attributes : 0xa0 (Bus-powered,
Remote-wakeup)
Max Power : 50 mA
Interfaces : 2
Interface : 0 / 0
Class : 0x03 (HID)
Subclass : 0x01 (Boot interface)
Protocol : 0x01 (Keyboard)
Endpoints : Control + 1
Endpoint : 0
Attributes : Control
Max Packet Size: 8
Endpoint : 1
Attributes : Interrupt/IN
Max Packet Size: 8
Interval : 20 ms
Interface : 1 / 0
Class : 0x03 (HID)
Subclass : 0x01 (Boot interface)
Protocol : 0x02 (Mouse)
Endpoints : Control + 1
Endpoint : 0
Attributes : Control
Max Packet Size: 8
В полях
поставщика (Vendor) и продукта (Product) указываются тип устройства
и, возможно, используемый в нем набор микросхем.
Наиболее часто используются
USB-контроллеры следующих типов:
-
UHCI (Universal Host Controller Interface,
универсальный интерфейс контроллера хоста);
-
EHCI (Enhanced Host Controller Interface,
улучшенный интерфейс контроллера хоста);
-
OHCI (Open Host Controller Interface, открытый
интерфейс контроллера хоста — от сторонних
производителей).
Примечание.
Контроллер EHCI поддерживает только высокоскоростную
передачу сигналов. Для поддержки низкоскоростных или
полноскоростных устройств должен присутствовать один из
контроллеров OHCI или UHCI. Если в системе отсутствует
контроллер EHCI, то устройство будет работать на низкой
скорости.
В операционной системе
должен быть запущен стек протоколов, для того чтобы
взаимодействовать с устройствами и контроллерами USB. Для
этого необходимо выполнить следующие действия.
В документации
по оборудованию должен быть описан тип контроллера (OHCI,
UHCI или EHCI). Если вы не знаете, какой тип контроллера
используется, воспользуйтесь командой:
pci -vvv
Среди
выведенной информации отыщите запись для контроллера USB,
чтобы определить идентификаторы производителя/продавца и
устройства. Эту информацию можно найти либо на сайте
производителей (www.usb.org), либо, используя
идентификаторы продавца и устройства, на сайте http://www.pcidatabase.com/.
Коды классов,
выводимые командой pci –vvv, приведены в
табл. 15.3.
Возможно, в системе
присутствует несколько наборов микросхем, поэтому требуется
загрузить несколько драйверов.
Можно также попробовать
запустить просто один из стеков USB. Если это не
поможет, попробуйте загрузить другой стек.
Таблица 15.3
|
Код
класса
|
Тип
контроллера
|
0c0300
|
UHCI
|
0c0310
|
OHCI
|
0c0320
|
EHCI
|
-
для контроллера OHCI: devu-ohci.so;
-
для контроллера UHCI: devu-uhci.so;
-
для контроллера EHCI: devu-ehci.so.
При этом в
каталоге /dev должна быть создана запись
/dev/io-usb/io-usb.
Примечание. Если вы запускаете стек
USB и драйвер в сценарии начального запуска, проверьте,
чтобы использовалась команда waitfor, благодаря которой запись /dev/io-usb/io-usb появится прежде, чем будет
запущен драйвер. Например:
io-usb -dohci
waitfor /dev/io-usb/io-usb
devu-prn
Примечание.
Для USB-хабов драйверы не нужны. Эти устройства
поддерживаются самим стеком.
Принтеры
Для USB-принтера запустите стек USB,
а затем драйвер devu-prn. Например:
io-usb
-dohci
waitfor /dev/io-usb/io-usb
devu-prn
Мыши и клавиатуры
Дравер devc-con-hid
поддерживает USB клавиатуру в текстовом режиме (devc-con не
поддерживает). Графическая оболочка Photon поддерживает USB
Human-Interface Devices (HID) такие как клавиатура и мышь.
Для подключения к
устройствам, работающим по стандарту USB HID, необходимо
выполнить следующие действия.
io-hid
–dusb
Если в вашей системе также используются последовательные
входные устройства или устройства с интерфейсом PS/2, то
дополнительно нужно загрузить модуль devh-ps2ser.so.
devi-hid kbd [-u номер_устройства_USB] mouse
Утилита io-hid может быть запущена через
файл rс.local, но этот способ нельзя
применять для драйвера devi-hid, потому что во время
запуска системой файла rс.local оболочка Photon еще не
работает. Поэтому команду запуска драйвера devi-hid нужно включить во входной
файл системного прерывания, см. описание утилиты inputtrap в руководстве "Описание
программы. Часть 1. Справочник по утилитам" КПДА.10964-01 13
01.
В оболочке Photon после запуска устройств для
конфигурирования мыши можно использовать утилиту input-cfg. Для этого на системной
панели выберите пункт меню Launch→Configure→Mouse. Для
получения информации по устройствам с интерфейсом стандарта
HID можно воспользоваться утилитой hidview.
Сенсорные экраны
Для сенсорных экранов, подключаемых
через интерфейс USB, необходимо вначале запустить стек USB,
затем утилиту io-hid, загружающую драйвер devh-usb.so. После этого запускается
драйвер devi-microtouch:
io-hid
-dusb
devi-microtouch microtouch
touchusb
Запоминающие устройства большой
емкости
Драйвер devb-umass осуществляет поддержку
устройств, которые соответствуют стандарту Mass Storage
Class Specification для запоминающих устройств большой
емкости. Определить соответствие устройства этому стандарту
можно на основе результата, выдаваемого на консоль командой
usb -vv:
Mass
Storage Class 08h
SubClass Code Command Block
Specification
01h Reduced Block Command (RBC)
02h SFF-8020i, MMC-2 (ATAPI)
04h UFI
05h SFF-8070i
06h SCSI transparent
Protocol Code Protocol
Implementation
00h Control/Bulk/Interrupt
(with command completion
interrupt)
01h Control/Bulk/Interrupt
(with no command completion
interrupt)
50h Bulk-Only Transport
Для использования в ОСРВ QNX
Neutrino устройств памяти большой емкости, подключаемых через
интерфейс USB, нужно запустить утилиту io-usb, как описано ранее, а затем
запустить драйвер devb-umass. По умолчанию этот драйвер
создает в каталоге /dev запись для устройств
дискового типа в виде /dev/hdn, где n — порядковый номер
диска. После запуска драйвера с устройством можно работать как
с диском.
Например, для такого
устройства, использующего контроллер UHCI, нужно выполнить
команду:
io-usb
-d uhci
devb-umass cam pnp
Диагностика
неисправностей
Возможно, устройство не
соответствует стандарту Mass Storage Class Specification.
Проверьте результат вывода по команде usb -vv.
Именем по умолчанию является /dev/hdn. Можно использовать ключ name в команде cam-disk.so для переопределения префикса.
Символьные устройства
Обычные последовательные адаптеры
По умолчанию драйвер
последовательного порта автоматически обнаруживает порт
ввода/вывода и номер соответствующего прерывания IRQ. Для
стандартной PC-системы используется драйвер devc-ser8250. В документации по пакету
BSP указывается драйвер, необходимый для вашей конкретной
целевой системы.
Если драйвер не обнаруживает
все последовательные порты, проверьте, включены ли порты в
BIOS. Если порты включены, то попробуйте при запуске
драйвера указать конкретные значения для адреса порта и IRQ.
Для разделения адреса и номера прерывания используется
запятая; для разделения пар (адрес порта — номер IRQ)
вводится пробел. Например:
devc-ser8250 3f8,4 2f8,3
Примечание. Если запускается драйвер
последовательного устройства для адаптера UART или модема
при уже запущенном другом последовательном драйвере, то в
строке запуска нужно использовать ключ -u, чтобы присвоить номер
новому драйверу. Тогда этот номер будет присоединен к имени
устройства и не возникнет конфликта с существующей записью /dev/ser.
Стандартный драйвер devc-ser8250 может работать только с
протоколом RS-232. В комплекте разработчика драйверов
символьных устройств DDK (Character Driver Development Kit)
имеется исходный текст для драйвера devc-ser8250. Его можно использовать как
основу для реализации драйвера, работающего с любым другим
протоколом или реализующим другие функции.
Драйвер последовательного
порта может работать как в режиме программного, так и
аппаратного управления потоком данных.
stty
+osflow +isflow < /dev/ser1
stty
-osflow -isflow < /dev/ser1
stty
+ohflow +ihflow < /dev/ser1
stty
-ohflow -ihflow < /dev/ser1
Примечание. В режиме редактирования (-e) управление потоком
отключено. Не включайте одновременно работу с аппаратным и
программным управлением потоком.
В некоторых системах
интенсивное использование последовательного порта может быть
накладным с точки зрения производительности, поскольку по
умолчанию для каждого вводимого или передаваемого символа в
последовательном адаптере генерируется прерывание. Для
уменьшения числа генерируемых прерываний можно использовать
приводимые далее ключи:
-
-T число — включить буфер
FIFO на передачу и установить число передаваемых
символов равным 1, 4, 8 или 14 для каждого
сгенерированного прерывания на передачу. Значение по
умолчанию равно 0 (буфер FIFO отключен);
-
-t число — включить буфер
FIFO на прием и установить для него порог равным 1, 4, 8
или 14 символов. Значение по умолчанию равно 0
(генерация прерывания отключена).
Наличие
тайм-аута при приеме данных гарантирует, что символы не
будут оставаться в буфере слишком долго. Например,
устройство принимает сообщение:
Это сообщение принимается
через последовательный порт.
По умолчанию для приема
всего сообщения система должна обработать 54 запроса на
прерывание. Если вы установите уровень срабатывания буфера
приема равным 14 символам, то число обрабатываемых
прерываний снизится до четырех. Это в целом повысит
производительность системы, но платой за это будет
надежность: чем выше порог срабатывания буфера (-t), тем больше вероятность
потери данных.
Многопортовые последовательные
адаптеры
Для многопортовых последовательных
адаптеров может потребоваться вручную задавать в драйвере
для каждого порта значения адреса порта и номера прерывания
IRQ (см. примеры в предыдущем разделе). По умолчанию
драйвер должен автоматически определять адреса портов и
номера прерываний, но для некоторых многопортовых адаптеров
служба распознавания устройств не всегда корректно
идентифицирует порты.
Вы можете откорректировать
работу службы распознавания устройств, чтобы она лучше
работала с вашими многопортовыми картами и правильно делала
бы установки для каждого порта. Для этого нужно просто
отредактировать конфигурационный файл /etc/system/enum/devices/overrides. Подробнее см. описание
утилиты enum-devices в разделе 8 и в руководстве "Описание
программы. Часть 1. Справочник по утилитам" КПДА.10964-01 13
01.
Параллельные порты
В стандартном IBM-совместимом
компьютере и в некоторых системах на базе семейства x86 для параллельных портов
используется драйвер devc-par (см. документацию по пакету
BSP относительно драйвера), необходимый для работы вашей
целевой системы.
По умолчанию параллельный
порт обнаруживается драйвером автоматически. При
необходимости можно с помощью ключа -p указать адрес параллельного
порта.
Если драйвер не обнаруживает
параллельный порт, посмотрите, включен ли порт в BIOS. Если
и это не помогает, попробуйте задать порт ввода/вывода в
строке запуска драйвера.
Терминалы
В стандартном IBM-совместимом
компьютере и в некоторых системах на базе семейства x86 драйвер devc-con или devc-con-hid управляет непосредственно
физической консолью, в состав которой входят адаптер
дисплея, экран и системная клавиатура. По умолчанию
конфигурация драйвера дает возможность работы не более чем с
четырьмя виртуальными консолями: /dev/con1, ..., /dev/con4. Драйвер devc-con также является драйвером
для клавиатуры в текстовом режиме, если она подключается не
через интерфейс USB. Драйвер запускается командой:
devc-con &
Управляющая
программа devc-con-hid похожа на devc-con, но работает с
привязкой к io-hid и поддерживает PS2, USB и все остальные
устройства интерфейса пользователя.
Более подробное описание
утилиты devc-con см. в руководстве "Описание
программы. Часть 1. Справочник по утилитам" КПДА.10964-01 13
01.
Атрибуты ввода/вывода
Для установки или
отображения атрибутов ввода/вывода для символьного
устройства (tty) используется утилита stty. Более подробно о процедуре
начальной установки терминала см. в
подразд. "Поддержка терминалов" раздела 4.
Сетевые адаптеры
Для установки сетевого адаптера
выполняются следующие основные шаги:
-
Идентификация сетевой интерфейсной карты
(NIC, Network Interface Card).
-
Запуск драйвера.
-
Проверка взаимодействия драйвера и
оборудования.
15.12.1. Идентификация сетевого
адаптера
В документации на адаптер
должен быть указан тип используемого набора микросхем.
Если вы не знаете тип
используемого в адаптере набора микросхем, его можно
идентифицировать с помощью команды pci -vvv.
Среди выведенных данных
найдите запись, относящуюся к сетевому контроллеру, где
указаны идентификаторы производителя/продавца и устройства.
Дополнительную информацию можно найти на сайте производителя
или с помощью идентификатора продавца и устройства на сайте
http://www.pcidatabase.com/. Пользуясь информацией,
полученной с этого сайта, зайдите на страницу
поддерживаемого оборудования сайта QNX (см. подразд.
"Общие сведения" ранее в этом разделе). В разделе Network
на этой странице можно найти тип набора микросхем сетевого
адаптера и соответствующий драйвер.
Запуск драйвера
Запустить найденный драйвер
для сетевого адаптера можно с помощью утилиты io-pkt*. Можно либо указать драйвер
в качестве параметра утилиты io-pkt*, либо присоединить драйвер
к уже работающей копии утилиты io-pkt*. Например, чтобы запустить
io-pkt-v4-hc для модуля devn-e1900.so (адаптер 3Com 905), введите
команду:
io-pkt-v4-hc -d
el900 -t tcpip &
Для присоединения драйвера к
работающей копии введите набор команд:
io-pkt-v4-hc
-t tcpip &
mount
-T io-pkt devn-el900.so
Примечание. Драйвер автоматически
определяет похожие сетевые адаптеры, установленные для
организации подсетей. Для монтирования различных адаптеров
используется утилита mount.
Проверка правильности
взаимодействия драйвера и оборудования
Для проверки работы адаптера
по приему и отправке пакетов используется утилита nicinfо. Если не происходит прием
пакетов на высокоскоростной сети, это может означать, что
нет взаимодействия между драйвером и оборудованием. Далее
приведен типовой набор данных, выдаваемых командой на экран:
Physical
Node ID ........................... 000102 C510D4
Current Physical Node ID
................... 000102 C510D4
Current Operation Rate
..................... 100.00 Mb/s full-duplex
Active Interface Type
...................... MII
Active PHY Address
......................... 3
Power Management State
..................... Active
Maximum Transmittable data
Unit ............ 1514
Maximum Receivable data Unit
............... 1514
Receive Checksumming Enabled
............... TCPv6
Transmit Checksumming Enabled
.............. TCPv6
Hardware Interrupt
......................... 0x5
DMA Channel
................................ 0
I/O Aperture
............................... 0xd400 — 0xd47f
ROM Aperture
............................... 0
Memory Aperture
............................ 0xe6000000 — 0xe6000FFF
Promiscuous Mode
........................... Off
Multicast Support
.......................... Enabled
Packets Transmitted OK
..................... 104
Bytes Transmitted OK
....................... 10067
Broadcast Packets Transmitted
OK ........... 6
Multicast Packets Transmitted
OK ........... 1
Memory Allocation Failures on
Transmit ..... 0
Packets Received OK
........................ 1443
Bytes Received OK
.......................... 168393
Broadcast Packets Received OK
.............. 427970
Multicast Packets Received OK
.............. 37596
Memory
Allocation Failures on Receive ...... 0
Single Collisions on Transmit
.............. 0
Multiple Collisions on
Transmit ............ 0
Deferred Transmits
......................... 0
Late Collision on Transmit
errors .......... 0
Transmits aborted (excessive
collisions) ... 0
Transmits aborted (excessive
deferrals) .... 0
Transmit Underruns
......................... 0
No Carrier on Transmit
..................... 0
Jabber detected
............................ 0
Receive Alignment errors
................... 0
Received packets with CRC
errors ........... 0
Packets Dropped on receive
................. 0
Ethernet Headers out of range
.............. 0
Oversized Packets received
................. 0
Frames with Dribble Bits
................... 0
Total Frames experiencing
Collision(s) ..... 0
Примечание. Результаты вывода по
команде nicinfo зависят от того, какие
параметры контролируются драйвером. Не все драйверы
обеспечивают вывод всех приведенных полей. Тем не менее,
всегда представляется информация о принятых и отправленных
байтах и пакетах.
Далее описаны категории
параметров, представленные выше в примере. Если возникают
какие-либо сетевые проблемы, то прежде всего обратите
внимание на следующие категории параметров:
-
Physical Node ID (Идентификатор
физического узла);
-
Hardware Interrupt (Аппаратное
прерывание);
-
I/O Aperture (Диапазон адресов
ввода/вывода);
-
Packets Transmitted OK (Правильно переданные
пакеты);
-
Total Packets Transmitted
Bad (Общее число ошибочно
переданных пакетов);
-
Packets Received OK (Правильно принятые
пакеты);
-
Received packets with CRC
errors (Ошибки CRC при приеме
пакетов).
Physical
Node ID (Идентификатор
физического узла)
Идентификатор физического
узла известен как MAC-адрес карты (Media Access Control,
управление доступом к среде передачи). Это значение
уникально для каждой сетевой карты, хотя для некоторых
моделей допускается назначать свои собственные адреса.
Правда, такое встречается редко и, как правило, во
встраиваемых системах.
Если этот адрес представлен
значением FFFFFF FFFFFF или 000000 000000, то, скорее всего, что-то
не так с аппаратными установками, либо требуется отдельное
назначение MAC-адреса для карты. Обратитесь к руководству
пользователя для адаптера, чтобы уточнить этот вопрос.
Примечание. Если
оборудование установлено неправильно, то MAC-адрес может
принимать иные значения.
Первые шесть символов
MAC-адреса являются идентификатором продавца. Проверьте
правильность этого идентификатора, обратившись к странице http://www.cavebear.com/CaveBear/Ethernet/vendor.html со списком
зарегистрированных продавцов. Последние шесть символов
соответствуют идентификатору карты. Это число должно быть
похоже на случайное. Например, значение вроде 444444, скорее всего, некорректно.
Current
Physical
Node ID (Идентификатор
текущего физического узла)
Идентификатор текущего
физического узла показывается в случае, если карта настроена
для имитации ("spoof") идентификатора другой карты. Обычно
этот параметр передается драйверу и означает, что узел
представлен именно таким фактическим идентификатором. В
зависимости от типа карты некоторые драйверы принимают такую
подмену. На более высоком (программном) уровне эта подмена
(спуфинг) означает фильтрацию пакетов, предназначенных для
данного узла. Этот метод работает значительно медленнее, чем
если бы фильтрация производилась на аппаратном уровне.
Поскольку в этом случае карта должна быть установлена в
смешанный (promiscuous) режим работы, то она должна
принимать все входящие пакеты и использовать для их
сортировки программный режим.
Аналогию описанной ситуации
может найти в работе почтовой системы. Если мы хотим
"притвориться" кем-нибудь (т. е. читать чужую почту),
то нужно получать с почтового отделения всю корреспонденцию.
Однако затем придется всю полученную корреспонденцию
сортировать. Это займет гораздо больше времени, чем если бы
в почтовом отделении проводилась предварительная сортировка,
а вы получали бы только корреспонденцию, адресованную
непосредственно вам. Подробнее об этом см. в
подразд. "Promiscuous Mode (Смешанный режим работы)"
далее в этом разделе.
Current
Operation
Rate (Текущая скорость
работы)
Скорость передачи означает
скорость, с которой сетевая карта передает данные. Для
большинства карт это значение равно 10 или 100 Мбит/с. Рядом
с этим значением указывается также тип связи, используемый
картой. В большинстве случаев используется дуплексный
(full-duplex) или полудуплексный (half-duplex) режим
передачи:
-
при дуплексном режиме данные могут передаваться
одновременно в обоих направлениях;
-
при полудуплексном режиме данные могут
передаваться в обоих направлениях, но не одновременно.
Простой
иллюстрацией этих режимов может быть сравнение с дорогой. По
двухполосной дороге (дуплексный режим) машины могут
одновременно двигаться в обоих направлениях, не залезая на
полосу другого направления. По однополосной дороге
(полудуплексный режим) в каждый момент времени машина может
двигаться только в одном направлении.
Когда исследуется скорость
передачи, нужно проверять собственно скорость работы,
учитывать режим дуплексной или полудуплексной работы, а
также режим работы, поддерживаемый хабом. Не все хабы
поддерживают дуплексный режим работы.
Active
Interface Type (Тип
активного интерфейса)
Для данного параметра
указывается тип физического интерфейса, используемого
адаптером Ethernet. Обычно используются интерфейсы типов UTP
(unshielded twisted pair, неэкранированная витая пара), STP
(shielded twisted pair, экранированная витая пара),
оптоволокно, AUI (attachment unit interface, интерфейс
подключаемых устройств), MII, или BNC (коаксиальный кабель).
Active
PHY Address (Активный
физический адрес)
Идентификатор PHY указывает,
какая часть физического адреса используется для работы в
сети. Число принимает значения от 0 до 31 и изменяется в
зависимости от того, задан ли параметр PHY конкретным
значением или он выбирается драйвером по умолчанию (в
зависимости от типа карты).
Power
Management State
(Состояние управления питанием)
Этот параметр определяет
текущий статус подачи питания на сетевой адаптер: Off (отключено), Standby (в резерве), Idle (режим ожидания) или Active (активный). Если пакеты не
передаются или не принимаются, убедитесь, что для карты
установлен режим Active. Если это не так, то в
вашей системе, возможно, есть неполадки в системе управления
питанием.
Maximum
Transmittable
data Unit (Максимальный
размер передаваемого блока данных)
Максимальный размер
передаваемого блока данных (MTU) определяет максимальный
размер кадра, который может быть послан по физической среде
передачи. При отладке этот параметр обычно не нужен, но он
может быть полезен при оптимизации работы сети. Значение 0
является недопустимым и служит признаком того, что карта
установлена неправильно. Значение по умолчанию равно 1514.
Maximum
Receivable
data Unit (Максимальный
размер принимаемого блока данных)
Этот параметр, аналогичный
MTU, только он относится к принимаемому кадру. Значение по
умолчанию равно 1514.
Receive
Checksumming
Enabled (Включено
вычисление контрольной суммы при приеме), Transmit Checksumming Enabled (Включено вычисление контрольной суммы
при передаче)
Эта возможность
поддерживается не всеми типами карт. Если адаптер
поддерживает такую возможность, то будет указано, какой
метод вычисления контрольной суммы нужно использовать: IPv4,
TCPv4, UDPv4, TCPv6 или UDPv6.
Hardware
Interrupt (Аппаратное
прерывание)
Аппаратное прерывание —
это линия запроса на прерывания (IRQ) вашей сетевой карты.
Назначение конкретного номера IRQ зависит от типа интерфейса
карты: PCI или ISA. В случае интерфейса PCI значение IRQ
назначается утилитой pci-bios. Для карт ISA значение IRQ
жестко задано перемычками на самой плате.
Примечание. Карты с
интерфейсом ISA не могут совместно использовать один и тот
же номер IRQ. Для карт с интерфейсом PCI такая возможность
существует.
DMA
Channel (Канал DMA)
Параметр указывает на
используемый картой номер канала прямого доступа в память
(DMA). Значение определяется картой и тем каналом, который
на ней используется.
I/O
Aperture (Диапазон
адресов ввода/вывода)
Это шестнадцатеричное
значение показывает занимаемое картой пространство адресов
для портов ввода/вывода. Диапазон адресов ввода/вывода
используется для локализации портов и для их отображения на
данное адресное пространство. Диапазон зависит от платформы.
Memory
Aperture (Диапазон
адресов ОЗУ)
Это шестнадцатеричное
значение показывает занимаемое картой пространство адресов
ОЗУ. Диапазон адресов ОЗУ используется для локализации ОЗУ и
для его отображения на данное адресное пространство.
Диапазон зависит от платформы.
ROM
Aperture (Диапазон
адресов ПЗУ)
Это шестнадцатеричное
значение показывает занимаемое картой пространство адресов
ПЗУ. Диапазон адресов ПЗУ используется для локализации ПЗУ и
для его отображения на данное адресное пространство.
Диапазон зависит от платформы.
Promiscuous
Mode (Смешанный режим
работы)
Когда карта установлена в
смешанный (promiscuous) режим работы, то она должна
принимать из сети любой пакет Ethernet. Это весьма накладно
при нормальной работе системы, но является обычной практикой
при работе в режиме отладки.
Кроме того, при задании
смешанного режима работы сетевой MAC-адрес карты может имитироваться
(spoof), т. е. карта будет воспринимать все пакеты, как
адресованные, так и не адресованные к ней. Тогда на более
высоком (программном) уровне можно воспринимать пакеты,
адресованные кому угодно. По умолчанию смешанный режим
работы отключен.
Multicast
Support (Поддержка
многоадресных пакетов)
При включении многоадресного
режима передачи пакет можно пометить специальным адресом
назначения так, что его смогут принять многие узлы сети.
Допускаются также многоадресные пакеты.
Packets
Transmitted
OK (Правильно переданные
пакеты)
Прежде чем смотреть значение
этого параметра, попробуйте вначале воспользоваться
некоторыми видами передачи данных по сети (ping, telnet, передача файлов). Если
карта установлена неправильно, то число указанных в этом
параметре пакетов имеет очень маленькое значение или
нулевое. Если через карту не отправляются пакеты, то дело,
скорее всего, в драйвере. Проверьте все ключи и параметры,
передаваемые при запуске драйвера. Возможно, в каком-то из
них вы обнаружите ошибку.
Bytes
Transmitted OK
(Правильно переданные байты)
Этот параметр указывает
число переданных в сеть байтов данных. Число возрастает по
мере роста числа переданных пакетов.
Total
Packets Transmitted Bad(Общее
число
ошибочно переданных пакетов)
Эту статистику можно
использовать для определения наличия сбоев в работе
оборудования. Если все отправляемые пакеты оказываются
ошибочными, то, вероятно, это аппаратная проблема, хотя
возможная причина может быть в использовании неправильного
драйвера. Проверьте совместимость оборудования. Если все
указывает на аппаратные проблемы, попробуйте поменять плату,
возможно проблема исчезнет.
Broadcast
Packets
Transmitted OK (Правильно
переданные широковещательные пакеты)
В этом параметре указывается
число переданных с сетевой карты широковещательных пакетов.
Multicast
Packets
Transmitted OK (Правильно
переданные многоадресные пакеты)
В этом параметре указывается
число переданных с сетевой карты многоадресных пакетов.
Memory
Allocation Failures on Transmit (Сбои при выделении памяти во время
передачи)
Перед началом передачи
драйвером резервируется системная память для буфера, в
котором сохраняются данные для передачи. При готовности
карты в нее пересылается содержимое буфера.
Если возникает ошибка
выделения памяти, то, скорее всего, причиной является
недостаток памяти в системе. Проверьте, имеется ли в системе
достаточное количество памяти. Если ошибка выделения памяти
возникает регулярно, то рассмотрите возможность наращивания
памяти в системе. Другой причиной может быть наличие утечек
памяти в системе, из-за этого системная память медленно
"съедается" до полного истощения ресурса.
Packets
Received
OK (Правильно принятые
пакеты)
Значение этого параметра
соответствует числу успешно принятых от карты пакетов. Если
возникают проблемы с приемом данных, то следует проверить
соединение кабелей и хаба. Возможно, что проблемы при приеме
связаны с драйвером. Драйвер может быть правильно
установлен, и он обеспечивает нормальную передачу данных, но
не обеспечивает их приема. Если данные принимаются, но не
отправляются, то, как правило, причиной этого является
некорректная работа драйвера. Проверьте правильность
параметров драйвера. Обратитесь к системному журналу,
используя утилиту sloginfo, может быть, там вы найдете
необходимую подсказку.
Bytes
Received OK (Правильно
принятые байты)
Этот параметр соответствует
числу принятых из сети байтов данных. Значение параметра
возрастает по мере роста числа принятых пакетов.
Single
Collisions on Transmit
(Одиночные конфликты при передаче)
Данный параметр
соответствует числу конфликтов (collisions), которые
возникали при попытке передачи кадров.
В сетевой карте
осуществляется контроль несущей, когда оказывается, что сеть
какое-то время не используется. После этого начинается
передача кадра данных. Проблема возникает, когда две карты
одновременно начинают передачу, осуществляя при этом
контроль несущей. Такого рода ошибка обычно возникает на
сетях с большой занятостью.
Когда на сетевых картах
обнаруживается конфликт такого рода, то они обе прекращают
передачу и переходят в режим ожидания на случайно выбираемый
период времени. Для обеих сетевых карт выбираемые периоды
времени оказываются различными. Поэтому теоретически после
окончания времени ожидания первой сетевой карты другая
сетевая карта либо уже начнет передачу, либо будет
по-прежнему находиться в состоянии ожидания. Так удается
избегать конфликтных ситуаций.
Проблемы такого рода в
меньшей степени свойственны сетям с дуплексным режимом
работы.
Multiple
Collisions
on Transmit (Многократные
конфликты при передаче)
Данная ошибка возникает в
случае, когда при попытке передачи подряд возникает
несколько конфликтных ситуаций, даже несмотря на ожидание в
течение нескольких случайно заданных периодов времени. Такая
проблема обычно характерна для занятых сетей, работающих в
полудуплексном режиме. При наличии большого числа ошибок
такого рода попробуйте перейти на работу в дуплексном
режиме. Если сеть работает по протоколу TCP/IP, то вместо
хабов можно попробовать установить коммутаторы (switch).
Deferred
Transmits (Отложенные
передачи)
Ненулевое значение этого
параметра обычно встречается в сетях, работающих в
полудуплексном режиме, причем это не означает, что имеются
какие-либо проблемы. Просто с сетевой карты делается попытка
отправить данные в сетевой кабель, но сеть оказывается
занятой передачей по кабелю других данных. Поэтому нужно
просто подождать некоторый случайный промежуток времени.
Значение этого параметра может быть большим при сильной
занятости сети.
Late
Collision on Transmit errors (Ошибки поздней занятости при передаче)
Ошибки поздней занятости
встречаются в случае, когда карта передала большую часть
кадра, поэтому в сети должно быть известно, что сеть занята,
но, тем не менее, другая система в сети все равно пытается
начать передачу кадра по той же линии. Эта ситуация похожа
на обычные ошибки конфликта доступа, они просто были
обнаружены слишком поздно.
В зависимости от протокола
этот тип ошибок может вредно сказываться на общей пропускной
способности протокола. Например, потеря 1% пакетов для
протокола NFS при использовании применяемых по умолчанию
таймеров повторной передачи оказывается достаточной для
уменьшения скорости передачи приблизительно на 90%. Если в
сети наблюдается низкая пропускная способность, проверьте,
нет ли избыточного количества ошибок описанного типа. Обычно
адаптеры Ethernet не делают повторной передачи кадров,
потерянных в результате появления ошибок поздней занятости.
Появление таких ошибок
является признаком того, что время распространения сигнала
по сети больше, чем время, необходимое для выдачи сетевой
картой в сеть всего пакета. Поэтому мешающая работе система
не знает, что сеть постоянно используется, следовательно,
она пытается разместить в сети свой новый кадр.
Узлы, которые пытаются
одновременно занять сеть, обнаруживают ошибку после первого
временного сегмента в 64 байта. Это означает, что сетевая
карта обнаруживает конфликты поздней занятости только после
передачи кадра длиннее 64 байт. Проблема состоит в том, что
при передаче кадра менее 64 байт сетевая карта не
способна обнаружить ошибку. Обычно если возникают ошибки
поздней занятости в сети с кадрами большого размера, то,
скорее всего, эти же ошибки и возникают при малом размере
кадра.
Появление таких ошибок
обычно связано с кабелями Ethernet, длина которых
оказывается более значения, указываемого стандартом IEEE
802.3, или же превышено максимальное число используемых
кабелей конкретного типа, или же между двумя узлами сети
использовано избыточное число повторителей.
Другой причиной
возникновения такого вида ошибок является то, что в сети
имеется неправильно работающее оборудование, которое
посылает в сеть поврежденные кадры, которые воспринимаются
как конфликтные фрагменты. Эти поврежденные фрагменты могут
иногда появляться в сетевой карте после возникновения ошибок
поздней занятости.
Transmits
aborted
(excessive collisions) (Прекращение
передачи —
слишком большое число конфликтов)
Данная ошибка встречается
при возникновении в сети слишком большого числа конфликтов.
Сетевой карте не удается передать кадр в сеть после
возникновения 16 конфликтов. Это означает, что сеть
"заклинило" или сеть перегружена.
Примечание. Иногда
маршрутизаторы не могут передать кадр, если в них возникают
ситуации с избыточными конфликтами. Однако вместо того,
чтобы послать уведомление на соответствующий передающий
узел, маршрутизатор просто отбрасывает кадр.
При частом возникновении
ошибок подобного рода нужно пересмотреть топологию сети:
уменьшить размер сети, вставить коммутатор в стратегически
важные места, что позволит уменьшить число посылаемых в
общую сеть пакетов. Проблема может быть разрешена переходом
в режим дуплексной работы.
Transmits
aborted
(excessive deferrals)
(Прекращение передачи — слишком большое число
отложенных передач)
Прекращение передачи из-за
слишком большого числа отложенных передач означает, что
сетевой карте не удается передать кадр из-за чрезвычайной
занятости сети. Решением проблемы может оказаться переход в
режим дуплексной передачи.
Transmit
Underruns (Передачи с
недозагрузкой)
Этот тип ошибки может
встречаться в микросхемах, в которых предусмотрено
использование механизма прямого доступа в память (DMA). При
использовании механизма DMA пакеты копируются в буфер FIFO,
из которого данные передаются в линию. При оборудовании
низкой производительности система DMA оказывается
неспособной заполнять буфер FIFO с той скоростью, как они
передаются в линию, поэтому возникает ошибка недозагрузки, и
передача прекращается.
No
Carrier on Transmit (Нет
несущей при передаче)
Когда карта памяти
собирается начать передачу кадра, то вначале выполняется
контроль несущей (это похоже на то, что, подняв трубку
телефона перед набором номера, вы проверяете наличие
тонального сигнала готовности линии от станции). При
передаче кадра сетевая карта "прослушивает" линию с точки
зрения появления возможных конфликтов или ошибок. Ошибки
возникают в случае, когда сетевая карта передает кадр в
сеть, и вдруг выясняется, что не удается обнаружить ее
собственную несущую (по аналогии с телефоном: при наборе
номера вы слышите ответную реакцию на каждую нажимаемую
цифровую клавишу).
Ошибки такого рода возникают
при отключении и подключении сетевых кабелей или в
результате малой оптической мощности оптоволоконного
трансивера (Fiber Optic Transceiver, FOT).
Jabber
detected (Обнаружение
сбойного пакета)
Обычно такая ошибка
возникает в сетях со скоростью передачи 10 Мбит. Появление
ошибки указывает на то, что сетевая карта продолжает
передачу после того, как пакет уже был послан. Для более
скоростных сетей эта ошибка не встречается, поскольку в этих
сетях допускается больший размер кадра.
Receive
Alignment
errors (Ошибки
выравнивания при приеме)
Появление ошибки
выравнивания при приеме означает, что карта приняла из сети
поврежденный пакет. Появление этой ошибки сопровождается
также появлением ошибки FCS (Frame Check Sequence,
контрольная последовательность кадра). Эти ошибки
встречаются в случае, когда размер принимаемого кадра не
кратен восьми битам (одному байту).
Обычно эти ошибки являются
следствием некачественного подключения кабеля, использования
кабелей не в соответствии со стандартом IEEE 802.3,
неисправности сетевой карты, а возможно, и неисправности
хаба или коммутатора. Для локализации места возникновения
проблемы используйте отключение фрагментов сети по методу
бинарного дерева.
Received
packets
with CRC errors (Ошибки
CRC при приеме пакетов)
Запись в этом поле указывает
на то, сколько раз (на аппаратном уровне) сетевая карта
приняла искаженные данные. Наличие неправильно принятых
данных может быть вызвано неисправностью кабеля, хаба или
сетевой карты.
Наилучшим способом выявления
источника появления ошибок CRC является отключение
фрагментов сети по методу бинарного дерева. Начав такую
процедуру можно заменять оборудование одно за другим.
Поскольку эта ошибка является ошибкой на стороне приема, то
весьма трудно определить, была ли ошибка CRC при отправке
пакета на передающей стороне.
Packets
Dropped
on receive (Отбрасывание
пакетов при приеме)
Обычно это означает, что
возникло переполнение при приеме пакета. Это имеет отношение
к работе системы DMA и буфера FIFO (аналогично ошибке
Transmit Underruns — передача с недозагрузкой), только
на этот раз система DMA не успевает копировать пакеты в
память с той скоростью, как они поступают из сети. В
результате часть пакетов отбрасывается. Как и в случае
передачи с недозагрузкой, обычно причина ошибок кроется в
низкой производительности оборудования.
Ethernet
Headers
out of range (Выход за
допустимые пределы заголовков Ethernet)
В этой записи указывается
число пакетов, для которых поле типа/длины протокола
Ethernet оказывается недействительным.
Oversized
Packets
received (Прием пакетов
слишком большого размера)
Пакеты слишком большого
размера обычно обнаруживаются на стороне приема. Принимаемый
пакет оказывается больше заданного размера приемного буфера
драйвера.
Frames
with Dribble Bits (Кадры
с избыточными битами)
Избыточные биты данных
принимаются после приема значения CRC протокола Ethernet.
Наличие таких битов обычно вызывается неисправным
оборудованием или проблемами кабельного подсоединения сети
Ethernet, которые не соответствуют стандарту IEEE 802.3.
Total
Frames experiencing Collision(s) (Общее число кадров с конфликтами)
Значение этого параметра
соответствует общему количеству кадров, где возникали
конфликтные ситуации при попытке их передачи в сеть. Это
значение иногда может быть большим, все зависит от степени
загруженности сети. При загруженной сети этот тип ошибок
встречается чаще, чем в сети с небольшим трафиком.
Модемы
Модемы могут быть следующих типов:
Внутренние модемы
Для внутренних модемов может
использоваться интерфейс ISA, причем модемы могут
поддерживать или не поддерживать стандарт Plug and Play
(PnP). Устройства, не поддерживающие этот стандарт, должны
устанавливаться вручную.
Примечание. Для
идентификации устройства необходимо иметь документацию на
него или связаться с производителем устройства. В настоящее
время в составе ОСРВ QNX Neutrino нет утилиты, с помощью
которой можно было бы получить список установленных в
системе ISA-устройств.
Модемы с интерфейсом ISA
без поддержки PnP
Для конфигурирования модема
необходимо использовать адрес порта ввода/вывода и номер
прерывания IRQ, которые не вызывают конфликта в системе.
Драйвер devc-ser8250 должен произвести
автоматическое определение модема, и в каталоге /dev должна появиться запись о
нем в виде serx, где x — целое число.
Примечание. Такое имя может иметь более
одной записи. Имейте в виду, что первые две записи
представляют порты comm. Любая дополнительная
запись, скорее всего, относится к модему. При сомнениях
можно проверить все записи ser с помощью утилиты qtalk. Более подробно этот вопрос
рассмотрен в разд. "Тестирование
модемов" далее в этом разделе.
Записи обычно имеют такой
вид:
Comm1
is enabled in the BIOS
Comm1 is disabled
Modem is configured to Comm2's ioport
and IRQ
В каталоге /dev при этом можно будет увидеть
следующее:
-
ser1 — Comm1;
-
ser2 — модем.
Модемы с интерфейсом ISA и
поддержкой PnP
Если модем ISA поддерживает
стандарт PnP и с помощью перемычек на его плате можно вручную
установить значения для порта ввода/вывода и прерывания IRQ,
то предпочтительнее использовать все же ручной метод, а не
Plug and Play.
Драйвер devc-ser8250 должен произвести
автоматическое определение модема, и в каталоге /dev должна появиться запись о нем
в виде serx, где x — целое число.
Примечание. С именем ser в каталоге /dev может существовать более
одной записи. Имейте в виду, что первые две записи
представляют порты comm. Любая дополнительная запись,
скорее всего, относится к модему. Если по этому поводу есть
сомнения, то можно проверить все записи ser с помощью утилиты qtalk. Более подробно этот вопрос
рассмотрен в разд. "Тестирование
модемов" далее в этом разделе.
Если модем не обнаруживается,
то для определения номера порта ввода/вывода и прерывания IRQ
воспользуйтесь утилитой isapnp, после чего используйте эти
значения для запуска драйвера devc-ser8250.
Примечание. Если вы запускаете драйвер
последовательного канала для UART или модема, при этом уже был
запущен другой драйвер последовательного канала, то необходимо
использовать при запуске ключ -u, чтобы присвоить номер новому
драйверу. Этот номер присоединяется к имени устройства, так
что не возникнет конфликта с ранее существовавшими в каталоге
/dev/ser записями.
Модемы на картах PCI
Драйвер devc-ser8250 должен произвести
автоматическое определение модема, и в каталоге /dev должна появиться запись о нем
в виде serx, где x — целое число.
Если не создано никакой
записи, запустите утилиту pci -vvv. Она выведет на экран
информацию, где можно увидеть назначенные для модема адрес
порта ввода/вывода и номер прерывания IRQ. Используйте эти
данные для запуска драйвера devc-ser8250. Если вы используете
правильные значения для порта и прерывания, то в каталоге /dev будет создана корректная
запись.
Внешние модемы
Внешние модемы устанавливаются
очень легко. В каталоге /dev можно найти последовательный
порт, к которому подключен модем. Модем подключается к разъему
на задней панели системы. Если модем подключен к
последовательному порту 1, то в каталоге /dev для него будет присутствовать
запись с именем ser1.
Кабельные модемы / ISDN
Будем предполагать, что
кабельный модем подключается к вашей системе через сетевую
карту, и драйвер карты уже был запущен и нормально работает.
Если это не так, то см. подразд. "Сетевые адаптеры"
ранее в этом разделе.
Для задания конфигурации
воспользуйтесь инструментами конфигурирования протокола
TCP/IP. Это можно сделать путем запуска из командной строки
утилиты phlip, выбором пункта Network на
системной панели оболочки Photon или выбором пункта меню Launch→Configure→Network. После этого выполните
описанные далее действия.
-
выберите en0;
-
выберите для соединения
службу DHCP;
-
в поле Server
введите идентификатор машины, предоставленный вам
оператором кабельной сети.
-
используйте идентификатор
машины в качестве имени хоста;
-
установите имя домена,
которое вам предоставил оператор кабельной сети;
-
установите IP-адрес шлюза,
предоставленный вам оператором кабельной сети;
-
маска по умолчанию (0.0.0.0) заполняется
автоматически;
-
в поле Name Servers
добавьте любой известный вам IP-адрес DNS-сервера
(можно больше, чем один); первым должен стоять адрес,
предоставленный вам оператором кабельной сети.
Тестирование модемов
Для тестирования модема можно
использовать утилиту qtalk.
-
Убедитесь в том, что модем подключен к
телефонной линии.
-
Введите команду stty для установки скорости
работы модема в бодах. Например, для установки скорости
57 760 (такую скорость используют модемы 56К) для
модема, установленного в каталог /dev/ser1, нужно ввести:
stty
baud=57760 < /dev/ser1
-
Введите команду qtalk -mустройство, где устройство — имя
последовательного порта (например, /dev/ser1).
-
Введите
команду at. От модема должен быть
получен ответ OK.
Устранение неисправностей модемов
Если вы следовали вышеописанным
инструкциям, но от модема не получен ответ OK, нужно попробовать
выполнить следующие действия.
-
Проверьте правильность установки скорости
работы модема.
-
Проверьте, подключен ли модем.
-
Проверьте, не относится ли модем к
программному типу (software modem).
В ОСРВ QNX
Neutrino не поддерживаются Win-модемы и HSP-модемы (Host
Signal Processor, модем на основе сигнального процессора),
которые известны как soft-модемы. ОСРВ QNX Neutrino может
работать с PnP-модемами, но тогда в BIOS нужно отключить
функцию определения ОС с автоматическим распознаванием
PnP-устройств.
-
Нет ли конфликта модема с другим
устройством, имеющим то же значение адреса порта
ввода/вывода или номера прерывания IRQ? Если модем
является внутренним с интерфейсом ISA, то, возможно,
потребуется зарезервировать в BIOS диапазон адресов
ввода/вывода и значение прерывания IRQ, чтобы эти
значения не использовались PCI-устройствами.
-
Отключили
ли вы в BIOS работу COM-порта, если вы используете для
модема адреса ввода/вывода и номер прерывания этого
COM-порта? Это требование применимо только к внутренним
модемам.
Видеокарты
На нашем сайте можно найти список
видеокарт, поддерживаемых в ОСРВ QNX Neutrino (см.
подразд. "Общие сведения" ранее в этом разделе).
Изменение видеорежимов в оболочке
Photon
Для изменения видеорежимов
графического адаптера в оболочке Photon можно использовать
инструмент Display Configuration (Конфигурация дисплея). Это
можно сделать либо через команду phgrafx в командной строке, либо
выбрав пункт Graphics в системной панели, либо
выбрав пункт меню Launch→Configure→Display.
Для изменения видеорежима
необходимо выполнить следующие действия.
Вначале
появится черный экран, после чего должен произойти переход в
новый режим. Если выбранный новый режим работает
некорректно, нужно подождать 15 секунд, затем дисплей
автоматически вернется к предыдущим установкам. Можно просто
нажать клавишу <Esc> или <Enter>.
С помощью
данной утилиты можно также поменять драйвер, разрешение,
частоту обновления экрана, палитру (только для режима с
8-битовой палитрой) и отключить аппаратный курсор.
Дополнительную информацию о
изменении командной строки для запуска адаптера дисплея см.
в разделе о phgrafx.
Ручная настройка видеокарты
Итак, ручная настройка
видеокарты выполняется так:
-
Идентифицируйте тип видеоадаптера. В
документации должен быть описан набор используемых в нем
микросхем.
-
Отредактируйте файл конфигурации
/etc/system/config/display.conf в соответствии с
особенностями оборудования. Более подробную информацию о
драйвере графических устройств см. в подразделе
«Конфигурационный файл io-display».
Примечание.
В этом случае, можно просто перезапустить систему, чтобы
новая конфигурация была распознана. Следующие шаги
описывают, как вручную остановить работу и перезагрузить
драйвер.
Примечание. При
выполнении данных действий Photon может быть не запущен.
-
Запустите io-display
-dvid=0xVVVV,did=0xDDDD где VVVV
идентификатор производителя и DDDD идентификатор
устройства видео-карты.
-
Перезапустить photon,
запустив /usr/bin/ph.
Информацию о данных опциях см.
описание графических драйверов devg-* в справке по утилитам, а
также в описании io-display.
Установка нескольких дисплеев
Для установки двух или нескольких
дисплеев можно использовать конфигурационный файл io-display. Можно выполнить
конфигурирование двух или более видеокарт для работы с
несколькими дисплеями либо использовать одну видеокарту для
поддержки нескольких дисплеев.
GF
В целях
поддержки множественных дисплеев в GF, необходимо вручную
создать конфигурационный файл display.conf перед запуском
io-display.
Следующий пример показывает
конфигурационный файл, устанавливающий возможность работы с
двумя дисплеями, с использованием графического драйвера
poulsbo:
device {
drivername=poulsbo
vid=0x8086
did=0x8108
modeopts=/etc/system/config/poulsbo.conf
deviceindex=0
display {
xres=800
yres=480
refresh=60
pixel_format=argb8888
}
display {
xres=800
yres=480
refresh=60
pixel_format=argb8888
}
}
Photon
Следующие примеры описывают,
как сконфигурировать множественные дисплеи, используя
Photon.
Конфигурация
множественных дисплеев с множественными видео-картами
При существовании
множественных видео-устройств, конфигурационный файл,
содержащий записи для каждого устройства, автоматически
конфигурируется при загрузке. По умолчанию, используется
видео-карта со значением дисплея index 0. Для установки
драйвера устройства для разрешения использования
множественных дисплеев, необходимо запустить phgrafx,
и удостовериться, что установлено Enable. Также для
конфигурации части параметров и установки режима для каждого
устройства можно использовать phgrafx.
Следующий пример
конфигурационного файла отображает использование видео-карт
Radeon и ATI-rage128 с выходом на два дисплея:
device {
photon {
driver {
drivername=svga
modeopts=
}
driver {
drivername=ati_rage128
modeopts=
}
driver {
drivername=vesabios
modeopts=
}
}
drivername=ati_rage128
modeopts=
vid=0x1002
did=0x5050
deviceindex=0x0
display {
xres=640
yres=480
refresh=60
pixel_format=argb1555
photon {
enabled=1
xoffset=1024
yoffset=0
cursor=hardware
input_group=1
}
}
}
device {
photon {
driver {
drivername=svga
modeopts=
}
driver {
drivername=radeon
modeopts=
}
driver {
drivername=vesabios
modeopts=
}
}
drivername=radeon
modeopts=
vid=0x1002
did=0x4966
deviceindex=0x0
display {
xres=1024
yres=768
refresh=60
pixel_format=argb8888
photon {
enabled=1
xoffset=0
yoffset=0
cursor=hardware
input_group=1
}
}
}
Конфигурация
множественных дисплеев с использованием одной
видео-карты
Одна
видео-карта может осуществлять поддержку множественных
дисплеев (при этом в видео-карте должны быть множественные
выходы). Для этого необходимо вручную создать в файле
конфигурации дополнительный раздел для display.
Необходимо помнить, что для распознавания новой конфигурации
необходима перезагрузка компьютера.
Следующий пример отображает
файл конфигурации для видео-карты Matroxg и двух дисплеев.
device {
photon {
driver {
drivername=svga
modeopts=
}
driver {
drivername=matroxg
modeopts=
}
driver {
drivername=vesabios
modeopts=
}
}
drivername=matroxg
modeopts=
vid=0x102b
did=0x525
deviceindex=0x0
display {
xres=1024
yres=768
refresh=60
pixel_format=rgb565
photon {
enabled=1
xoffset=0
yoffset=0
cursor=hardware
input_group=1
}
}
display {
xres=640
yres=480
refresh=60
pixel_format=rgb565
photon {
enabled=1
xoffset=0
yoffset=0
cursor=hardware
input_group=1
}
}
}
Примечание.
По умолчанию, в автоматически-созданном конфигурационном
файле видео-карта с множественными выходами посылает
одинаковый видео-сигнал на все дисплеи, т. к.
автоматически-созданный по умолчанию файл конфигурации
содержит только один раздел для display..
Для каждого дисплея можно
изменить свойства графики прямо в файле конфигурации, или
использовать phgrafx
для конфигурации каждого дисплея.
Более подробная информация о
формате файла конфигурации io-display и возможных опциях
содержится в описании io-display в справке по
утилитам.
