Да. FreeBSD поддерживает архитектуры Intel x86 и DEC (сейчас Compaq) Alpha. Также был проявлен интерес к переносу FreeBSD на платформу SPARC. Если вы хотите подключиться к этому проекту, подпишитесь на соответствующий <[email protected]> список рассылки. В список планируемых к поддержке платформ совсем недавно добавились архитектуры IA-64 и PowerPC, дополнительную информацию можно получить, подключившись к соответствующим спискам рассылки <[email protected]> и/или <[email protected]>. Для обсуждение общих вопросов, касающихся новых аппаратных платформ, предназначен список рассылки <[email protected]>.
Если апаратная платформа Вашего компьютера не поддерживается FreeBSD и Вам нужно его запустить прямо сейчас, мы советуем обратить Ваш взгляд также на NetBSD и OpenBSD.
4.2. Я хочу приобрести аппаратуру для моей системы FreeBSD. Какая модель/производитель/тип лучше всего?
Это постоянно обсуждается в списках рассылки FreeBSD. Так как аппаратура меняется так быстро, мы это ожидаем. Мы все же сильно рекомендуем, чтобы вы прочитали Hardware Notes и выполнили поиск по архивам списков рассылки перед тем, как задавать вопросы о самом последнем и лучшем оборудовании. Весьма вероятно, что обсуждение требуемого вам оборудование как раз было на прошлой неделе.
Если вы подбираете лаптоп, посмотрите архивы списка рассылки FreeBSD-mobile. В противном случае вам нужны архивы FreeBSD-questions или, возможно, специфичные списки рассылки по конкретному типу оборудования.
FreeBSD работает с дисками стандартов EIDE и SCSI (с соответствующими контроллерами; обратитесь к следующему разделу), и всеми дисками, использующими оригинальный интерфейс "Western Digital" (MFM, RLL, ESDI и, конечно же, IDE). Некоторые контроллеры ESDI, использующие собственные интерфейсы, могут и не работать: к таким относятся WD1002/3/6/7 и их клоны.
Полный список приведён в текущих Замечаниях по оборудованию.
Поддерживаются любые SCSI-устройства чтения компакт дисков, подключенные к поддерживаемому контроллеру.
Кроме того, поддерживаются следующие оригинальные интерфейсы CDROM:
Mitsumi LU002 (8bit), LU005 (16bit) и FX001D (16bit 2x Speed).
Sony CDU 31/33A
Sound Blaster не-SCSI CDROM
Matsushita/Panasonic CDROM
ATAPI-совместимые IDE CDROM
Все не-SCSI адаптеры ставятся своей медлительностью по сравнению со SCSI, а некоторые CDROM стандарта ATAPI могут и не работать.
С версии 2.2 компакт-диск с FreeBSD от FreeBSD Mall является загрузочным.
FreeBSD поддерживает все ATAPI-совместимые IDE-приводы CD-R или CD-RW. Для FreeBSD версии 4.0 и выше обратитесь к справочной странице по команде burncd(8). Для более ранних версий FreeBSD посмотрите примеры в /usr/share/examples/atapi.
FreeBSD поддерживает также все SCSI-приводы CD-R или CD-RW. Установите и используйте программу cdrecord из системы портов или пакаджей, но проверьте, что в вашем ядре присутствует устройство pass.
Конечно же, FreeBSD поддерживает ZIP-устройства SCSI. Устройству ZIP могут быть назначены SCSI ID только 5 или 6, и если BIOS вашего SCSI-адаптера поддерживает такую возможность, вы можете с него даже загрузиться. Неизвестно, какие адаптеры позволяют загрузиться с устройств, номера которых отличны от 0 или 1, так что вам придётся обратиться к документации, если вам это нужно.
Устройства ZIP стандарта ATAPI (IDE) поддерживаются FreeBSD начиная с версии 2.2.6.
FreeBSD поддерживает устройства Zip, работающие через параллельный порт, начиная с версии 3.0. Если вы используете более новую версию, проверьте, содержит ли ваше ядро драйверы для scbus0, da0, ppbus0 и vp0 (ядро GENERIC содержит всё это, кроме vp0). Если эти драйверы имеются, то устройство должно быть доступно как /dev/da0s4. Диски могут быть смонтированы командами mount /dev/da0s4 /mnt или (для дисков dos) mount_msdos /dev/da0s4 /mnt соответственно.
Также посмотрите FAQ по съёмным носителям далее в этой главе, а также замечание о "форматировании" в главе об администрировании.
Кроме IDE-варианта устройства EZ, это всё устройства SCSI, так что для FreeBSD все они должны выглядеть как диски SCSI, а IDE EZ должен выглядеть как диск IDE.
Я не знаю, насколько хорошо FreeBSD поддерживает смену носителя во время работы. Конечно, чтобы сменить диск, вам сначала нужно его размонтировать, и обратите внимание на то, что при загрузке все внешние устройства должны быть включены, чтобы FreeBSD могла их распознать.
Посмотрите это замечание о "форматировании".
Список таких устройств находится в разделе о различных устройствах Руководства.
Некоторые безымянные клоны таких адаптеров тоже работают нормально, особенно те, которые заявляют о своей совместимости с AST.
Прочтите страницы Справочника о sio(4) для получения подробной информации о конфигурировании таких адаптеров.
Поддержка устройств USB была добавлена во FreeBSD 3.1. Однако там она ещё находилась в стадии разработки и не всегда работает так же, как в версии 3.2. Если вы хотите поэкспериментировать с поддержкой клавиатуры USB, следуйте нижеприводимым указаниям.
Используйте FreeBSD 3.2 и выше.
В конфигурационный файл ядра добавьте следующие строки и перестройте ядро.
device uhci device ohci device usb device ukbd options KBD_INSTALL_CDEV
При использовании FreeBSD версий, предшествующих 4.0, добавьте вместо этого такие строки:
controller uhci0 controller ohci0 controller usb0 controller ukbd0 options KBD_INSTALL_CDEV
Перейдите в каталог /dev и создайте специальные файлы устройств следующим образом:
# cd /dev # ./MAKEDEV kbd0 kbd1
Отредактируйте файл /etc/rc.conf, добавив следующие строки:
usbd_enable="YES" usbd_flags=""
После перезагрузки системы AT-клавиатуре будет соответствовать /dev/kbd0, а клавиатуре USB - /dev/kbd1, если они обе подключены к системе. Если присутствует только клавиатура USB, ей будет соответствовать /dev/ukbd0.
Если вы хотите использовать клавиатуру USB на консоли, вы должны явно указать драйверу консоли на использование имеющейся клавиатуры USB. Это может быть сделано в процессе инициализации системы следующей командой.
# kbdcontrol -k /dev/kbd1 < /dev/ttyv0 > /dev/null
Заметьте, что, если клавиатура USB является единственной присутствующей, она доступна как /dev/kbd0, и поэтому команда должна выглядеть примерно так:
# kbdcontrol -k /dev/kbd0 < /dev/ttyv0 > /dev/null
Вышеуказанную команду хорошо бы добавить в /etc/rc.i386.
Как только вы всё это сделаете, клавиатура USB будет работать и в X-окружении без каких-либо особых настроек.
Выключение и включение USB-клавиатуры на ходу может ещё не работать совершенно корректно. Во избежание неприятностей было бы правильно подключить клавиатуру перед запуском системы и не отключать её до закрытия системы.
За дополнительной информацией обратитесь к странице Справочника ukbd(4).
FreeBSD поддерживает мыши типов bus mouse и InPort bus mouse от таких производителей, как Microsoft, Logitech и ATI. Драйвер устройства bus mouse включен по умолчанию в ядро GENERIC во FreeBSD версий 2.X, но не включён в версию 3.0 и выше. Если вы строите собственное ядро с этим драйвером, добавьте следующую строку в конфигурационный файл ядра
Во FreeBSD 3.0 и ранее, добавьте:
device mse0 at isa? port 0x23c tty irq5 vector mseintr
Во FreeBSD 3.X строчка должна иметь вид:
device mse0 at isa? port 0x23c tty irq5
А во FreeBSD 4.X и выше строчка должна быть такой:
device mse0 at isa? port 0x23c irq5
Мышь типа bus mouse обычно поставляется с отдельными интерфейсными адаптерами. Они позволяют установить адрес порта ввода/вывода и номер IRQ, отличающиеся от приведённых выше. Для получения дополнительной информации обратитесь к документации по вашей мыши и странице Справочника mse(4).
Если вы используете FreeBSD версии выше, чем 2.2.5, то необходимый драйвер, psm, включён в ядро и активизирован. Ядро должно обнаружить мышь PS/2 во время загрузки.
Если вы работаете с предыдущей, но сравнительно свежей версией FreeBSD (2.1.x и выше), то вы можете просто включить её поддержку в меню конфигурации ядра во время инсталляции, либо позже, указав -c в приглашении boot:. По умолчанию она отключена, так что вы должны включить её явно.
Если вы используете более старую версию FreeBSD, то вам нужно добавить следующие строки в файл конфигурации ядра и построить новое ядро.
Во FreeBSD 3.0 и ранее, строчка должна иметь вид:
device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr
Во FreeBSD 3.1 и выше, строчка должна быть такой:
device psm0 at isa? tty irq 12
Во FreeBSD 4.0 и выше строчка должна иметь вид:
device psm0 at atkbdc? irq 12
Обратитесь к главе Руководства о конфигурировании ядра, если вы не имели опыта такой работы.
После того, как ядро правильно обнаружило psm0 во время загрузки, проверьте существование файла устройства для psm0 в каталоге /dev. Это можно сделать, набрав:
# cd /dev; sh MAKEDEV psm0
войдя в систему администратором.
Если вы используете стандартный драйвер консоли, syscons, то можете использовать указатель мыши в текстовых консолях для выделения и переноса текста. Запустите демон мыши, moused, и включите отображение указателя мыши на консоли:
# moused -p /dev/xxxx -t yyyy # vidcontrol -m on
Здесь xxxx - это имя устройства мыши, а yyyy - тип протокола, используемого мышью. Страница Справочника по moused(8) содержит информацию о поддерживаемых типах протоколов.
Вы можете запускать демон мыши автоматически во время старта системы. В версии 2.2.1, установите значение следующей переменной в /etc/sysconfig.
mousedtype="yyyy" mousedport="xxxx" mousedflags=""
В версиях от 2.2.2 и до 3.0, установите значения следующих переменных в файле /etc/rc.conf.
moused_type="yyyy" moused_port="xxxx" moused_flags=""
В версиях 3.1 и выше, если предположить, что у вас мышь типа PS/2, то достаточно добавить строчку moused_enable="YES" в файл /etc/rc.conf.
Кроме того, если вы хотите использовать даемон мыши на всех виртуальных терминалах, а не только на консоли во время загрузки, добавьте следующую строку в файл /etc/rc.conf.
allscreens_flags="-m on"
Начиная с FreeBSD 2.2.6, даемон мыши в состоянии определять тип протокола автоматически, если, конечно, мышь не достаточно древней модели. Укажите auto для автоматического определения типа протокола.
После запуска даемона мыши, доступ к мыши должен согласовываться между даемоном мыши и другими программами типа X Window. Этот вопрос рассмотрен в другом разделе.
После того, как вы запустили даемон мыши (посмотрите предыдущий раздел), нажмите кнопку 1 (левую) и двигайте мышь для выбора области выделения. Затем нажмите кнопку 2 (среднюю) или кнопку 3 (правую) для вставки текста из буфера, начиная с текущей позиции курсора.
В версиях 2.2.6 и выше, нажатие на кнопку 2 вызовет вставку текста. Нажатие на кнопку 3 "расширит" выбранный область текста. Если у вашей мыши отсутствует средняя кнопка, вы можете её сэмулировать или переназначить кнопки опциями программы moused. Обратитесь к странице Справочника по moused(8).
Рудиментарная поддержка устройств USB была добавлена во FreeBSD 3.1. В ранних версиях 3.X она не всегда работала. Начиная с FreeBSD 4.0, устройства USB должны работать без дополнительных ухищрений. Если вы хотите поэкспериментировать с поддержкой мыши USB во FreeBSD 3.X, следуйте нижеприводимым указаниям.
Используйте FreeBSD 3.2 и выше.
В конфигурационный файл ядра добавьте следующие строки и перестройте ядро.
device uhci device ohci device usb device ums
Во FreeBSD версий, предшествующих 4.0, вместо этого добавьте такие строчки:
controller uhci0 controller ohci0 controller usb0 device ums0
Перейдите в каталог /dev и создайте специальный файл устройства такой командой:
# cd /dev # ./MAKEDEV ums0
Отредактируйте файл /etc/rc.conf, добавив такие строчки:
moused_enable="YES" moused_type="auto" moused_port="/dev/ums0" moused_flags="" usbd_enable="YES" usbd_flags=""
Подробное обсуждение moused может быть найдено в предыдущем разделе.
Чтобы использовать мышь USB при работе в X, отредактируйте файл XF86Config. Если вы используете XFree86 3.3.2 и выше, то в разделе Pointer должны присутствовать такие строки:
Device "/dev/sysmouse" Protocol "Auto"
Если у вас более старая версия XFree86, то в разделе Pointer должны присутствовать строки:
Device "/dev/sysmouse" Protocol "SysMouse"
Поддержке мыши при работе в X посвящен другой раздел.
Выключение и включение мыши USB на ходу может ещё не работать совершенно корректно. Во избежание неприятностей было бы правильно подключить мышь перед запуском системы и не отключать её до закрытия системы.
Ответ, к сожалению, "в зависимости от обстоятельств". Эти мышки с дополнительными возможностями, как правило, требуют наличия специальных драйверов. До тех пор, пока драйвер мыши или прикладная программа не будут иметь отдельную поддержку такой мыши, она будет работать как стандартная двух- или трёхкнопочная мышь.
Возможные способы использования колёсиков мыши при работе в X Window описаны в другом разделе.
4.17. Похоже, что моя мышь не работает. Её курсор прыгает по экрану. Мышь имеет колёсико и подключено к порту мыши PS/2.
В драйвере psm для мыши PS/2 во FreeBSD версий 3.2 и ранее имеются проблемы при работе с некоторыми мышками, у которых есть колёсико, в том числе с мышками Logitech модель M-S48 и их OEM-разновидностями. Исправьте файл /sys/i386/isa/psm.c с помощью следующего патча и перестройте ядро.
Index: psm.c =================================================================== RCS file: /src/CVS/src/sys/i386/isa/Attic/psm.c,v retrieving revision 1.60.2.1 retrieving revision 1.60.2.2 diff -u -r1.60.2.1 -r1.60.2.2 --- psm.c 1999/06/03 12:41:13 1.60.2.1 +++ psm.c 1999/07/12 13:40:52 1.60.2.2 @@ -959,14 +959,28 @@ sc->mode.packetsize = vendortype[i].packetsize; /* set mouse parameters */ +#if 0 + /* + * A version of Logitech FirstMouse+ won't report wheel movement, + * if SET_DEFAULTS is sent... Don't use this command. + * This fix was found by Takashi Nishida. + */ i = send_aux_command(sc->kbdc, PSMC_SET_DEFAULTS); if (verbose >= 2) printf("psm%d: SET_DEFAULTS return code:%04x\n", unit, i); +#endif if (sc->config & PSM_CONFIG_RESOLUTION) { sc->mode.resolution = set_mouse_resolution(sc->kbdc, - (sc->config & PSM_CONFIG_RESOLUTION) - 1); + (sc->config & PSM_CONFIG_RESOLUTION) - 1); + } else if (sc->mode.resolution >= 0) { + sc->mode.resolution + = set_mouse_resolution(sc->kbdc, sc->dflt_mode.resolution); + } + if (sc->mode.rate > 0) { + sc->mode.rate = set_mouse_sampling_rate(sc->kbdc, sc->dflt_mode.rate); } + set_mouse_scaling(sc->kbdc, 1); /* request a data packet and extract sync. bits */ if (get_mouse_status(sc->kbdc, stat, 1, 3) < 3) {
Версии FreeBSD выше чем 3.2 должны работать нормально.
Посмотрите ответ на предыдущий вопрос. Также посмотрите страницу о мобильных вычислениях.
FreeBSD поддерживает устройства SCSI и QIC-36 (с интерфейсом QIC-02), включая 8-мм (Exabyte) и DAT.
Некоторые ранние модели 8-мм стримеров не совсем соответствуют стандарту SCSI-2 и могут работать не совсем хорошо.
FreeBSD 2.2 поддерживает SCSI-чейнджеры через устройство ch(4) и команду chio(1). Подробная информация об управлении чейнджерами может быть найдена на странице Справочника по команде chio(1).
Если вы не используете AMANDA или другое программное обеспечение, умеющее работать с роботами, имейте в виду, что они могут только переносить ленты с одного места на другое, так что вам нужно самим отслеживать, в каком слоте находится нужная лента, и в какой слот нужно вернуть ленту, находящуюся в стримере.
FreeBSD поддерживает звуковые адаптеры SoundBlaster, SoundBlaster Pro, SoundBlaster 16, Pro Audio Spectrum 16, AdLib и Gravis UltraSound. Имеется ограниченная поддержка MPU-401 и совместимых с ним адаптеров. Адаптеры, удовлетворяющие спецификации Microsoft Sound System, также поддерживаются драйвером pcm.
Note: Это касается только звука! Этот драйвер не поддерживает CDROM, SCSI или джойстики ни на каких подобных адаптерах, кроме SoundBlaster. Поддерживаются устройства на SCSI-интерфейсе SoundBlaster и не-SCSI CDROM, но загрузиться с них невозможно.
При каждой перезагрузке вам нужно запускать следующую команду:
# mixer pcm 100 vol 100 cd 100
Более полный список содержится в разделе Руководства об адаптерах Ethernet.
Note: Это касается только владельцев компьютеров 386/486SX/486SLC - во всех остальных машинах модуль вычислений с плавающей точкой объединён с центральным процессором.
В общем случае это не проблема, но в отсутствии сопроцессора вы можете столкнуться со снижением производительность и точности при использовании программной эмуляции сопроцессора (обратитесь к разделу об эмуляции вычислений с плавающей точкой). В частности, прорисовка дуг в X будет ОЧЕНЬ медленной. Приобретение математического сопроцессора настоятельно рекомендуется, он того стоит.
Note: Некоторые математические сопроцессоры работают лучше, чем другие. Нам неприятно это признавать, но Intel пока никого не подводил. Если вы не уверены, что сопроцессор будет работать с FreeBSD, избегайте клонов.
В Руководстве приведён список остальных устройств, которые поддерживаются во FreeBSD.
FreeBSD поддерживает APM на некоторых машинах. Поищите в файле конфигурации ядра LINT слово APM. Более полная информация может быть найдена в справочной странице по apm(4).
Этот раздел содержит решения специфичных проблем с аппаратным обеспечением, с которыми сталкиваются наши пользователи.
Некоторые материнские платы Micron имеют BIOS, не удовлетворяющую стандарту PCI BIOS, что приводит к печальным последствиям при загрузке FreeBSD, потому что имеет место несоответствие устройств PCI занимаемым ими адресам.
Для решения этой проблемы отключите в BIOS опцию "Plug and Play Operating System".
Более подробная информация об этой проблеме находится по следующему адресу: http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron
Новый набор микросхем AIC789x от Adaptec поддерживается подсистемой CAM SCSI, впервые появившейся в 3.0. Патчи для 2.2-STABLE находятся по адресу ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/. Загрузочный диск с поддержкой CAM доступен по адресу http://people.FreeBSD.org/~abial/cam-boot/. В обоих случаях прежде чем начать, прочтите файл README.
Вам нужно добавить PnP ID вашего модема в список PnP ID драйвера последовательного порта. Для включения поддержки Plug & Play, откомпилируйте новое ядро с опцией controller pnp0 в конфигурационном файле, и перезагрузите машину. Ядро выведет список ID всех найденных PnP-устройств. Добавьте PnP ID модема в таблицу в файле /sys/i386/isa/sio.c, где-то в районе 2777 строки. Чтобы найти таблицу, поищите слово SUP1310 в структуре siopnp_ids[]. Снова постройте ядро, проинсталлируйте его и перезагрузитесь. Теперь ваш модем должен быть опознан.
Вам может понадобиться отконфигурировать PnP-устройства командой pnp в конфигураторе во время загрузки следующим образом:
pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8
чтобы модем был распознан.
FreeBSD поддерживает работу со многими программными модемами посредством специального дополнительного программного обеспечения. Установка порта comms/ltmdm добавит поддержку для можемов на основе очень популярного набора микросхем Lucent LT. Порт comms/mwavem поддерживает модемы, установленные в лаптопах IBM Thinkpad 600 и 700.
Вы не сможете установить FreeBSD, работая через программный модем; это программное обеспечение должно быть установлено после установки ОС.
Постройте ядро с параметром options COMCONSOLE.
Создайте файл /boot.config, поместив туда только текст -P.
Отключите клавиатуру.
Подробная информация находится в файле /usr/src/sys/i386/boot/biosboot/README.serial.
Некоторые материнские платы Micron имеют BIOS, не удовлетворяющую стандарту PCI BIOS, что приводит к несоответствию устройств PCI занимаемым ими адресам. Это приводит к печальным последствиям при загрузке FreeBSD.
Для решения этой проблемы отключите в BIOS опцию "Plug and Play Operating System".
Более подробная информация об этой проблеме находится по следующему адресу: http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron
Поддержка SMP (Symmetric Multiprocessing) имеется только в 3.0-STABLE и последующих релизах. По умолчанию поддержка SMP в ядре GENERIC не включена, так что для её включения вам нужно будет перекомпилировать ядро. Посмотрите в файл /sys/i386/conf/LINT, чтобы определить, какие параметры нужно поместить в конфигурационный файл вашего ядра.