Linux 版 (精华区)

发信人: clx (楚留香), 信区: Unix
标  题: Linux PCMCIA HOWTO 中文版(03)
发信站: 紫 丁 香 (Sat Jun 27 16:52:30 1998), 转信

Linux PCMCIA HOWTO 中文版 : 编译与安装
Previous: 一般资讯及硬体要求
Next: 解决安装与建构的问题 


2. 编译与安装

2.1. 准备工作与核心设定

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

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

     一个版本 2.0.* 或 2.1.* 系列的核心原始程式树。 
     一套合适的模组公用程式。 
     (选择性 ) ``XForms'' X11 使用者界面工具组 

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

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

目前稳定的的核心程式的原始档及修补档可以在 
ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0 或
ftp://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-cs-3.0.?.tar.gz 到 /usr/src目录内 
     在新的 pcmcia-cs-3.0.? 目录内执行 ``make config'' 
     执行 ``make all'',再执行 ``make install''。 
     为您的系统在 /etc/pcmcia 内自订 PCMCIA 启动手稿和选择档案
     。 

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

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

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

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

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

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

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

执行 ``make all'' 後,接著 ``make install'' 将建立并安装 核心程
式模组及公用程式。 核心模组会被安装在 /lib/modules/< 版本
>/pcmcia 内。 cardmgr 和 cardctl 两程式被安 装在 /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.pcmcia 将 PCIC 设为 i82365, PCIC_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 说明页看看您的控制器有
哪些其他的功能。

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

     Cirrus 控制器有许多可建构的分时参数。 最重要的应该是 
     cmd_time 旗标, 它用来决定 PCMCIA 汇流排周期的长度。 速度
     快的 486 系统(如 DX4-100 )下将它从 6 (内定值 ) 加大成
     为 12 或 16 时可看到它效果。 
     Cirrus PD6729 PCI 控制器有 fast_pci 旗标,如果 PCI 汇流排
     的速 度比 25 MHz 快时应该设定它。 
     Vadem VG-468 控制器及 Databook TCIC-2 控制器内的 
     async_clock 旗标必须更改为与 PCMCIA 汇流排和主汇流排相对
     的周期速度。更改这个旗 标会使某些操作上增加等待的时间。
     然而,我好像还没听说有哪个笔记型电 脑需要这麽做的。 
     pcmcia_core 模组有个 cis_speed 参数, 它是用来更改取存卡 片
     的卡片资讯结构 Card Information Structure (CIS) 之记忆
     体速度。有 些速度快的汇流排时序的系统上,增加这个参数
     (例如,减慢卡片的存取) 可以解决卡片辨识的问题。 
     这□我们并非讨论分时的议题,但如果您的系统上有一个以上
     的 ISA-to-PCMCIA 控制器或在扩充坞上有其他的插槽时,
     i82365 模组应 该和参数设为 1 的 extra_sockets 一起被载入,
     但对於 PCI-to-PCMCIA 或 PCI-to-CardBus 桥接器者就不必这
     麽做。 

所有的这些选项应修改 /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"

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

     在 ARM Pentium-90 或 Midwest Micro Soundbook Plus 上,
     使用 ``freq_bypass=1 cmd_time=8''。 
     在 Midwest Micro Soundbook Elite,使用 ``cmd_time=12'' 。
     在 Gateway Liberty 上,试试 ``cmd_time=16''。 

2.7. 系统资源设定

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

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

     在 AMS SoundPro, 排除 irq 10. 
     在有些 AMS TravelPro 5300 models, use memory
     0xc8000-0xcffff. 
     在 BMX 486DX2-66, 排除 irq 5, irq 9. 
     在 Chicony NB5, use memory 0xda000-0xdffff. 
     在 Compaq Presario 1020, 排除 port 0x2f8-0x2ff, irq 3,
     irq 5. 
     在 HP Omnibook 4000C, 排除 port 0x300-0x30f. 
     在 Micron Millenia Transport, 排除 irq 5, irq 9. 
     在 NEC Versa M, 排除 irq 9, port 0x2e0-2ff. 
     在 NEC Versa P/75, 排除 irq 5, irq 9. 
     在 NEC Versa S, 排除 irq 9, irq 12. 
     在 NEC Versa 6000 系列, 排除 port 0x300-0x33f, irq 9,
     irq 10. 
     在 ProStar 9200, Altima Virage, 及 Acquiline Hurricane
     DX4-100, 排 除 irq 5, port 0x330-0x35f. 可以使用 memory
     0xd8000-0xdffff. 
     在 Siemens Nixdorf SIMATIC PG 720C, 使用memory
     0xc0000-0xcffff, port 0x300-0x3bf. 
     在 TI TravelMate 5000,使用 memory 0xd4000-0xdffff. 
     在 Toshiba T4900 CT, 排除 irq 5, port 0x2e0-0x2e8, port
     0x330-0x338. 
     在 Twinhead 5100, HP 4000, Sharp PC-8700 和 PC-8900, 排
     除 irq 9 ( 音效 ), irq 12. 
     在 MPC 800 系列,排除 irq 5, port 0x300-0x30f 是给
     CD-ROM 用的。 


Linux PCMCIA HOWTO 中文版 : 编译与安装
Previous: 一般资讯及硬体要求
Next: 解决安装与建构的问题 

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.244.16]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:205.529毫秒