当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]即插即用,在Linux底下?不好办,你还是换老的非即插即用设备吧。这是我初次接触Linux时,那些Linux高手们告诉我的。可是,我觉得总该有办法的。经过不懈的努力,我发现了两种方法。。。

即插即用,在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带给你的乐趣吧。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭