docs-alt-virtualization-one/pot/admin-basics/driver-saga--chapter.pot
2016-03-22 11:27:51 +03:00

196 lines
33 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

msgid ""
msgstr ""
"Project-Id-Version: 0\n"
"POT-Creation-Date: 2016-03-22 11:27+0300\n"
"PO-Revision-Date: 2016-03-22 11:27+0300\n"
"Last-Translator: Automatically generated\n"
"Language-Team: None\n"
"Language: ru-RU \n"
"MIME-Version: 1.0\n"
"Content-Type: application/x-publican; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Generator: Publican v4.3.2\n"
msgid "Работа с оборудованием в Linux. «Сага о Драйверах»"
msgstr ""
msgid "Когда компьютеры назывались «электронно-вычислительными машинами», они были размерами в среднем с кухонный гарнитур и занимались почти исключительно вычислениями. Ввод и вывод данных воспринимался пользователями <acronym>ЭВМ</acronym> — учёными-математиками — как нечто необходимое, но к работе <acronym>ЭВМ</acronym> имеющее лишь косвенное отношение. Учёного было довольно просто обучить, чтобы он составлял программы и оформлял входные данные для расчётов одним каким-нибудь способом, например, при помощи перфокарт. Подключение к компьютеру какого-нибудь другого устройства было делом трудоёмким, так как требовало усилий и электронщика, и программиста. Да и нужно это было нечасто."
msgstr ""
msgid "Нынешний компьютер — игрушка не учёного, а любого рядового обывателя. Это бытовой прибор. Мало того, компьютер — это «самый умный» бытовой прибор: если имеется какой-нибудь другой бытовой прибор (скажем, кофеварка), прогрессивный обыватель тут же задумывается, нельзя ли обучить компьютер управлять этим прибором (скажем, варить кофе за минуту до приезда хозяина). В идеале получается «электронный дом», в котором работу любого оборудования можно контролировать, не вставая из-за рабочего места или даже не садясь за него, — посредством сети Интернет."
msgstr ""
msgid "Самое поверхностное суждение об оборудовании и компьютере — что для подключения прибора нужна волшебная субстанция по имени «драйвер». Есть драйвер — компьютер оборудование «видит», нет драйвера — «не видит»."
msgstr ""
msgid "Это суждение во многом неверно."
msgstr ""
msgid "Что такое «оборудование»?"
msgstr ""
msgid "Что и как можно подключить к компьютеру? Во-первых, на поверхности его корпуса обычно наблюдается множество разнообразных отверстий и разъёмов, очевидно, предназначенных для того, чтобы туда что-то подключали. Уже подключены: клавиатура, мышь, монитор, возможно, принтер, наушники или колонки. Много отверстий остаётся неиспользованными, но и аппаратуры в «электронном доме» ещё много — от КПК до той же кофеварки (если на ней есть соответствующий разъём)."
msgstr ""
msgid "Во-вторых, внутри компьютера имеются специальные разъёмы для подключения к ним <emphasis role=\"bold\">плат расширения</emphasis>: устройств, выглядящих не как бытовой прибор, а скорее как деталь самого компьютера. Таковы видеоадаптеры, сетевые адаптеры, «внутренние» модемы и т. п. Эти устройства — главный источник «Саги о Драйверах», потому что их много, и создатели каждого такого устройства желают сохранить его устройство втайне от конкурентов, прилагая к ним вместо документации ту самую волшебную субстанцию с пометкой «нажмите кнопку «Пуск» и попытайтесь расслабиться: от вас уже ничего не зависит»."
msgstr ""
msgid "В-третьих, ещё глубже внутри компьютера есть какие-то устройства, которые нельзя ни отключить, ни подключить, однако они используются при работе, имеют какое-то название и на разных компьютерах могут весьма отличаться. Например, звуковые подсистемы могут быть интегрированными, а могут быть выполненными в виде платы расширения, отличаясь редкостным разнообразием моделей и однообразием функций (разъём для микрофона, разъём(ы) для колонок, линейный вход, … что-то ещё?). Или устройство, к которому подключаются жёсткие диски: оно может быть рассчитано на 1 диск, 2, 4, иногда — более, иметь разные дополнительные свойства и тоже требовать «драйвера» — по крайней мере, поддержки со стороны системы."
msgstr ""
msgid "Что точно отличает один прибор от другого — это внешний вид разъёма, с помощью которого они подключаются к компьютеру. Очевидно, приборами, подключёнными к разъёмам разного типа, машина управляет существенно по-разному. Более того, разъёмы настолько различны, что соединительный кабель одного типа просто не влезет в разъём другого. Но всё равно это не решает проблемы идентификации: например, мышь, подключённая к разъёму (порту) <acronym>USB</acronym>, отлично работает, а с цифровой фотокамерой как-то просто не получается. Опять «драйвер» нужен?"
msgstr ""
msgid "Можно добавить, что некоторое оборудование вообще не нуждается в том, чтобы машине объявляли о его существовании: так, что бы ни подключалось к аналоговому звуковому входу, работать оно будет одинаково, компьютер не отличит колонки от наушников, да и отсутствия их не заметит. Словом, наружное наблюдение не даёт достаточно информации о том, как работать с оборудованием. На помощь должна прийти документация, но если в ней опять встретится слово «драйвер», оно может означать что угодно: слишком оно неопределённое."
msgstr ""
msgid "Как распознаётся оборудование?"
msgstr ""
msgid "Попробуем внести определённость. Какую информацию относительно подключаемого прибора получает компьютер, и как он её получает?"
msgstr ""
msgid "Очевидно, «с той стороны» каждого разъёма (допустим, <acronym>USB</acronym>, в который мы воткнули flash-диск) имеется какое-то оборудование, которое позволяет им пользоваться (как и USB-мышкой, USB- принтером и т.п.). Это оборудование:"
msgstr ""
msgid "определяет тип подключённого устройства;"
msgstr ""
msgid "управляет им (может, например, выключить или включить);"
msgstr ""
msgid "передаёт на это устройство данные и/или принимает их оттуда."
msgstr ""
msgid "Такое оборудование называется <emphasis role=\"bold\">шиной</emphasis> (bus). Этимология этого слова, что русского, что английского, загадочна и восходит к доисторическим временам, когда компьютеры назывались «<acronym>ЭВМ</acronym>»."
msgstr ""
msgid "Шин в компьютере несколько (по количеству различных типов разъёмов). Есть совсем «глупые» шины — например, порт последовательного ввода-вывода (к нему подключаются мыши и прочая аппаратура «старого образца»). Глупость их в том, что информацию о типе подключённого оборудования приходится задавать вручную: либо заранее, либо с помощью наводящих вопросов пользователю."
msgstr ""
msgid "Есть шины весьма «умные», способные опросить и понять множество характеристик подключённого устройства. Такова, например, шина <acronym>PCI</acronym> — наиболее распространённое на сегодня оборудование для подключения плат расширения. Любопытный пользователь может посмотреть список устройств, подключённых к шине <acronym>PCI</acronym> с помощью команды <command>lspci</command> (от «list PCI», команда из пакета <package>pciutils</package>):"
msgstr ""
msgid ""
"\n"
"<prompt>[tmpuser@arnor tmpuser]$</prompt> <command>lspci</command>\n"
"0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8377 [KT400/KT600 AGP] Host Bridge (rev 80)\n"
"0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8237 PCI Bridge\n"
"0000:00:0f.0 RAID bus controller: VIA Technologies, Inc. VIA VT6420 SATA RAID Controller (rev 80)\n"
"0000:00:0f.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)\n"
"0000:00:10.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)\n"
"0000:00:10.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)\n"
"0000:00:10.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)\n"
"0000:00:10.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 81)\n"
"0000:00:10.4 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 86)\n"
"0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8237 ISA bridge [KT600/K8T800/K8T890 South]\n"
"0000:00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 60)\n"
"0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 78)\n"
"0000:01:00.0 VGA compatible controller: ATI Technologies Inc Radeon R100 QD [Radeon 7200]\n"
" "
msgstr ""
msgid "Из устройств на иллюстрации только одно — видеокарта Radeon 72002в действительности является платой расширения, все остальные интегрированы в системную плату (бывает и по- другому). Тип устройства«Multimedia audio controller», «Ethernet controller», «VGA compatible controller» и т.п. — лишь небольшая часть информации, которую шине рассказали о себе подключённые к ней устройства."
msgstr ""
msgid "К шине <acronym>PCI</acronym> в качестве устройства подключена другая шина — <acronym>USB</acronym>, служащая для подсоединения внешних устройств. Она тоже довольно «умная», а ещё отличается тем, что устройства подключаются к ней и отключаются от неё довольно часто. Существует команда <command>lsusb</command> (из пакета, естественно, <package>usbutils</package>), но ею, как и <command>lspci</command>, приходится пользоваться нечасто (она даже убрана в каталог <filename class=\"directory\">/usr/sbin</filename>):"
msgstr ""
msgid ""
"\n"
"<prompt>[tmpuser@arnor tmpuser]$</prompt> <command>/usr/sbin/lsusb</command>\n"
"Bus 005 Device 001: ID 0000:0000\n"
"Bus 004 Device 001: ID 0000:0000\n"
"Bus 003 Device 001: ID 0000:0000\n"
"Bus 002 Device 002: ID 046d:c00c Logitech, Inc. Optical Wheel Mouse\n"
"Bus 002 Device 001: ID 0000:0000\n"
"Bus 001 Device 003: ID 08ec:0012 M-Systems Flash Disk Pioneers\n"
"Bus 001 Device 001: ID 0000:0000\n"
" "
msgstr ""
msgid "Пример показывает пять USB-шин (это совпадает с данными <command>lspci</command>), к первой из которых подключён flash-диск, а ко второй — мышь. Как правило, устройство определяется шиной, после чего специально обученная системная программа производит все действия, необходимые для того, чтобы этим устройством можно было воспользоваться. Например, для flash-диска потребовалось дополнительно загрузить модуль ядра <emphasis role=\"bold\">usb_storage</emphasis>, и смонтировать содержимое диска в каталог <filename class=\"directory\">/media/usbdisk</filename>."
msgstr ""
msgid "Специальный каталог <filename class=\"directory\">/sys</filename> отражает представление системы о присоединённых к ней устройствах. В частности, все найденные на шинах устройства перечислены в виде подкаталогов <filename class=\"directory\">/sys/bus/<replaceable>шина</replaceable>/devices</filename>. Если устройство установлено, а «умная шина», наподобие <acronym>PCI</acronym> или <acronym>USB</acronym>, его не заметила — скорее всего, неполадка аппаратная (несовместимое или неисправное устройство, таракан в разъёме и т.п.)."
msgstr ""
msgid "Бывает и так: устройство (видеокарта, модем, кофеварка) на шине появилось, а воспользоваться им не удаётся. Видимо, чего-то не хватает… драйвера?"
msgstr ""
msgid "Что такое «драйвер» и где он находится?"
msgstr ""
msgid "В самом деле, чего может не хватать, если устройство распозналось, марка устройства известна и как передавать данные по шине — тоже известно? Не хватает главного: сведений о том, какие данные надо передавать, чтобы добиться от устройства желаемого эффекта. Что передать по шине <acronym>USB</acronym>, чтобы кофеварка выключилась? Какие байты записать в последовательный порт модема, чтобы он повесил трубку? Что сделать с видеокартой, чтобы всё было быстро и непременно 3d!?"
msgstr ""
msgid "Это вот «какие данные» — и есть «драйвер». Драйвер может быть где угодно, на любом уровне системы: от модуля ядра до пользовательской программы и даже её конфигурационного файла."
msgstr ""
msgid "Типичные варианты:"
msgstr ""
msgid "Драйвер — <emphasis role=\"bold\"> модуль ядра</emphasis>, подсказывающий шине, как правильно обращаться с устройством. Это, как правило, относится к PCI-устройствам и стандартным USB-устройствам. Подключается к ядру командой <command> modprobe <option><replaceable>имя_модуля</replaceable></option> </command> (или <command>insmod</command>). Распознанные и классифицированные устройства (те, для которых есть драйвер- модуль ядра) отображаются в виде подкаталогов <filename class=\"directory\">/sys/class/<replaceable>класс_устройства</replaceable>/ </filename>."
msgstr ""
msgid "Драйвер видеокарты — модуль графической подсистемы <productname>X11</productname> (<productname>X.Org</productname>). Подгружается при старте графической оболочки, достаточно лишь указать его в настройках <productname>X.Org</productname> (с помощью конфигуратора или вручную в файле <filename>/etc/X11/xorg.conf</filename>). Часто требуется и специальный модуль ядра (возможно, несколько), организующий доступ к видеопамяти."
msgstr ""
msgid "Драйверы принтера и модема — описание характеристик для, соответственно, подсистемы печати и программы-«звонилки». Что с ними делать дальше, расскажет документация."
msgstr ""
msgid "Драйвер — прикладная программа или дополнение (plug-in) к ней (например, драйвер сканера — дополнение утилиты <command>sane</command>, а с некоторыми цифровыми проигрывателями звука «<orgname>iRiver</orgname>» можно взаимодействовать с помощью утилиты <command>ifp</command> из пакета <package>ifp-line</package>). Здесь главное — название программы, а драйвер, скорее всего, уже включён в дистрибутив."
msgstr ""
msgid "В последнем случае нет никакой зримой информации о том, что устройством действительно можно пользоваться — до тех пор, пока не запущена соответствующая прикладная программа с соответствующими настройками (особенно это касается «глупых» шин, наподобие последовательного порта). И в любом случае, самостоятельная установка «драйвера» должна сопровождаться вдумчивым чтением документации к нему."
msgstr ""
msgid "Опять «устройство»?"
msgstr ""
msgid "В документации Linux термин «устройство» (device) часто используется не в значении «прибор», а в значении «элемент каталога <filename class=\"directory\">/dev</filename>». Что это такое?"
msgstr ""
msgid "Прибор подключается к машине, как правило, для того чтобы передавать на него какие-то данные и/или получать их оттуда. Если задача компьютера — управлять внешним устройством, это всё равно можно рассматривать как передачу управляющих данных и приём диагностических. Во многих случаях передачу данных проще всего вести в синхронном (поточном) режиме, точно так же, как это делается при работе с файлом: открыть файл — записать данные — закрыть файл или открыть — прочитать — закрыть. Если бы можно было представить внутренность прибора в виде файла, работа с ним пошла бы легче. Это означало бы, что система знает, как и куда передавать данные, а дело пользовательской программы — эти данные понимать."
msgstr ""
msgid "В большинстве случаев именно так и устроено в Linux. После того, как система распознала внешнее устройство, а служба hotplug, при необходимости, загрузила соответствующий модуль ядра, в каталоге <filename class=\"directory\">/dev</filename> заводится новый «файл», содержимое которого отражает содержимое подключённого устройства, не занимая при этом места на жёстком диске. Такой файл называется файлом-дыркой, его можно представить как отверстие в файловой системе, через которое видно не содержимое жёсткого диска, а данные, попадающие туда с «другой стороны» — со стороны подключённого внешнего устройства. Например, гибкий диск в дисководе представляется в виде файла-дырки <filename class=\"devicefile\">/dev/fd0</filename>, (от floppy disk 0), а мышь — в виде <filename class=\"devicefile\">/dev/mouse</filename> (строго говоря <filename class=\"devicefile\">/dev/mouse</filename> — это обычно символьная ссылка на актуальный файл- дырку — скажем <filename class=\"devicefile\">/dev/psaux</filename>, порт PS/2)."
msgstr ""
msgid "В документации вместо «файл-дырка» чаще всего пишут просто «устройство» (device), а устройство-прибор — «внешним устройством». Если соответствующего устройства в каталоге <filename class=\"directory\">/dev/</filename> нет, значит, в цепочке его распознавания есть слабое звено."
msgstr ""
msgid "Стоит напомнить, что файл-дырка, однако, не обязан существовать и непременно соответствовать одному внешнему устройству. Устройства, подключаемые ко второму последовательному порту, например, всегда видны как <filename class=\"devicefile\">/dev/ttyS1</filename> (а к первому — как <filename class=\"devicefile\">ttyS0</filename>). Фактически, <filename class=\"devicefile\">ttyS</filename> — это файл-дырка шины, настолько простой, что дальнейшее выяснение типа устройства перекладывается на программу пользователя."
msgstr ""
msgid "Другой пример — это работа с аппаратурой по шине <acronym>USB</acronym>. USB-шин в системе зарегистрировано несколько, и к каждому можно подключить одно или несколько устройств. Для них, независимо от типа устройства, заводятся файлы-дырки вида usbdev.шина.номер, где каждому новому подключённому устройству просто выдаётся очередной номер. Некоторые звуковые проигрыватели и цифровые фотокамеры распознаются как flash-диски; тогда в дополнение к нетипизированному файлу-дырке создаётся одна или даже несколько дисковых (допустим, само дисковое устройство /dev/sda и единственный раздел с файловой системой на нём <filename class=\"devicefile\">/dev/sda1</filename>, который и монтируется в <filename class=\"devicefile\">/media/usbdisk</filename>). Другие фотокамеры умеют больше, чем обычный диск: например, транслировать изображение и/или звук. И для них существуют специальные утилиты, например, gphoto2. В этом случае никакого дополнительного файла-дырки, за исключением <filename class=\"devicefile\"> /dev/usbdev.<replaceable>шина</replaceable>.<replaceable>номер</replaceable></filename>, не создаётся, и о типе подключённого аппарата догадывается сама <application>gphoto2</application>."
msgstr ""
msgid "Кто виноват и что делать?"
msgstr ""
msgid "Итак, новый подключённый к компьютеру прибор не распознался «сам собой», и программы, которые должны были с ним работать, не работают."
msgstr ""
msgid "Неполадки могут быть аппаратными (проверяется в <filename class=\"directory\">/sys/bus</filename> или с помощью <command>lspci</command>, как сказано выше)."
msgstr ""
msgid "Hotplug или другая программа автораспознавания может не знать про конкретный подключённый прибор (придётся в режиме суперпользователя вручную загрузить модуль с помощью <command>modprobe</command>, а чтобы не делать этого каждый раз —  отредактировать <filename>/etc/modules.conf</filename>)."
msgstr ""
msgid "Возможно, внешнее устройство распозналось и модуль для него есть, но служба <application>udevd</application>, которая заводит файлы-дырки в <filename class=\"directory\">/dev</filename>, выбрала другое название или вовсе не завела нужного устройства (надо проанализировать содержимое <filename class=\"directory\">/dev</filename> и, возможно, настроить <application>udev</application> или саму прикладную программу)."
msgstr ""
msgid "Ваше устройство может быть слишком новым, а дистрибутив Linux может оказаться слишком старым. В этом случае рекомендуется обновить части системы, содержащие «драйвер» (в зависимости от ситуации — модуль ядра, само ядро, графическую оболочку или её библиотеку, прикладную программу и т.п.)."
msgstr ""
msgid "Стоит проверить, что сказано о вашем устройстве в сетевых информационных ресурсах (здесь поможет <command>lspci</command> или подобные ей утилиты, а также <ulink url=\"http://www.google.com\" />). Вполне вероятно, там посоветуют загрузить некий заранее собранный модуль ядра (назовут его, конечно, «драйвером») либо подскажут, какую именно программу следует использовать."
msgstr ""
msgid "Наконец, ваше устройство может просто не поддерживаться. Печально, но факт: некоторые производители аппаратуры настолько дорожат своими мелкими секретами, что не только не документируют устройство своих устройств, но тщательно скрывают его. Как следствие, Linux- сообщество не в состоянии быстро обеспечить поддержку таинственного прибора. Производители предпочитают писать «драйверы» (хорошие ли, плохие) за свои деньги, а некоторые ограничиваются только одной, самой распространённой на сегодня, пользовательской программной платформой. И это пока, к сожалению, не Linux."
msgstr ""
msgid "Сказанное выше означает, что после каждого обновления системы устройство, ранее распознававшееся с трудом или вовсе не распознававшееся, может преспокойно заработать, особенно если это устройство относительно новое. Кроме того, стоит со всем вниманием относиться к ситуации, когда производитель прибора не просто анонсирует совместимость с Linux, а предлагает «драйверы» собственного изготовления. И последнее: если вы не в силах справиться с «драйвером» в одиночку, обращайтесь к Linux-сообществу! Вы или получите решение задачи, или в очередной раз подтвердите, что её стоит решать — и тем самым приблизите решение."
msgstr ""