?? pcmcia-howto.txt
字號:
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 ``cardctl suspend'' 和 ``cardctl resume'' 兩個命令可以用 來在不需卸下它 的相關驅動程式的狀況下關閉卡片。``cardctl reset'' 命令會重新設定及建構 卡片。 ``cardctl insert'' 和 ``cardctl eject'' 摸擬當一個實體的卡片插入 或抽出時所做的動作 ,這包含載入或卸下驅動程式以及建構或關閉設備。 如果您正執行 X, cardinfo 公用程式會產生一個圖 示來顯示所有的 PCMCIA 插 槽的現況, 內容和執行 ``cardctl config'' 類似。它還提供其他 cardctl 功 能的圖形化功能。 插入與抽出卡片 在理論上,你可以在任何時間插入或移出 PCMCIA 卡片。然而,把正在被其 他程 式使用中的卡片移出來并不是個好主意。在核心 1.1.77 版以前的系統 常會在串 列/數據機卡片被移出時造成當機,但現在已有修正方法了。 卡片服務程式與進階能源管理 卡片服務程式可以編譯成支援 APM ( 進階能源管理) , 如果你已安裝了這個套 件到你的系統內的話。 APM 在核心 1.3.46 (含)以後就被整合了。 現在這套 件被 Rick Faith (faith@cs.unc.edu) 所維護, APM 工具可以由 [6]ftp://ftp.cs.unc.edu/pub/users/faith/linux 拿到。如果你的系 統被偵測 出有個相容的版本在的話, PCMCIA 模組會被自動地建構成支援 APMM 功能。 如果沒有藉著 APM, 你可以在懸置你的筆記電腦前執行 ``cardctl suspend'', 以及在回覆後執行 ``cardctl resume'',才能適當地關 上或重啟你的 PCMCIA 卡。 這對正在使用中的數據機并不適用, 田因序 列驅動程式并無法儲存與回應 數據機的運作參數。 APM 在有些系統上似乎有點不太穩定。 如果你遇到 APM 和 PCMCIA 共用時 有任 何問題,請您在提出程式小蟲報告前先試著把問題簡化。 有些驅動程式, 比如說 PCMCIA SCSI 驅動程式,無法從懸置/重新動作周 期下 回覆過來。 在使用 PCMCIA SCSI 卡時, 在懸置系統前先執行 ``cardctl eject''。 關閉 PCMCIA 系統 要卸下整個的 PCMCIA 套件, invoke rc.pcmcia with: /etc/rc.d/rc.pcmcia stop 這個手稿會花幾秒鐘來執行,給全部的客戶自訂驅動程式來完美地關閉 。如果有 個 PCMCIA 設備正被使用中,這樣關可能不會很完整地關閉,有些 核心模組可能 不會被卸下。 要防止發生這種狀況, 請在執行 rc.pcmcia 之前使用 ``cardctl eject'' 來關閉所有的插槽。 cardctl 命令的離開狀態會顯示如果有 任何的插槽不能被關閉的。 4.2 PCMCIA建構手稿的概要 每一個 PCMCIA 設備都會有個相對應的 `` 類別 '' 來描述它應該如何被建 構與 管理的。這些類別與設備驅動程式都被組織在 /etc/pcmcia/config 內。目前共 有五種輸出輸入設備的類別 (網 路、 SCSI、 cdrom、硬碟以及串列 ) 以及二種 記憶體設備類別 (記憶體與 FTL)。在每一個類別中,都有二個手稿放在 /etc/pcmcia/config 內:一個主要建構手稿 (例如, /etc/pcmcia/scsi 是 SCSI 設 備的 ),以及一個選項手稿 (例如, /etc/pcmcia/scsi.opts)。 主手 稿在卡片被插入時會被啟用來建構該設備,當卡片被抽出時關掉該設備 。對於支 援多種設備的卡片,針對各別不同的設備的手稿都會被啟用。 這 config 手稿會從 /var/run/stab □解出一些有關於設備上的 資料開始。 每 一個手稿會構□一個 `` 設備位址 '',它是獨一無二的位址 用來描述該設備在 ADDRESS shell 變數內被要求被建構的方式。它會 被傳遞到 *.opts 手稿上, 該手稿再回應有關於在這位址上的設備應 該要怎樣地建構才可以的資訊。 有些 設備, 它的設備位址就是插槽號碼。 還有其他的設備,它會包含另外的有用資 訊可以用來決定如何來建構該設備 。例如,網路設備會傳遞他們的硬碟乙太網路 位址做為設備位址的一部份, 來讓 network.opts 手稿能夠使用這項資訊來從許 多不同的建構中做 正確的選擇。 所有的設備位址的首要部份是目前的 PCMCIA ``scheme''。這個參數是被用 在只 有一個外部使用者指定變數時用來對設備建構之多種設定的。對於它的 應用, 例如我們可以有個 ``home'' scheme 以及一個 ``work'' scheme, 它們包括了 不同的網路建構參數的組合。 目前的 scheme 可以使用 ``cardctl scheme'' 命 令來做選擇。如果沒有 scheme 被指定的話就 以內定值來設定。 一般原則上,當要建構 Linux 在筆記型電腦上時,PCMCIA 的設備只能被經 由 PCMCIA 設備手稿來建構。 請不以試著以建構固定設備的方式來建構 PCMCIA 設 備。然而,有些 Linux 供應版商提供已接在他們自已的設備建構 工具上的 PCMCIA 套件。在這種情況下,以下的幾個主題可能無法使用,而 供應版商應該 會有他們自己的這類文件。 4.3 PCMCIA 網路卡 Linux 的乙太型網路卡介面通常被稱做 eth0、eth1 等等。環形 卡亦同樣地被看 待。 然而它們被稱做 tr0、 tr1 等等。 ifconfig 命令是被用來觀看及修改網 路介面狀態的。Linux 的另一特 點是網路介面并不會像其他設備一樣地被看成是 一個在 /dev □ 頭的檔案。所以如果您在 /dev 內找不到它們時請不要覺得驚訝 。 當一個 PCMCIA 乙太網路卡被偵測到時,它會被指定為第一個可用的介面卡 名字 , 通常為 eth0。 Cardmgr 命令會執行 /etc/pcmcia/network 手稿來建構它的 介面。 請勿將您的 PCMCIA 乙太網路卡建構在 /etc/rc.d/rc.inet1 內 ,因為當這個手 稿被執行時也許卡片并不在插槽□。 在 rc.inet1 內 除了回歸的項目之外, 其 它的命令列請將他們注解掉。 而另外修改 /etc/pcmcia/network.opts 來配合您 的本地網路設定。 network 和 network.opts 手稿只有在您的乙太網路卡存在時 才 會被執行。 如果您的系統有自動網路建構程式, 它也許是也許不是 PCMCIA-aware。 請從您的 Linux 供應版本的文件中查看看是否 PCMCIA 網 路設 備是否需要使用自動化工具來建構或只需編輯 network.opts 即 可。 傳到 network.opts 的設備位址中包含了四個以逗號來分開的欄位: scheme、插 槽號碼、設備提議及卡片硬體的乙太網路位址。設備提議是用來 給有許多網路介 面的卡片取號碼之用,通常為 0。如果您有許多不同使用目 地的卡片時,另一按 照插槽位置而建構的選項應該被設定,如同在: case "$ADDRESS" in*,0,*,*) # definitions for network card in socket 0 ;;*,1,*,*) # definitions for network card in socket 1 ;;esac 或是,它們可能被以自己的硬體位址被建構,如下: 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 cardesac 網路設備參數 以下的參數可在 network.opts內被使用: IF_PORT 指定乙太網路收發器類型, 這是針對那些無法自動偵測的卡使用。 請看 ``man ifport'' 內有收發器名稱。 BOOTP 布林 (y/n) 設定: 表示是否主機的 IP 位址和分路資訊是否可以經由 BOOTP 協定來獲取。 IPADDR 指定IP位址。 NETMASK, BROADCAST, NETWORK 基本網路參數: 請參閱 networking HOWTO GATEWAY 給主機的子網路使用的通訊閘 IP 位址。只要是在這個子網路以外的封包 都 會被轉到這個閘道。 DOMAIN 給主機的網路 domain name,被用來建立 /etc/resolv.conf。 DNS_1, DNS_2, DNS_3 主機名稱或是 IP 位址給這個介面的 nameservers, 被加到 /etc/resolv.conf內。 MOUNTS A 給這個介面使用來做 NFS 掛入點的列表。 IPX_FRAME, IPX_NETNUM 對 IPX 網路: frame type 及網路號碼將被傳輸到 ipx_interface 命令 上。 例如: 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 若想自動掛上或卸下網路檔案系統,首先將檔案系統加到 /etc/fstab 內,在掛 上選項上加上 noauto。 在 network.opts 內 使用 MOUNTS 變數列明檔案系統的 掛入點。 這特別是在使用 cardctl 或 cardinfo 命令來關閉當網路檔案系統是 用這個方法 建構而掛上的網路卡時。如果在沒預警下網路卡被移出時,是無法完 全地卸 下網路檔案系統的。 除了一般的網路建構參數之外,network.opts 手稿可用來在介面已經 被建構起 後或被關閉後做另外的動作時使用。 如果 network.opts 定 義了一個叫 start_fn 的命令層功能呼叫, 當介面被建構後它會被網 路手稿所啟用,而介面 名稱將會被傳送到這個功能函數做為第一個參數(也 只有這個)。相同地,如果 stop_fn 被定義了,那麼它會在關閉一個 介面前被啟用。 收發器類型可以用 IF_PORT 來設定。它可以是 PCMCIA 之前版本的數 值表示或 是識別收發器的關鍵字。所有的網路驅動程式盡可能將它設定為自 動偵測(如果 可能的話)介面或是 10baseT 的。 ifport 命令可用來 檢查或設定目前的收發 器類型,例如: # ifport eth0 10base2## ifport eth0eth0 2 (10base2) 目前的 3c589 驅動程式版本會自動偵測網路的連結, 但還無法完全發揮它 的功 能。若想以自動偵測來工作,在網路卡被建構前網路線應該是已連接著 網路卡上 的。要不然,等網路接好後,您可以下列命令迫使驅動程式檢查連 結: ifconfig eth0 down up 特定卡片的評語 * 使用 IBM CCAE 和 Socket EA 卡在網路設備被建構時, 您需挑個接收器類 型 (10base2、10baseT、AUI),并確認在您的系統日志上所記錄的接收器與 您所連結的相同。 * 給 SMC、Megahertz、 Ositech 及 3Com 卡片的驅動程式應該會自動偵測連 接著的網路類型 (10base2 或 10baseT) 。 當驅動程式被載入時會設 定收 發器類型來訂定義卡片的 ``第一次猜想''。 * Farallon EtherWave 事實上是和 3Com 3c589 相同的, 但有個特殊的收發 器。 雖然 EtherWave 使用 10baseT 類的連接方式, 但它的收發器需要把 3c589 建構成 10base2 模式。 * 如果您使用 IBM CCAE、NE4100、 Thomas Conrad 或 Kingston 介面卡時遇 到問題, 請試著在 pcnet_cs 模組內的 mem_speed=# 選項 增加記憶體存取 時間。在標準的 config.opts 檔案內有個教你如何做 的□例。請試看看速
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -