12 Аппаратное обеспечение и вопросы, зависящие от платформы

12.1 - Общие рекомендации по оборудованию




12.1.1 - Устройства PCI



    Устройства PCI почти всегда самоконфигурируемые -- компьютер и ОС сами выделяют карте необходимые ресурсы.
    Прерывания можно использовать совместно на шине PCI. Не только можно, но и частенько система показывает лучшую производительность с совместно используемыми прерываниями, особенно, на i386.
    Есть несколько различных стандартов шин PCI. Можно случайно найти карту PCI2.2, которая просто не будет работать в системе с PCI2.1. Также многие карты со встроенными мостами (такие как многопортовые сетевые карты) не будут нормально работать на старых системах.
    Шины PCI поддерживают два уровня сигналов: 3.3 В и 5 В. Карты, работающие с сигналами 3.3 В имеют второй пропил в соединителе. Большинство PCI-карт используют 5-вольтовые сигналы, которые используются на большинстве компьютеров. Одноплатные компьютеры Soekris (Net45x1 and Net4801) часто упоминаются как компьютеры, поддерживающие сигналы только 3.3 В.



12.1.2 - Устройства ISA



    Устройства ISA не могут использовать ресурсы совместно и, в большинстве случаев, должны быть настроены вручную во избежание конфликтов с другими устройствами в системе.
    Некоторые ISA-устройства являются "Plug and Play" (isapnp(4)) -- если возникают проблемы с этими устройствами, следует проверить их настройки, сообщённые dmesg(8), ISAPnP не всегда работает должным образом.
    Вообще, если есть выбор, многие предпочитают отказаться от ISA-карт в пользу PCI. ISA-карты намного сложнее настроить и они оказывают гораздо большее негативное воздействие на производительность системы.



12.1.3 - Моё устройство "опознано" но dmesg говорит, что оно не настроено ("not configured")



Вкратце, это означает, что устройство не поддерживается ядром и не может быть использовано.

PCI и многие другие типы устройств предоставляют идентификационную информацию чтобы ОС смогла правильно распознать и поддерживать устройство. Распознавать устройство гораздо сложнее чем его поддерживать. Ниже приводится часть dmesg с двумя примерами "не настроенных" устройств:


  ...
  vendor "Intel", unknown product 0x5201 (class network subclass ethernet,
  rev 0x03) at pci2 dev 9 function 1 not configured
  ...
  "Intel EE Pro 100" rev 0x03 at pci2 dev 10 function 0 not configured
  ...


Первое (сетевой адаптер) имеет распознанный код поставщика и общий тип карты, тогда как точная модель карты нераспознана. Второй пример - другой сетевой адаптер, известен разработчику и информация о нём была добавлена в файл, используемый для распознавания оборудования. Однако, в обоих случаях, карты будут нерабочими, так как обе указаны как "не настроенные" - это означает, что для них не нашлось драйвера.


Что можно сделать с "не настроенным" устройством?



    Если устройство не используется непосредственно, на сообщение "not configured" можно просто не обращать внимания - вреда системе это не нанесёт. Некоторые устройства специального назначения сознательно помечаются как "не настроенные" чтобы их поддерживала BIOS системы.
    В некоторых случаях, это лишь разновидность поддерживаемого устройства и для разработчика может не составить большого труда добавить поддержку этой карты. В других случаях, это может быть совсем не поддерживаемый набор микросхем или его реализация (как в рассмотренных выше примерах). В этом случае, нужно написать новый драйвер, что может быть даже невозможно если устройство плохо документировано. Конечно, самостоятельное написание драйвера приветствуется.
    Если используется изначальное ядро, устройство может не поддерживаться использованным при установке носителем, но может поддерживаться при установке с другого диска. Это часто случается с пользователями некоторых популярных SCSI-карт, невнимательно прочитавшими рекомендации для платформы i386 и пробуют все загрузочные диски, которые не поддерживают их SCSI-карту вместо того чтобы использовать тот, который поддерживает.
    Если используется изменённое ядро, поддержка нужного теперь устройства могла быть удалена на этапе сборки. Вообще, удаление поддержки устройств ядром - плохая идея и это - один из примеров.
    Перед тем как сообщить о "не настроенном" устройстве, убедитесь, что был испробован последний срез (snapshot), так как поддержка могла быть уже добавлена и проверьте архивы списков рассылки на предмет рассмотрения этого вопроса ранее. Помните, что используя старую версию OpenBSD, вы можете столкнуться с необходимостью обновления для использованиялюбого нового драйвера.



12.1.4 - Моя карта есть в списке поддерживаемого оборудования, но она не работает!



К сожалению, многие производители используют наименование модели для указания его рыночной позиции, а не технической сущности. Поэтому можно купить продукт с тем же самым названием и номером модели, что и продукт, отмеченный на страницах платформ, но совершенно неработоспособный под OpenBSD. Например, сначала, многие беспроводные адаптеры делались на базе микросхемы Prism2 и использовали драйвер wi(4), но позднее, когда появились более дешёвые микросхемы, многие приозводители стали использовать в тех же продуктах другие микросхемы, для которых нет драйверов с открытым кодом. Беспроводные сетевые адаптеры, к сожалению, далеко не единственный пример этого.



12.1.5 - Поддерживаются ли WinModem-ы?



WinModem-ы - это дешевые модемы? использующие для обработки сигналов ресурсы процессора,  в отличие от аппаратной обработки в случае "обычных" модемов. В связи  с нестандартностью (неунифицированностью, большими отличиями от модели к модели) и обычно безобразно плохой документацией на конструктив WinModem-ов в OpenBSD нет и не будет поддержки данных устройств.


12.1.6 - Что случилось с поддержкой Adaptec RAID (aac)?



Adaptec прекратил предоставлять документацию на FSA-based (aac(4)) RAID контроллеры. Эти RAID стали содержать большое количество ошибок, документация стала предоставляться в урезанном, недостаточном для написания драйверов варианте. В связи с этим мы удалили данный драйвер из стандартного ядра GENERIC.




Но ведь я сам могу собрать ядро с поддержой aac(4), не правда ли?


Конечно. Но вы сами понимаете, к чему может привести ненадёжность есть ненадёжный. Вы же не эксперименты будете проводить, испытывая "новые возможности"! Кто знает, может он заработает достаточно хорошо в какой-нибудь аппаратной конфигурации, но бы не рекомендовали доверять ему своих данных.


12.1.7 - Моя ami(4)-карта поддерживает только один логический диск!



Есть известная ошибка ami(4), которая вызывает повреждение данных при использовании более чем одного тома на некоторых контроллерах. OpenBSD ограничит количество логических дисков до одного на контроллерах с такой проблемой. В результате, на выходе dmesg появится подобное сообщение:


ami0: FW A.04.03, BIOS vA.04.03, 4MB RAM
ami0: 3 channels, 16 targets, 2 logical drives
ami0: firmware buggy, limiting access to first logical disk
scsibus0 at ami0: 1 targets




12.2 - DEC Alpha



[Пока ничего]


12.3 - AMD 64




12.3.1 - Могу ли я запустить OpenBSD/amd64 на Intel P4



В случае большинства процессоров, выпущенных в последнее время - ответом будет "да". Ксожалению, определить какой именно из процессоров сможет запустить, а какой нет, достаточно сложно. Проще определить экспериментальным путем, будет работать или нет.


12.3.2 - Могу ли я запустить бинарный файл  i386 на OpenBSD/amd64?



Нет.

OpenBSD/amd64 совершенно другая платформа, некжели OpenBSD/i386, и, на данном этапе, бинарная совместимость не поддерживается. Как полагает OpenBSD, в мире открытых кодов нет большого интереса разработчиков к бинарной совместимости.

Следует обратить внимание, OpenBSD/amd64 и OpenBSD/i386 boot loaders will (as of OpenBSD 4.2) load each other's kernels, making it easier to reinstall a system with the "other" platform. Поэтому лучше выполнить полную "очистку и инсталляцию" -- иначе оставшиеся от "предыдущей" инсталляции бинарники изрядно усложнят вам жизнь.


12.3.3 - Всегда ли лучше запускать OpenBSD/amd64 на соответствующих процессорах?



Не всегда.

Вот несколько причин использовать OpenBSD/i386 на платформах OpenBSD/amd64, которые могут исполнять код amd64:

    Необходимость запуска бинарников i386 (or other OS).
    Необходимость запуска приложений, не являющихся нативно "64 битными".
    Необходимость переноса дисков на машину не amd64
    Для некоторых приложений и аппаратных платформ OpenBSD/i386 может превосходить по производительности OpenBSD/amd64. Относительно небольшая группа людей готовы работать над исправлением данной ситуации.


12.4 - ARM-based appliances



пока ничего


12.5 - HP300



пока ничего


12.6 - HPPA



пока ничего


12.7 - i386




12.7.1 - Сетевые интерфейсы ISA



OpenBSD хорошо работает на устаревшем оборудовании и пользователи бывает  используют даже сетевых карт ISA. Оборудование ISA требует гораздо большей настройки и понимания, чем PCI. Нельзя просто вставить карту в компьютер и ожидать, что она волшебным образом заработает. Во многих машинах, если ISA-устройство не в режиме "Plug 'n' Play" (PNP), ресурсы, используемые картой, должны быть назначены BIOS.


3Com 3C509B ep(4)



Это отлично зарекомендовавшая себя сетевая карта ISA, поддерживаемая драйвером ep(4). Версия "B" отличается от "не-B" маркировкой на карте и бОльшей главной микросхемой (со стороной, приблизительно, 2.5 см для версии "B" против 2 см для более старой версии) и показывает бОльшую производительность в нагруженных системах или системах с двумя сетевыми картами. Микросхема 3C509B поставляется настроенной на режим PNP, который, к сожалению, не соответствует стандартам и вызывает проблемы в поддержке isapnp(4) под OpenBSD. Сначала, карта распознаётся как не-PNP устройство, потом, когда включается поддержка PNP, dmesg отображает дополнительный интерфейс. Это может и не повредить, а может и привести к другим проблемам. Крайне рекомендуется отключать режим PNP в картах 3C509B и настраивать их вручную с использованием конфигурационных утилит 3Com под DOS перед использованием во избежание конфликтов

Драйвер ep(4) подхватит карты в любой комбинации аппаратного обеспечения, не предусматривающей конфликтов устройств.

Если в системе несколько карт 3C509, рекомендуется пометить их MAC-адресами, чтобы различать их в выводе dmesg.

Заметим, что 3C509, 3C905 и 3C590 часто путают. 3C509 - это 10 Мб/с карта ISA, а 3C905 и 3C590 - карты PCI.


NE2000



Изначально, сетевая карта NE2000 была разработана в середине 1980-х компанией Novell. C тех пор, многие производители выпускали очень похожие карты, которые вообще-то назывались NE2000-совместимыми или клонами. Производительность этих клонов сильно отличалась. Тогда как некоторые старые представители показывали хорошие результаты, многие из доступных сейчас очень плохи. NE2000-совместимые карты в OpenBSD поддерживает драйвер ne(4).

OpenBSD хорошо поддерживает некоторые умеющие ISAPNP NE2000-совместимые карты с включенным режимом ISAPNP. Другие карты должны быть настроены или перемычками, или DOSовской утилитой. К сожалению, настоящие NE2000 не имели программной настройки и поддержки ISAPNP. Так что для настройки карты может потребоваться именно та утилита, которая поставлялась с ней, получить которую бывает проблематично.

Драйвер ne(4) поддерживает 3 конфигурации карт ISA NE2000 в ядре GENERIC системы OpenBSD


ne0:  port 0x240 irq 9
ne1:  port 0x300 irq 10
ne2:  port 0x280 irq 9


Если эти установки неприемлемы, можно настроить их через User Kernel Configuration (UKC) или сборкой своего ядра.

Драйвер ne(4) ведёт себя честно "по-бестолковому" -- просто проверяет порты ввода-вывода и если находит что-то из перечисленных адресов, то приписывает ему соответствующее прерывание. dmesg(8) не показывает действительного номера прерывания в случае использования драйвера ne(4) на ISA. И если действительное прерывание карты не установлено в это значение, работать она не будет.

Бывают и не-ISA карты, использующие драйвер ne(4) -- это PCI и PCMCIA, к ним это всё не относится, они настраиваются сами по себе.


12.7.2 - OpenBSD не работает на моей 80386/80386SX/80486SX!




80386sx




80386SX/DX



Начина с OpenBSD 4.2 прекращена поддержка процессоров 80386DX и 80386SX. В дополнение к другим ограничениям чипа 80386, система работает очень медленно из-за ограниченного ОЗУ, FPU недостаточен для исполнения OpenBSD.


80486SX



Микросхема 80486SX - это "дешевая" версия 80486, у нее отсутствует аппаратная поддержка операций с плавающей точкой, необходимая для работы OpenBSD (как у 80386). К счастью, полная версия 80486DX достаточно распространена и большинство систем легко поддаётся усовершенствованию.

80486DX и более новые поддерживают OpenBSD.


12.7.3 - dmesg показывает несколько устройств, использующих одно и то же прерывание (IRQ)!



Это вполне нормально и даже желательно для устройств PCI. Конструкция шины PCI подразумевает такую возможность. Некоторые считают, что совместно использовать запросы на прерывание (interrupt requests, IRQs) не хорошо, однако, они либо путают ситуацию с шиной ISA (где совместное использование прерываний недопустимо) или это последствия негативного опыта использования битого железа или программного обеспечения.

Устройства ISA не могут использовать прерывания совместно - если такое происходит, то конфликт необходимо устранить.



12.7.4 - Моя клавиатура/мышь не работает ("зависает", сходит с ума)!



Чаще всего такое случается при использовании "переключателя" (иногда называемого "KVM switch"), используемого для подключения нескольких компьютеров к одному комплекту клавиатура/мышь/монитор. Можно поэкспериментировать с разными марками переключателей, но OpenBSD требовательнее многих к переключению мыши. Проблема обычно в переключении мыши. Если мышь не используется, решение на поверхности - просто не нужно подключать её кабель к компьютеру. Если мышь таки используется, то простым решением будет подключить к каждому компьютеру по отдельной мыши и переключать только клавиатуру и монитор. Может выясниться, что использование мышиного переходника PS/2->USB решит эту проблему (OpenBSd будет работать с USB-мышью). Если нужен просто консольный доступ, то решением может быть использование последовательной консоли.


12.8 - Landisk



[пока ничего]


12.9 - Luna88k



[пока ничего]


12.10 - Mac68k



[пока ничего]


12.11 - MacPPC




12.11.1 - Почему сетевой адаптор bm(4) такой медленный?



Драйвер bm, поддерживающий микросхему BMAC, используемую на некоторых системах MacPPC (включая ранние iMac) имеет проблемы при работе в режиме 100 Мб/с. Настоятельно рекомендуется заставить драйвер работать в режиме 10 Мб/с параметром "media 10baseT" в файле /etc/hostname.bm0 или на концентраторе/коммутаторе.


12.12 - MVME68k



[пока ничего]


12.13 - MVME88k



[пока ничего]


12.14 - SGI



[пока ничего]


12.15 - SPARC



[пока ничего]


12.16 - UltraSPARC (sparc64)




12.16.1 - Мой UltraSPARC не грузится с образа гибкого диска



Только Ultra 1/1e и Ultra 2 могут загружать операционную систему с гибкого диска. Вместо этого, для установки нужно использовать CD-ROM, Miniroot или загрузку по сети.


12.16.2 - disklabel выдает сообщение "partition extends past end of unit"



На системах sparc и sparc64, disklabel BSD не умеет описывать геометрию диска больше чем 8ГБ, тогда как отдельные записи disklabel могут быть и больше.

Каждый раз при запуске disklabel(8), он выполняет проверку записей disklabel на предмет того, что он считает правильной геометрией диска и, увидев обрезанную геометрию, предупреждает, что не разрешит менять записи за пределами этой области в 8ГБ, пока ему не сообщат настоящую геометрию устройства. Этого можно добиться командой 'g' в интерактивном редакторе disklabel(8), дав указание использовать геометрию диска "[d]isk geometry":


   # disklabel -E wd0
   # Inside MBR partition 3: type A6 start 63 size 17912412
      [...]
   Initial label editor (enter '?' for help at any prompt)
   > g
   [d]isk, [ b ]ios, or [ u ]ser geometry: [d] d
   > w
   > q


Сообщения останутся, но появится возможность настраивать и использовать диск желаемым образом. Правильное решение должно быть совместимо с уже используемыми системами и с Solaris, работающими на дисках, больше чем 8ГБ, но пока такового нет.


12.17 - DEC VAX




12.17.1 - Можно использовать симулятор SIMH VAX?



Да!

Симулятор SIMH VAX можно использовать для эффективной эмуляции настоящей VAX. Инструкции можно найти здесь.


12.18 - Sharp Zaurus




12.18.1 - Некорректно работают устройства USB



Очень мало устройств будут работать корректно, если вы подключите их непосредственно к порту USB Zaurus. Используйте активный USB hub (с внешним источником питания) для работы с этими устройствами.

Перевод соответствует $OpenBSD: faq12.html,v 1.89 2008/01/26 06:29:50 saad Exp $