Библиотека сайта rus-linux.net
Цилюрик О.И. Модули ядра Linux | ||
Назад | Обслуживание периферийных устройств | Вперед |
Обслуживание периферийных устройств
Обслуживание проприетарных (которые вы создаёте под свои цели) аппаратных расширений (для самых разнообразных целей) невозможно описать в общем виде: здесь вам предстоит работать в непосредственном контакте с разработчиком «железа», в постоянных консультациях по каким портам ввода-вывода выполнять операции и с какой целью. Поэтому задачи непосредственно организации обмена данными не затрагиваются в последующем тексте (да их и невозможно рассмотреть в описании обозримого объёма). Мы рассмотрим только основные принципы учёта и связывания периферийных устройств в системе, те вопросы, которые позволяют непосредственно выйти на порты и адреса, по которым уже далее нужно читать-писать для обеспечения функционирования устройства.
В отношении анализа всего установленного в системе оборудования, начиная с анализа изготовителя и BIOS — существует достаточно много команд «редкого применения», которые часто помнят только заматерелые системные администраторы, и которые не попадают в справочные руководства. Все такие команды, в большинстве, требует прав root, кроме того, некоторые из них могут присутствовать в некоторых дистрибутивах Linux, но отсутствовать в других. Информация от этих команд в какой-то мере дублирует друг друга. Но сбор такой информации об оборудовании может стать ключевой позицией при работе над драйверами периферийных устройств. Ниже приводится только краткое перечисление (в порядке справки-напоминания) некоторых подобных команд (и несколько начальных строк вывода, для идентификации того, что это именно та команда) — более детальное обсуждение увело бы нас слишком далеко от наших целей. Вот некоторые такие команды:
# sudo lshw
notebook.localdomain description: Notebook product: HP Compaq nc6320 (ES527EA#ACB) vendor: Hewlett-Packard version: F.0E serial: CNU6250CFF width: 32 bits capabilities: smbios-2.4 dmi-2.4 ...
$ lshal
Dumping 162 device(s) from the Global Device List: ------------------------------------------------- udi = '/org/freedesktop/Hal/devices/computer' info.addons = {'hald-addon-acpi'} (string list) ...
$ sudo dmidecode
# dmidecode 2.10 SMBIOS 2.4 present. 23 structures occupying 1029 bytes. Table at 0x000F38EB. ...
Последняя команда, как пример, в том числе, даёт и детальную информацию о банках памяти, и какие модули памяти куда установлены.
Предыдущий раздел: | Оглавление | Следующий раздел: |
Обсуждение и вопросы по разделу 6 | Устройства на шине PCI |