首先要去下载一个isapnptools的工具包,现在很多发行版已经包含了这个包.编译安装后:
(1)用 pnpdump > /etc/isapnp.conf 去找PnP卡和它们的参数(如果已经有了这个文件要注意备份)
(2)编辑 /etc/isapnp.conf
选择其中最好的配置,取消前面的注释符"#"----让这行参数有效,保存. (3)在 /etc/rc.d/rc.S (如果是Redhat 5.1 的话,好象这一步不用), 加入 /sbin/isapnp /etc/isapnp.conf
一定要加在 depmod -a 之前。也就是说,在内核配置里把对应PnP卡的部分编译成模块的方式, 否则内核先于isapnp执行,那就没用了. 这样isapnp先把硬件参数设好,后面的驱动模块就能正常工作.
当然手工加上要启动的模块也可以,如/sbin/insmod sound等等. (4)重新启动看看这样如何.
要注意的是有些PnP的声卡会和PnP的网卡抢同一个中断,引起冲突,要仔细设置,还要到BIOS设置里看看都开放了哪些中断供pnp使用.如果你从瘟95重新启动后接着用LILO启动Linux,可能有些PnP卡工作不正常,没有办法,只好关机冷启动.据说在瘟95下用loadlin.exe启动Linux可以解决某些兼容问题.
另外一种简单的方法是用PnP卡自带的驱动软盘去禁止PnP功能,把参数定住.可能还需要把BIOS里PnP OS 一项禁止.
Linux对pci总线的PnP卡支持较好,你可以用scanpci查看相关信息或者查看/proc/pci文件. 或者下载PCI Utilities,里面的lspci可以列出所有的pci设备。
ISA PnP的大致原理是用一个缺省的端口与PnP的管理者通信,可以动态地修改工作端口与中断号。
-金山卓越
(出处:http://www.sheup.com)