Linux下即插即用设备的安装,Linux下即插即用设备的安装
即插即用,在Linux底下?不好办,你还是换老的非即插即用设备吧。这是我初次接触Linux时,那些Linux高手们告诉我的。可是,我觉得总该有办法的。经过不懈的努力,我发现了两种方法。一是先从DOS启动,初始化设备后,再用loadlin加载到Linux中。但这不是我所梦寐以求的,因为每次需要大量时间来启动。我继续不停的寻找,终于有一天,我找到了我需要的东西,一个称为isapnptools的应用程序。
现在,大多数发行套件中都有isapnptools。如果你的套件中有,安装它即可。如果你的发行套件中没有它,到去下载一份,解压后把和拷贝到目录中即可。
下面就是实战阶段了。需要准备的就是把你所有要装的即插即用设备全部装好,以ROOT身份登陆。然后运行以下命令/sbin/pnpdump/etc/,这会把你机器上所有的即插即用设备信息写入文件中,下面是我的机器上的文件的一部分:
#$,$
#Thisisfreesoftware,seethesourcesfordetails.
#ThissoftwarehasNOWARRANTY,useatyourOWNRISK
#
#Fordetailsofthisfileformat,()
#
#Forlatestinformationonisapnpandpnpdumpsee:
#
#
#Compilerflags:-DREALTIME-DNEEDSETSCHEDULER
#
#Tryingportaddress0203
#Board1hasserialidentifierc5c07f530501220507
#Board2hasserialidentifier5a808600012000a865
#Board3hasserialidentifiere84646464690307256
#(DEBUG)
(READPORT0x0203)
(ISOLATEPRESERVE)
(IDENTIFY*)
(VERBOSITY2)
(CONFLICT(IOFATAL)(IRQFATAL)(DMAFATAL)(MEMFATAL))#orWARNING
#Card1:(serialidentifierc5c07f530501220507)
#VendorIdAXE2201,SerialNumber3229569797,checksum0xC5.
#Version1.0,Vendorversion0.0
#ANSIstring--EthernetPnPISACard/S<--
#
#LogicaldeviceidAXE2201
#DevicesupportI/Orangecheckregister
#
#Edittheentriesbelowtouncommentouttheconfigurationrequired.
#Notethatonlythefirstvalueofanyrangeisgiven,thismaybe
#changedifrequired
#Don forgettouncommenttheactivate(ACTY)whenhappy
(CONFIGUREAXE2201/3229569797(LD0
#CompatibledeviceidPNP80d6
#Logicaldevicedecodes10bitIOaddresslines
#MinimumIObaseaddress0x0240
#MaximumIObaseaddress0x0380
#IObasealignment32bytes
#NumberofIOaddressesrequired:32
#(IO0(SIZE32)(BASE0x0240))
#IRQ3,5,9,10,11,12or15.
#Hightrue,edgesensitiveinterrupt
#(INT0(IRQ3(MODE+E)))
#(ACTY)
))
#Endtag...Checksum0x00(OK)
#略去声卡部分
#略去modem卡部分
#Returnsallcardstothe"WaitforKey"state
(WAITFORKEY)
我的系统中共有三个即插即用设备,分别是NE2000兼容网卡,YamahaOPL~SA2声卡和一个USR56Kmodem。由于文件太长,我略去了声卡和modem部分。
接下来就是为每个设备分配所需资源。有许多方法可以实现。第一种,也是最简单的方法就是,如果你在同一台机器上也装了WIN95或WIN98,通过控制面板的系统的属性页,可以看到在WINDOWS系统下各即插即用设备的资源,记下用到Linux即可。如果你的机器中没有其它的操作系统,采用第二种方法。即手动分配资源,只要各设备资源不发生冲突就行。手动分配资源以前,最好先看一下已经使用的中断列表、I/O列列表,它们分别位于/proc/interrupts、/proc/ioports、/proc/dma。一旦你确定了各设备使用的资源,就可以分配了。
选择分配给每个设备的资源非常简单。你只要去掉你的设备所需资源前的注释号即可。描述资源的行很容易找到,因为它们总是以INT,IO或DMA开头。在这些行之前是