⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pcmcia-howto-4.html

📁 Linux初学者最好的老师就是howto了。相当于函数man。
💻 HTML
📖 第 1 页 / 共 3 页
字号:
<!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-5.html" REL=next>
 <LINK HREF="PCMCIA-HOWTO-3.html" REL=previous>
 <LINK HREF="PCMCIA-HOWTO.html#toc4" REL=contents>
</HEAD>
<BODY>
<A HREF="PCMCIA-HOWTO-5.html">Next</A>
<A HREF="PCMCIA-HOWTO-3.html">Previous</A>
<A HREF="PCMCIA-HOWTO.html#toc4">Contents</A>
<HR>
<H2><A NAME="s4">4. 使用方法以及特色</A></H2>

<H2><A NAME="ss4.1">4.1 用来建构以及监控  PCMCIA 设备的工具</A>
</H2>

<P>如果所有的模组都被正确地载入了,在没有卡片被插入的状态下, <CODE>lsmod</CODE>
命令的输出会看起来像以列的样子。
<P>
<BLOCKQUOTE><CODE>
<PRE>
Module                  Size  Used by
ds                      5640   2 
i82365                 15452   2 
pcmcia_core            30012   3  [ds i82365]
</PRE>
</CODE></BLOCKQUOTE>
<P>系统日志也应该包含插槽驱动程式对於哪些主控制器被发现了、有几个插槽
被侦测到了的输出。
<P>
<H3>cardmgr建构精灵</H3>

<P><CODE>cardmgr</CODE> 精灵负责监控 PCMCIA 插槽,有需要时载入
其他的驱动程式,并且执行使用者阶层的手稿来反应卡片的插入与移出。它
会把它的动作记录在系统日志内并用哔声来回应卡片状态的改变。哔声的音
调表示建构步骤是成功还是失败。两个高音声响表示步片已被成功地辨视与
建构了。一高音一低音声响表示卡片被辨视,但因某些原因无法被建构。一
低音哔声表示卡片无法被辨视。
<P><CODE>Cardmgr</CODE> 会把每一个插槽的设备资讯记录在 <CODE>/var/run/stab</CODE>
□。以下是 <CODE>/var/run/stab</CODE> 的列表例子:
<P>
<BLOCKQUOTE><CODE>
<PRE>
Socket 0: Adaptec APA-1460 SlimSCSI
0       scsi    aha152x_cs      0       sda     8       0
0       scsi    aha152x_cs      1       scd0    11      0
Socket 1: Serial or Modem Card
1       serial  serial_cs       0       ttyS1   5       65
</PRE>
</CODE></BLOCKQUOTE>
<P>在这几行所描述的设备中,第一个栏位表示插槽、第二为设备类别、第三为
驱动程式名称、第四被用来指定在同一驱动程式下使用的每个设备取号码、
第五个是设备名称、最後两个栏位是这个设备的主要及次要号码。(如果可
找到的话)
<P><CODE>cardmgr</CODE> 精灵依据被存在 <CODE>/etc/pcmcia/config</CODE> 内的已知之
卡片资料库来建构这些卡片。这个档案描述了许多个别的驱动程式,以及如
何辨视许多的卡片,还有哪个驱动程式属於哪个卡片的。这个档案的格式在
<CODE>pcmcia(5)</CODE> 的 man 页□有详细的资料。
<P>
<H3>cardctl 及 cardinfo 公用程式 </H3>

<P>
<P><CODE>cardctl</CODE> 命令可以用来检查插槽的状态, 或看它们是如何被建构的。
它也可以被用来警示一个卡片的建构状态。   这儿有个    ``<CODE>cardctl
config</CODE>'' 命令的输出例子:
<P>
<BLOCKQUOTE><CODE>
<PRE>
Socket 0:
Socket 1:
  Vcc = 5.0, Vpp1 = 0.0, Vpp2 = 0.0
  Card type is memory and I/O
  IRQ 3 is dynamic shared, level mode, enabled
  Speaker output is enabled
  Function 0:
    Config register base = 0x0800
      Option = 0x63, status = 0x08
    I/O window 1: 0x0280 to 0x02bf, auto sized
    I/O window 2: 0x02f8 to 0x02ff, 8 bit
</PRE>
</CODE></BLOCKQUOTE>
<P>``<CODE>cardctl suspend</CODE>'' 和 ``<CODE>cardctl resume</CODE>'' 两个命令可以用
来在不需卸下它的相关驱动程式的状况下关闭卡片。``<CODE>cardctl
reset</CODE>''  命令会重新设定及建构卡片。  ``<CODE>cardctl  insert</CODE>''  和
``<CODE>cardctl  eject</CODE>'' 摸拟当一个实体的卡片插入或抽出时所做的动作
,这包含载入或卸下驱动程式以及建构或关闭设备。
<P>如果您正执行 X, <CODE>cardinfo</CODE> 公用程式会产生一个图
示来显示所有的   PCMCIA   插槽的现况,  内容和执行   ``<CODE>cardctl
config</CODE>'' 类似。它还提供其他 <CODE>cardctl</CODE> 功能的图形化功能。
<P>
<H3>插入与抽出卡片</H3>

<P>在理论上,你可以在任何时间插入或移出 PCMCIA 卡片。然而,把正在被其
他程式使用中的卡片移出来并不是个好主意。在核心 1.1.77 版以前的系统
常会在串列/数据机卡片被移出时造成当机,但现在已有修正方法了。
<P>
<H3>卡片服务程式与进阶能源管理</H3>

<P>卡片服务程式可以编译成支援   APM   (  进阶能源管理)  ,  如果你已安装了这个套件到你的系统内的话。  APM  在核心
1.3.46     (含)以後就被整合了。    现在这套件被    Rick    Faith
(faith@cs.unc.edu)      所维护,     APM      工具可以由      
<A HREF="ftp://ftp.cs.unc.edu/pub/users/faith/linux">ftp://ftp.cs.unc.edu/pub/users/faith/linux</A> 拿到。如果你的系
统被侦测出有个相容的版本在的话,  PCMCIA  模组会被自动地建构成支援
APMM 功能。
<P>如果没有藉著  APM,  你可以在悬置你的笔记电脑前执行  ``<CODE>cardctl
suspend</CODE>'',以及在回覆後执行 ``<CODE>cardctl resume</CODE>'',才能适当地关
上或重启你的  PCMCIA  卡。 这对正在使用中的数据机并不适用, 田因序
列驱动程式并无法储存与回应数据机的运作参数。
<P>APM 在有些系统上似乎有点不太稳定。 如果你遇到 APM 和 PCMCIA 共用时
有任何问题,请您在提出程式小虫报告前先试著把问题简化。
<P>有些驱动程式, 比如说 PCMCIA SCSI 驱动程式,无法从悬置/重新动作周
期下回覆过来。 在使用  PCMCIA  SCSI  卡时, 在悬置系统前先执行
``<CODE>cardctl eject</CODE>''。
<P>
<H3>关闭 PCMCIA 系统</H3>

<P>要卸下整个的 PCMCIA 套件, invoke <CODE>rc.pcmcia</CODE> with:
<P>
<BLOCKQUOTE><CODE>
<PRE>
/etc/rc.d/rc.pcmcia stop
</PRE>
</CODE></BLOCKQUOTE>
<P>这个手稿会花几秒钟来执行,给全部的客户自订驱动程式来完美地关闭
。如果有个 PCMCIA 设备正被使用中,这样关可能不会很完整地关闭,有些
核心模组可能不会被卸下。       要防止发生这种状况,       请在执行
<CODE>rc.pcmcia</CODE>  之前使用 ``<CODE>cardctl eject</CODE>'' 来关闭所有的插槽。
<CODE>cardctl</CODE> 命令的离开状态会显示如果有任何的插槽不能被关闭的。
<P>
<H2><A NAME="ss4.2">4.2 PCMCIA建构手稿的概要</A>
</H2>

<P>每一个 PCMCIA 设备都会有个相对应的 `` 类别 '' 来描述它应该如何被建
构与管理的。这些类别与设备驱动程式都被组织在
<CODE>/etc/pcmcia/config</CODE> 内。目前共有五种输出输入设备的类别 (网
路、 SCSI、 cdrom、硬碟以及串列 ) 以及二种记忆体设备类别 (记忆体与
FTL)。在每一个类别中,都有二个手稿放在 <CODE>/etc/pcmcia/config</CODE>
内:一个主要建构手稿 (例如,  <CODE>/etc/pcmcia/scsi</CODE> 是 SCSI 设
备的 ),以及一个选项手稿 (例如, <CODE>/etc/pcmcia/scsi.opts</CODE>)。
主手稿在卡片被插入时会被启用来建构该设备,当卡片被抽出时关掉该设备
。对於支援多种设备的卡片,针对各别不同的设备的手稿都会被启用。
<P>这 config 手稿会从 <CODE>/var/run/stab</CODE> □解出一些有关於设备上的
资料开始。 每一个手稿会构□一个 `` 设备位址 '',它是独一无二的位址
用来描述该设备在 <CODE>ADDRESS</CODE> shell 变数内被要求被建构的方式。它会
被传递到 <CODE>*.opts</CODE> 手稿上, 该手稿再回应有关於在这位址上的设备应
该要怎样地建构才可以的资讯。 有些设备, 它的设备位址就是插槽号码。
还有其他的设备,它会包含另外的有用资讯可以用来决定如何来建构该设备
。例如,网路设备会传递他们的硬碟乙太网路位址做为设备位址的一部份,
来让 <CODE>network.opts</CODE>  手稿能够使用这项资讯来从许多不同的建构中做
正确的选择。
<P>所有的设备位址的首要部份是目前的 PCMCIA ``scheme''。这个参数是被用
在只有一个外部使用者指定变数时用来对设备建构之多种设定的。对於它的
应用, 例如我们可以有个 ``home'' scheme 以及一个 ``work'' scheme,
它们包括了不同的网路建构参数的组合。   目前的   scheme    可以使用
``<CODE>cardctl scheme</CODE>'' 命令来做选择。如果没有 scheme 被指定的话就
以内定值来设定。
<P>一般原则上,当要建构 Linux 在笔记型电脑上时,PCMCIA 的设备只能被经
由  PCMCIA  设备手稿来建构。  请不以试著以建构固定设备的方式来建构
PCMCIA 设备。然而,有些 Linux 供应版商提供已接在他们自已的设备建构
工具上的 PCMCIA 套件。在这种情况下,以下的几个主题可能无法使用,而
供应版商应该会有他们自己的这类文件。
<P>
<H2><A NAME="ss4.3">4.3 PCMCIA 网路卡</A>
</H2>

<P>Linux 的乙太型网路卡介面通常被称做 <CODE>eth0</CODE>、<CODE>eth1</CODE> 等等。环形
卡亦同样地被看待。  然而它们被称做   <CODE>tr0</CODE>、  <CODE>tr1</CODE>   等等。
<CODE>ifconfig</CODE> 命令是被用来观看及修改网路介面状态的。Linux 的另一特
点是网路介面并不会像其他设备一样地被看成是一个在  <CODE>/dev</CODE> □
头的档案。所以如果您在 /dev 内找不到它们时请不要觉得惊讶。
<P>当一个 PCMCIA 乙太网路卡被侦测到时,它会被指定为第一个可用的介面卡
名字,     通常为     <CODE>eth0</CODE>。     <CODE>Cardmgr</CODE>      命令会执行
<CODE>/etc/pcmcia/network</CODE> 手稿来建构它的介面。
<P>请勿将您的 PCMCIA 乙太网路卡建构在 <CODE>/etc/rc.d/rc.inet1</CODE>  内
,因为当这个手稿被执行时也许卡片并不在插槽□。 在 <CODE>rc.inet1</CODE> 内
除了回归的项目之外,    其它的命令列请将他们注解掉。    而另外修改
<CODE>/etc/pcmcia/network.opts</CODE>         来配合您的本地网路设定。
<CODE>network</CODE> 和 <CODE>network.opts</CODE> 手稿只有在您的乙太网路卡存在时才
会被执行。    如果您的系统有自动网路建构程式,    它也许是也许不是
PCMCIA-aware。 请从您的 Linux 供应版本的文件中查看看是否 PCMCIA 网
路设备是否需要使用自动化工具来建构或只需编辑  <CODE>network.opts</CODE> 即
可。
<P>传到 <CODE>network.opts</CODE>  的设备位址中包含了四个以逗号来分开的栏位:
scheme、插槽号码、设备提议及卡片硬体的乙太网路位址。设备提议是用来
给有许多网路介面的卡片取号码之用,通常为 0。如果您有许多不同使用目
地的卡片时,另一按照插槽位置而建构的选项应该被设定,如同在:
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,0,*,*)
    # definitions for network card in socket 0
    ;;
*,1,*,*)
    # definitions for network card in socket 1
    ;;
esac
</PRE>
</CODE></BLOCKQUOTE>
<P>或是,它们可能被以自己的硬体位址被建构,如下:
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,*,*,00:80:C8:76:00:B1)
    # definitions for a D-Link card
    ;;
*,*,*,08:00:5A:44:80:01)
    # definitions for an IBM card
esac
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>网路设备参数</H3>

<P> 以下的参数可在 <CODE>network.opts</CODE>内被使用:
<P>
<DL>
<DT><B><CODE>IF_PORT</CODE></B><DD><P>指定乙太网路收发器类型,  这是针对那些无法自动侦测的卡使用。  请看
``<CODE>man ifport</CODE>'' 内有收发器名称。
<DT><B><CODE>BOOTP</CODE></B><DD><P>布林  (y/n)  设定: 表示是否主机的  IP  位址和分路资讯是否可以经由
BOOTP 协定来获取。
<DT><B><CODE>IPADDR</CODE></B><DD><P>指定IP位址。
<DT><B><CODE>NETMASK</CODE>, <CODE>BROADCAST</CODE>, <CODE>NETWORK</CODE></B><DD><P>基本网路参数: 请参阅 networking HOWTO
<DT><B><CODE>GATEWAY</CODE></B><DD><P>给主机的子网路使用的通讯闸 IP 位址。只要是在这个子网路以外的封包都
会被转到这个闸道。
<DT><B><CODE>DOMAIN</CODE></B><DD><P>给主机的网路 domain name,被用来建立 <CODE>/etc/resolv.conf</CODE>。
<DT><B><CODE>DNS_1</CODE>, <CODE>DNS_2</CODE>, <CODE>DNS_3</CODE></B><DD><P>主机名称或是    IP    位址给这个介面的     nameservers,    被加到
<CODE>/etc/resolv.conf</CODE>内。
<DT><B><CODE>MOUNTS</CODE></B><DD><P>A
给这个介面使用来做  NFS 挂入点的列表。
<DT><B><CODE>IPX_FRAME</CODE>, <CODE>IPX_NETNUM</CODE></B><DD><P>对 IPX 网路: frame  type  及网路号码将被传输到  <CODE>ipx_interface</CODE>
命令上。
</DL>
<P>例如:
<P>
<BLOCKQUOTE><CODE>
<PRE>
case "$ADDRESS" in
*,*,*,*)
    IF_PORT="10base2"
    BOOTP="n"
    IPADDR="10.0.0.1"
    NETMASK="255.255.255.0"
    NETWORK="10.0.0.0"
    BROADCAST="10.0.0.255"
    GATEWAY="10.0.0.1"
    DOMAIN="domain.org"
    DNS_1="dns1.domain.org"
    ;;
esac
</PRE>
</CODE></BLOCKQUOTE>
<P>若想自动挂上或卸下网路档案系统,首先将档案系统加到 <CODE>/etc/fstab</CODE>
内,在挂上选项上加上 <CODE>noauto</CODE>。 在 <CODE>network.opts</CODE> 内
使用  <CODE>MOUNTS</CODE>   变数列明档案系统的挂入点。  这特别是在使用
<CODE>cardctl</CODE> 或 <CODE>cardinfo</CODE> 命令来关闭当网路档案系统是用这个方法
建构而挂上的网路卡时。如果在没预警下网路卡被移出时,是无法完全地卸
下网路档案系统的。
<P>除了一般的网路建构参数之外,<CODE>network.opts</CODE> 手稿可用来在介面已经
被建构起後或被关闭後做另外的动作时使用。 如果 <CODE>network.opts</CODE> 定
义了一个叫 <CODE>start_fn</CODE> 的命令层功能呼叫, 当介面被建构後它会被网
路手稿所启用,而介面名称将会被传送到这个功能函数做为第一个参数(也
只有这个)。相同地,如果 <CODE>stop_fn</CODE> 被定义了,那麽它会在关闭一个
介面前被启用。
<P>收发器类型可以用 <CODE>IF_PORT</CODE> 来设定。它可以是 PCMCIA 之前版本的数
值表示或是识别收发器的关键字。所有的网路驱动程式尽可能将它设定为自
动侦测(如果可能的话)介面或是 10baseT 的。 <CODE>ifport</CODE> 命令可用来
检查或设定目前的收发器类型,例如:
<P>
<BLOCKQUOTE><CODE>
<PRE>
# ifport eth0 10base2
# 
# ifport eth0
eth0    2 (10base2)
</PRE>
</CODE></BLOCKQUOTE>
<P>目前的 3c589 驱动程式版本会自动侦测网路的连结, 但还无法完全发挥它

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -