QQ在线服务: 风舞残阳风舞残阳 年满19岁年满19岁 小罗小罗 晴天晴天 心雨心雨 叮叮肉叮叮肉 小周小周 小童小童 小破孩小破孩 遥望当年遥望当年

用户导购指南

水货IBM笔记本电脑报价

行货IBM笔记本电脑报价

IBM服务器报价

IBM笔记本电脑配件报价

本周水货IBM笔记本电脑特价

IBM笔记本电脑驱动下载

水货IBM笔记本电脑验机流程

水货IBM笔记本电脑保修政策

IBM笔记本电脑FRU查询

IBM笔记本电脑常见问题

IBM笔记本电脑使用手册

笔记本电脑验机软件

论坛积分使用说明

水货IBM笔记本电脑异地购机流程

笔记本电脑购机经历及现场

贵宾申请入口

贵宾用户FTP入口

查看笔记本配置

水货APPLE苹果笔记本电脑报价

 
发新话题
打印

[linux教程] Linux下即插即用设备的安装

Linux下即插即用设备的安装

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

+ ?( K( [. |4 A+ e2 I  现在,大多数发行套件中都有isapnptools。如果你的套件中有,安装它即可。如果你的发行套件中没有它,到http://www.roestock.demon.co.uk/isapnptools/ 去下载一份,解压后把isapnp 和 pnpdump 拷贝到目录 /sbin中即可。
1 N1 ~% d3 O9 R) W- f6 O# z. g" y
. |& S' ]! S# y, v  下面就是实战阶段了。需要准备的就是把你所有要装的即插即用设备全部装好,以ROOT身份登陆。然后运行以下命令/sbin/pnpdump %26gt; /etc/isapnp.conf,这会把你机器上所有的即插即用设备信息写入文件/etc/isapnp.conf中,下面是我的机器上的/etc/isapnp.conf文件的一部分:; V8 z: x9 t) K! B

8 j3 @! x1 a0 W% T4 O' r3 k6 \# $Id: plugnplay.html,v 1.1.1.1 1998/12/26 04:41:14 jack Exp $
& M. U, X: I9 A$ i' ~: ~: O2 J
# This is free software, see the sources for details.
4 V, G5 a1 U9 c/ \3 P/ u9 t7 |
/ L. R; D# ?% T7 f% o2 V" ^# This software has NO WARRANTY, use at your OWN RISK& K- y0 x9 N7 d6 B% s0 N0 w
9 \* l4 D7 |. D* v' n8 H. _' I
#* E6 F. e8 e) A0 l: s9 q( ^6 l

0 }: z( c& j5 j5 |) a* b& V" c# For details of this file format, see isapnp.conf(5)
4 ^& y  S4 Z' f7 B# o/ F% B& d; O( f! J# t4 b  c: l
#
3 y- g3 l/ b5 y$ U9 N7 K. c2 g7 ?* b  @3 G5 f
# For latest information on isapnp and pnpdump see:% ^" F4 A6 L; k
" |( A4 S. k  @
# http://www.roestock.demon.co.uk/isapnptools/% Y7 D  r' H$ Z; C
. D) j) a( e* `( b$ }
#
8 Z5 {1 w, K. k3 {+ M. }8 |( d9 t% k; h1 Q5 w
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER2 e- b& w( u( j
& ~' V2 \& u$ N6 N
#
. a5 N& V  z: z' Z- p4 \( h$ W. B9 M3 }* I! S5 n
# Trying port address 02032 H+ N8 S/ r) G% R( g9 _4 f

5 x; c* m# n# I# Board 1 has serial identifier c5 c0 7f 53 05 01 22 05 07
9 h6 |7 ?: p% a  j4 ^7 I+ u6 o4 u# u, u5 u
# Board 2 has serial identifier 5a 80 86 00 01 20 00 a8 65/ a  F) w& W, }: f) y" l

. }( S$ T: N' \/ ^. R7 h  N9 X9 R; u# Board 3 has serial identifier e8 46 46 46 46 90 30 72 56
( S8 i( @/ x& b6 |6 A. G* u# d2 r  N, z/ u

2 U2 S- x) Q) l. r# (DEBUG)6 m7 ~$ H5 V" w

2 e3 H- z5 c3 J9 J(READPORT 0x0203)1 p" B5 W# q; @3 O

# L* v1 n5 n" H. {(ISOLATE PRESERVE)
5 N, {3 ~" C; G/ k$ @; a: \& b! K- _- ^) `
(IDENTIFY *)
/ u) M/ ~- y% D+ i
$ P4 G8 ]# c, C% m1 [% {$ X2 ](VERBOSITY 2)2 V( F! S+ F) {8 \) B

4 N" u) d3 g1 w6 K(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING
" h; @9 U# P5 S' z( N9 }1 U
, i& o1 S- H1 c! y: P7 a+ ^; l5 q: J6 i' K* E* d7 ~
# Card 1: (serial identifier c5 c0 7f 53 05 01 22 05 07), L8 H% u% K7 O" k
" }' A) p) F7 Q# k
# Vendor Id AXE2201, Serial Number 3229569797, checksum 0xC5.
5 i  K* u% }* C: B7 X2 J3 f
: s6 v6 a4 |- z+ u/ q# Version 1.0, Vendor version 0.0
$ I4 G! g) H* a) z0 E$ n
% t( S& s/ o6 R) M# f' f1 r# ANSI string --%26gt;Ethernet PnP ISA Card /S %26lt;--
' m& S# V* i! A: J5 {9 n6 U5 q7 h8 L% r) e4 H
#9 E* f( @+ Z' j4 C

0 C7 \7 O. M, ?  G& ?# Logical device id AXE2201
) b5 a% e. {8 @' E6 u" Q
/ N) @; S* f* W; G3 L* V7 X# Device support I/O range check register0 ]5 H& @. w9 I
& y$ N1 J  O' f+ M2 w" [2 q( C
#5 j, `4 N9 A* `, R) B
( B4 n* ?6 M2 m) ^0 k- Z
# Edit the entries below to uncomment out the configuration required.
8 ~! K" t# {, z2 u! N# s$ @- ~6 l2 `$ L: l: g, ?0 Q$ J
# Note that only the first value of any range is given, this may be 
1 Z/ i4 J, Y% M' y$ g) V! s. M
2 y9 \/ k0 K% d1 z, ?7 k: G# changed if required
+ l9 [5 N) R. ~1 x. i/ {6 B8 J7 l! C8 l2 _( _+ v2 B6 T
# Don't forget to uncomment the activate (ACT Y) when happy2 M/ Y0 b" K  k7 S  P) {" K

  b$ Y, Q2 W7 G( E0 K& V; A  ^: L; y! p! O' W0 i! L2 \
(CONFIGURE AXE2201/3229569797 (LD 0
! q% ]# a  |% s' [: G
8 c2 C' U. G9 r% y( H# Compatible device id PNP80d66 X$ L, u$ |2 Y# i- P% x. Y. a! h

0 b0 @+ `# k0 t: l1 h) f- h" k# Logical device decodes 10 bit IO address lines" C" P* i4 |& M% G- r2 a, [3 t6 p

$ ?8 `8 ~3 a( P( r4 r# Minimum IO base address 0x0240
6 O  @* M/ j4 y- q- u0 V# X. d9 \2 D" G( l# W* B2 y* |
# Maximum IO base address 0x0380
8 K8 {% O( D# j9 ?4 N$ Q1 U# `- k0 W9 k
# IO base alignment 32 bytes- t! `" y, C0 @

: L! R' j3 x* v4 P6 t& F7 d# Number of IO addresses required: 329 W& M' X! u  u( H& x, J
: l/ \2 r5 h2 l8 r
# (IO 0 (SIZE 32) (BASE 0x0240))! u. {. h3 ]2 U' i- z

2 o; h" y2 K2 D+ O# ]: {' T6 H# IRQ 3, 5, 9, 10, 11, 12 or 15.
* A# c" e  @7 p3 N' w$ M# r2 V9 D2 H* h( w  f
# High true, edge sensitive interrupt
1 b& K9 |& S3 w6 p5 K5 |: m1 O1 `6 ~+ C( E' ^  H4 w
# (INT 0 (IRQ 3 (MODE E)))
/ _2 E9 S  J0 P' Y5 b( r/ ~2 a& f3 {6 G
# (ACT Y)
) i- d" T6 x! d  y7 B4 o
$ m  `2 L. y* l))4 g, Y3 K3 H4 R. l
- R4 U% K' a. B. g- [6 T
# End tag... Checksum 0x00 (OK)/ [# H) M4 b7 p
/ m0 r( R. N! ]9 V% B
# 略去声卡部分6 Q9 [: `( x& h* }% E
0 G5 K  T, e+ w3 k5 u
#略去modem卡部分2 d  R' d, p3 |

  x$ e) [: a1 w
! t! V, F8 c) T# i# Returns all cards to the "Wait for Key" state- u1 @" k. N" i' g: E4 D
- Q3 W& |; b" J; f$ Z! v' P& H
(WAITFORKEY)
. x8 ]. g. ]5 ]3 _, ^/ E9 R0 H) w/ `. F; U

, Y. u3 q* l3 A. _- J7 q1 D" h  我的系统中共有三个即插即用设备,分别是NE2000兼容网卡,Yamaha OPL~SA2声卡和一个USR 56K modem。由于文件太长,我略去了声卡和modem部分。
+ u: Q; X! T& y5 ~
5 o/ B+ ]! \+ a5 Y+ F  接下来就是为每个设备分配所需资源。有许多方法可以实现。第一种,也是最简单的方法就是,如果你在同一台机器上也装了WIN95或WIN98,通过控制面板的系统的属性页,可以看到在WINDOWS系统下各即插即用设备的资源,记下用到Linux即可。如果你的机器中没有其它的操作系统,采用第二种方法。即手动分配资源,只要各设备资源不发生冲突就行。手动分配资源以前,最好先看一下已经使用的中断列表、I/O列列表,它们分别位于/proc/interrupts、/proc/ioports、/proc/dma。一旦你确定了各设备使用的资源,就可以分配了。
1 M+ P+ l, E1 P- s8 F( r% V2 N; {7 V. W
) ?9 `0 U) H$ _5 `  选择分配给每个设备的资源非常简单。你只要去掉你的设备所需资源前的注释号即可。描述资源的行很容易找到,因为它们总是以INT, IO或 DMA开头。在这些行之前是你所能使用资源的描述。你可以选一组,因为象下面这样的一行说明它们有优先权的区别。6 u2 D$ x! U- D, o
+ N3 P* l: _* N0 G# R9 a% _) `
# Start dependent functions: priority preferred. r- R) s% y/ h# Z& Z8 j& m! }6 K

, a4 {& h$ k: ~7 y6 u) Z! G2 s  在去掉所需资源的注释号后,你还必须去掉(ACT Y)行上的注释号来告诉ISAPNP激活该设备。
+ }) l& x* Y$ S, V: C% F7 e( m3 @2 @5 F! k5 z
  下面是我的/etc/isapnp.conf经过编辑并去掉注释行后的样本:5 l8 Y' J8 N1 L' E) Q4 _) E8 y
3 M( r$ [7 ]; s0 U, O
READPORT 0x0203)9 w. }7 i! t' ?' K
2 h* m3 z+ u  c" U7 O& M
(ISOLATE PRESERVE)* h. Q4 q3 n4 M1 d: v& T8 N/ F
  s" M6 m$ D; _  j, q
(IDENTIFY *)
' y8 s, P$ G  L: s+ p& s% j2 L! B0 R8 }& a+ q( V
(VERBOSITY 2)) P& i2 b# o- y# Z8 ?
# M  l; ~- Z) o( e4 r
(CONFLICT (IO FATAL)(IRQ FATAL)(DMA FATAL)(MEM FATAL)) # or WARNING0 A) Q+ k/ k! k
4 d# A8 P# {6 d9 Z4 ]3 m9 T; t
  v: s: x8 f: i' |3 J. r* J
(CONFIGURE AXE2201/3229569797 (LD 07 x/ W% k( B; M1 i. i& i

) j: G  k8 u! U(IO 0 (SIZE 32) (BASE 0x0240))1 s5 y9 j7 ^6 q; f

, h) W/ E5 q7 [0 A: _2 t. c+ U' H. R(INT 0 (IRQ 3 (MODE E)))
3 }" R, H1 z: Q- }9 _% U# ^8 V, }, M* K0 b, `$ b: @
(ACT Y)6 g0 p9 C! H: j; Q

5 E. L* p1 |. S. z- c))
1 [7 l5 z4 k. N
# z" ~% N7 j: x( E& J1 A" P5 }
3 Y9 p& U9 ]0 ~0 n, t(CONFIGURE YMH0020/2156265473 (LD 04 ]( d& J; E9 D* T0 P- {+ G. w

( ?. t- R) l! V! w* u(IO 0 (SIZE 16) (BASE 0x0220))4 ~# c% v9 e' _. c

% V6 {4 Q( p' T: t4 A( J(IO 1 (SIZE 8) (BASE 0x0530))# y3 ]6 o1 B! v6 _
, s  E3 n- a6 T0 l. @' W9 v( \
(IO 2 (SIZE 4) (BASE 0x0388))
! A! \3 A. C7 j* W+ U& T$ ]$ V. X. p! q/ l" D6 E7 _1 Z( F
(IO 3 (SIZE 2) (BASE 0x0330))
& r( e* j$ G; j7 V8 R+ ~
6 s; H# a) V: K(IO 4 (SIZE 2) (BASE 0x0370))
2 _: x8 _. X# {) ?  M5 {' J$ B# w2 y3 v0 }* ?7 I9 E! X
(INT 0 (IRQ 5 (MODE E)))9 ?8 u$ M1 {; B$ ?: J7 u
7 @& x, {0 `; I1 s: u
(DMA 0 (CHANNEL 0))
$ J  R2 J1 l" Q0 m- f1 Y) Z7 z/ R, H& }# E# [
(DMA 1 (CHANNEL 1))
% t& l( c2 e# f( E6 F6 d% g
9 W- D+ @4 b% W(ACT Y)
) X* K! z  ]2 O1 _7 Z
9 k$ c; s& y, V8 C))) x. h0 ?8 M: f! \. j% g* ]- q
) [6 ^9 p5 s9 D8 V1 F9 h. O+ n

3 G$ i6 w) @* g+ E) n" N8 \2 R(CONFIGURE YMH0020/2156265473 (LD 1' \4 [# @* R) Y* E: x- F" x3 X

( V  c7 @6 |. {/ p6 I5 b(IO 0 (SIZE 1) (BASE 0x0201))9 r- G/ V; |: G' @2 @: E
2 w! S6 l9 Q  M/ A( S9 u
(NAME "YMH0020/2156265473[1]{OPL3-SA2 Sound Chip }"), I  f9 f# U' _$ M4 s

8 M3 j' c; J9 L9 r' G(ACT Y)
) y  @; [/ G9 }: S6 a. F! `# r/ U0 B* c, |: d+ Z0 T. ?& E
))4 w3 z6 e- T7 a7 M2 V  i1 e) c

% W/ ?$ a! R# k% y- D+ G& Q/ F. ?5 D1 h1 D
(CONFIGURE USR3090/1179010630 (LD 0/ C: N! ]3 h* z+ R- Z( P; z& }, s

5 u# W6 p: q% z8 J% b& h9 _  `& f  h0 ]9 y(IO 0 (SIZE 8) (BASE 0x02f8))
6 b; s! Y3 `, W, h: C( }2 Y
" f' l7 p# z" L! ]* I1 O5 f(INT 0 (IRQ 3 (MODE E)))0 {* s3 d. D& s
# o6 V$ X1 v2 g' x) t+ ]* l: V
(NAME "USR3090/1179010630[0]{U.S. Robotics 56K Voice INT}")! q( N& W' b/ z  G; a- Q( g: q

% i9 i- H6 k' j(ACT Y)
) x  V  H9 H. o, B' F  t% q* I2 q8 P* ]  R1 g( N+ ~8 W" a0 l
))
# q/ \. F) F1 P+ v- ]1 [% N/ e) O* t" c5 ]
# r/ d- o2 v6 p! m: U9 O
(WAITFORKEY)
1 F) O7 V& @4 H* [6 D5 _. s2 Q4 s( u! c6 g) c: a& M- _8 I

  O3 K  n8 K* [6 X2 Z! S/ D  如果喜欢,留着其余的注释也行。下一步就是测试你的配置是否正确。使用以下命令/sbin/isapnp /etc/isapnp.conf,屏幕会出现一些信息,样本如下:7 _8 d' Q3 L8 z2 j1 O; p

$ l8 ~( C( W6 T' xBoard 1 has Identity c5 c0 7f 53 05 01 22 05 07: AXE2201 # L1 K  p) n7 X, K# m

7 A' N: k) ^* _3 I' Z2 \Serial No 3229569797 [checksum c5]
) L' S5 R3 F8 U1 G  o& c& j) j; F. C: `# \
Board 2 has Identity 5a 80 86 00 01 20 00 a8 65: YMH0020 5 ?' _2 J" M' s) ~. U+ n

; U. F9 O6 V, X9 Y7 XSerial No 2156265473 [checksum 5a]
4 Z; a0 U& M5 m. I6 X1 {* x- g; F) i/ n  ~0 {' y5 @+ U
Board 3 has Identity e8 46 46 46 46 90 30 72 56: USR3090 1 S) `% ?  D, e3 [& ]. }7 ~2 u& ]4 m

# {; y, J: x# w2 lSerial No 1179010630 [checksum e8]+ C6 R- J/ y6 O4 w! y( n* m
) d8 h  s& p9 J2 m' \+ T( N
  如果你的配置文件有问题或发生资源冲突,它就会告诉你。发生问题不要着急,从头慢慢查找原因,一步一步再来。如果一切平安无事,你还必须保证你的即插即用设备在启动时能进行认证。不幸的是许多发行套件的初始脚本执行方式不同。如果你的发行套件中有isapnptools的话,可能你已经有正确的初始脚本。如果没有,仿照/etc/rc.d/init.d中的格式,自己写一个。0 k4 y- I7 a* T0 C2 O; S, R  `. k

  O: }- A8 X6 o3 F0 V. H; }% z  最后一步是让你的内核支持即插即用设备。目前,内核支持isapnp设置的即插即用设备的唯一方法是把它们编译为模块。所以,对每一个被认为是即插即用的设备,确信把它编译为内核支持的模块。
0 T' E) U. X3 \+ _" X7 _- \. Y; P3 a. v
  好了,不用再为你的新的设备不能被Linux接受而烦恼了,去尽情享受Linux带给你的乐趣吧。
(※本文搜集自:重庆未来科技 http://www.wlkj.net 重庆IBM笔记本电脑、重庆IBM水货笔记本电脑、重庆苹果笔记本电脑、重庆IBM服务器专卖)

TOP

发新话题