Библиотека сайта rus-linux.net
10. Драйверы других устройств
Здесь свалены в общую кучу остальные устройства, не вошедшие ни в одну из упомянутых выше категорий.
10.1 Устройства Ethernet (`ether=')
Разные драйверы используют различные параметры, но все они, по крайней мере, совместно используют имеющиеся значения IRQ, базовый адрес порта I/O и имя. В наиболее универсальной форме это выглядит примерно так:
ether=irq,iobase[,param_1[,param_2,...param_8]]],name
The first non-numeric argument is taken as the name. The param_n
values (if applicable) usually have different meanings for each
different card/driver. Typical param_n
values are
used to specify things like shared memory address, interface
selection, DMA channel and the like.
Первый не цифровой аргумент воспринимается как имя. Обычно значения param_n
(если
применимо) имеют различные назначения для разных карт/драйверов.
Чаще всего этот параметр используют для пробы второй сетевой карты, поскольку по-умолчанию тестируется только одна. Это можно сделать указав:
ether=0,0,eth1
Обратите внимания, что нулевые значения IRQ и базы I/O в предыдущем примере заставляют драйвер сделать автопробу.
ВАЖНОЕ ЗАМЕЧАНИЕ ДЛЯ ПОЛЬЗОВАТЕЛЕЙ МОДУЛЕЙ:
вышеупомянутое не будет пробовать вторую карточку, если вы
используете драйвер(ы) как run-time загружаемые модули (вместо
вкомпилированных в ядро). Большинство дистрибутивов Linux
используют голое (bare bones) ядро в комбинации с большим выбором
модульных драйверов. ether=
применяется только для драйверов,
вкомпилированных непосредственно в ядро.
Ethernet-HowTo содержит полную и расширенную информацию по
использованию нескольких карт и какие значения param_n
используются для конкретных карт/драйверов. Более подробную информацию по
своей конкретной карте интересующиеся могут найти в
соответствующем разделе этой документации.
Ethernet-HowTo
10.2 Драйвер флоппи-диска (`floppy=')
Существует множество опций драйвера флоппи-диска, и все они
перечислены в README.fd
в linux/drivers/block
.
Их слишком много, чтобы приводить здесь. Поэтому, укажем только те
опции, которые могут понадобиться для установки Linux на минимальном оборудовании.
floppy=0,daring
Сообщает драйверу флоппи что ваш флоппи-контроллер
должен использоваться с осторожностью (запрещает все рискованые операции).
floppy=thinkpad
Сообщает драйверу флоппи, что у вас ноутбук. Ноутбуки
используют инвертированное значение сигнала смены диска.
floppy=nodma
Сообщает драйверу флоппи не использовать DMA для
передачи данных. Это необходимо на HP Omnibooks, у которого нет работающего
DMA канала для драйвера флоппи. Эта опция полезна также, если вы часто
получаете сообщения "Unable to allocate DMA memory" (Не могу распределить
память DMA). Если у вас FDC без FIFO (8272А или 82072), применение `nodma' не
рекомендуется. Для 82072А и позже все ОК. Модель FDC указывается при
загрузке. Также вам необходим, по крайней мере, 486 для применения nodma.
floppy=nofifo
Полностью запрещает FIFO. Необходимо, если при
доступе к флоппи-диску вы получаете сообщения 'Bus master arbitration error' от
сетевой карточки (или от другого устройства).
floppy=broken_dcl
Не использовать сигнал смены диска (DCL - Disc Change Line), но
каждый раз при повторном открытии узла устройства (device node)
предполагается что диск был заменен. Необходим для некоторых
машин, где сигнал замены диска поврежден или не поддерживается.
Это должно считаться как временная мера, поскольку делает дисковые
операции менее эффективными из-за лишних сбрасываний кэша и
несколько ненадежно. При наличии DCL проблем проверьте ваше кабельное
соединение и установку перемычек. Хотя известны некоторые старые
приводы, а также некоторые лаптопы, не имеющие DCL.
floppy=debug
Выводит (дополнительно) отладочные сообщения.
floppy=messages
Выводит информирующие сообщения для
некоторых операций (подтверждение замены диска, предупреждения о
перегрузке и недогрузке (over and underruns ?), и об автодетекции).
10.3 Драйвер звука (`sound=')
Драйвер звука также может принимать аргументы загрузки для изменения вкомпилированных значений. Делать это не рекомендуется, поскольку это достаточно сложно, а документация для этого в ядре загадочно исчезла (намек). Вы выиграете, если будете использовать звук как модуль, или вкомпилируйте свои собственные значения.
Если, тем не менее, вы выбрали это, то обработка аргумента производится в файле dev_table.c
in linux/drivers/sound
. Принимается аргумент загрузки в следующем виде:
sound=device1[,device2[,device3...[,device11]]]
где каждое значение deviceN
следующего формата 0xDTaaaId
, а
байты используются так:
D - второй канал DMA (ноль не применяется)
T - тип устройства: 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401,
6=SB16, 7=SB16-MIDI,... Список типов звуковых
карт до 26 (не забудьте
преобразовать обратно в hex для
использования в командной строке)
находится в файле linux/include/linux/soundcard.h
,
а от 27 до 999 (новейшие модели) можно
найти в файле linux/drivers/sound/dev_table.h
.
aaa - адрес I/O в hex.
I - номер прерывания в hex (т.е. 10=a, 11=b, ...)
d - первый канал DMA.
Как вы видите, это довольно утомительно, поэтому вы действительно выигрываете при использовании модульного драйвера или компиляции своих собственных значений, как рекомендовалось. Применение параметра загрузки `sound=0' полностью запрещает драйвер звука.
10.4 Драйвер Bus Mouse (`bmouse=')
Драйвер busmouse поддерживает только один параметр, который является значением используемого аппаратного IRQ.
10.5 Драйвер MS Bus Mouse (`msmouse=')
Драйвер MS mouse поддерживает только один параметр, который является значением используемого аппаратного IRQ.
10.6 Драйвер принтера (`lp=')
Этим аргументом загрузки вы можете сообщить драйверу принтера какие порты использовать, а какие -- нет. Последнее удобно для запрета захвата драйвером принтера всех доступных параллельных портов, чтобы их могли использовать другие драйверы (например, PLIP, PPA).
Формат аргумента -- несколько пар i/o,
IRQ. Например, lp=0x3bc,0,0x378,7
будет
использовать порт на 0x3bc
без
IRQ (голосующий режим -- polling mode) и порт
0x378
с IRQ 7. Порт 0x278
(если
есть) не будет пробоваться (probe),
поскольку автопробинг выполняется
при отсутствии аргумента lp=
.
Для полного отключения драйвера
принтера можно использовать lp=0
.