Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
ether=irq, iobase [, param_1 [, param_2,…]]], name
Первый нецифровой аргумент воспринимается как имя. Обычно значения param_n имеют различные назначения для разных сетевых контроллеров. Чаще всего этот параметр используют для второй сетевой карты, поскольку по умолчанию автоматически определяется только одна сетевая карта. Это можно сделать, указав:
ether=0,0,eth1
Обратите внимание, что нулевые значения IRQ и базы ввода/вывода в примере заставляют драйвер сделать автоопределение параметров сетевой карты.
Данный пример не будет автоматически определять параметры второй сетевой карты, если вместо вкомпилированных в ядро использовать загружаемые модули. Большинство современных дистрибутивов Linux используют ядро операционной системы в комбинации с загружаемыми модулями. Параметр ether= применяется только для драйверов, вкомпилированных непосредственно в ядро.
Полная информация по конфигурации и использованию нескольких сетевых карт и описание особенностей настройки конкретных типов сетевых карт содержится в ETHERNET-HOWTO.
Драйвер флоппи-диска (floppy)
Существует большое количество опций драйвера флоппи-диска, и все они перечислены в файле /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)
Драйвер звуковой карты также может принимать аргументы загрузки для изменения вкомпилированных в ядро значений. Делать этого не рекомендуется, поскольку в связи с отсутствием внятной документации такие действия сильно смахивают на шаманство. Намного надежнее использовать загружаемые модули.
Тем более что за последнее время заметно улучшилось качество драйверов для звуковых карт и заметно увеличился ассортимент поддерживаемых драйверами устройств. Принимается аргумент загрузки в следующем виде: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 полностью запрещает драйвер звуковой карты.
Драйвер Bus Mouse (bmouse)
Этот драйвер поддерживает только один параметр, который является значением используемого аппаратного прерывания.
Драйвер MS Bus Mouse (msmouse)
Этот драйвер поддерживает только один параметр, который является значением используемого аппаратного прерывания.
Драйвер принтера ( lp)
Используя этот аргумент загрузки можно сообщить драйверу принтера, какие порты можно использовать, а какие – нет. Этот параметр удобен для запрета захвата драйвером принтера всех доступных параллельных портов.
Формат аргумента – несколько пар адресов ввода/вывода, прерываний. Например,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, так ради совместимости и остается.
К сожалению, не существует единого мнения, как использовать уровни со второго по пятый. По большей части это определяется идеологами дистрибутива или пристрастиями системного администратора. Приведенная выше схема уровней выполнения достаточно оптимальна, и, в конечном итоге, только вы сами решаете, как использовать уровни выполнения.Конфигурационный файл init – /etc/inittab
Как всякая программа, после старта init сразу считывает свой конфигурационный файл /etc/inittab. Это обычный текстовый файл, состоящий из отдельных строк. Если строка начинается со знака # (стандартный признак комментария в конфигурационных файлах и скриптах) или пуста, она игнорируется. Все остальные строки состоят из 4 разделенных двоеточиями полей, имеющих вид: