Next Previous Contents

2. 编译与安装

2.1 准备工作与核心设定

在开始前, 您应该想想是否需要自己来编译 PCMCIA 套件。 因为大部份的 Linux 供应商版本已含有已编译过的 PCMCIA 驱动程序套件。一般上来说, 如果您需要最新的驱动程序或您更动的 Linux 供应商版本内的核心和您原 本的 PCMCIA 驱动程序无法兼容时才会需要自己动手做。 虽然编译 PCMCIA 套件在技术上并不难,但还是需要您对 Linux 已有一定的熟悉的。

下列的东西必须在您开始安装PCMCIA程序之前先行安装妥当:

目前的驱动程序套件事实上可在核心版本 1.2.8 开始的核心版本上正常工 作。而用旧一点的核心版本就背道而驰了些,最好不要这样。

您还需要完整的 Linux 原始程序树, 不是只有最新版的核心映像档就可用 来编译 PCMCIA 套件的。 PCMCIA 模块含有一些对核心原始程序文档的参考 指令, 也许您会想做个不含哪些不必要的驱动程序的核心, 但是安装 PCMCIA 并不需要您这么做。

目前稳定的的核心程序的原始档及修补档可以在 ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0 内找到。 发展中的核心程序可在 v2.1 目录内找到,目前的模块公用 程序也可在同样的地方找到。

在核心 2.0 及 2.1 版所用的 Linux 原始程序树内的 Documentation/Changes 文档中描述了核心程序所需要的各种类别的系统元件。您可检视它并核对您 的系统是否为最新版本,尤其当您已更新了核心程序。 如果您使用 2.1 版 核心,请确认您用了正确的程序库和模块工具的组合。

当您建构核心时,如果您计划要用 PCMCIA 网路卡,您应该打开网路支持并 关上正常的 Linux 网路卡驱动程序, 这包括口袋型可携式型界面卡。 PCMCIA 网路卡驱动程序都设计成可载入式模块, 所以将驱动程序编译到核 心程序内只会浪费空间而已。

如果您要使用 SLIP、PPP 或 PLIP,可在建立核心时将这些功能打开,或者 使用这些功能的可载入模块版本。 但是在核心 1.2.X 版本下建构作业时有 小缺撼,就是不能为载入式模块设定建构选项 (例如 SLIP 压缩 ),所以如 果您需要这个功能,只好将 SLIP 连结到核心程心里了。

为了要使用 PCMCIA 拓朴链网路卡, 您的核心程序应该将 ``Token Ring driver support'' (CONFIG_TR) 这项目开启,并将 CONFIG_IBMTR 这项关闭。

如果您要使用 PCMCIA IDE 卡,针对核心 1.3.72 至 2.1.7 版, 核心建构 时应该要将 CONFIG_BLK_DEV_IDE_PCMCIA 功能打开,旧版的核心并不 支持可移式 IDE 设备,而较新的核心就不需这么特别设定了。

如果您要使用 PCMCIA SCSI 卡, 在建构核心时应将 CONFIG_SCSI 功 能打开。 并且,将您要使用的 SCSI 设备项目之驱动程序打开 (SCSI 磁盘 机、磁带机、唯读光驱等等 )。所有给特定界面卡的低层次驱动程序应该 要关掉,因为它们只会占用空间而已。

如果您想把给 PCMCIA 设备使用的驱动程序模块化,请修改 /etc/pcmcia/config 来指定哪些模块在哪种卡片使用下需被载入。例如,如果串列埠驱动程序被 模块化了,那么串列埠设备的定义应该如下:

device "serial_cs"
  class "serial" module "misc/serial", "serial_cs"

在套件里还有个 X 环境使用的卡片状态公用程序 cardinfo。 此程序 是奠定在一个免费供应的使用者界面工具套件 XForms 程序库。通常被附在 大部份的 Linux 供应商的产品内。 如果您想建造 cardinfo,您得在 建构 PCMCIA 套件前安装好 XForms 和所有的一般 X 程序头档及程序库。

2.2 安装

以下是安装过程的简要步骤:

如果您想安装其他非主要 PCMCIA 分享套件程序所包含的客户端驱动程序, 将它们解开到 PCMCIA 原始程序树的顶层,再依正常的建造指令,即可将这 增加的驱动程序编译及安装起来。

执行 ``make config'' 会列出一些建构选项,请检查您的系统并比对 这些选项是否符合安装 PCMCIA 支持的条件。请小心检查此命令的输出信息 ,尤其哪边有问题时。

如果您想编译个 PCMCIA 套件给其他机器使用,在建构手稿执行到出现指定 目标目录时请指定个替代的目录,它应该是个绝对路径,所有的 PCMCIA 工 具将被安装在这目录的相对位置里。然后,您就可以 tar 这个目录起 来,再把它拷贝到其他机器上,解压缩到相对目录上后再安装它们到适当的 地方。

如果您想编译个 PCMCIA 套件给其他机器使用,在建构手稿执行到要求您指 定目标目录时请指定个替代的目录, 它应该是个绝对路径,所有的 PCMCIA 工具将被安装在这目录的相对位置里。然后,您就可以 tar 这个目录 起来,再把它拷贝到其他机器上,解压缩到相对目录上后再安装它们到适当 的地方。

如果您在其他电脑上做交叉编译,您可以指定替代档名给编译器及连结器。 这对混合著 a.out 及 ELF 系统时很有助益。此手稿会要求输入做为除错时 使用的编译旗标。

某些支持公用程序 (cardctlcardinfo) 可以在安全或可信 的形式下编译。在安全形式下可以防止非 root 的使用者更改卡片的建构。 可信的形式下允许一般使用者执行暂停、继续、重置卡片的命令及改变目前 的建构。建构手稿会问你要将公用程序编译成安全或可信的形式,内定为安 全形式。

有些核心程序建构选项会影响到 PCMCIA 的工具。建构手稿(一般状况下) 会在执行核心程序时推断出这些影响。另外,如果您是编译来安装到其他机 器上的,它能从核心原始程序树里读到这些建构,或是互动地设定每个选项 。

执行 ``make all'' 后,接著 ``make install'' 将建立并安装 核心程序模块及公用程序。 核心模块会被安装在 /lib/modules/< 版本 >/pcmcia 内。 cardmgrcardctl 两程序被安 装在 /sbin 目录内。 如果 cardinfo 有被建立的话,它会 被安装在 /usr/bin/X11 里。

建构档会被安装在 /etc/pcmcia 目录内。如果您安装在一个旧版 本之上,您的旧版建构手稿会被备份起来不会被盖掉,被保存下来的文档名 称会被加个 *.~1~*.~2~ 之类的档名。

如果您不知道您的 PCMCIA 控制蕊片是什么厂牌的, 您可以使用 cardmgr/ 目录下的 probe 公用程序来探测它。目前最主要 的蕊片有:Databook TCIC-2 蕊片及 Intel i82365SL 兼容蕊片。

在少数情况下,probe 命令将无法自动地判断您的控制器之类别。 如 果您有个 Halikan NBD 486 系统, 它有个放在不同地方的 TCIC-2 控制器 : 此时您就需要修改 rc.pcmcia 来载入 tcic 模块, 并且将 PCIC_OPTS 参数设定成 ``tcic_base=0x02c0''。

有些使用 Cirrus 控制器的系统, 包括 NEC Versa M 系统的 BIOS 会在系 统启动时将控制器置于一个特别的悬置状态下。在这类系统上,probe 命令并无法找到任何已知的 PCMCIA 控制器。 如果发生这种事, 请修改 rc.pcmciaPCIC 设为 i82365PCIC_OPTS 为 ``wakeup=1''。

2.3 安装完后(使用BSD 启动手稿的系统)

有些 Linux 供应商,包括 Slackware,使用 BSD 的安排方式做为系统启动 手稿的方排。 如果有 /etc/rc.d/rc.M 这个档的系统就属这类型 的。安装在 /etc/rc.d 内的 rc.pcmcia 手稿会控制启动和 关闭 PCMCIA 系统。 在 ``make install'' 时会用 probe 命令 来决定您的控制器种类并适当修改 rc.pcmcia 的内容。您可在系统启 动档 /etc/rc.d/rc.M 内加上一行如下面的指令来执行 PCMCIA 启动手稿。

/etc/rc.d/rc.pcmcia start

将这行插排在哪行前面都可以,只要 PCMCIA 驱动程序在 syslogd 后 启动即可。

2.4 安装完后(使用System V 启动手稿的系统)

2.5 安装完后(使用 System V 起始手稿的系统)

Red Hat、 Caldera 及 Debian 等供应商的 Linux 使用 System V 型的安排系统启动 文档。 如果有个 /etc/init.d/etc/rc.d/init.d 目录的系统就是这类型。 rc.pcmcia 手稿会被安装到 /etc/rc.d/init.d/pcmcia 或是 /etc/init.d/pcmcia 下。它会自动启动 PCMCIA 功能,不必去修改任何的启动手稿了。

如果 /etc/sysconfig 目录在系统内, 那么有另一个建构档 /etc/sysconfig/pcmcia 会被建立起来做为启动选项。 如果您需 要更改任何的模块选项 (如 PCIC=PCIC_OPTS= 设定 ), 只 需编辑这个建构档而不必修改真正的 PCMCIA 启动手稿。此文档也不会被往 后的安装而覆盖掉。

有些以前的版本使用 /etc/sysconfig/pcmcia-scripts 目录而不 是现在的 /etc/pcmcia 目录。现在所有的系统的版本都已或将改 用 /etc/pcmcia 目录了,。

2.6 插槽驱动程序选项

有些 PCMCIA 控制器拥有其他的功能可能会也可能不会被特别的系统所采用 。而插槽驱动程序也没有办法侦测到是否这些功能被采用与否。请检查您的 插槽驱动程序的 man 说明页看看您的控制器有哪些其他的功能。

低阶的插槽驱动程序 tcici82365 有许多汇流排分时参数特 别是在采用高速处理器的系统上时需做些修改。分时发生问题的症状像卡片 辨认问题、在重负载下的闭锁、错误比率高,或是造成设备性能变差。详情 请参阅相关的 man 页会有更多的细节,在此简述如下:

所有的这些选项应修改 /etc/rc.d/rc.pcmcia来建构,例如:

# Should be either i82365 or tcic
PCIC=i82365
# Put socket driver timing parameters here
PCIC_OPTS="cmd_time=12"
# Put pcmcia_core options here
CORE_OPTS="cis_speed=500"

这里有一些特殊系统的分时设定:

2.7 系统资源设定

卡片服务系统应该自动地去避免分配到已被其他标准设备使用了的 IO 埠和插断。它也会试著侦测本身与不知名设备间的冲突,只不过还不是很完 全可靠。 如果遇到这种情形, 您需要将 /etc/pcmcia/config.opts 内的资源给排除掉。

以下是某些特定的笔记型电脑之资源设定:


Next Previous Contents