<< Back to man.ChinaUnix.net

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