Next Previous Contents

6. 使用未被支持的卡片

6.1 建构无法被辨视的卡片

现在我们假设你的卡片已被现有的驱动程序所支持,我们所需要做的是在 /etc/pcmcia/config 中加入一个条目来告诉 cardmgr 如何 来辨视这张卡,哪些驱动程序需要连结到这张卡片上。建构文档的格式细节 请查看 pcmcia 的 man 页。 如果你插入一张不被认得的卡片, cardmgr 正常来说会记录一些辨视信息到系统日志上, 我们可以利用 这些信息来建造它的建构条目。

以下是个 cardmgr 如何将未支持卡的报告到 /usr/adm/messages 内的例子。

cardmgr[460]: unsupported card in socket 1
cardmgr[460]: version info: "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"

相对应到/etc/pcmcia/config 的条目可以是:

card "Megahertz XJ2288 V.34 Fax Modem"
  version "MEGAHERTZ", "XJ2288", "V.34 PCMCIA MODEM"
  bind "serial_cs"

你可以使用 ``*'' 来代替不晓得的字串,像版本号码啦。 当你写新的建构 条目时,请小心地把完整的字串拷贝过去,保持原有的大小写体以及空白字 元。还有,请确认建构条目与被报告到日志文档里的资料有同样数目的字串 。

请牢记您几乎可以指定任何的驱动程序给一张卡使用,但如果你只是胡乱地 乱弄,并不是个很有生产效率的作法。你也可能很幸运地发现现有的驱动程 式已支持了你的卡片。然而,大部份的结果是哪些驱动程序并无法工作,也 有可能会产生边际效应像锁死你的系统了。不像一般的设备驱动程序只探测 适当的卡片,探测 PCMCIA 设备的工作是由 cardmgr 所执行,驱动程 式本身在试著与设备沟通前并不会做啥么确认动作的。

在编修 /etc/pcmcia/config 之后, 你可以暗示 cardmgr 重新载入该文档,使用:

kill -HUP `cat /var/run/cardmgr.pid`

如果你设定好了一张新的卡片,请寄一份设定给我,这样子我就可以把它包 含进标准建构文档里。

6.2 增列对 NE2000兼容乙太网路卡的支持

首先, 先查看看这张卡是否已被 cardmgr 所辨识。 有些没有被列在 SUPPORTED.CARDS 内的卡片事实上是有些被支持的卡的 OEM 版本。如 果你发现了像这样的卡片,请让我知道,这样才能把它加到列表内。

如果你的卡片没被辨别到, 请依照 3.6 内 的步骤为你的卡片建立一个建构条目,并把这张卡片连系上 pcnet_cs 驱动程序。 重新执行 cardmgr 即可使用被更新的建构文档了。

如果 pcnet_cs 驱动程序说它无法决定你的卡片之硬件乙太网路位址 ,那么请编修你的新建构条目将这张卡片连系上内存卡片驱动程序 memory_cs 上。 重新执行 cardmgr 即可使用被更新的建构文档 了。你需要知道你的卡片的硬件乙太网路位址的值。这个位址是个以二个十 六位元字元号码所排成的六个数字,通常它会被印在卡片上。如果它没有印 在卡片上,你可以使用 DOS 的驱动程序来显示这个位址。 只要你一知道这 个值,请执行:

dd if=/dev/mem0a count=20 | od -Ax -t x1

然后寻找你的位址之输出。只有偶数位元组被定义了,因此可以忽略倾印资 料内的奇数位元组。记下位址的第一个位元组的十六位元位移。现在,编修 modules/pcnet_cs.c 并寻找 hw_info 构造。你需要为你的 卡片建立一个新的条目。第一个栏位就是内存位移。接著的三个栏位就第 硬件位址的前三个位元组。最后一栏位含有卡片的特别功能的旗标; 开始时 请试著将它设为 0。

编修完 pcnet_cs.c 后, 编译与安装新的模块。 再次修改 /etc/pcmcia/config, 然后改变卡片的连系从 memory_cs 换成 pcnet_cs。顺著指示重新载入建构文档后就完成了。请您寄给我 一份你的新hw_info 文档以及建构的条目内容。

如果你没有在十六进位倾印内找到你的卡片的硬件位址。最后的一个方法, 当 pcnet_cs 模块初始化时想要 ``hard-wire( 硬件接合 )'' 是有可 能的。请编修 /etc/pcmcia/config.opts 并加入 hw_addr= 选项,像这样:

module "pcnet_cs" opts "hw_addr=0x00,0x80,0xc8,0x01,0x02,0x03"

在适宜的地方代换掉你自己的卡片之硬件位址。当然,请小心如果你已经做 了那么多了,那你的卡片就不太像是个 NE2000 兼容卡了。事实上,我并不 确定是否有 任何 卡片在经过了前面两种方法之一后还不能用的了 。

6.3 PCMCIA 软盘机界面卡

在 Compaq Aero 及少数一些笔记型电脑所使用的 PCMCIA 软盘机界面卡目 前尚未被支持。 主要障碍在于 Aero 似乎使用自订的 PCMCIA 控制器来使 DMA 支持软盘机。在不晓得这是如何办到的情况下,我们就无法找出解决的 方法。

如果在 Aero 被开启时软盘机界面卡是插著的, Aero 的 BIOS 就会建构该 卡,此时 Linux 会把它视为一般的软盘机。当 Linux 的 PCMCIA 驱动程序 被载入时, 它们会查察到这卡已被建构并已附著在 Linux 的驱动程序上, 而这插槽也会被忽略不管了。所以,如果在开机时卡片即插著了那就可以使 用,但它不具备热机交换的功能。

6.4 支持 Xircom 卡到底怎么了?

在目前的 PCMCIA 套件中有含了一个古援 Xircom 乙太网路及乙太网路 / 数据机的驱动程序。 这要感谢 Werner Koch 先生。我有设立一个专门讨论 Xircom 驱动程序论譠的超媒体新闻,在 http://hyper.stanford.edu/hypernews/get/pcmcia/xircom.html

以前 Xircom 卡并没被支持是因为 Xircom 公司有不能泄露他们的卡片之技 术信息。后来,他们放松这些规定,现在主动提供驱动程序的信息。


Next Previous Contents