Текст книги "Linux"
Автор книги: Алексей Стахнов
Жанр: ОС и Сети, Компьютеры
сообщить о неприемлемом содержимом
Текущая страница: 11 (всего у книги 60 страниц) [доступный отрывок для чтения: 20 страниц]
Параметр pci= можно использовать для изменения способа поиска устройств на шине PCI и поведения этих устройств. Как правило, это необходимо либо для старого оборудования, не совсем корректно использующего технологию Plug and Play, либо для специфических РС1-устройств.
Используются для установки или сброса флага индикации тестирования (probing) PCI через PCI BIOS. По умолчанию используется BIOS.
Разрешают тип конфигурации 1 или 2. Также они неявно сбрасывают флаг PCI BIOS probe (т. е. pci=nobios).
Если получено сообщение типа
Unassigned 10 space for…/
то может потребоваться указать значение ввода/вывода этой опцией.
Специфический аргумент, исправляющий погрешности некоторых версий BIOS.
Использование этого аргумента заставляет ядро не сортировать PCI-устройства в процессе проверки.
Использование этой опции запрещает все проверки PCI-шины. Любые драйверы устройств, использующих функции PCI для поиска и инициализации оборудования, скорее всего, потеряют работоспособность.
Эта опция меняет на обратный порядок PCI-устройств на шине PCI.
Аргументы загрузки для драйверов буфера видеофреймовАргумент video= используется, когда уровень абстракции устройства буфера фреймов встроен в ядро. Это означает, что вместо наличия отдельных программ для каждого семейства видеокарт (VOODOO, TNT, S3 и пр.) ядро имеет встроенный драйвер для каждой видеокарты и экспортирует единственный (единый) интерфейс для видеопрограмм. Типичный формат этого аргумента:
video=name: option1,option2,…
где name – название универсальной опции или драйвера буфера фреймов. Как только найдено совпадающее имя драйвера, то список параметров, разделенных запятыми, передается в этот конкретный драйвер для окончательной обработки.
Информацию по опциям, поддерживаемым каждым драйвером, можно найти в файле /usr/src/Linux-2.4.3/Documentation/fb/.
Эта опция используется для установки консоли отображения устройства буфера фреймов.
Число после двоеточия устанавливает размер памяти, выделенной для буфера прокрутки. Суффикс к или к после числа указывает, что число представляет килобайты.
Число или диапазон чисел определяют первую или первую и последнюю виртуальную консоли буфера фреймов.
Аргументы загрузки для SCSI-периферииЭтот раздел содержит описание аргументов загрузки, используемых для передачи информации об установленных SCSI-контроллерах и устройствах.
Драйверы уровня Mid управляют такими устройствами, как винчестеры, CD-ROM и стримеры без учета специфики SCSI-контроллера.
Максимальный LUN (max_scsi_luns=)
Каждое SCSI-устройство может иметь несколько псевдоустройств внутри себя. К примеру, SCSI CD-ROM, обслуживающий более чем один диск одновременно. Каждый CD-ROM адресуется номером логического устройства (Logical Unit Number, LUN). Но большинство SCSI-устройств являются одним устройством, и им назначается нулевой LUN.
Старые SCSI-устройства не могут обработать запросы поиска с LUN, не равным нулю. Зачастую это приводит к зависанию устройства. Чтобы избежать указанной проблемы, по умолчанию пробуется только нулевой LUN.
Для определения количества пробуемых LUN при загрузке, в качестве аргумента загрузки вводится max_scsi_iuns=n, где л – номер от 1 до 8.
Регистрация SCSI (scsi_logging=)
Ненулевое значение этого загрузочного аргумента включает регистрацию всех SCSI-событий.
Параметры для ленточного накопителя SCSI (st=)
При загрузке ядра Linux можно изменить конфигурацию ленточного накопителя SCSI, используя
st=buf_size[,write_threshold[,max bufs]]
Первые два числа указываются в килобайтах. По умолчанию buf_size равен 32 Кбайт. write_threshoid – значение, при котором буфер сбрасывается на ленту, по умолчанию 30 Кбайт. Максимальное количество буферов зависит от количества обнаруженных ленточных накопителей, по умолчанию равно 2.
Понятия, используемые в данном разделе:
• iobase – первый порт ввода/вывода, занимаемый контроллером SCSI. Указывается в шестнадцатеричной нотации и обычно лежит в диапазоне от 0x200 до 0x3ff;
• irq – аппаратное прерывание, установленное на карте. Допустимые значения зависят от конкретного контроллера, но обычно это 5, 7, 9, 10, 11, 12 и 15;
• dma – используемый картой канал DMA (Direct Memoiy Access – прямой доступ к памяти). Обычно применяется только для карт с управлением шиной (bus-mastering);
• scsi-id – идентификатор, используемый контроллером для идентификации себя на SCSI-шине. Только некоторые контроллеры позволят изменить это значение. Типичное значение по умолчанию – 7.
• parity – ожидает ли SCSI-контроллер поддержку всеми подсоединенными устройствами четности при всех информационных обменах. Единица разрешает проверку четности, ноль – запрещает.
К сожалению, большей неразберихи, чем в настройках SCSI-контроллеров и устройств, наверное, не существует. До недавнего времени любая попытка улучшить поддержку SCSI-устройств в Linux оборачивалась тем, что какие-то новые контроллеры работали, а старые (казалось, уже давно отлаженные) теряли свою работоспособность.
В качестве примера ниже приведена конфигурация некоторых семейств контроллеров. Подробную информацию следует искать в документации на конкретные контроллеры.
Adaptec aha154x (aha1542=)
Карты серии ahal54x с управлением шиной. Аргументы загрузки выглядят следующим образом:
aha1542=iobase[,buson,busoff[,dmaspeed]]
Допустимые значения iobase: 0x130, 0x134, 0x230, 0x234, 0x330, 0x334. Клоны карты могут допускать другие значения.
Значения buson, busoff указывают количество микросекунд, на которое карта может захватить ISA-шину.
Параметр dmaspeed указывает скорость в мегабайтах в секунду, с которой происходит DMA-доступ. По умолчанию – 5 Мбайт/с.
Adaptec aha274x, aha284x, aic7xxx (aic7xxx=)
Эти контроллеры принимают следующие аргументы:
aiс7xxx=extended,no_reset
Здесь:
• extended – значение, используемое с винчестерами большой емкости;
• no_reset – значение, запрещающее сброс SCSI-шины во время загрузки.
Если SCSI-контроллер не желает нормально функционировать, следует обратится к SCSI-HOWTO или к документации ядра. Возможно, там присутствует данный SCSI-контроллер и описано решение этой проблемы.
Жесткие дискиВ этом разделе приводится список аргументов загрузки для стандартных жестких дисков (винчестеров) MFM/RLL, ST-506, XT и устройств IDE.
Драйвер IDE допускает множество параметров, от определения геометрии диска до поддержки расширенных или дефектных микросхем контроллера. Подробная информация по конфигурации драйвера содержится в файле /usr/src/Linux-2.4.3/Documentation/ide.txt.
• hdx= – распознается от а до h, например HDD;
• idex= – распознается от 0 до 3, например IDE1;
• hdx=noprobe – привод может присутствовать, но он не тестируется;
• hdx=none – жесткий диск отсутствует, CMOS игнорируется и тестирование не производится;
• hdx=nowerr – игнорируется бит wrerr_stat на этом приводе;
• hdx=cdrom – привод присутствует и является приводом CD-ROM;
• hdx=cyi, head, sect – принудительное указание геометрии жесткого диска;
• hdx=autotune – привод попытается настроить скорость интерфейса на самый быстрый поддерживаемый режим PIO, который только возможен для этого привода. На старых материнских платах не гарантируется полная поддержка такого режима;
• idex=noprobe – не тестировать данный интерфейс;
• idex=base – задать адрес указанному интерфейсу, где base обычно 0x1f0 или 0x170, a cti подразумевается base+0x206;
• idex=base, cti – указывает как base, так и cti;
• idex=base, cti, irq – указывает base, cti и номер IRQ;
• idex=autotune – будет произведена попытка настроить скорость интерфейса на самый быстрый поддерживаемый режим PIO для всех приводов на этом интерфейсе. На старых материнских платах не гарантируется полная поддержка такого режима;
• idex=noautotune – привод не будет пытаться настроить скорость интерфейса;
• idex=serialize – не выполнять операции overlap на idex.
Нижеследующее допустимо только на IDE0, и умолчания для base– и ctl-портов не должны меняться. Используется для старых чипсетов времен процессоров i386 и i486:
• ide0=dtc2278 – поддерживать контроллер DTC2278;
• ide0=ht6560b – поддерживать контроллер НТ6560В;
• ide0=cmd640_vib – необходим для карт VLB с чипом CMD640;
• ide0=qd6580 – поддерживать контроллер qd6580;
• ide0=ali14xx – поддерживать чипсеты ALI14xx (ALI М1439/М1445);
• ide0=umc8672 – поддерживать чипсет UMC8672.
Устаревший стандарт. Сегодня вряд ли можно где-нибудь столкнуться с жестким диском этого стандарта. Допустим только аргумент hd=.
Формат: hd=cyls, heads, sects
Если установлено два диска, точно так же задается второй диск.
Устаревший стандарт. Аргумент загрузки для жесткого диска:
xd=type,irq,iobase,dma_chan
Значение type указывает конкретного производителя карты и обозначается: 0=generic; 1=DTC; 2,3,4=Western Digital, 5,6,7=Seagate; 8=OMTI. Единственное отличие между разными типами от одного и того же производителя – строка BIOS, используемая для обнаружения, которая не активизируется, если указан тип.
CD-ROM (не-SCSI/ATAPI/IDE)Первоначально, когда только появились приводы CD-ROM, для этих приводов не было единого интерфейса. Последние 4–5 лет выпускаются приводы CD-ROM только с SCSI или IDE-интерфейсом. Однако иногда приходится встречаться с CD-ROM с интерфейсом Sony и Mitsumi. Ниже приведены параметры для различных контроллеров приводов CD-ROM.
Более подробная информация содержится в каталоге /usr/src/Linux-2.4.3/ Documentation/cdrom.
Синтаксис для этого типа интерфейса:
aztcd=iobase[,magic_number]
Если установить magic_number равным 0x79, драйвер опробует устройство и в случае неизвестной ему версии оборудования (firmware) отключится. Все другие значения игнорируются.
Синтаксис:
cdu31a=iobase,[irq[,is_pas_card]]
Указав значение IRQ, равное нулю, сообщаем драйверу, что аппаратные прерывания не поддерживаются. Если имеющаяся карта поддерживает прерывания, следует использовать их для уменьшения загрузки центрального процессора.
Синтаксис для этого интерфейса:
sonycd535=iobase[, irq]
Если необходимо прописать значение IRQ, то в качестве адреса ввода/вывода следует указать 0.
Синтаксис для интерфейса CD-ROM:
gscd=iobase
Синтаксис для этого интерфейса:
isp16= [port [, irq[, dma]]] [[,] drive_type]
Использование нуля для IRQ или DMA означает, что они не используются. Допустимые значения ДЛЯ drive_type – noispl6, Sanyo, Panasonic, Sony и Mitsumi. Применение noispie полностью запрещает драйвер.
Синтаксис для этого интерфейса CD-ROM:
mcd=iobase, [irq[,wait_value]]
wait_vaiue используется как значение внутреннего тайм-аута.
Синтаксис для этого типа карт:
optcd=iobase
Синтаксис для этого типа карт:
cm206=[iobase][,irq]
Драйвер предполагает значения IRQ между 3 и 11, а значения портов ввода/вывода– между 0x300 и 0x370. Также допускается cm206=auto для разрешения автоматического определения параметров.
Синтаксис для этого типа карт:
sjcd=iobase[,irq[,dma_channel]]
Синтаксис для этого типа карт:
sbpcd=iobase,type
где type – один из следующих (чувствителен к регистру) значений: SoundBlaster, LaserMate, или SPEA. iobase – адрес интерфейса CD-ROM, а не звуковой части карты.
Последовательные и ISDN-драйверыВ разделе приведены параметры для некоторых ISDN-карт и так называемых мультипортовых последовательных контроллеров. Как обычно, первоначально единых стандартов не существовало, и из-за этого приходится иногда использовать параметры, передаваемые при загрузке ядра.
Параметры:
pcbit=membase1,irq1[,membase2,irq2]
где membaseN – база разделяемой памяти для::-ой карты, a irqN – установленное прерывание для n-ой карты. По умолчанию IRQ 5 и membase 0xD0000.
ISDN-драйвер требует аргументы загрузки в следующем виде:
teles=iobase,irq,membase,protocol,teles_id
где iobase – адрес порта ввода/вывода карты, membase – базовый адрес разделяемой памяти карты, irq – прерывание, используемое картой, teies_id – уникальная строка идентификатора.
Драйвер мультипортового последовательного контроллера DigiBoard принимает строку из шести идентификаторов или целых чисел, разделенных запятыми. Значения по порядку:
• Enable/Disable – разрешить/запретить использование контроллера;
• тип карты – PC/Xi(0), РС/Хе(1), PC/Xeve(2), PC/Xem(3);
• Enable/Disable – разрешить/запретить альтернативное расположение контактов;
• количество портов на этой карте;
• порт ввода/вывода, на который сконфигурирована карта;
• база окна памяти. Пример аргумента загрузки:
digi=E,PC/Xi,D,16,200,D0000
Более подробную информацию можно прочитать в файле /usr/src/Linux-2.4.3/Documentation/digiboard.txt.
Формат аргумента загрузки для этого устройства:
baycom=modem,io,irq,options[,modem,io,irq,options]
Использование modem=i означает, что у вас устройство seri2; modem=2 – устройство рагЭб. Значение options=0 предписывает использование аппаратного DCD, a opton=l – программного DCD. Параметры io и irq – базовый порт ввода/вывода и прерывание.
Драйверы других устройствВ разделе приведены параметры загрузки других устройств, не вошедших ни в одну из упомянутых выше категорий.
Драйверы для различных видов сетевых контроллеров поддерживают разные параметры, но они все используют значения прерывания, базовый адрес порта ввода/вывода и имя. В наиболее универсальной форме это выглядит так:
ether=irq, iobase [, param_1 [, param_2,…]]], name
Первый нецифровой аргумент воспринимается как имя. Обычно значения param_n имеют различные назначения для разных сетевых контроллеров. Чаще всего этот параметр используют для второй сетевой карты, поскольку по умолчанию автоматически определяется только одна сетевая карта. Это можно сделать, указав:
ether=0,0,eth1
Обратите внимание, что нулевые значения IRQ и базы ввода/вывода в примере заставляют драйвер сделать автоопределение параметров сетевой карты.
Данный пример не будет автоматически определять параметры второй сетевой карты, если вместо вкомпилированных в ядро использовать загружаемые модули. Большинство современных дистрибутивов Linux используют ядро операционной системы в комбинации с загружаемыми модулями. Параметр ether= применяется только для драйверов, вкомпилированных непосредственно в ядро.
Полная информация по конфигурации и использованию нескольких сетевых карт и описание особенностей настройки конкретных типов сетевых карт содержится в ETHERNET-HOWTO.
Существует большое количество опций драйвера флоппи-диска, и все они перечислены в файле /usr/src/Linux-2.4.3/drivers/block/README.fd. Использование параметров загрузки для дисковода зачастую вызывает откровенное непонимание – казалось бы, более стандартное устройство трудно найти. Однако достаточно много проблем вносят ноутбуки. Почти треть параметров загрузки для дисковода так или иначе касаются только ноутбуков. Ниже приведены только основные опции:
• floppy=0, daring – сообщает драйверу дисковода о необходимости запрета всех рискованных операций;
• floppy=thinkpad – сообщает драйверу дисковода, что у вас ноутбук фирмы IBM;
• floppy=nodma – указывает драйверу дисковода не использовать DMA для передачи данных. Необходима при установке Linux на ноутбук HP Omnibooks, у которого нет работающего DMA-канала для дисковода. Эта опция также необходима, если вы часто получаете сообщения Unable to allocate DMA memory ("He могу распределить память DMA");
• floppy=nofif – полностью запрещает буфер FIFO (First Input First Output, первый вошел – первый вышел) при операциях записи/чтения. Применение этого параметра необходимо, если при доступе к дисководу вы получаете сообщения Bus master arbitration error ("Ошибка разделения шины");
• flорру=broken_dcl – указывает драйверу не использовать сигнал смены диска (Disc Change Line, DCL), однако при этом каждый раз при повторном открытии узла устройства (device node) операционная система предполагает, что диск был заменен. Необходима для компьютеров, где сигнал замены диска поврежден или не поддерживается. В основном касается ноутбуков. Однако, если вдруг возникли проблемы с определением замены дискеты – это первый признак того, что дисковод скоро выйдет из строя;
• floppy=debug – установка этой опции указывает драйверу выводить отладочную информацию;
• floppy=message – указывает драйверу выводить информационные сообщения для некоторых дисковых операций.
Драйвер звуковой карты также может принимать аргументы загрузки для изменения вкомпилированных в ядро значений. Делать этого не рекомендуется, поскольку в связи с отсутствием внятной документации такие действия сильно смахивают на шаманство. Намного надежнее использовать загружаемые модули.
Тем более что за последнее время заметно улучшилось качество драйверов для звуковых карт и заметно увеличился ассортимент поддерживаемых драйверами устройств. Принимается аргумент загрузки в следующем виде:
sound=device1[,device2[,device3…]]
где каждое значение deviceN имеет формат 0xDTaaaId. Расшифруем формат deviceN:
• D – второй канал DMA (ноль не применяется);
• T – тип устройства (список звуковых карт до типа 26 находится в файле /usr/src/Linux-2.4.3/include/linux/soundcard.h, а от 27 до 999 – в файле /usr/src/Linux-2.4.3/drivers/soimd/dev_table.h.):
• 1=FM
• 2=SB
• 3=PAS
• 4=GUS
• 5=MPU401
• 6=SB16
• 7=SB16-MIDI
И т. д.;
• aaa – адрес ввода/вывода в шестнадцатеричном представлении;
• I – номер прерывания в шестнадцатеричном представлении;
• d – первый канал DMA.
Применение параметра загрузки sound=0 полностью запрещает драйвер звуковой карты.
Этот драйвер поддерживает только один параметр, который является значением используемого аппаратного прерывания.
Этот драйвер поддерживает только один параметр, который является значением используемого аппаратного прерывания.
Используя этот аргумент загрузки можно сообщить драйверу принтера, какие порты можно использовать, а какие – нет. Этот параметр удобен для запрета захвата драйвером принтера всех доступных параллельных портов.
Формат аргумента – несколько пар адресов ввода/вывода, прерываний. Например,
lр=0х3Ьс,0,0x378,7
Драйвер принтера будет использовать порт на 0x3Ьс без прерывания и порт 0x378 с седьмым прерыванием. Порт 0x278 (если он присутствует в компьютере) не будет использоваться, поскольку автоопределение выполняется при отсутствии аргумента lр=. Для полного отключения драйвера принтера можно использовать параметр lр=о.
Процесс initПосле того как ядро Linux полностью загрузилось, считало конфигурационные параметры и настроило оборудование (по крайней мере то, которое упоминалось в конфигурационных параметрах, и то, драйверы которого присутствуют в ядре), оно приступает к монтированию разделов жесткого диска. Монтирование всегда начинается с корневой файловой системы. Как только корневая файловая система окажется загружена и смонтирована, будет выведено сообщение:
VFS: Mounted root (ext2 filesystem) readonly
В этой точке система находит на корневой файловой системе программу init и выполняет ее.
Процесс init – это программа, ответственная за продолжение процедуры загрузки и перевод операционной системы из начального состояния, возникающего после загрузки ядра, в стандартное состояние. Во время этого процесса init выполняет множество операций, необходимых для нормального функционирования операционной системы: монтирование и проверку файловых систем, запуск различных служб и т. п. Список производимых действий помимо конфигурации системы зависит от так называемого уровня выполнения (run level).
Достаточно простой аналогией уровня выполнения является обычный распорядок дня человека – пробуждение, приведение себя в порядок, завтрак, "выход в свет" – общение с окружающим миром, ужин, приведение себя в порядок, сон. Так изо дня в день, одни и те же операции, в одной и той же последовательности. Не умывшись, вы на работу не пойдете, завтрак обязательно идет перед ужином и т. д.
Точно так же разбиты уровни выполнения. Каждый уровень выполнения однозначно (по крайней мере, в пределах дистрибутива) определяет перечень действий, выполняемых процессом init, и конфигурацию запущенных процессов. К сожалению (а может, и к счастью) четкого разделения на уровни выполнения, их количество, действия, выполняемые на каждом уровне, нет. Так, в некоторых UNIX-системах уровней выполнения всего два. Некоторые дистрибутивы Linux таким же образом конфигурируют свою операционную систему (в дистрибутиве Slackware, например, два уровня выполнения). В других дистрибутивах (Red Hat Linux) уровней выполнения восемь. Поскольку эта книга базируется на дистрибутиве Red Hat, дальнейшее описание на нем и основано.
В операционной системе Linux существует восемь уровней выполнения:
• 0 – останов системы;
• 1 – однопользовательский режим для специальных случаев администрирования. Отсутствует поддержка сети, практически нет сервисов;
• 2 – многопользовательский режим без поддержки сети;
• 3 – многопользовательский режим с поддержкой сети;
• 4 – использование не регламентировано;
• 5 – обычно по умолчанию стартует X Window System;
• 6 – перезагрузка системы;
• S или s – практически то же, что и однопользовательский режим, но уровень выполнения S используется, в основном, в скриптах.
Как можно заметить, существует определенное логическое нарушение в следовании уровней выполнения. Было бы более логично нулевой уровень выполнения вставить перед шестым. Однако здесь проявили себя исторические традиции – как повелось много лет назад в UNIX, так ради совместимости и остается.
К сожалению, не существует единого мнения, как использовать уровни со второго по пятый. По большей части это определяется идеологами дистрибутива или пристрастиями системного администратора. Приведенная выше схема уровней выполнения достаточно оптимальна, и, в конечном итоге, только вы сами решаете, как использовать уровни выполнения.
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?