Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab.MIT.03

.pdf
Скачиваний:
7
Добавлен:
19.02.2016
Размер:
413.94 Кб
Скачать

device

wlan_wep

# 802.11 WEP support

device

wlan_ccmp

# 802.11 CCMP support

device

wlan_tkip

# 802.11 TKIP support

device

wlan_amrr

# AMRR transmit rate control algorithm

device

wlan_scan_ap

# 802.11 AP mode scanning

device

wlan_scan_sta

# 802.11 STA mode scanning

device

an

# Aironet 4500/4800 802.11 wireless NICs.

device

ath

# Atheros pci/cardbus NIC's

device

ath_hal

# Atheros HAL (Hardware Access Layer)

options

AH_SUPPORT_AR5416

# enable AR5416 tx/rx descriptors

device

ath_rate_sample

# SampleRate tx rate control for ath

device

awi

# BayStack 660 and others

device

ral

# Ralink Technology RT2500 wireless NICs.

device

wi

# WaveLAN/Intersil/Symbol 802.11 wireless NICs.

#device

wl

# Older non 802.11 Wavelan wireless NIC.

Поддержка различных беспроводных карт.

 

#Pseudo devices

# Network loopback

device

loop

Стандартное устройство обратной связи для ТСР/IР. Если выполняется telnet или FTP на localhost (он же 127.0.0.1), то соединение пройдёт через это устройство. Этот параметр обязателен. Во FreeBSD 4.Х потребуется использовать pseudo-device loop.

device

random

# Entropy device

Генератор случайных чисел для криптографической защиты.

device

ether

# Ethernet support

ether необходим лишь в случае, когда в системе установлена сетевая карта. Он включает поддержку стандартного кода протокола Ethernet. Во FreeBSD 4.X используется строка pseudo-device ether.

device

sl

# Kernel SLIP

sl — это поддержка SLIP. SLIP был практически вытеснен РРР, который легче настраивается, лучше подходит для соединений модем-модем и имеет больше возможностей. Во FreeBSD 4.X используется строка pseudo-device sl.

device

ppp

# Kernel PPP

Поддержка РРР в ядре для соединений dial-up. Также существует версия РРР, реализованного как приложение, использующее tun, и предлагающее большую гибкость и большее количество возможностей, как, например, соединение при необходимости (наличии обращения к сети). Во FreeBSD 4.X используется строка pseudo-device ppp.

device

tun

# Packet tunnel.

Используется пользовательским программным обеспечением РРР. Во FreeBSD 4.X используется строка pseudodevice tun.

device

pty

# Pseudo-ttys (telnet etc)

«псевдо-терминал» или имитированный порт для входа. Используется входящими telnet и rlogin-сессиями, приложением xterm и некоторыми другими приложениями, такими как Emacs.

Замечание: во FreeBSD 4.X используется строка pseudo-device pty number. Число после pty определяет количество pty, которое необходимо создать. Если требуется больше, чем стандартное (16) количество окон xterm и/или удаленных входов, необходимо увеличить это число в соответствии с потребностями, но не более чем до 256.

device

md

# Memory "disks"

Псевдоустройства дисков в памяти. Во FreeBSD 4.X используется строка pseudo-device md

11

device gif # IPv6 and IPv4 tunneling

Поддержка туннелирования IPv6 через IPv4, IPv4 через IPv6, IPv4 через IPv4 и IPv6 через IPv6. Начиная с FreeBSD 4.4 устройство gif является «автоклонируемым» при этом используется строка pseudo-device gif. Более ранним версиям FreeBSD 4.X требуется номер, например pseudo-device gif 4.

device faith # IPv6-to-IPv4 relaying (translation)

Это псевдоустройство захватывает пакеты, которые были посланы ему и перенаправляет их демону трансляции IРv4/IРv6. Во FreeBSD 4.X используется строка pseudo-device faith 1

device

firmware

# firmware assist module

#The `bpf` device enables the Berkeley Packet Filter.

#Be aware of the administrative consequences of enabling this!

#Note that 'bpf' is required for DHCP.

device

bpf

# Berkeley packet filter

Фильтр пакетов Berkeley. Это псевдоустройство позволяет переводить сетевые интерфейсы в «неразборчивый» (promiscuous) режим, в котором перехватывается любой пакет в широковещательной сети (например ethernet). Эти пакеты могут быть сохранены на диск и/или исследованы при помощи tcpdump. Во FreeBSD 4.X используется строка pseudo-device bpf.

Замечание: устройство bpf также используется программой dhclient. Если планируется использовать DCHP, необходимо оставить этот параметр.

#USB support

uhci

# UHCI PCI->USB interface

device

device

ohci

# OHCI PCI->USB interface

device

ehci

# EHCI PCI->USB interface (USB 2.0)

device

usb

# USB Bus (required)

device

udbp

# USB Double Bulk Pipe devices

device

ugen

# Generic

device

uhid

# "Human Interface Devices"

device

ukbd

# Keyboard

device

ulpt

# Printer

device

umass

# Disks/Mass storage - Requires scbus and da

device

ums

# Mouse

device

ural

# Ralink Technology RT2500USB wireless NICs

device

rum

# Ralink Technology RT2501USB wireless NICs

device

urio

# Diamond Rio 500 MP3 player

device

uscanner

# Scanners

# USB Serial devices

# Generic com ttys

device

ucom

device

uark

# Technologies ARK3116 based serial adapters

device

ubsa

# Belkin F5U103 and compatible serial adapters

device

ubser

# BWCT console serial adapters

device

uftdi

# For FTDI usb serial adapters

device

uipaq

# Some WinCE based devices

device

uplcom

# Prolific PL-2303 serial adapters

device

uslcom

# SI Labs CP2101/CP2102 serial adapters

device

uvisor

# Visor and Palm devices

device

uvscom

# USB serial support for DDI pocket's PHS

#USB Ethernet, requires mii

# ADMtek USB Ethernet

device

aue

device

axe

# ASIX Electronics USB Ethernet

device

cdce

# Generic USB over Ethernet

device

cue

# CATC USB Ethernet

device

kue

# Kawasaki LSI USB Ethernet

device

rue

# RealTek RTL8150 USB Ethernet

Поддержка различных USB устройств.

12

# FireWire support

# FireWire bus code

device

firewire

device

sbp

# SCSI over FireWire (Requires scbus and da)

device

fwe

# Ethernet over FireWire (non-standard!)

device

fwip

# IP over FireWire (RFC 2734,3146)

device

dcons

# Dumb console driver

device

dcons_crom

# Configuration ROM for dcons

Поддержка различных устройств Firewire.

Создание файлов устройств

Замечание: во FreeBSD 5.0 или старше для создания файлов устройств используют devfs(5).

Почти все устройства в ядре имеют соответствующий файл, называемый «node» («узел»), в каталоге /dev. Они выглядят как обычные файлы, но на самом деле это специальные точки входа в ядро, которые необходимы приложениям для доступа к устройствам. Скрипт /dev/MAKEDEV, который выполняется при начальной установке операционной системы, создает узлы почти для всех поддерживаемых устройств. Однако он не создаёт все из них, когда добавляется поддержка нового устройства, следует убедиться, что соответствующие файлы есть в /dev. Пример:

В ядро была добавлена поддержка привода IDE CD-ROM:

device acd0

Это означает, что необходимо проверить наличие файлов, название которых начинаются строкой acd0 в каталоге /dev, за которой, возможно, следует буква с или предшествует r, что означает «сырое» (raw) устройство, которое используется для прямого доступа к аппаратному устройству. Если оказывается, что таких файлов в каталоге нет, то необходимо перейти в каталог /dev и набрать:

# sh MAKEDEV acd0

Скрипт отработал корректно, если по завершению его работы появятся файлы acd0c и racd0c. Для звуковых карт используется следующая утилита:

# sh MAKEDEV snd0

Замечание: для защиты таких устройств, как звуковые карты, от доступа извне необходимо добавить их в файл

/etc/fbtab.

Необходимо выполнять подобные действия для любых других устройств, которые отсутствуют в ядре generic и которые не имеют соответствующих файлов в /dev.

Замечание: все контроллеры SCSI используют одинаковый набор файлов в /dev, поэтому не нужно создавать их. Кроме того, сетевые карты и псевдоустройства SLIP и РРР не имеют вхождений в /dev.

Решение проблем

Существует пять категорий проблем, которые могут возникнуть при сборке собственного ядра: Сбой утилиты config:

Если утилита config не может отработать, то, скорее всего, была допущена синтаксическая ошибка в файле конфигурации ядра. config выведет номер ошибочной строки. Например:

config: line 17: syntax error

Сбой утилиты make:

Если утилита make вызвала ошибку, это обычно говорит о наличии семантической ошибки в описании ядра (выключено устройство, которое является необходимым). Если проблема не решается, то необходимо написать письмо в список рассылки, посвященный вопросам и ответам пользователей FreeBSD (http://lists.FreeBSD.org/mailman/listinfo/freebsd-questions), включив в письмо файл конфигурации ядра.

Не удаётся установить новое ядро:

13

Если ядро собралось без проблем, но не удалось его установить (утилита make install или make installkernel сообщила об ошибке), первое, что необходимо проверить, не запущена ли система с уровнем безопасности 1 или выше. Процедура установки пробует снять флаг неизменяемости с текущего ядра и установить этот флаг для нового ядра. Так как на уровне безопасности 1 и выше запрещено снятие флага неизменяемости для всех файлов в системе, установка должна производиться на уровне безопасности 0 и ниже.

Замечание: применимо только к FreeBSD 4.X и более ранним версиям. FreeBSD 5.X, как и более поздние версии, не устанавливает этот флаг на ядро и ошибка при установке ядра возможно указывает на более серьезную проблему.

Ядро не загружается:

Если новое ядро не загружается или ему не удаётся обнаружить устройства, то во FreeBSD существует отличный механизм для восстановления после установки несовместимого ядра. Необходимо выбрать ядро, которое требуется загрузить, в загрузчике FreeBSD. Доступ к нему можно получить, когда система делает обратный отсчёт от 10 в меню загрузки, выбрав шестой пункт («Escape to a loader prompt») и введя unload kernel. Далее необходимо набрать boot /boot/kernel.old/kernel, или любое другое ядро, которое загрузится без проблем. Во время конфигурирования ядра всегда полезно оставлять рабочую копию ядра. Также рекомендуется сохранить ядро GENERIC перед началом процедуры сборки ядра, например:

# cp -Rp /boot/kernel/ /boot/kernel.generic

После загрузки с рабочим ядром можно проверить файл конфигурации и попробовать собрать ядро опять. Очень полезным в данном случае окажется файл /var/log/messages, в котором, среди других записей, имеются сообщения ядра от каждой успешной загрузки. Также, утилита dmesg выведет сообщения ядра от текущей загрузки.

Замечание: если возникли проблемы со сборкой ядра, необходимо убедится, что было сохранено ядро generic или другое рабочее ядро под именем отличным от kernel.old. При этом рабочее ядро не будет удалено при следующей сборке. Для этого просто необходимо переместить каталог, содержащий работоспособное ядро:

#mv /boot/kernel /boot/kernel.bad

#mv /boot/kernel.good /boot/kernel

В версиях FreeBSD до 5.Х, для восстановления работоспособного ядра используется утилита:

# chflags noschg /kernel

Если этого сделать нельзя, то скорее всего система работает на уровне безопасности большем нуля. Для смены необходимо отредактировать переменную kern_securelevel в файле /etc/rc.conf, установив её в 1 и перезагрузив систему.

Если необходимо защитить новое ядро или любой другой файл, таким образом, что он не сможет быть перемещен или изменен, можно воспользоваться утилитой:

# chflags schg /kernel

Ядро работает, но ps больше не работает:

Если установлена версия ядра отличная от той, с которой были собраны системные утилиты, например, ядро от 5.Х на системе 4.Х, большая часть системных утилит, таких как ps и vmstat не будут больше работать. Для решения проблемы потребуется перекомпилировать и установить систему той же версии исходных текстов, что и ядро. Это одна из причин, по которой не следует использовать версию ядра, отличную от версии всей остальной системы.

Задание на работу

1.Отредактировать конфигурационный файл ядра в соответствии с вариантом и установленным в системе оборудованием. В Ядро необходимо статически включить модули поддержки всех аппаратных компонент компьютера. При этом необходимо учитывать наличие зависимостей между модулями, а также их особенности: реальные и псевдоустройства. Остальные модули поддержки реальных аппаратных компонент компьютера должны быть удалены.

2.Выполнить компиляцию и установку пользовательского ядра.

3.Проверить работоспособность пользовательского ядра.

Варианты заданий.

14

Идентификатор

варианта

ядра

1

kernel01

2

kernel02

3

kernel03

4

kernel04

5

kernel05

6

kernel06

7

kernel07

8

kernel08

9

kernel09

10

kernel10

11

kernel11

12

kernel12

13

kernel13

14

kernel14

15

kernel15

Контрольные вопросы

1.С какой целью выполняется процедура сборки пользовательского ядра ОС FreeBSD Unix?

2.Какие способы определения состава установленного оборудования имеются во FreeBSD?

3.Процедура выбора ядра в загрузчике при старте системы.

4.К какому типу архитектуры относится ядро ОС FreeBSD Unix?

5.Решение проблем при сборке пользовательского ядра.

6.Почему рекомендуется отдельно сохранить ядро generic?

7.Какие функции выполняет ядро операционной системы?

Литература

1. http://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/kernelconfig.html

15

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]