📄 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 Ringdriver 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 控制器。 如果发生这种事, 请修改<CODE>rc.pcmcia</CODE> 将 <CODE>PCIC</CODE> 设为 <CODE>i82365</CODE>, <CODE>PCIC_OPTS</CODE> 为``<CODE>wakeup=1</CODE>''。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -