Назад Вернуться к оглавлению. Далее

9. Подключение и настройка аппаратных устройств

9.1. Предположения
9.2. Специальные файлы устройств
9.3. Клавиатура
9.4. Мышь
   9.4.1. Определение типа мыши
   9.4.2. Конфликты по прерываниям
   9.4.3. Настройка мыши
9.5. Жесткий диск
9.6. Принтер
9.7. Zip-диск фирмы Iomega для параллельного порта
9.8. Дисковод CD-ROM
9.9. Звуковая карта

9.1. Предположения

Существует бесконечное множество аппаратных конфигураций, рассмотреть каждую из которых не представляется возможным. Поэтому сразу договоримся, что в этом разделе, предназначенном для начинающих пользователей Линукс, будем рассматривать вопросы настройки компьютера, имеющего следующую конфигурацию:
- жесткий диск достаточно большого объема, разбитый на три раздела (один для DOS/Windows, один для Linux, один для swap),
- дисковод для гибких дисков 3,5',
- дисковод CD--ROM,
- принтер,
- клавиатура,
- мышь,
- звуковая карта,
- модем,
- внешний дисковод Zip фирмы Iomega, подключаемый через параллельный порт.

Настройка монитора была детально разобрана в разделе 7, поэтому здесь не рассматривается. О подключении и настройке модема будет рассказано в разделе, посвященном работе в Интернет, так что тоже не ищите этот материал в настоящем разделе. Вопросы подключения и настройки более экзотических (точнее менее распространенных устройств) будут рассмотрены во второй части книги (если она когда-нибудь появится).

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

9.2. Специальные файлы устройств

Периферийные устройства, такие как принтеры, модемы, дисководы и прочее, связываются с операционной системой Linux через специальные файлы, называемые файлами устройств. Такой файл содержит всю информацию, необходимую операционной системе для управления соответствующим устройством. Такая схема обеспечивает единый подход ко всем устройствам, которые с точки зрения системы рассматриваются как файлы. В ОС Linux различают устройства блок-ориентированные и байт-ориентированные. Блок-ориентированные устройства, например, жесткий диск передают данные блоками. Байт-ориентированные устройства, например, принтер и модем, передают данные по-символьно, не как отдельные блоки, а как непрерывный поток байтов. Кроме этих двух типов устройств имеются еще два типа - небуферизованные байт-ориентированные устройства и именованные каналы (FIFO). Файлы устройств одного типа имеют одинаковые имена и различаются по номеру, прибавлямому к имени. Например, все файлы сетевых плат Ethernet имеют имена, начинающиеся на eth: eth0, eth1 и т.д. Номера устройств могут состоять из двух частей: старшего номера и младшего номера. Такая схема рассчитана на ситуации, когда несколько устройств зависят от одного более крупного устройства, например, когда несколько модемов подключены к одной плате ввода-вывода. Все они имеют одинаковый старший номер, который обозначает плату, и разные младшие номера, обозначающие собственно модемы.

Файлы устройств создаются с помощью команды mknod. Эта команда имеет следующий формат:

mknod [опции] имя_устройства тип_устройства старший_номер младший_номер

где тип_устройства может принимать одно из четырех значений:
b - блок-ориентированное устройство;
c - байт-ориентированное (символьное) устройство;
u - небуферизованное байт-ориентированное устройство;
p - именованный канал.
Для блок-ориентированных и байт-ориентированных устройств (b, c, u) нужны и старший и младший номера, для именованных каналов номера не используются. В следующем примере создается специальный файл для терминала, подключенного к порту COM3, который в Linux обозначается как /dev/ttyS2:
       /# mknod -m 660 /dev/ttyS2 c 4 66
(устройства-терминалы представляют собой байт-ориентированные устройства со старшим номером 4 и младшими номерами, которые начинаются с 64).

Если Вы решили подключить к системе какое-то новое устрйство, необходимо вначале проверить, что в каталоге /dev имеется специальный файл для этого устройства (или линк к специальному файлу). Если нет, сделайте следующее (это только пример, не надо повторять его буква в букву, подумайте, как эти команды должны выглядеть в Вашей системе):

       ~# cd /dev
       /dev# ln -s ttyS0 mouse
       /dev# ln -s ttyS1 modem
       /dev# ln -s hdb cdrom

Примечание: для некоторых ноутбуков специальный файл (линк) для мыши называется /dev/psaux: имейте это в виду при настройке X11.

Если хотите, дайте всем пользователям полные права (chmod 666) на доступ к таким устройствам, как /dev/cdrom, /dev/floppy, /dev/modem и так далее. Можете поступить иначе, создав группу ``cdrom'', сделать /dev/cdrom принадлежащим группе root.cdrom, а потом добавив пользователей в эту группу. Аналогичную процедуру можно применить к другим устройствам.

9.3. Клавиатура

Первым делом рассмотрим настройку клавиатуры. Для того, чтобы задать (изменить) скорость повтора и время задержки для клавиатуры, добавьте в файл /etc/rc.d/rc.sysinit сроку следующего вида :

       /sbin/kbdrate -s -r 16 -d 500

где число после опции -r задает скорость повтора (символов в секунду, допустимы значения от 2 до 30), а число после опции -d задает задержку в миллисекундах (допустимы значения от 250 до 1000 с шагом 250).

  Для того, чтобы переключатель NumLock был по умолчанию включен, добавьте в файл /etc/rc.d/rc.sysinit следующие строки:

       for tty in /dev/tty[1-9]*; do
         setleds -D +num < $tty
       done

О том, как изменить раскладку клавиатуры, говорится в разделе "Русификация"

  3.11.2.  Keypad

  We have seen above how to make a few special keys work. The sample
  file .Xmodmap works well if you want to use Xjed, but it makes the keypad unusable. You'll then need another config file, which we'll call .Xmodmap.num:
 

       ! Definitions can be found in <X11/keysymdef.h>

       keycode 77  = Num_Lock
       keycode 112 = KP_Divide
       keycode 63  = KP_Multiply
       keycode 82  = KP_Subtract
       keycode 86  = KP_Add
       keycode 79  = KP_7
       keycode 80  = KP_8
       keycode 81  = KP_9
       keycode 83  = KP_4
       keycode 84  = KP_5
       keycode 85  = KP_6
       keycode 87  = KP_1
       keycode 88  = KP_2
       keycode 89  = KP_3
       keycode 90  = KP_0
       keycode 91  = KP_Decimal

  Make sure that your /etc/X11/XF86Config does not contain these three lines:

         ServerNumLock
         Xleds
         XkbDisable

  and in case, comment them out. To re-enable the keypad, you'll issue the command xmodmap .Xmodmap.num.

9.4. Мышь

9.4.1. Определение типа мыши

Существуют два основных типа мышей - подключаемые через последовательный порт (serial mice) и подключаемые к шине (bus mice). Большинство компьютеров оборудуются в настоящее время мышами второго типа. Дальнейший текст относится к bus-мышам и основан на Busmouse HOWTO Криса Багвелла (Chris Bagwell), версии 1.91 от 15 июня 1998 г.

Вы должны знать две важных характеристики своей мыши : какой у нее интерфейс и какой она использует протокол.

Интерфейс - это совокупность аппаратных параметров мыши, включающая такие параметры, как используемые мышью прерывания, порты ввода-вывода и количество контактов в разъеме. Ядро Линукса поддерживает 4 типа интерфейсов bus-мыши: Inport (Microsoft), Logitech, PS/2 и ATI-XL. Не существует однозначного алгоритма определения типа интерфейса мыши.

Мыши типа Inport обычно подключаются к интерфейсной карте на материнской плате. Если разъем, который подключается к интерфейсной карте, круглый, имеет 9 контактов и желобок (направляющую выемку) с одной стороны, то вполне возможно, что у Вас мышь типа Inport. Если только не Logitech, поскольку эти мыши внешне имеют те же характеристики. Различить их можно только если у Вас сохранилась упаковка или руководство, в котором указан тип мыши.

Мыши типа PS/2 подключаются не к плате расширения, а к специальному разъему (PS/2 Auxiliary Device port) на контроллере клавиатуры. Этот разъем имеет 6-контактов (6-pin mini DIN connector), и похож на разъем для подключения клавиатуры.

Мыши типа ATI-XL - это вариант мышей типа Inport. Они подключаются к комбинированной карте, являющейся видео-адаптером и контроллером мыши. Если только Вы не знаете точно, что у Вас видеоадаптер ATI-XL (и следовательно мышь ATI-XL), то, скорее всего, у Вас мышь другого типа.

Протокол - это чисто программная характеристика мыши. Большинство Inport, Logitech и ATI-XL мышей используют протокол ''BusMouse'', а мыши типа PS/2 используют протокол ''PS/2''.

9.4.2. Конфликты по прерываниям

Сначала надо определить, какое прерывание использует Ваша мышь, и убедиться, что она не конфликтует с каким-нибудь другим устройством. Этот момент очень важен, потому что под Линуксом мышь не может использовать одно и то же прерывание с каким-либо другим устройством, даже если все прекрасно работает под управлением другой ОС. Так что проверьте документацию на все подключенные у Вас периферийные устройства, чтобы знать, какие прерывания они используют!

В большинстве случаев IRQ4 используется первым последовательным портом (/dev/ttyS0), IRQ3 - вторым последовательным портом (/dev/ttyS1) (предполагается, что у Вас есть такие устройства, если нет - Вы можете использовать их IRQ). IRQ5 используется некоторыми SCSI-устройствами, а IRQ12 - некоторыми сетевыми картами. Если Ваша сетевая карта использует IRQ12, а Ваша мышь - типа PS/2, то у Вас будут проблемы, поскольку Вы вынуждены будете использовать IRQ12 только для порта PS/2. Для мышей ATI-XL, Inport и Logitech ядро по умолчанию использует прерывание IRQ5, так что если Вы не хотите перекомпилировать ядро, Вам придется использовать для мыши именно это прерывание. Впрочем последние версии ядра позволяют задать опции командной строки, определяющие прерывание, которое будут использовать мыши типа Inport и Logitech. Мыши типа PS/2 всегда используют прерывание IRQ12 и не существует способа изменить это, так что в случае конфликтов надо перенастраивать другие периферийные устройства.

9.4.3. Настройка мыши

Далее необходимо проверить настройки в некоторых конфигурационных файлах. Вначале убедитесь, что существует файл /etc/sysconfig/mouse и что в нем записано что-то вроде:

       MOUSETYPE="Microsoft"
       XMOUSETYPE="Microsoft"
       XEMU3=yes

Естественно, что тип мыши должен соответствовать Вашей мыши, у меня, например, это "PS/2".

Чтобы вырезать и вставлять куски текста в консоли, должен быть установлен сервер мыши gpm.

Проверьте, что сервер мыши gpm запущен, для чего дайте команду:
      ps -A | grep gpm
Если в результате Вы получите непустую строку, то драйвер работает.
Если же процесс gpm не найден, надо проверить наличие скрипта /etc/rc.d/init.d/gpm, в котором должна найтись строка вызова демона gpm, которая может иметь примерно такой вид:

        daemon gpm -t $MOUSETYPE -d 2 -a 5 -B 132 # two-button mouse

(смысл параметров смотри на странице man gpm). Если сервер gpm работает, то выделять и вставлять куски текста можно следующим образом. Нажмите левую кнопку и выделяйте текст. Когда дойдете до конца нужного куска текста, отпустите кнопку. Потом нажмите правую кнопку в том месте, где вы хотите осуществить вставку. Можно даже в другой виртуальной консоли. То же самое можно проделать в X-Window, но для вставки нужно нажимать среднюю клавишу, или обе, если у вас двухкнопочная мышь.

9.5. Жесткий диск

Здесь я собираюсь описать, как подключить второй жесткий диск (E)IDE или SCSI.

9.6. Принтер

Для настройки принтера сначала попробуйте воспользоваться стандартным средством, входящим в дистрибутив Red Hat (и, соответственно, Black Cat), а именно - printtool. Эта программа работает в графическом режиме и должна быть запущена root-ом.

Убедитесь, что Ваша система настроена на печать документов в формате PostScript. Если Ваш принтер не PostScript-овский (где Вы такие видели?) установите ghostscript/ghostview версии 4.03 или выше (можете найти на http://www.cs.wisc.edu/%7Eghost/). Для пакета ghostview/ghostscript разработаны ps-шрифты (правда, они поставляются на коммерческой основе), которые обеспечивают высокое качество печати на не-postscript принтерах.

Кроме того, в мире UNIX существует множество отдельных утилит для организации печати. Перечислим кратко некоторые из них, заслуживающие особого внимания.

GNU enscript.

Эту утилиту, написанную М.Росси (Markku Rossi), можно найти по адресу http://www.hut.fi/~mtr/genscript/, или на любом из сайтов проекта GNU.

a2ps

Эта утилита служит для преобразования ASCII-файлов в Postscript. Выходной файл форматируется в зависимости от типа документа. Ищите ее по адресу http://www-inf.enst.fr/~demaille/a2ps.html.

9.7. Zip-диск фирмы Iomega для параллельного порта

Для того, чтобы использовать Zip-дисковод, подключаемый к параллельному порту, Вы можете использовать драйвер, включаемый в ядра последних версий (2.x.x). Добавьте строку insmod ppa в файл /etc/rc.d/rc.sysinit и при запуске компьютера будете иметь доступ к дискам в ZIP-дисководе фирмы Iomega. Можно, конечно, просто каждый раз подключать нужный модуль той же командой insmod ppa. Естественно, надо будет каждый раз диск монтировать и размонтировать, при этом Zip-диск указывается как устройство /dev/sda4.

Мне легко удавалось подключать Zip-дисковод указанным выше способом, пока у меня стояла версия 5.2 BlackCat. Но после перехода на версию 6.02 доступ к Zip-диску этим способом получить не удается. После выполнения команды insmod ppa появляется сообщение об ошибке, справиться с чем я пока не сумел (возможно, надо переконфигурировать ядро).

Говорят, что существует драйвер ppa, который лучше стандартного. Посмотрите на http://www.torque.net/~campbell. Однако сам я его не пробовал, так что ничего о нем сказать не могу.

Тем не менее мне удалось получить доступ к Zip-дискам. Я нашел пакет lomega версии 1.0.1 (обратите внимание на название программы - lomega, а не iomega), созданный Джоном Хоком (John Hawk, e-mail: [email protected]). Этот пакет дает возможность под Linux работать с дисками Zip и/или Jaz фирмы Iomega. После обычной процедуры установки tar-gz-пакета (которая выполнялась с правами суперпользователя), мне легко удалось (все еще с правами суперпользователя и при условии, что в дисководе имеется носитель) смонтировать ZIP-диск обычной командой

mount -t vfat /dev/sda4 /mnt/zip.

Для того, чтобы монтирование дисков могли выполнять обычные пользователи, необходимо (ВСЕ ЕЩЕ С ПРАВАМИ СУПЕРПОЛЬЗОВАТЕЛЯ) выполнить следующие команды:

	chown root:root /directory/lomega.
	chmod +s /directory/lomega.
Помимо обычного способа доступа к диску командами mount/umount, можно запустить отдельную программу /usr/local/bin/lomega. Запускается она только в графическом режиме и представляет собой графический интерфейс для работы с Zip-диском. С помощью этой программы можно смонтировать и размонтировать Zip-диск, защитить диск от записи или снять эту защиту, а также извлечь носитель из дисковода простым щелчком мыши по соответствующей кнопке. Отметим только, что для того, чтобы установить защиту от записи, необходимо размонтировать диск.

В окне программы можно увидеть статус диска (смонтирован, размонтирован, защищен ли от записи), просмотреть содержимое файловой системы и отдельно - файлы на Zip-диске, а также сделать back-up выбранных файлов. Для этого надо просто отметить нужные файлы в окне программы и нажать клавишу Back-Up. После этого будет выведено диалоговое окно, в котором Вы можете изменить предлагаемые по-умолчанию параметры команды архивации tar. Таким образом, программа lomega предоставляет удобный интерфейс для архиватора tar.

Щелкнув правой кнопкой мыши в окне программы, Вы получите выпадающее меню, с помощью которого можно выполнить много разных команд, в частности, удалить некоторые файлы и каталоги. При этом удаляемые файлы фактически не уничтожаются, а просто перемещаются в "корзину" (trash), откуда их, при необходимости, можно еще восстановить. Однако эта возможность сохраняется только до тех пор, пока Вы не опустошили корзину командой "Empty Trash", которую можно вызвать через то же выпадающее меню.

Программа lomega использует конфигурационный файл /etc/lomega.conf. Структура этого файла подобна структуре файла /etc/fstab и не требует подробных пояснений.

При запуске программы можно задать в командной строке следующие опции:

        -e  открывает окно файлового менеджера
        -v  просто выводит версию программы
        /dev/sda  указывает имя используемого устройства
                  (должно иметься в файле lomega.conf)

Помимо двух уже описанных, имеется еще один способ получения доступа к Zip-диску из Линукс: с помощью пакета mtools. Его (пакет), конечно, необходимо предварительно установить, а затем добавить следующую строку в файл /etc/mtools.conf:

       drive z: file="/dev/sda4" exclusive

Но сам я этим способом не пользовался, так что и рассказать о нем подробнее не имею возможности.

9.8. Дисковод CD-ROM

Довольно легко заставить Linux проигрывать для Вас CD диски: все, что Вам нужно - это дисковод CD-ROM, колонки или наушники, CD-диск с музыкой и немного трудолюбия. Вначале надо научить Линукс распознавать дисковод CD-ROM, когда Вы запускаете cdplay или cdp. Для этого в каталоге /dev должна иметься ссылка (линк) на устройство. Если ее нет, создайте, выполнив следующие команды:

cd /dev
ln -s hdc cdrom

где вместо hdc Вы, естественно, должны указать Ваш CD-дисковод. Если не знаете, что тут указать, то внимательно просмотрите те сообщения, которые Линукс выдает при загрузке. Для этого не требуется перезагружаться, протокол загрузки сохранен в файле /var/log/dmesg и выдается на экран по команде dmesg. Все, теперь Вы можете (в текстовом режиме) запускать cdplay или cdp. Программа cdplay только запускает проигрыватель; чтобы выбрать мелодию или остановить воспроизведение, надо дать следующие команды:

    cdplay play < track>
    cdplay stop

Программа cdp предоставляет пользователю "псевдографический" интерфейс для управления проигрывателем. Можно пользоваться некоторыми "горячими" клавишами. В качестве "горячих" используются клавиши цифровой клавиатуры:

клавиша '9' - "play"
клавиша '8' - "pause/resume"
клавиша '7' - "stop"
клавиша '6' - "next"
клавиша '5' - "replay"
клавиша '4' - "previous"
клавиша '3' - "go forward 15 seconds"
клавиша '2' - "hard abort" (music stops)
клавиша '1' - "go backward 15 seconds"
клавиша '0' - "soft exit" (music continues)
клавиша '.' - "help"

Подробнее смотрите на соответствующей man-странице.

Необходимо сделать небольшое замечание по поводу прав доступа к CD-ROM. Чтобы пользователи, не являющиеся пользователем root, могли пользоваться проигрывателем, надо изменить права доступа к /dev/cdrom на 666. Правда при этом при обращении к CD-ROM пользователи будут получать сообщение об ошибке (которое можно игнорировать), и получают право на извлечение компакт диска из дисковода.

В графической оболочке тоже можно запустить программу управления проигрыванием CD-дисков, например xplaycd.

9.9. Звуковая карта

Если у Вас одна из последних версий Red Hat Linux, запустите программу sndconfig (как root). Первым делом эта программа попытается сама определить наличие у Вас звуковой карты. Для этого она вызывает утилиту isapnptools. Если автоматически определить карту не удается, Вам придется самому выбрать тип карты из списка. Далее программа спросит Вас о таких установках звуковой карты, как адрес порта ввода/вывода (I/O base address), IRQ, DMA, и 16-bit DMA. Будьте готовы ответить на эти вопросы. Затем программа попробует воспроизвести 2 музыкальных фрагмента, после каждого из которых спросит Вас, слышали ли Вы что-нибудь. Если Вы ответите положительно, будет создан файл /etc/conf.modules, и Вам остается только установить программу-проигрыватель, вроде x11amp.

У меня установка звуковой карты и программы x11amp (с дистрибутивного диска) прошли почти без запинки (пришлось только подобрать порт, предлагаемое по умолчанию значение почему-то оказалось неподходящим), после чего я смог прослушивать записи из mp3-файлов так же, как делал это раньше под Windows с помощью winamp.


Назад Вернуться к оглавлению. Далее

В.А.Костромин
Последние изменения
в содержание файла внесены
11 апреля 2000 г.