Next Previous Contents

2. 編譯與安裝

2.1 準備工作與核心設定

在開始前, 您應該想想是否需要自己來編譯 PCMCIA 套件。 因為大部份的 Linux 供應商版本已含有已編譯過的 PCMCIA 驅動程式套件。一般上來說, 如果您需要最新的驅動程式或您更動的 Linux 供應商版本內的核心和您原 本的 PCMCIA 驅動程式無法相容時才會需要自己動手做。 雖然編譯 PCMCIA 套件在技術上並不難,但還是需要您對 Linux 已有一定的熟悉的。

下列的東西必須在您開始安裝PCMCIA程式之前先行安裝妥當:

目前的驅動程式套件事實上可在核心版本 1.2.8 開始的核心版本上正常工 作。而用舊一點的核心版本就背道而馳了些,最好不要這樣。

您還需要完整的 Linux 原始程式樹, 不是只有最新版的核心映像檔就可用 來編譯 PCMCIA 套件的。 PCMCIA 模組含有一些對核心原始程式檔案的參考 指令, 也許您會想做個不含那些不必要的驅動程式的核心, 但是安裝 PCMCIA 並不需要您這麼做。

目前穩定的的核心程式的原始檔及修補檔可以在 ftp://sunsite.unc.edu/pub/Linux/kernel/v2.0ftp://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 分享套件程式所包含的客戶端驅動程式, 將它們解開到 PCMCIA 原始程式樹的頂層,再依正常的建造指令,即可將這 增加的驅動程式編譯及安裝起來。

執行 ``make config'' 會列出一些建構選項,請檢查您的系統並比對 這些選項是否符合安裝 PCMCIA 支援的條件。請小心檢查此命令的輸出訊息 ,尤其哪邊有問題時。

如果您想編譯個 PCMCIA 套件給其他機器使用,在建構手稿執行到出現指定 目標目錄時請指定個替代的目錄,它應該是個絕對路徑,所有的 PCMCIA 工 具將被安裝在這目錄的相對位置裏。然後,您就可以 tar 這個目錄起 來,再把它拷貝到其他機器上,解壓縮到相對目錄上後再安裝它們到適當的 地方。

如果您想編譯個 PCMCIA 套件給其他機器使用,在建構手稿執行到要求您指 定目標目錄時請指定個替代的目錄, 它應該是個絕對路徑,所有的 PCMCIA 工具將被安裝在這目錄的相對位置裏。然後,您就可以 tar 這個目錄 起來,再把它拷貝到其他機器上,解壓縮到相對目錄上後再安裝它們到適當 的地方。

如果您在其他電腦上做交叉編譯,您可以指定替代檔名給編譯器及連結器。 這對混合著 a.out 及 ELF 系統時很有助益。此手稿會要求輸入做為除錯時 使用的編譯旗標。

某些支援公用程式 (cardctlcardinfo) 可以在安全或可信 的形式下編譯。在安全形式下可以防止非 root 的使用者更改卡片的建構。 可信的形式下允許一般使用者執行暫停、繼續、重置卡片的命令及改變目前 的建構。建構手稿會問你要將公用程式編譯成安全或可信的形式,內定為安 全形式。

有些核心程式建構選項會影響到 PCMCIA 的工具。建構手稿(一般狀況下) 會在執行核心程式時推斷出這些影響。另外,如果您是編譯來安裝到其他機 器上的,它能從核心原始程式樹裏讀到這些建構,或是互動地設定每個選項 。

執行 ``make all'' 後,接著 ``make install'' 將建立並安裝 核心程式模組及公用程式。 核心模組會被安裝在 /lib/modules/< 版本 >/pcmcia 內。 cardmgrcardctl 兩程式被安 裝在 /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.pcmciaPCIC 設為 i82365PCIC_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 說明頁看看您的控制器有哪些其他的功能。

低階的插槽驅動程式 tcici82365 有許多匯流排分時參數特 別是在採用高速處理器的系統上時需做些修改。分時發生問題的症狀像卡片 辨認問題、在重負載下的閉鎖、錯誤比率高,或是造成設備性能變差。詳情 請參閱相關的 man 頁會有更多的細節,在此簡述如下:

所有的這些選項應修改 /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"

這裏有一些特殊系統的分時設定:

2.7 系統資源設定

卡片服務系統應該自動地去避免分配到已被其他標準設備使用了的 IO 埠和插斷。它也會試著偵測本身與不知名設備間的衝突,只不過還不是很完 全可靠。 如果遇到這種情形, 您需要將 /etc/pcmcia/config.opts 內的資源給排除掉。

以下是某些特定的筆記型電腦之資源設定:


Next Previous Contents