📄 pcmcia-howto-2.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312">
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.7">
<TITLE>Linux PCMCIA HOWTO 中文版: 编译与安装</TITLE>
<LINK HREF="PCMCIA-HOWTO-3.html" REL=next>
<LINK HREF="PCMCIA-HOWTO-1.html" REL=previous>
<LINK HREF="PCMCIA-HOWTO.html#toc2" REL=contents>
</HEAD>
<BODY>
<A HREF="PCMCIA-HOWTO-3.html">Next</A>
<A HREF="PCMCIA-HOWTO-1.html">Previous</A>
<A HREF="PCMCIA-HOWTO.html#toc2">Contents</A>
<HR>
<H2><A NAME="s2">2. 编译与安装</A></H2>
<H2><A NAME="prereq"></A> <A NAME="ss2.1">2.1 准备工作与核心设定</A>
</H2>
<P>在开始前, 您应该想想是否需要自己来编译 PCMCIA 套件。 因为大部份的
Linux 供应商版本已含有已编译过的 PCMCIA 驱动程式套件。一般上来说,
如果您需要最新的驱动程式或您更动的 Linux 供应商版本内的核心和您原
本的 PCMCIA 驱动程式无法相容时才会需要自己动手做。 虽然编译 PCMCIA
套件在技术上并不难,但还是需要您对 Linux 已有一定的熟悉的。
<P>下列的东西必须在您开始安装PCMCIA程式之前先行安装妥当:
<UL>
<LI>一个版本 2.0.* 或 2.1.* 系列的核心原始程式树。</LI>
<LI> 一套合适的模组公用程式。</LI>
<LI> (选择性 ) ``XForms'' X11 使用者界面工具组</LI>
</UL>
<P>目前的驱动程式套件事实上可在核心版本 1.2.8 开始的核心版本上正常工
作。而用旧一点的核心版本就背道而驰了些,最好不要这样。
<P>您还需要完整的 Linux 原始程式树, 不是只有最新版的核心映像档就可用
来编译 PCMCIA 套件的。 PCMCIA 模组含有一些对核心原始程式档案的参考
指令, 也许您会想做个不含那些不必要的驱动程式的核心, 但是安装
PCMCIA 并不需要您这麽做。
<P>目前稳定的的核心程式的原始档及修补档可以在
<A HREF="ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0">ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0</A>
或
<A HREF="ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0">ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0</A>
内找到。 发展中的核心程式可在 <CODE>v2.1</CODE> 目录内找到,目前的模组公用
程式也可在同样的地方找到。
<P>在核心 2.0 及 2.1 版所用的 Linux 原始程式树内的 <CODE>Documentation/Changes</CODE>
档案中描述了核心程式所需要的各种类别的系统元件。您可检视它并核对您
的系统是否为最新版本,尤其当您已更新了核心程式。 如果您使用 2.1 版
核心,请确认您用了正确的程式库和模组工具的组合。
<P>当您建构核心时,如果您计画要用 PCMCIA 网路卡,您应该打开网路支援并
关上正常的 Linux 网路卡驱动程式, 这包括口袋型可携式型介面卡。
PCMCIA 网路卡驱动程式都设计成可载入式模组, 所以将驱动程式编译到核
心程式内只会浪费空间而已。
<P>如果您要使用 SLIP、PPP 或 PLIP,可在建立核心时将这些功能打开,或者
使用这些功能的可载入模组版本。 但是在核心 1.2.X 版本下建构作业时有
小缺撼,就是不能为载入式模组设定建构选项 (例如 SLIP 压缩 ),所以如
果您需要这个功能,只好将 SLIP 连结到核心程心□了。
<P>为了要使用 PCMCIA 拓□链网路卡, 您的核心程式应该将 ``Token Ring
driver support'' (<CODE>CONFIG_TR</CODE>) 这项目开启,并将 <CODE>CONFIG_IBMTR</CODE>
这项关闭。
<P>如果您要使用 PCMCIA IDE 卡,针对核心 1.3.72 至 2.1.7 版, 核心建构
时应该要将 <CODE>CONFIG_BLK_DEV_IDE_PCMCIA</CODE> 功能打开,旧版的核心并不
支援可移式 IDE 设备,而较新的核心就不需这麽特别设定了。
<P>如果您要使用 PCMCIA SCSI 卡, 在建构核心时应将 <CODE>CONFIG_SCSI</CODE> 功
能打开。 并且,将您要使用的 SCSI 设备项目之驱动程式打开 (SCSI 磁碟
机、磁带机、唯读光碟机等等 )。所有给特定介面卡的低层次驱动程式应该
要关掉,因为它们只会占用空间而已。
<P>如果您想把给 PCMCIA 设备使用的驱动程式模组化,请修改 <CODE>/etc/pcmcia/config</CODE>
来指定哪些模组在哪种卡片使用下需被载入。例如,如果串列埠驱动程式被
模组化了,那麽串列埠设备的定义应该如下:
<P>
<BLOCKQUOTE><CODE>
<PRE>
device "serial_cs"
class "serial" module "misc/serial", "serial_cs"
</PRE>
</CODE></BLOCKQUOTE>
<P>在套件□还有个 X 环境使用的卡片状态公用程式 <CODE>cardinfo</CODE>。 此程式
是奠定在一个免费供应的使用者介面工具套件 XForms 程式库。通常被附在
大部份的 Linux 供应商的产品内。 如果您想建造 <CODE>cardinfo</CODE>,您得在
建构 PCMCIA 套件前安装好 XForms 和所有的一般 X 程式头档及程式库。
<P>
<H2><A NAME="ss2.2">2.2 安装</A>
</H2>
<P>以下是安装过程的简要步骤:
<P>
<UL>
<LI>解开 pcmcia-cs-3.0.?.tar.gz 到 /usr/src目录内</LI>
<LI>在新的 <CODE>pcmcia-cs-3.0.?</CODE> 目录内执行 ``<CODE>make config</CODE>''</LI>
<LI>执行 ``<CODE>make all</CODE>'',再执行 ``<CODE>make install</CODE>''。</LI>
<LI>为您的系统在 <CODE>/etc/pcmcia</CODE> 内自订 PCMCIA 启动手稿和选择档案
。</LI>
</UL>
<P>如果您想安装其他非主要 PCMCIA 分享套件程式所包含的客户端驱动程式,
将它们解开到 PCMCIA 原始程式树的顶层,再依正常的建造指令,即可将这
增加的驱动程式编译及安装起来。
<P>执行 ``<CODE>make config</CODE>'' 会列出一些建构选项,请检查您的系统并比对
这些选项是否符合安装 PCMCIA 支援的条件。请小心检查此命令的输出讯息
,尤其哪边有问题时。
<P>如果您想编译个 PCMCIA 套件给其他机器使用,在建构手稿执行到出现指定
目标目录时请指定个替代的目录,它应该是个绝对路径,所有的 PCMCIA 工
具将被安装在这目录的相对位置□。然後,您就可以 <CODE>tar</CODE> 这个目录起
来,再把它拷贝到其他机器上,解压缩到相对目录上後再安装它们到适当的
地方。
<P>如果您想编译个 PCMCIA 套件给其他机器使用,在建构手稿执行到要求您指
定目标目录时请指定个替代的目录, 它应该是个绝对路径,所有的 PCMCIA
工具将被安装在这目录的相对位置□。然後,您就可以 <CODE>tar</CODE> 这个目录
起来,再把它拷贝到其他机器上,解压缩到相对目录上後再安装它们到适当
的地方。
<P>如果您在其他电脑上做交叉编译,您可以指定替代档名给编译器及连结器。
这对混合著 a.out 及 ELF 系统时很有助益。此手稿会要求输入做为除错时
使用的编译旗标。
<P>某些支援公用程式 (<CODE>cardctl</CODE> 和 <CODE>cardinfo</CODE>) 可以在安全或可信
的形式下编译。在安全形式下可以防止非 root 的使用者更改卡片的建构。
可信的形式下允许一般使用者执行暂停、继续、重置卡片的命令及改变目前
的建构。建构手稿会问你要将公用程式编译成安全或可信的形式,内定为安
全形式。
<P>有些核心程式建构选项会影响到 PCMCIA 的工具。建构手稿(一般状况下)
会在执行核心程式时推断出这些影响。另外,如果您是编译来安装到其他机
器上的,它能从核心原始程式树□读到这些建构,或是互动地设定每个选项
。
<P>执行 ``<CODE>make all</CODE>'' 後,接著 ``<CODE>make install</CODE>'' 将建立并安装
核心程式模组及公用程式。 核心模组会被安装在 <CODE>/lib/modules/<
版本 >/pcmcia</CODE> 内。 <CODE>cardmgr</CODE> 和 <CODE>cardctl</CODE> 两程式被安
装在 <CODE>/sbin</CODE> 目录内。 如果 <CODE>cardinfo</CODE> 有被建立的话,它会
被安装在 <CODE>/usr/bin/X11</CODE> □。
<P>建构档会被安装在 <CODE>/etc/pcmcia</CODE> 目录内。如果您安装在一个旧版
本之上,您的旧版建构手稿会被备份起来不会被盖掉,被保存下来的档案名
称会被加个 <CODE>*.~1~</CODE>、<CODE>*.~2~</CODE> 之类的档名。
<P>如果您不知道您的 PCMCIA 控制晶片是什麽厂牌的, 您可以使用
<CODE>cardmgr/</CODE> 目录下的 <CODE>probe</CODE> 公用程式来探测它。目前最主要
的晶片有:Databook TCIC-2 晶片及 Intel i82365SL 相容晶片。
<P>在少数情况下,<CODE>probe</CODE> 命令将无法自动地判断您的控制器之类别。 如
果您有个 Halikan NBD 486 系统, 它有个放在不同地方的 TCIC-2 控制器
: 此时您就需要修改 <CODE>rc.pcmcia</CODE> 来载入 <CODE>tcic</CODE> 模组, 并且将
<CODE>PCIC_OPTS</CODE> 参数设定成 ``<CODE>tcic_base=0x02c0</CODE>''。
<P>有些使用 Cirrus 控制器的系统, 包括 NEC Versa M 系统的 BIOS 会在系
统启动时将控制器置於一个特别的悬置状态下。在这类系统上,<CODE>probe</CODE>
命令并无法找到任何已知的 PCMCIA 控制器。 如果发生这种事, 请修改
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -