Опубликован: 21.11.2006 | Доступ: свободный | Студентов: 1811 / 140 | Оценка: 4.09 / 4.00 | Длительность: 38:34:00
Лекция 3:

Установка телекоммуникационного оборудования в ОС Linux

Модемы Plug-and-Play для шины ISA

Одна из необычных технологий в IBM-совместимых ПК — использование устройств plug-and-play для шины ISA. Эти устройства, предшественники устройств для шины PCI, являются как бы переходной ступенькой между технологиями ISA и PCI. В них еще используется архитектура шины ISA, но делается попытка автоматически конфигурировать прерывания и адреса портов ввода-вывода при загрузке системы. Linux практически так же, как и в ситуации с шиной PCI, не может автоматически определять модемы PnP для шины ISA.

Однако существует несколько программных утилит, которые могут помочь вам. С целью конфигурирования модемов PnP для шины ISA в ОС Linux Питер Фокс (Peter Fox) написал несколько программных утилит. Так, например, программа isapnp может считывать конфигурационный файл, который определяет все устройства PnP для шины ISA и конфигурирует их соответствующим образом в ядре ОС Linux. Если вы не знакомы с конфигурированием устройств PnP для шины ISA, не отчаивайтесь, программа pnpdump может запросить все необходимые параметры и создать файл конфигурации автоматически.

Формат pnpdump:

pnpdump [ -- config] [ --script [=outputfile] ][ --reset] [-- ignoresum ] 
[ -- showmasks] [ -- dumpregs] [ [ devs ] readport ]

По умолчанию программа pnpdump сканирует все PnP-платы на шине ISA и посылает используемые ими ресурсы на стандартный вывод. Затем pnpdump сбрасывает все внутренние номера плат PnP и блокирует каждую из них для тестирования. Параметр devs, задаваемый в командной строке, определяет количество устройств, сканируемых программой pnpdump. При этом платы PnP не блокируются и не сбрасываются, но должен быть указан соответствующий значению в BIOS параметр readport.

По умолчанию pnpdump отображает также ресурсы, используемые платами PnP, но при этом отключает строки в конфигурационном файле, отвечающие за их настройку. Задавая параметр --config, вы даете, по сути, команду программе pnpdump на создание конфигурационного файла, который затем программа isapnp может использовать для настройки модема PnP на шине ISA. В листинге 3.7 приведены фрагменты конфигурационного файла, созданного для PnP-модема на шине ISA командой pnpdump -- config.

1 # $Id: pnpdump.c,v 1.16 1998/10/09 22:19:06 fox Exp $
2 # This is free software, see the sources for details.
3 # This software has NO WARRANTY, use at your OWN RISK
4 #
5 # For details of this file format, see isapnp.conf(5)
6 #
7 # For latest information on isapnp and pnpdump see:
8 # http://www.roestock.demon.co.uk/isapnptools/
9 #
10 # Compiler flags: -DREALTIME
11 #
12 #Trying port address 0203
13 # Board 1 has serial identifier 5b 10 0d 6a 0e 24 00 8c 0e
14 # Board 2 has serial identifier c5 00 00 11 11 01 00 36 10
15 #
16 # (DEBUG)
17 (READPORT 0x0203)
18 (ISOLATE PRESERVE)
19 (IDENTIFY *)
20 (VERBOSITY 2)
21 (CONFLICT (I0 FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
22
23 #Card 2: (serial identifier c5 00 00 11 11 01 00 36 10)
24 # Vendor Id DAV0001, Serial Number 4369, checksum 0xC5.
25 # Version 1.0, Vendor version 1.0
26 # ANSI string -->DAVICOM 336PNP MODEM<--
27 #
28 # Logical device id DAV0336
29 # Device support I/O range check register
30 # Device supports vendor reserved register @ 0x39
31 # Device supports vendor reserved register @ 0x3a
32 # Device supports vendor reserved register @ 0x3d
33 #
34 # Edit the entries below to uncomment out the configuration required.
35 # Note that only the first value of any range is given, this may be changed
36 #if required. Don't forget to uncomment the activate (ACT Y) when happy
37
38 (CONFIGURE DAV0001/4369 (LD 0
39
40 #Multiple choice time, choose one only
41
42 # Start dependent functions: priority acceptable
43 # Logical device decodes 16 bit 10 address lines
44 # Minimum I0 base address 0x02f8
45 # Maximum I0 base address 0x02f8
46 # I0 base alignment 8 bytes
47 # Number of I0 addresses required: 8
48 (I0 0 (SIZE 8) (BASE 0x02f8))
49 # IRQ 3.
50 # High true, edge sensitive interrupt (by default)
51 [INT 0 (IRQ 3 (MODE +E)))
52
53 (NAME "DAV0001/4369[0]{DAVICOM 336PNP MODEM}")
54
55 # End dependent functions
56 (ACT Y)
57 ))
58 # End tag... Checksum 0x00 (OK)
59
60 # Returns all cards to the "Wait for Key" state
61 (WAITFORKEY)
Листинг 3.7. Пример результатов работы команды pnpdump -- config

В листинге 3.7 представлена лишь часть файла, генерируемого pnpdump. Программа pnpdump генерирует все возможные комбинации настроек, но оставляет активными лишь те, которые, с ее точки зрения, наилучшим образом подходят для данной PnP-платы. Результаты выполнения программы pnpdump могут перенаправляться в файл, где хранятся настройки PnP-плат:

pnpdump -- config > /etc/isapnp.conf

Именно в файле /etc/isapnp.conf программа isapnp попытается получить конфигурационную информацию, если не указан какой-либо другой файл. После того как конфигурационный файл создан, запускается программа isapnp. Формат команды isapnp следующий:

isapnp conffile,

где conffile — альтернативный путь к файлу конфигурации. После запуска в системе на базе ОС Linux программа isapnp должна обнаружить модем PnP. И, наконец, для завершения процесса настройки следует запустить программу setserial для порта, к которому привязан PnP-модем.

Подобно работе программы setserial, вся информация, которая генерируется программой isapnp, помещается в таблицы ядра ОС Linux и теряется при перезагрузке системы. Эта проблема может быть решена запуском соответствующего сценария во время загрузки. В большинстве случаев в ОС Linux программа isapnp запускается при наличии файла /etc/isapnp.conf. Помните, что программа setserial должна запускаться уже после выполнения программы isapnp для того, чтобы соответствующим образом сконфигурировать последовательный порт с целью использования PnP-модемом для шины ISA.