Россия, Казань, Казанский Национальный Исследовательский Технический Университет |
Установка телекоммуникационного оборудования в ОС 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.