您好,欢迎来到思海网络,我们将竭诚为您提供优质的服务! 诚征网络推广 | 网站备案 | 帮助中心 | 软件下载 | 购买流程 | 付款方式 | 联系我们 [ 会员登录/注册 ]
促销推广
客服中心
业务咨询
有事点击这里…  531199185
有事点击这里…  61352289
点击这里给我发消息  81721488
有事点击这里…  376585780
有事点击这里…  872642803
有事点击这里…  459248018
有事点击这里…  61352288
有事点击这里…  380791050
技术支持
有事点击这里…  714236853
有事点击这里…  719304487
有事点击这里…  1208894568
有事点击这里…  61352289
在线客服
有事点击这里…  531199185
有事点击这里…  61352288
有事点击这里…  983054746
有事点击这里…  893984210
当前位置:首页 >> 技术文章 >> 文章浏览
技术文章

Linux下即插即用设备的安装

添加时间:2016-5-4 17:26:44  添加: 思海网络 
即插即用,在Linux底下?不好办,你还是换老的非即插即用设备吧。这是我初次接触Linux时,那些Linux高手们告诉我的。可是,我觉得总该有办法的。经过不懈的努力,我发现了两种方法。一是先从DOS启动,初始化设备后,再用loadlin加载到Linux中。但这不是我所梦寐以求的,因为每次需要大量时间来启动。我继续不停的寻找,终于有一天,我找到了我需要的东西,一个称为isapnptools的应用程序。 

  现在,大多数发行套件中都有isapnptools。如果你的套件中有,安装它即可。如果你的发行套件中没有它,到 http://www.roestock.demon.co.uk/isapnptools/ 去下载一份,解压后把isapnp 和 pnpdump 拷贝到目录 /sbin中即可。 

  下面就是实战阶段了。需要准备的就是把你所有要装的即插即用设备全部装好,以ROOT身份登陆。然后运行以下命令/sbin/pnpdump > /etc/isapnp.conf,这会把你机器上所有的即插即用设备信息写入文件/etc/isapnp.conf中,下面是我的机器上的/etc/isapnp.conf文件的一部分: 

# $Id: plugnplay.Html,v 1.1.1.1 1998/12/26 04:41:14 jack EXP $ 
# This is free software, see the sources for details. 
# This software has NO WARRANTY, use at your OWN RISK 
# For details of this file format, see isapnp.conf(5) 
# For latest information on isapnp and pnpdump see: 
# http://www.roestock.demon.co.uk/isapnptools/ 
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER 
# Trying port address 0203 
# Board 1 has serial identifier c5 c0 7f 53 05 01 22 05 07 
# Board 2 has serial identifier 5a 80 86 00 01 20 00 a8 65 
# Board 3 has serial identifier e8 46 46 46 46 90 30 72 56 
# (DEBUG) 
(READPORT 0x0203) 
(ISOLATE PRESERVE) 
(IDENTIFY *) 
(VERBOSITY 2) 
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING 
# Card 1: (serial identifier c5 c0 7f 53 05 01 22 05 07) 
# Vendor Id AXE2201, Serial Number 3229569797, checksum 0xC5. 
# Version 1.0, Vendor version 0.0 
# ANSI string -->Ethernet PnP ISA Card /S <-- 
# Logical device id AXE2201 
# Device support I/O range check register 
# Edit the entries below to uncomment out the configuration required. 
# Note that only the first value of any range is given, this may be 
# changed if required 
# Don't forget to uncomment the activate (ACT Y) when happy 

(CONFIGURE AXE2201/3229569797 (LD 0 
# Compatible device id PNP80d6 
# Logical device decodes 10 bit IO address lines 
# Minimum IO base address 0x0240 
# Maximum IO base address 0x0380 
# IO base alignment 32 bytes 
# Number of IO addresses required: 32 
# (IO 0 (SIZE 32) (BASE 0x0240)) 
# IRQ 3, 5, 9, 10, 11, 12 or 15. 
# High true, edge sensitive interrupt 
# (INT 0 (IRQ 3 (MODE +E))) 
# (ACT Y) 
)) 
# End tag... Checksum 0x00 (OK) 
# 略去声卡部分 
#略去modem卡部分 

# Returns all cards to the "Wait for Key" state 

(WAITFORKEY) 

  我的系统中共有三个即插即用设备,分别是NE2000兼容网卡,Yamaha OPL~SA2声卡和一个USR 56K modem。由于文件太长,我略去了声卡和modem部分。 

  接下来就是为每个设备分配所需资源。有许多方法可以实现。第一种,也是最简单的方法就是,如果你在同一台机器上也装了WIN95或WIN98,通过控制面板的系统的属性页,可以看到在WINDOWS系统下各即插即用设备的资源,记下用到Linux即可。如果你的机器中没有其它的操作系统,采用第二种方法。即手动分配资源,只要各设备资源不发生冲突就行。手动分配资源以前,最好先看一下已经使用的中断列表、I/O列列表,它们分别位于/proc/interrupts、/proc/ioports、/proc/dma。一旦你确定了各设备使用的资源,就可以分配了。 
 


  选择分配给每个设备的资源非常简单。你只要去掉你的设备所需资源前的注释号即可。描述资源的行很容易找到,因为它们总是以INT, IO或 DMA开头。在这些行之前是你所能使用资源的描述。你可以选一组,因为象下面这样的一行说明它们有优先权的区别。 

# Start dependent functions: priority preferred 

  在去掉所需资源的注释号后,你还必须去掉(ACT Y)行上的注释号来告诉ISAPNP激活该设备。 

  下面是我的/etc/isapnp.conf经过编辑并去掉注释行后的样本: 

READPORT 0x0203) 
(ISOLATE PRESERVE) 
(IDENTIFY *) 
(VERBOSITY 2) 
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING 

(CONFIGURE AXE2201/3229569797 (LD 0 
(IO 0 (SIZE 32) (BASE 0x0240)) 
(INT 0 (IRQ 3 (MODE +E))) 
(ACT Y) 
)) 

(CONFIGURE YMH0020/2156265473 (LD 0 
(IO 0 (SIZE 16) (BASE 0x0220)) 
(IO 1 (SIZE 8) (BASE 0x0530)) 
(IO 2 (SIZE 4) (BASE 0x0388)) 
(IO 3 (SIZE 2) (BASE 0x0330)) 
(IO 4 (SIZE 2) (BASE 0x0370)) 
(INT 0 (IRQ 5 (MODE +E))) 
(DMA 0 (CHANNEL 0)) 
(DMA 1 (CHANNEL 1)) 
(ACT Y) 
)) 

(CONFIGURE YMH0020/2156265473 (LD 1 
(IO 0 (SIZE 1) (BASE 0x0201)) 
(NAME "YMH0020/2156265473[1]{OPL3-SA2 Sound Chip }") 
(ACT Y) 
)) 

(CONFIGURE USR3090/1179010630 (LD 0 
(IO 0 (SIZE 8) (BASE 0x02f8)) 
(INT 0 (IRQ 3 (MODE +E))) 
(NAME "USR3090/1179010630[0]{U.S. Robotics 56K Voice INT}") 
(ACT Y) 
)) 

(WAITFORKEY) 

  如果喜欢,留着其余的注释也行。下一步就是测试你的配置是否正确。使用以下命令/sbin/isapnp /etc/isapnp.conf,屏幕会出现一些信息,样本如下: 

Board 1 has Identity c5 c0 7f 53 05 01 22 05 07: AXE2201 
Serial No 3229569797 [checksum c5] 
Board 2 has Identity 5a 80 86 00 01 20 00 a8 65: YMH0020 
Serial No 2156265473 [checksum 5a] 
Board 3 has Identity e8 46 46 46 46 90 30 72 56: USR3090 
Serial No 1179010630 [checksum e8] 

  如果你的配置文件有问题或发生资源冲突,它就会告诉你。发生问题不要着急,从头慢慢查找原因,一步一步再来。如果一切平安无事,你还必须保证你的即插即用设备在启动时能进行认证。不幸的是许多发行套件的初始脚本执行方式不同。如果你的发行套件中有isapnptools的话,可能你已经有正确的初始脚本。如果没有,仿照/etc/rc.d/init.d中的格式,自己写一个。 

  最后一步是让你的内核支持即插即用设备。目前,内核支持isapnp设置的即插即用设备的唯一方法是把它们编译为模块。所以,对每一个被认为是即插即用的设备,确信把它编译为内核支持的模块。 

  好了,不用再为你的新的设备不能被Linux接受而烦恼了,去尽情享受Linux带给你的乐趣吧。
 


  最后一步是让你的内核支持即插即用设备。目前,内核支持isapnp设置的即插即用设备的唯一方法是把它们编译为模块。所以,对每一个被认为是即插即用的设备,确信把它编译为内核支持的模块。

关键字:Linux、设备、安装
分享到:

顶部 】 【 关闭
版权所有:佛山思海电脑网络有限公司 ©1998-2024 All Rights Reserved.
联系电话:(0757)22630313、22633833
中华人民共和国增值电信业务经营许可证: 粤B1.B2-20030321 备案号:粤B2-20030321-1
网站公安备案编号:44060602000007 交互式栏目专项备案编号:200303DD003  
察察 工商 网安 举报有奖  警警  手机打开网站