Manpages

NAME

bootparam − 介 紹 Linux核 心 的 啓 動 參 數

描 敘

Linux 核 心 在 啓 動 的 時 候 可 以 接 受 指 定 的 "命 令 行 參 數 "或 "啓 動 參 數 ". 在 通 常 情 況 下 , 由 於 核 心 有 可 能 無 法 識 別 某 些 硬 件 , 或 可 能 將 某 些 硬 件 識 別 爲 不 正 確 的 配 置 , 因 此 , 這 些 參 數 可 以 被 用 來 提 供 正 確 的 硬 件 配 置 參 數 。 當 Linux核 心 被 BIOS直 接 啓 動 的 時 候 ( 比 如 說 你 的 核 心 是 從 使 用 了 "cp zImage /dev/fd0" 命 令 製 造 的 Linux 啓 動 軟 盤 來 啓 動 的 ) , 你 無 法 指 定 任 何 的 啓 動 參 數 。 因 此 , 爲 了 能 夠 指 定 啓 動 參 數 , 你 必 須 使 用 某 些 能 夠 傳 遞 啓 動 參 數 的 軟 件 , 例 如 LILO 或 Loadlin。 爲 了 使 用 很 少 的 參 數 來 改 變 的 核 心 配 置 , 可 以 使 用 rdev, 查 看 rdev( 8) 可 以 得 到 更 多 的 細 節 。

由 Werner Almesberger 開 發 的 LILO 程 序 (LInux LOader) 是 最 普 遍 的 啓 動 配 置 軟 件 。 它 能 夠 啓 動 各 種 不 同 的 系 統 核 心 , 這 些 啓 動 配 置 信 息 被 放 置 在 一 個 簡 單 明 瞭 的 文 本 文 件 中 ( 請 看 lilo( 8)lilo.conf(5).)

LILO 可 以 啓 動 象 DOS, OS/2, Linux, FreeBSD, UnixWare 這 樣 的 操 作 系 統 , 而 且 靈 活 性 也 非 常 強 。

另 外 一 個 較 爲 普 遍 的 啓 動 軟 件 是 "LoadLin"。 這 是 一 個 基 於 DOS 操 作 系 統 的 軟 件 。 該 軟 件 能 夠 從 DOS提 示 符 下 啓 動 Linux核 心 ( 使 用 啓 動 參 數 ) , 只 要 某 些 必 需 的 資 源 可 用 就 行 。 這 對 於 那 些 希 望 從 DOS 系 統 中 啓 動 Linux 的 人 來 說 是 很 不 錯 的 方 法 。

如 果 你 的 硬 件 能 夠 被 DOS 驅 動 程 序 啓 用 的 話 , LoadLin也 會 是 非 常 有 用 的 。 一 個 最 常 見 的 例 子 是 設 置 與 SoundBlaster 兼 容 的 聲 卡 。 這 些 聲 卡 通 過 使 用 DOS 驅 動 程 序 設 定 一 些 寄 存 器 就 可 以 將 它 們 設 置 成 爲 SB 兼 容 模 式 的 聲 卡 。 在 DOS下 啓 動 這 些 聲 卡 的 啓 動 程 序 , 然 後 使 用 LoadLin程 序 啓 動 Linux, 這 樣 就 可 以 避 免 由 於 重 新 啓 動 Linux系 統 而 造 成 聲 卡 被 重 新 設 置 。

參 數 列 表

核 心 參 數 行 被 解 析 成 爲 一 個 由 空 格 分 隔 的 字 符 串 列 表 ( 即 啓 動 參 數 表 ) 。 大 部 分 的 啓 動 參 數 的 格 式 就 象 下 面 這 樣

名 字 [=值 1], [值 2]……[, 值 10]

其 中 "名 字 "是 一 個 唯 一 關 鍵 字 , 被 用 來 區 分 接 受 值 ( 如 果 有 的 話 ) 那 一 部 分 核 心 。 要 注 意 的 是 10 個 值 的 限 制 是 確 實 存 在 的 , 目 前 的 程 序 代 碼 只 能 對 每 個 關 鍵 字 處 理 10 個 逗 號 分 隔 的 參 數 ( 當 然 , 在 一 些 複 雜 的 應 用 中 , 你 可 以 通 過 重 新 使 用 同 樣 的 關 鍵 字 來 傳 遞 多 於 10個 的 參 數 , 只 要 配 置 程 序 可 以 支 持 該 方 法 )

大 部 分 的 排 序 工 作 是 在 linux/init/main.c 中 進 行 的 。 首 先 , 核 心 檢 查 參 數 是 否 爲 "root="、 "nfsroot="、 "nfsaddrs="、 "ro"、 "rw"、 "debug" 和 "init"這 些 特 殊 參 數 中 的 一 種 。 這 些 參 數 的 意 義 我 們 將 在 下 面 說 明 。

然 後 , 核 心 會 搜 索 "配 置 程 序 隊 列 "( bootsetups隊 列 ) 來 查 看 指 定 的 參 數 字 符 串 ( 比 如 "foo") 是 不 是 與 某 個 配 置 指 定 設 備 或 是 核 心 的 配 置 程 序 建 立 了 關 聯 。 例 如 假 設 你 傳 遞 給 核 心 foo=3,4,5,6, 那 麼 核 心 會 搜 索 bootsetups 隊 列 看 看 "foo"是 否 已 經 註 冊 。 如 果 是 , 那 麼 核 心 將 運 行 與 "foo"關 聯 的 配 置 程 序 ( 比 如 foo_setup()) 並 且 將 參 數 3, 4, 5, 6交 給 核 心 命 令 列 。

任 何 象 "foo=bar" 這 樣 格 式 的 參 數 不 會 被 上 面 所 說 的 那 樣 , 作 爲 一 個 配 置 程 序 的 關 聯 被 接 受 , 而 是 被 解 釋 成 爲 一 個 環 境 變 量 的 設 置 。 一 個 ( 無 用 的 ? ) 例 子 就 是 使 用 "TERM=vt100" 作 爲 核 心 的 啓 動 參 數 。

任 何 既 不 被 核 心 接 受 又 不 被 解 釋 爲 環 境 變 量 的 參 數 會 被 傳 送 給 第 一 個 系 統 進 程 , 通 常 這 會 是 init程 序 。 最 常 用 的 傳 遞 給 init 進 程 的 參 數 是 "single", 它 告 訴 init使 用 單 用 戶 模 式 啓 動 計 算 機 , 並 且 不 要 執 行 任 何 的 守 護 進 程 。 查 閱 幫 助 , 看 看 你 所 裝 版 本 的 init 程 序 可 以 支 持 的 參 數 。

一 般 的 、 與 設 備 無 關 的 啓 動 參 數

’init=...’
這 個 啓 動 參 數 提 供 核 心 執 行 時 的 初 始 化 命 令 。 如 果 它 沒 有 被 設 置 , 或 者 沒 有 被 找 到 的 話 , 核 心 會 去 嘗 試 調 用 /etc/init, 然 後 是 /bin/init, 然 後 是 /sbin/init, 最 後 是 /bin/sh , 如 果 都 失 敗 了 , 就 會 提 示 一 個 異 常 信 息 。

’nfsaddrs=...’
該 啓 動 參 數 設 置 nfs( 網 絡 文 件 系 統 ) 啓 動 地 址 爲 指 定 的 字 符 串 值 。 該 啓 動 地 址 被 用 於 網 絡 啓 動 中 。

’nfsroot=...’
該 動 參 數 設 置 nfs( 網 絡 文 件 系 統 ) 根 目 錄 名 爲 指 定 字 符 串 。 如 果 該 字 符 串 不 是 以 ’/’、 ’,’或 者 一 個 數 字 開 始 的 , 則 該 字 符 串 加 上 "/tftpboot/"的 前 綴 。

’no387’
(只 有 當 CONFIG_BUGi386被 定 義 後 纔 有 效 ) 某 些 i387 協 處 理 器 在 使 用 32 位 保 護 模 式 時 會 出 現 錯 誤 。 例 如 , 一 些 早 期 的 ULSI-387芯 片 在 處 理 浮 點 運 算 時 會 出 現 死 鎖 的 情 況 。 使 用 "no387"啓 動 參 數 可 以 讓 Linux忽 略 你 的 算 術 協 處 理 器 的 存 在 。 當 然 , 這 時 你 就 必 須 將 你 的 核 心 編 譯 成 爲 支 持 數 學 仿 真 模 式 。

’no-hlt’
(只 有 當 CONFIG_BUGi386被 定 義 後 纔 有 效 ) 某 些 早 期 的 i486DX-100 的 處 理 器 芯 片 在 使 用 "halt" 時 會 出 現 問 題 , 使 用 這 個 指 令 後 它 不 會 正 常 的 返 回 到 操 作 模 式 。 使 用 "no-halt" 指 令 告 訴 Linux 在 沒 有 事 情 可 做 的 時 候 , 只 是 執 行 一 個 無 限 的 循 環 指 令 , 而 不 是 讓 CPU進 入 "halt"模 式 。 這 樣 就 可 以 令 人 們 使 用 這 些 有 缺 陷 的 芯 片 來 運 行 Linux。

’root=...’
這 個 參 數 告 訴 核 心 在 啓 動 的 時 候 使 用 哪 個 設 備 被 作 爲 根 文 件 系 統 。 其 缺 省 值 是 你 在 編 譯 核 心 的 時 候 就 所 確 定 的 根 設 備 。 如 果 你 想 要 修 改 該 值 , 比 如 說 , 將 第 二 個 軟 盤 驅 動 器 作 爲 根 設 備 , 你 可 以 使 用 "root=/dev/fd1" ( 根 設 備 也 可 以 用 rdev(8)) ; 來 設 置 。

根 設 備 能 夠 以 符 號 形 式 或 數 字 形 式 來 指 定 。 一 種 符 號 指 定 形 式 是 /dev/XXYN, 其 中 XX 代 表 設 備 類 型 ( "hd" 代 表 普 通 IDE 硬 盤 , 緊 跟 其 後 的 Y 的 範 圍 是 "a" 到 "d"; "SD" 代 表 SCSI 硬 盤 , 緊 跟 其 後 的 Y 的 範 圍 是 "a" 到 "e"; "ad" 代 表 Atari ACSI磁 盤 , 緊 跟 其 後 的 Y 的 範 圍 是 "a" 到 "e"; "ez" 代 表 Syquest EZ135 兼 容 的 使 用 並 口 的 可 移 動 硬 盤 , 緊 跟 其 後 的 Y 的 值 只 能 是 "a"; "xd" 代 表 XT 兼 容 的 磁 盤 , 緊 跟 其 後 的 Y 的 值 是 "a" 或 者 是 "b"; "fd" 代 表 軟 驅 , 而 Y 代 表 軟 驅 的 序 號 - fd0 代 表 DOS 的 "A: ", fd1代 表 DOS的 "B: ") , Y 表 示 驅 動 器 字 母 或 序 號 。 N 代 表 驅 動 器 的 分 區 號 ( 以 十 進 制 數 值 表 示 , 當 然 , 軟 驅 是 沒 有 該 信 息 的 ) 。 目 前 的 核 心 可 以 使 用 更 多 的 驅 動 設 備 , 比 如 nfs, ram, scd, mcd, cdu535, aztcd, cm206cd, gscd, sbpcd, sonycd, bpcd, 其 中 大 部 分 都 是 CD-ROM 設 備 。 ( nfs 指 示 網 絡 啓 動 的 位 置 ; ram 表 示 一 個 ram 虛 擬 磁 盤 ( ram 表 示 可 讀 寫 儲 存 器 ) 。

需 要 注 意 的 是 以 上 這 些 指 定 對 你 文 件 系 統 上 的 設 備 名 稱 並 沒 有 做 任 何 實 質 改 變 , "/dev/" 部 分 的 描 述 只 是 出 於 傳 統 習 慣 。

你 也 可 以 通 過 使 用 數 字 形 式 的 主 /次 設 備 號 指 定 根 設 備 , 但 這 是 很 笨 拙 和 不 方 便 的 方 法 。 ( 例 如 , /dev/sda3 的 主 設 備 號 是 8, 次 設 備 號 是 3, 所 以 你 也 可 以 使 用 "root=0x0803" 來 指 定 根 設 備 。 )

’ro’和 ’rw’
"ro" 選 項 告 訴 核 心 使 用 "只 讀 "方 式 裝 配 文 件 系 統 。 這 樣 可 以 讓 "文 件 一 致 性 檢 查 "程 序 ( fsck程 序 , 用 來 檢 查 磁 盤 的 工 具 , 類 似 DOS 的 scandisk 程 序 ) 能 夠 在 一 種 所 謂 "靜 止 " ( 也 就 是 說 沒 有 任 何 對 文 件 系 統 的 寫 操 作 ) 的 文 件 系 統 中 執 行 。 需 要 進 行 寫 操 作 的 進 程 必 須 等 到 該 文 件 系 統 使 用 "讀 /寫 "方 式 重 新 裝 配 以 後 才 能 進 行 , 例 如 , 使 用 了 "mount -w -n -o remount /"命 令 。 ( 請 查 看 mount(8)。 )

"rw" 選 項 告 訴 核 心 使 用 "可 讀 寫 "方 式 裝 配 文 件 系 統 。 這 是 缺 省 值 。

只 讀 方 式 和 可 讀 寫 方 式 的 選 擇 可 以 使 用 rdev(8). 來 設 定 。

’reserve=...’
該 參 數 用 來 設 定 保 留 區 域 , 使 得 該 區 域 的 I/O 端 口 不 會 被 檢 測 。 該 命 令 的 格 式 是

reserve=iobase,extent[,iobase,extent]...

在 某 些 情 況 下 你 的 機 器 也 許 必 須 避 免 設 備 驅 動 程 序 檢 測 ( 自 動 檢 測 ) 某 些 指 定 區 域 的 設 備 。 這 些 情 況 有 可 能 是 因 爲 由 於 檢 測 會 導 致 硬 件 錯 誤 , 或 者 硬 件 會 被 錯 誤 地 識 別 , 又 或 者 你 只 是 不 想 核 心 對 該 硬 件 進 行 初 始 化 。

reserve(保 留 )啓 動 參 數 指 定 一 個 不 要 檢 測 的 I/O 端 口 保 留 區 。 設 備 驅 動 程 序 不 會 檢 測 保 留 區 域 的 I/O 端 口 , 除 非 其 他 的 啓 動 參 數 明 確 的 指 定 需 要 去 檢 測 。

例 如 , 命 令 行

reserve=0x300,32 blah=0x300

表 示 設 置 保 留 I/O 區 域 0x300 到 0x31f( 共 32個 端 口 ) 不 會 被 ’blah’ 程 序 以 外 的 驅 動 程 序 所 檢 測 。

’mem=...’
PC 規 範 定 義 的 返 回 內 存 數 的 BIOS 調 用 最 大 可 以 返 回 64MB 內 存 。 Linux 使 用 這 個 BIOS 調 用 檢 測 機 器 安 裝 了 多 少 內 存 。 如 果 你 擁 有 超 過 64MB 的 內 存 , 就 可 以 使 用 這 個 參 數 告 訴 Linux 你 的 內 存 數 。 該 值 可 以 是 10 進 制 的 或 者 是 16 進 制 的 ( 加 上 0x 的 前 綴 ) , 後 綴 也 可 以 加 上 "k" ( 乘 以 1024) 或 "M" ( 乘 以 1048576) 。 下 面 是 Linux 初 始 人 Linus 對 "mem=" 參 數 使 用 的 聲 明 : "核 心 能 夠 接 受 任 何 你 給 予 的 ’mem=xx’ 參 數 , 但 是 如 果 你 欺 騙 它 的 話 , 它 遲 早 會 讓 你 死 的 很 難 看 。 參 數 用 來 指 定 最 高 位 的 RAM 地 址 , 所 以 ’mem=0x1000000’ 表 示 你 擁 有 16MB 的 內 存 。 而 對 於 96MB內 存 的 機 器 來 說 你 應 該 設 置 爲 ’mem=0x6000000’。

注 意 注 意 注 意 : 有 些 機 器 可 能 會 將 內 存 高 端 設 置 爲 BIOS 所 使 用 , 所 以 你 可 能 將 不 能 全 部 擁 有 96MB 地 址 空 間 。 反 之 , 有 些 芯 片 可 以 將 包 括 BIOS 的 物 理 內 存 影 射 到 內 存 高 端 去 , 所 以 , 你 可 以 用 的 實 際 空 間 可 能 會 是 96MB+384kB。 但 是 如 果 你 告 訴 Linux 核 心 你 擁 有 的 內 存 超 出 你 的 實 際 內 存 的 話 , 將 會 發 生 很 糟 糕 的 事 情 。 也 許 躲 得 過 初 一 , 躲 不 過 十 五 。 "

’panic=N’
在 缺 省 情 況 下 , 核 心 並 不 會 在 異 常 後 重 新 啓 動 系 統 , 但 是 這 個 參 數 可 以 指 定 內 核 在 發 生 異 常 後 N 秒 後 重 新 啓 動 ( 如 果 N>0) 。 這 個 異 常 時 限 也 可 以 使 用 "echo N>/proc/sys/kernel/panic" 來 設 定 。

’reboot=[warm|cold][,[bios|hard]]’
( 只 有 當 CONFIG_BUGi386 被 定 義 的 時 候 該 參 數 才 起 作 用 ) 從 2.0.22 版 本 後 的 核 心 開 始 , reboot 命 令 在 缺 省 情 況 下 使 用 冷 啓 動 。 你 可 以 使 用 "reboot=warm" 來 進 行 老 版 本 所 的 缺 省 的 熱 啓 動 方 式 。 ( 冷 啓 動 意 味 着 對 所 有 的 硬 件 設 備 進 行 重 新 設 置 , 但 是 也 有 可 能 令 在 磁 盤 緩 衝 區 中 尚 未 寫 到 磁 盤 上 的 數 據 被 破 壞 。 熱 啓 動 的 優 點 是 速 度 比 較 快 。 ) 在 缺 省 情 況 下 , 要 求 鍵 盤 控 制 器 向 機 器 發 出 可 以 重 新 啓 動 的 低 電 位 脈 衝 是 很 困 難 的 , 但 是 至 少 有 一 種 類 型 的 主 板 不 會 這 樣 工 作 。 選 項 "reboot=bios" 將 用 BIOS 的 設 置 代 替 跳 線 。

’nosmp’ 和 ’maxcpus=N’
( 該 參 數 只 有 當 __SMP__ 參 數 被 定 義 的 時 候 纔 有 效 ) 命 令 行 選 項 "nosmp" 或 "maxcpus=0" 將 會 禁 止 激 活 SMP( 對 稱 多 處 理 ) 功 能 , 選 項 "maxcpus=N" 限 制 在 SMP 方 式 下 工 作 的 CPU 最 大 數 目 爲 N.

核 心 開 發 者 所 使 用 的 啓 動 參 數

’debug’
核 心 信 息 被 傳 遞 給 核 心 的 日 誌 守 護 進 程 klogd 使 得 它 們 能 夠 被 記 錄 在 磁 盤 中 。 優 先 級 高 於 console_loglevel 的 信 息 也 可 以 在 控 制 檯 上 被 顯 示 出 來 。 ( 如 果 想 了 解 信 息 優 先 級 , 可 以 去 查 看 <linux/kernel.h>文 件 。 ) 在 缺 省 情 況 下 , 所 有 比 調 試 信 息 級 別 高 的 信 息 都 會 被 寫 入 日 誌 文 件 。 但 是 這 個 啓 動 參 數 的 設 置 , 可 以 使 得 核 心 將 DEBUG( 調 試 信 息 ) 級 別 的 信 息 寫 到 日 誌 裏 。 console loglevel 也 能 夠 在 系 統 運 行 時 通 過 使 用 klogd 來 設 置 。 請 看 klogd(8).

’profile=N’
用 來 激 活 一 個 核 心 記 錄 程 序 。 如 果 你 需 要 了 解 核 心 在 什 麼 地 方 消 耗 其 CPU週 期 , 可 以 通 過 設 置 prof_shift 爲 一 個 非 零 值 來 激 活 核 心 記 錄 程 序 。 可 以 通 過 在 編 譯 內 核 的 時 候 指 定 CONFIG_PROFILE 值 也 可 以 通 過 "profile=" 選 項 來 指 定 prof_shift 的 值 。 當 prof_shift 通 過 以 上 方 式 指 定 爲 N, 或 通 過 CONFIG_PROFILE_SHIT 的 方 式 指 定 , 或 者 直 接 使 用 其 缺 省 值 2 的 時 候 , 這 個 值 表 示 記 錄 程 序 使 用 prof_shift 個 時 間 間 隔 進 行 記 錄 : 每 個 時 間 間 隔 是 一 個 時 鐘 滴 答 。 當 系 統 執 行 核 心 代 碼 的 時 候 , 一 個 記 數 器 的 值 會 不 斷 的 增 加 。

profile[address >> prof_shift]++;

原 始 的 配 置 文 件 可 以 從 /proc/profile. 中 讀 到 。 或 者 你 也 可 以 使 用 象 readprofile.c 之 類 的 工 具 來 閱 讀 配 置 文 件 。 任 何 寫 到 /proc/profile 中 的 操 作 將 清 除 記 數 器 。

’swap=N1,N2,N3,N4,N5,N6,N7,N8’
設 置 控 制 核 心 的 虛 擬 存 儲 交 換 算 法 的 8 個 參 數 。 這 8個 參 數 是 max_page_age, page_advance, page_decline, page_initial_age, age_cluster_fract, age_cluster_min, pageout_weight, bufferout_weight。 只 能 用 於 核 心 控 制 。

’buff=N1,N2,N3,N4,N5,N6’
設 置 核 心 緩 存 管 理 的 6 個 參 數 , 分 別 是 max_buff_age, buff_advance, buff_decline, buff_initial_age, bufferout_weight, buffermem_grace。 同 樣 也 只 能 用 於 核 心 控 制

使 用 內 存 虛 擬 磁 盤 的 啓 動 參 數

( 該 參 數 只 在 核 心 使 用 CONFIG_BLK_DEV_RAM 進 行 編 譯 後 纔 有 效 ) 在 通 常 情 況 下 , 在 Linux 下 使 用 一 個 內 存 虛 擬 磁 盤 ( RAMDISK) 並 不 是 一 個 好 的 方 法 - 因 爲 系 統 會 自 動 、 高 效 的 使 用 可 用 的 內 存 。 但 是 當 用 軟 盤 啓 動 的 時 候 ( 或 者 當 建 立 一 個 啓 動 軟 盤 的 時 候 ) , 將 軟 盤 的 內 容 讀 到 一 個 內 存 虛 擬 磁 盤 中 是 非 常 有 用 的 。 另 外 的 情 況 也 有 可 能 是 有 一 些 模 塊 ( 或 者 是 文 件 系 統 又 或 者 是 硬 件 的 ) 必 須 在 主 磁 盤 被 訪 問 前 被 調 到 內 存 中 來 。

在 1.3.48 版 本 的 Linux 中 , ramdisk 的 操 作 被 徹 底 的 改 變 了 。 在 1.3.48 以 前 的 版 本 中 , 內 存 是 靜 態 分 配 的 , "ramdisk = N" 參 數 提 供 內 存 的 大 小 。 ( 這 些 也 能 夠 在 覈 心 被 編 譯 的 時 候 被 設 置 , 或 者 也 可 以 使 用 rdev(8).來 進 行 設 置 ) 從 1.3.48 開 始 , 內 存 虛 擬 磁 盤 開 始 使 用 高 速 緩 存 , 而 且 可 以 動 態 的 增 加 其 空 間 。 如 果 需 要 了 解 有 關 最 新 的 內 存 虛 擬 磁 盤 設 置 ( 比 如 你 要 了 解 怎 麼 使 用 rdev(8) 來 進 行 ramdisk的 設 置 ) 請 查 看 /usr/src/linux/Documentation/ramdisk.txt.

有 關 的 參 數 一 共 有 四 個 , 兩 個 是 布 爾 變 量 , 兩 個 是 整 型 值 。

’load_ramdisk=N’
如 果 N=1, 載 入 一 個 內 存 虛 擬 磁 盤 。 如 果 N=0, 不 載 入 內 存 虛 擬 磁 盤 ( 這 是 缺 省 值 ) 。

’prompt_ramdisk=N’
如 果 N=1, 需 要 提 示 插 入 軟 盤 。 ( 這 是 缺 省 值 ) 如 果 N=0, 沒 有 提 示 。 ( 因 此 , 這 個 參 數 永 遠 也 不 會 需 要 )

’ramdisk_size=N’ 或 者 ’ramdisk=N’
設 置 內 存 虛 擬 磁 盤 的 最 大 空 間 爲 N kB。 缺 省 值 是 4096 kB (4MB)。

’ramdisk_start=N’
設 置 啓 動 塊 數 值 ( 也 就 是 內 存 虛 擬 磁 盤 從 軟 盤 的 多 少 偏 移 量 位 置 開 始 ) 爲 N。 由 於 緊 跟 在 內 存 虛 擬 磁 盤 後 面 的 是 核 心 映 象 文 件 , 所 以 這 個 設 置 是 必 要 的 。

’noinitrd’
( 只 有 核 心 在 編 譯 時 使 用 了 CONFIG_BLK_DEV_RAM 標 誌 和 CONFIG_BLK_DEV_INITRD 標 誌 時 纔 會 有 效 ) 目 前 , 我 們 基 本 上 可 以 通 過 編 譯 核 心 使 其 支 持 使 用 初 始 化 內 存 虛 擬 磁 盤 ( initrd:Initial Ramdisk) 。 當 啓 用 initrd 的 時 候 , 啓 動 進 程 會 載 入 核 心 和 一 個 已 經 初 始 化 的 內 存 虛 擬 磁 盤 , 然 後 核 心 會 將 initrd 轉 變 爲 一 個 "普 通 的 "內 存 虛 擬 磁 盤 , 並 將 它 激 活 爲 可 讀 寫 的 根 設 備 。 接 下 來 , 會 被 執 行 /linuxrc, "真 正 的 "根 文 件 系 統 被 激 活 , 而 initrd 文 件 系 統 則 被 轉 移 到 /initrd 目 錄 下 。 最 後 順 序 執 行 正 常 的 啓 動 程 序 ( 比 如 說 是 /sbin/init 程 序 ) 。 如 果 希 望 得 到 關 於 initrd 的 詳 細 的 介 紹 , 可 以 參 考 /usr/src/linux/Documentation/initrd.txt.

自 然 , ’noinitrd’ 參 數 告 訴 核 心 , 儘 管 核 心 是 按 照 使 用 initrd 的 參 數 來 編 譯 的 , 但 是 也 不 需 要 使 用 我 們 上 面 描 述 的 過 程 。 但 是 , 仍 然 保 留 initrd 的 所 有 數 據 到 /dev/initrd. 目 錄 下 。 ( 該 設 備 只 能 被 使 用 一 次 , 數 據 在 最 後 一 個 使 用 initrd 的 進 程 被 關 閉 後 會 釋 放 掉 ) /dev/initrd. )

SCSI設 備 啓 動 參 數

關 於 這 個 區 域 的 一 些 符 號 說 明 :

iobase 第 一 個 SCSI主 設 備 佔 用 的 I/O端 口 。 它 用 16 進 制 的 數 據 指 定 , 一 般 介 於 0x200 到 0x3ff 之 間 。

irq SCSI 卡 設 置 的 硬 件 中 斷 號 。 具 體 的 值 取 決 於 SCSI 卡 的 具 體 要 求 , 一 般 使 用 的 中 斷 號 是 5, 7, 9, 10, 11, 12 和 15。 其 他 的 中 斷 號 一 般 會 被 一 些 外 設 所 佔 用 , 比 如 說 , IDE 接 口 的 硬 盤 , 軟 盤 驅 動 器 , 串 口 等 等 。

scsi-id SCSI 適 配 器 在 SCSI 總 線 上 使 用 的 用 來 標 識 自 身 的 識 別 號 碼 ( ID) 。 只 有 一 部 分 SCSI 適 配 器 允 許 你 改 動 該 ID 的 值 , 大 部 分 都 是 被 固 化 好 的 。 缺 省 值 一 般 是 7, 可 是 , 在 Seagate 和 Future Domain TMC-950 的 板 卡 上 是 6。

parity 是 否 允 許 SCSI 適 配 器 在 交 換 數 據 的 時 候 使 用 奇 偶 效 驗 。 指 定 一 個 非 零 值 , 奇 偶 效 驗 會 起 用 , 如 果 指 定 爲 零 則 不 會 啓 動 奇 偶 效 驗 。 同 樣 , 不 是 所 有 的 SCSI 適 配 卡 支 持 選 擇 奇 偶 效 驗 的 啓 動 參 數 。

’max_scsi_luns=...’
一 個 SCSI 設 備 能 夠 使 用 一 些 包 括 它 自 己 在 內 的 "子 設 備 "。 最 常 用 的 例 子 是 現 在 的 SCSI CD-ROM 設 備 能 夠 同 時 處 理 多 張 光 盤 。 每 張 光 盤 使 用 "邏 輯 單 元 號 碼 "(LUN)來 確 定 其 位 置 。 當 然 , 大 部 分 設 備 , 比 如 硬 盤 , 磁 帶 機 都 只 能 處 理 一 個 設 備 , 因 此 它 們 的 LUN 會 被 設 置 爲 0 一 些 設 計 上 有 缺 陷 的 SCSI 設 備 一 旦 發 現 LUN 號 碼 不 爲 零 時 , 就 可 能 不 再 繼 續 工 作 。 因 此 , 如 果 在 編 譯 的 時 候 沒 有 設 置 CONFIG_SCSI_MULTI_LUN 標 誌 , 新 的 核 心 將 使 用 0 作 爲 缺 省 值 。

如 果 需 要 在 啓 動 的 時 候 指 定 LUN 的 值 , 可 以 使 用 "max_scsi_luns=n" 作 爲 啓 動 參 數 , 而 n 是 一 個 大 於 1 小 於 8 的 數 值 。 爲 了 避 免 上 面 描 述 的 問 題 , 使 用 n=1 可 以 避 免 那 些 設 備 的 造 成 的 錯 誤 。

SCSI 磁 帶 配 置
一 些 SCSI 磁 帶 設 備 的 啓 動 設 置 能 夠 使 用 下 面 的 格 式 來 進 行 :

st=buf_size[,write_threshold[,max_bufs]]

前 面 的 兩 個 數 字 指 定 單 元 的 大 小 ( kB) , 缺 省 的 值 buf_size 是 32kB, 最 大 的 值 可 以 指 定 爲 16384kB。 write_threshold 是 磁 帶 得 到 的 緩 存 區 大 小 , 缺 省 的 是 30kB。 其 最 大 的 緩 存 值 依 據 不 同 的 驅 動 設 備 的 個 數 而 得 到 不 同 的 值 , 缺 省 值 是 兩 個 設 備 。 缺 省 的 格 式 可 能 象 下 面 這 樣

st=32,30,2

你 能 夠 在 覈 心 源 碼 的 scsi 目 錄 下 的 README.st 中 看 到 所 有 的 細 節 。

Adaptec aha151x, aha152x, aic6260, aic6360, SB16-SCSI 配 置
在 這 一 句 中 aha 數 值 代 表 適 配 卡 類 型 , aic 數 值 表 示 適 配 卡 的 SCSI 芯 片 類 型 , 也 包 括 象 Soundblaster-16 這 樣 的 SCSI 設 備 。

SCSI 主 設 備 探 測 程 序 將 從 已 經 安 裝 好 的 BIOS 中 進 行 查 找 , 如 果 沒 有 的 話 , 該 檢 測 將 不 會 找 到 你 的 設 備 。 那 麼 , 你 就 必 須 使 用 以 下 格 式 的 啓 動 參 數 :

aha152x=iobase[,irq[,scsi-id[,reconnect[,parity]]]]

如 果 驅 動 程 序 是 以 調 試 模 式 編 譯 的 話 , 第 六 個 值 能 夠 被 指 定 設 置 調 試 的 級 別 。

其 他 的 參 數 已 經 在 上 面 描 述 過 了 。 值 得 一 提 的 是 reconnect 參 數 如 果 是 非 零 值 就 能 夠 允 許 設 備 "斷 連 和 重 新 連 接 "。 下 面 是 一 個 例 子 。

aha152x=0x340,11,7,1

要 注 意 到 的 是 參 數 必 須 按 指 定 的 順 序 來 設 定 , 這 意 味 着 如 果 你 需 要 指 定 奇 偶 參 數 的 話 你 就 必 須 指 定 其 他 的 所 有 參 數 。

Adaptec aha154x 配 置
aha1542 系 列 的 適 配 卡 上 有 一 個 i82077 軟 盤 控 制 器 , aha1540 系 列 的 卡 沒 有 。 這 種 卡 叫 做 總 線 主 控 卡 , 它 們 能 夠 通 過 參 數 的 設 置 "合 理 "的 與 其 他 設 備 共 享 總 線 。 它 們 的 啓 動 參 數 就 象 下 面 這 樣 :

aha1542=iobase[,buson,busoff[,dmaspeed]]

通 常 可 用 的 iobase 值 會 是 0x130, 0x134, 0x230, 0x234, 0x330, 0x334 其 中 的 一 個 。 兼 容 的 卡 能 夠 允 許 使 用 其 他 值 。

buson, busoff 值 表 示 的 是 該 卡 佔 用 ISA 總 線 的 時 間 ( 以 微 秒 計 ) 。 缺 省 值 是 11 微 秒 開 , 4 微 秒 關 , 這 樣 其 他 的 卡 ( 比 如 說 基 於 ISA 總 線 的 LANCE 以 太 網 卡 ) 就 能 夠 有 機 會 訪 問 ISA 總 線 。

dmaspeed 值 代 表 直 接 存 儲 訪 問 ( DMA) 的 傳 輸 速 度 ( 以 MB/秒 爲 單 位 ) 。 缺 省 值 是 5MB/秒 。 較 新 版 本 的 卡 允 許 你 使 用 軟 件 設 置 來 選 擇 該 值 , 老 版 本 的 卡 使 用 跳 線 來 設 置 。 如 果 你 的 主 板 支 持 的 話 , 你 能 夠 將 該 值 提 高 到 10MB/秒 。 如 果 使 用 5MB/秒 以 上 的 傳 輸 速 度 , 你 就 應 該 進 行 很 小 心 的 實 驗 。

Adaptec aha274x, aha284x, aic7xxx 配 置
這 些 板 卡 能 夠 接 受 象 下 面 這 樣 格 式 的 參 數 :

aic7xxx=extended,no_reset

extended 值 , 如 果 是 非 零 的 話 , 表 明 大 容 量 磁 盤 的 擴 展 轉 換 模 式 可 以 被 使 用 。 而 no_reset 值 如 果 是 非 零 的 話 , 告 訴 驅 動 程 序 在 設 置 SCSI 卡 後 重 新 啓 動 時 不 要 重 新 設 置 SCSI 總 線 。

AdvanSys SCSI Hosts configuration (’advansys=’)
AdvanSys 驅 動 程 序 能 夠 接 收 ( 最 多 ) 4 個 I/O 地 址 用 於 來 探 測 AdvanSys SCSI 卡 。 要 注 意 的 是 這 些 值 ( 如 果 使 用 了 它 們 ) 並 不 會 對 EISA 總 線 或 者 PCI 總 線 的 檢 測 有 任 何 作 用 。 它 們 只 能 用 來 檢 測 ISA 總 線 和 VLB 總 線 型 的 卡 。 另 外 , 如 果 驅 動 程 序 是 使 用 調 試 模 式 編 譯 的 話 , 調 試 級 別 能 夠 通 過 加 入 一 個 0xdeb[value] 參 數 來 設 定 。 value 可 以 是 0-f( 16進 制 ) , 代 表 可 以 得 到 多 達 16 個 級 別 的 調 試 信 息 。

AM53C974

AM53C974=host-scsi-id,target-scsi-id,max-rate,max-offset

BusLogic SCSI Hosts 配 置 (’BusLogic=’)

BusLogic=N1,N2,N3,N4,N5,S1,S2,...

作 爲 更 深 層 次 的 討 論 , 我 們 來 分 析 一 下 BusLogic 命 令 行 參 數 , 參 考 一 下 /usr/src/linux/drivers/scsi/BusLogic.c (在 我 看 的 核 心 版 本 中 是 3149-3270行 ). 下 面 的 文 字 是 一 段 精 闢 的 摘 錄

參 數 N1-N5 是 整 數 。 參 數 S1 是 字 符 串 。 N1 是 適 配 卡 的 I/O 地 址 。 N2 是 標 記 隊 列 深 度 ( Tagged Queue Depth) , 是 爲 那 些 支 持 標 記 隊 列 ( Tagged Queue) 的 目 標 設 備 而 設 置 的 。 N3 是 總 線 停 滯 時 間 ( 以 秒 計 ) , 這 是 表 示 從 SCSI 適 配 卡 重 新 啓 動 SCSI 總 線 到 發 出 一 個 SCSI 指 令 之 間 的 時 間 。 N4 是 區 域 選 項 ( 只 適 合 特 定 的 單 個 適 配 卡 ) N5 是 全 局 選 項 ( 針 對 所 有 的 適 配 卡 )

字 符 串 參 數 用 來 對 於 標 記 隊 列 控 制 ( TQ:Default, TQ:Enable, TQ:Disable, TQ:<Per-Target-Spec>) , 出 錯 處 理 ( ER:Default, ER:HardReset, ER:BusDeviceReset, ER:None, ER:<Per-Target-Spec>) 和 適 配 卡 檢 測 ( NoProbe, NoProbeISA, NoProbePCI) 。

EATA/DMA 配 置
缺 省 的 需 要 檢 測 的 I/O 端 口 能 夠 使 用 以 下 的 參 數 來 改 變 :

eata=iobase,iobase,....

Future Domain TMC-16x0 配 置

fdomain=iobase,irq[,adapter_id]

Great Valley Products (GVP) SCSI 控 制 器 配 置

gvp11=dma_transfer_bitmask

Future Domain TMC-8xx, TMC-950 配 置

tmc8xx=mem_base,irq

在 這 裏 , mem_base 值 是 卡 所 使 用 的 內 存 映 射 的 I/O 區 域 值 。 常 見 的 值 會 是 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000。

IN2000 配 置

in2000=S

這 裏 S 是 一 個 用 逗 號 分 隔 的 關 鍵 字 [: 值 ] 可 以 被 識 別 的 關 鍵 字 ( 有 可 能 伴 隨 着 值 ) 是 : ioport:addr, noreset, nosync:x, period:ns, disconnect:x,debug:x, proc:x. 如 果 你 要 了 解 這 些 參 數 的 功 能 的 話 , 請 看 /usr/src/linux/drivers/scsi/in2000.c.

NCR5380 和 NCR53C400 配 置
這 個 啓 動 參 數 遵 循 以 下 的 格 式

ncr5380=iobase,irq,dma

或 者

ncr53c400=iobase,irq

如 果 卡 沒 有 使 用 中 斷 , 那 麼 IRQ 值 255( 0xff) 將 被 用 來 屏 蔽 中 斷 。 IRQ 值 254 表 示 自 動 檢 測 , 更 多 的 細 節 可 以 從 下 面 的 文 檔 中 得 到 。 /usr/src/linux/drivers/scsi/README.g_NCR5380.

NCR53C8xx 配 置

ncr53c8xx=S

這 裏 S 是 一 個 用 逗 號 分 隔 的 關 鍵 字 [: 值 ] 可 以 被 識 別 的 關 鍵 字 ( 有 可 能 伴 隨 着 值 ) 是 : mpar (master_parity), spar (scsi_parity),disc (disconnection), specf (special_features), ultra (ultra_scsi),fsn (force_sync_nego), tags (default_tags), sync (default_sync), verb (verbose), debug (debug), burst (burst_max). 如 果 需 要 了 解 這 些 值 的 功 能 , 請 參 考 /usr/src/linux/drivers/scsi/ncr53c8xx.c.

NCR53c406a 配 置

ncr53c406a=iobase[,irq[,fastpio]]

指 定 irq = 0 適 用 於 無 中 斷 驅 動 模 式 。 設 置 fastpio = 1 設 置 爲 快 速 的 處 理 器 I/O( PIO) 模 式 , 0 是 慢 速 的 處 理 器 I/O( PIO) 模 式 。

IOMEGA PPA3 配 置

ppa=iobase[,speed_high[,speed_low[,nybble]]]

這 裏 iobase 的 值 是 並 口 的 地 址 ( 缺 省 值 是 0x378) , speed_high 是 在 數 據 處 理 時 延 遲 時 間 ( 以 微 秒 爲 單 位 , 缺 省 值 是 1) , speed_low 是 端 口 其 他 狀 態 下 的 延 遲 時 間 ( 以 微 秒 爲 單 位 , 缺 省 值 是 6) , nybble 是 一 個 BOOL 值 , 表 示 是 不 是 強 制 使 用 半 個 字 節 ( 4個 位 ) 的 工 作 模 式 , 缺 省 值 是 "假 "。 更 多 細 節 請 參 考 /usr/src/linux/drivers/scsi/README.ppa.

Pro Audio Spectrum 配 置
PAS16 適 配 卡 使 用 NC5380 SCSI 芯 片 , 較 新 的 版 本 支 持 免 跳 線 模 式 。 啓 動 參 數 是 下 列 格 式 :

pas16=iobase,irq

不 同 點 是 你 可 以 指 定 IRQ 的 值 是 255, 這 樣 你 就 可 讓 驅 動 程 序 不 要 使 用 中 斷 , 當 然 這 樣 會 降 低 性 能 。 通 常 iobase 的 值 是 0x388。

Seagate ST-0x 配 置
如 果 你 的 卡 沒 有 在 啓 動 的 時 候 被 檢 測 到 , 你 需 要 使 用 下 面 格 式 的 啓 動 參 數 :

st0x=mem_base,irq

這 裏 mem_base 值 是 卡 所 使 用 的 內 存 映 射 的 I/O 區 域 值 。 通 常 的 值 會 是 0xc8000, 0xca000, 0xcc000, 0xce000, 0xdc000, 0xde000。

Trantor T128 配 置
這 種 卡 也 是 使 用 NCR5380 芯 片 組 , 並 且 接 受 以 下 的 選 項 :

t128=mem_base,irq

mem_base 的 值 0xc8000, 0xcc000, 0xdc000, 0xd8000。

UltraStor 14F/34F 配 置
檢 測 出 的 缺 省 的 I/O 端 口 列 表 能 夠 被

eata=iobase,iobase,....

所 改 變 。

WD7000 配 置

wd7000=irq,dma,iobase

Commodore Amiga A2091/590 SCSI 控 制 器 配 置

wd33c93=S

這 裏 S 是 一 個 用 逗 號 分 隔 的 字 符 串 選 項 。 可 以 被 識 別 的 選 項 字 是 : nosync:bitmask, nodma:x, eriod:ns, disconnect:x, debug:x, clock:x, next. 詳 細 說 明 請 參 考 /usr/src/linux/drivers/scsi/wd33c93.c.

硬 盤 驅 動 器

IDE 硬 盤 驅 動 器 /光 驅 驅 動 程 序 參 數
IDE 驅 動 程 序 可 以 接 受 的 參 數 有 很 多 , 其 範 圍 包 括 從 磁 盤 規 格 到 有 缺 陷 的 控 制 器 芯 片 的 支 持 。 指 定 驅 動 程 序 參 數 的 同 時 需 要 使 用 "hdX=" 的 格 式 來 指 定 驅 動 器 。 X 的 範 圍 是 從 "a" 到 "h"。

非 驅 動 器 選 項 使 用 前 綴 "hd=" 來 指 定 。 注 意 如 果 將 驅 動 器 選 項 作 用 於 非 驅 動 器 選 項 也 可 以 工 作 , 而 且 選 項 也 能 夠 象 你 所 期 望 的 那 樣 被 應 用 。

同 時 還 要 注 意 到 的 是 "hd=" 格 式 也 能 夠 用 於 按 照 規 定 的 順 序 ( 從 a 到 h) 檢 索 到 下 一 個 沒 有 指 定 的 驅 動 器 。 在 下 面 的 討 論 中 , 我 們 可 以 看 到 "hd=" 選 項 將 會 被 短 暫 的 引 用 。 需 要 了 解 更 多 細 節 的 話 , 參 考 linux/drivers/block 目 錄 下 的 README.ide

’hd=cyls,heads,sects[,wpcom[,irq]]’ 選 項
這 些 選 項 用 來 指 定 磁 盤 的 物 理 參 數 。 前 面 三 個 參 數 是 必 須 的 。 柱 面 /磁 頭 /磁 道 三 個 參 數 將 被 fdisk 程 序 所 使 用 。 如 果 是 IDE 的 硬 盤 驅 動 器 , "寫 補 償 "值 會 被 忽 略 掉 。 指 定 的 IRQ 值 是 接 口 程 序 所 使 用 的 , 所 以 其 實 並 不 能 被 稱 爲 真 正 意 義 上 的 指 定 的 驅 動 器 參 數 。

’hd=serialize’ 選 項
具 有 雙 IDE 接 口 的 CMD-640 芯 片 在 設 計 上 是 有 缺 陷 的 。 這 個 缺 陷 是 當 第 二 個 接 口 與 第 一 個 接 口 被 同 時 使 用 時 , 將 會 破 壞 你 的 數 據 。 使 用 這 個 選 項 能 夠 使 你 的 接 口 永 遠 不 會 同 時 使 用 。

’hd=dtc2278’選 項
這 個 選 項 告 訴 驅 動 程 序 你 擁 有 一 個 DTC-2278D 的 IDE 接 口 。 驅 動 程 序 就 會 試 圖 使 用 DTC 的 指 定 操 作 來 激 活 第 二 個 接 口 並 啓 動 快 速 傳 送 模 式 。

’hd=noprobe’選 項
不 要 檢 測 該 硬 盤 驅 動 器 。 例 如 ,

hdb=noprobe hdb=1166,7,17

將 會 屏 蔽 掉 檢 測 , 可 是 仍 然 指 定 了 驅 動 器 的 物 理 參 數 , 因 爲 這 樣 才 能 夠 將 驅 動 器 登 記 成 爲 一 個 有 效 的 、 可 用 的 塊 設 備 。

’hd=nowerr’選 項
一 些 驅 動 器 具 有 WRERR_STAT 位 , 並 且 永 久 有 效 。 這 個 選 項 忽 略 該 位 。

’hd=cdrom’選 項
這 個 選 項 告 訴 IDE 驅 動 程 序 有 一 個 ATAPI 兼 容 的 光 盤 驅 動 器 。 在 大 部 分 情 況 下 光 盤 驅 動 器 會 被 自 動 的 識 別 , 但 是 對 於 不 能 識 別 的 光 盤 驅 動 器 來 說 , 這 個 選 項 是 很 有 用 的 。

標 準 的 ST-506 磁 盤 驅 動 程 序 參 數 (’hd=’)
標 準 的 磁 盤 驅 動 程 序 可 以 接 受 磁 盤 的 物 理 參 數 , 就 象 上 面 的 IDE 設 備 那 樣 。 注 意 無 論 怎 樣 它 都 只 希 望 接 受 三 個 參 數 ( 柱 面 /磁 頭 /磁 道 ) -- 過 多 或 過 少 的 參 數 都 會 被 忽 略 掉 。 當 然 , 它 只 接 受 "hd=" 這 樣 的 參 數 , 象 "had=" 參 數 這 樣 的 在 這 裏 是 無 效 的 。 下 面 是 它 的 格 式 :

hd=cyls,heads,sects

如 果 裝 有 兩 個 磁 盤 驅 動 器 , 上 面 的 工 作 需 要 重 複 的 進 行 以 配 置 第 二 個 磁 盤 驅 動 器 。

XT 磁 盤 驅 動 程 序 參 數 (’xd=’)
如 果 你 不 幸 使 用 了 一 些 些 老 掉 牙 的 、 8 位 的 和 使 用 驚 人 的 125kB/s 傳 輸 速 度 的 卡 , 這 些 參 數 會 對 你 有 幫 助 。 如 果 它 們 不 能 被 識 別 的 話 , 你 只 能 使 用 以 下 格 式 的 啓 動 參 數 :

xd=type,irq,iobase,dma_chan

type 值 指 定 該 卡 的 製 造 廠 商 , 下 面 是 廠 商 的 值 及 對 應 的 名 字 : 0= 普 通 卡 ; 1=DTC; 2,3,4=Western Digital,5,6,7=Seagate; 8=OMTI. 同 一 廠 家 出 廠 的 不 同 類 型 的 卡 的 區 別 由 BIOS 字 符 串 來 指 定 , 如 果 指 定 type, 這 些 也 就 沒 有 用 了 。

函 數 xd_setup() 不 檢 查 這 些 值 , 並 且 會 假 設 你 已 經 輸 入 了 全 部 的 四 個 值 。 不 要 讓 它 失 望 。 這 裏 有 一 個 WD1002 控 制 器 示 範 用 法 --假 設 BIOS 被 關 掉 /移 走 了 --使 用 缺 省 的 XT 控 制 參 數

xd=2,5,0x320,3

Syquest’s EZ*可 移 動 磁 盤

ez=iobase[,irq[,rep[,nybble]]]

IBM MCA總 線 設 備

請 同 時 參 考 /usr/src/linux/Documentation/mca.txt.

PS/2 ESDI hard disks
有 可 能 按 下 面 的 方 法 在 啓 動 時 指 定 你 所 需 要 的 磁 盤 物 理 參 數 。

ed=cyls,heads,sectors.

對 於 ThinkPad-720, 要 加 上 下 面 的 選 項

tp720=1.

IBM Microchannel SCSI Subsystem 配 置

ibmmcascsi=N

這 裏 N 是 子 系 統 的 pun (SCSI ID)

CD-ROMs (Non-SCSI/ATAPI/IDE)

Aztech 接 口
語 法 是 :

aztcd=iobase[,magic_number]

如 果 你 設 置 magic_number 值 爲 0x79, 那 麼 該 驅 動 程 序 嘗 試 在 任 何 一 個 未 知 的 固 件 上 面 執 行 。 其 他 的 值 都 會 被 忽 略 掉 。

MicroSolutions ’backpack’ 光 驅 接 口
語 法 :

bpcd=iobase

CDU-31A 和 CDU-33A Sony 接 口
這 種 光 盤 驅 動 器 的 接 口 會 出 現 在 一 些 Pro Audio Spectrum 聲 卡 及 其 他 支 持 Sony 驅 動 接 口 的 卡 上 。 語 法 是 :

cdu31a=iobase,[irq[,is_pas_card]]

指 定 一 個 爲 0 的 IRQ 告 訴 驅 動 程 序 該 硬 件 不 支 持 中 斷 ( 如 一 些 PAS 卡 ) 。 如 果 你 的 卡 支 持 中 斷 , 就 要 使 用 它 們 , 這 樣 可 以 減 少 驅 動 程 序 的 CPU 佔 用 時 間 。

對 於 is_pas_card 選 項 來 說 , 如 果 使 用 Pro Audio Spectrum 的 卡 則 應 該 輸 入 "PAS", 否 則 就 不 需 要 指 定 了 。

CDU-535 Sony 接 口
該 光 盤 驅 動 器 接 口 的 語 法 如 下

sonycd535=iobase[,irq]

如 果 你 要 指 定 IRQ 值 的 話 , 0 可 以 被 當 成 一 個 標 誌 位 被 填 到 I/O 地 址 中 。

GoldStar 接 口
該 光 盤 驅 動 器 的 接 口 語 法 是 :

gscd=iobase

ISP16 光 驅 接 口
語 法 :

isp16=[iobase[,irq[,dma[,type]]]]

( 三 個 整 數 值 , 一 個 字 符 串 ) 。 如 果 type 的 值 是 "noisp16" 的 話 , 接 口 不 會 被 配 置 。 其 他 可 以 被 接 受 的 type 值 包 括 : ’Sanyo", ’Sony’, ’Panasonic’ 和 ’Mitsumi’.

Mitsumi標 準 接 口
這 種 光 盤 驅 動 器 接 口 的 語 法 是 :

mcd=iobase,[irq[,wait_value]]

這 裏 wait_value 被 用 來 設 置 爲 內 部 故 障 的 超 時 時 間 。 能 否 實 現 還 需 要 依 靠 在 編 譯 時 的 定 義 而 定 。 Mitsumi FX400 是 一 種 不 使 用 mcd 驅 動 程 序 的 IDE/ATAPI 光 盤 驅 動 器 。 .

Mitsumi XA/MultiSession接 口
這 是 與 我 們 上 面 介 紹 的 一 樣 的 硬 件 , 只 不 過 該 驅 動 程 序 擁 有 更 多 的 特 性 。 語 法 :

mcdx=iobase[,irq]

Optics Storage 接 口
語 法 爲 :

optcd=iobase

Phillips CM206 接 口
語 法 是 :

cm206=[iobase][,irq]

該 驅 動 程 序 會 假 定 所 給 的 3 到 11 之 間 的 值 是 設 置 的 IRQ 值 , 數 值 在 0x300 到 0x370 之 間 的 值 是 I/O 端 口 號 , 因 此 你 可 以 指 定 一 個 , 或 者 可 以 指 定 兩 個 , 且 沒 有 特 殊 的 位 置 要 求 。 它 也 接 受 "cm206=auto" 參 數 來 實 現 自 動 檢 測 。

The Sanyo 接 口
語 法 是 :

sjcd=iobase[,irq[,dma_channel]]

SoundBlaster Pro 接 口
語 法 是 :

sbpcd=iobase,type

這 裏 type 是 下 面 這 些 字 符 串 的 一 種 ( 大 小 寫 敏 感 的 ) : ’SoundBlaster’, ’LaserMate’, 或 ’SPEA’. I/O 地 址 是 光 盤 驅 動 器 接 口 的 , 並 不 是 聲 卡 的 一 部 分 。

以 太 網 絡 設 備

不 同 的 驅 動 程 序 使 用 不 同 的 參 數 , 但 是 至 少 它 們 都 會 要 使 用 一 個 IRQ, 一 個 I/O 端 口 地 址 , 一 個 名 字 。 下 面 是 最 爲 普 遍 的 參 數 設 置 格 式 :

ether=irq,iobase[,param_1[,...param_8]],name

第 一 個 非 數 值 的 參 數 被 作 爲 名 字 使 用 。 param_n 的 值 ( 如 果 可 以 使 用 的 話 ) 對 於 不 同 的 卡 /驅 動 程 序 來 說 往 往 具 有 不 同 的 含 義 。 典 型 的 param_n 的 值 用 來 指 定 象 共 享 的 內 存 地 址 , 接 口 選 擇 , DMA 通 道 等 等 。

該 參 數 最 普 遍 的 用 法 是 強 迫 進 行 第 二 以 太 網 卡 的 檢 測 。 因 爲 作 爲 缺 省 的 情 況 來 說 , 內 核 只 是 檢 測 第 一 塊 以 太 網 卡 。 下 面 是 實 現 第 二 以 太 網 卡 檢 測 的 簡 單 方 法 :

ether=0,0,eth1

注 意 這 裏 IRQ 和 I/O 的 值 都 是 0, 這 個 表 示 值 需 要 進 行 自 動 檢 測 。

以 太 網 的 HowTo 文 件 對 於 多 網 卡 的 使 用 , 網 卡 /驅 動 程 序 的 指 定 , param_n 數 值 的 使 用 都 有 詳 細 的 介 紹 。 有 興 趣 的 讀 者 可 以 參 考 該 文 檔 中 對 自 己 擁 有 的 卡 的 說 明 。

軟 盤 驅 動 器 驅 動 程 序

軟 盤 驅 動 程 序 選 項 有 很 多 , 它 們 在 linux/drivers/block 目 錄 下 的 README.fd 中 列 舉 出 來 。 這 些 信 息 就 是 摘 自 那 個 文 件 。

floppy=mask,allowed_drive_mask
設 置 允 許 進 行 掩 碼 設 置 的 驅 動 程 序 將 掩 碼 設 置 爲 mask。 在 缺 省 情 況 下 , 只 有 每 個 軟 盤 控 制 器 的 0 號 和 1 號 單 元 允 許 這 樣 做 。 這 樣 規 定 的 原 因 是 有 一 些 非 標 準 的 硬 件 ( 華 碩 的 PCI 主 板 ) 在 訪 問 2 號 或 者 3 號 單 元 時 , 會 令 鍵 盤 發 生 問 題 。 該 選 項 差 不 多 已 被 cmos 選 項 所 取 代 了 。

floppy=all_drives
爲 所 有 的 軟 盤 驅 動 器 設 置 驅 動 器 掩 碼 。 如 果 你 在 一 個 軟 盤 控 制 器 上 擁 有 兩 個 驅 動 器 的 話 , 你 就 可 以 這 麼 做 。

floppy=asus_pci
設 置 掩 碼 爲 只 允 許 0 號 和 1 號 單 元 。 ( 缺 省 值 )

floppy=daring
告 訴 軟 盤 驅 動 程 序 你 有 一 個 比 較 好 的 軟 盤 控 制 器 。 這 樣 的 設 置 可 以 使 你 的 設 備 運 行 得 更 加 有 效 和 順 利 , 但 是 對 於 某 些 特 定 的 控 制 器 , 這 可 能 會 引 起 錯 誤 , 也 可 能 會 加 快 某 些 操 作 的 速 度 。

floppy=0,daring
告 訴 軟 盤 驅 動 程 序 你 的 軟 盤 控 制 器 需 要 謹 慎 的 運 行 。

floppy=one_fdc
告 訴 軟 盤 驅 動 程 序 你 只 有 一 個 軟 盤 控 制 器 。 ( 缺 省 值 )

floppy=two_fdc or floppy=address,two_fdc
告 訴 軟 盤 驅 動 程 序 你 擁 有 兩 個 軟 盤 控 制 器 。 第 二 個 控 制 器 假 設 位 於 address 值 。 如 果 address 的 值 沒 有 給 出 的 話 , 0x370 被 當 成 假 想 位 置 。

floppy=thinkpad
告 訴 軟 盤 驅 動 程 序 你 有 一 個 Thinkpad 電 腦 。 Thinkpad 的 磁 盤 變 更 線 路 與 通 常 的 機 器 相 反 。

floppy=0,thinkpad
告 訴 軟 盤 驅 動 程 序 你 沒 有 一 個 Thinkpad 電 腦 。

floppy=drive,type,cmos
設 置 CMOS 的 類 型 爲 type 值 。 條 件 是 驅 動 器 在 掩 碼 中 被 置 "允 許 "。 如 果 你 有 兩 個 以 上 的 軟 盤 驅 動 器 ( 在 實 際 的 CMOS 設 置 中 只 能 設 置 兩 個 ) , 或 者 你 的 BIOS 使 用 的 是 非 標 準 的 CMOS 類 型 , 這 是 非 常 有 用 的 。 把 前 面 兩 個 軟 盤 驅 動 器 的 CMOS 設 置 爲 0( 缺 省 值 ) 使 得 軟 盤 驅 動 程 序 從 實 際 的 CMOS 設 置 中 讀 取 它 們 的 信 息 。

floppy=unexpected_interrupts
當 接 收 到 一 個 異 常 時 顯 示 相 應 的 消 息 。 ( 缺 省 行 爲 )

floppy=no_unexpected_interrupts or floppy=L40SX
如 果 出 現 異 常 , 也 不 要 提 示 。 IBM L40SX 在 某 些 特 定 的 顯 示 模 式 下 需 要 這 個 選 項 。 ( 這 看 起 來 象 是 視 頻 和 軟 盤 之 間 有 某 種 交 互 關 係 。 異 常 中 斷 只 會 影 響 性 能 , 所 以 能 夠 被 安 全 的 忽 略 )

聲 卡 驅 動 程 序

聲 卡 驅 動 程 序 也 能 夠 接 受 啓 動 參 數 來 替 代 編 譯 時 使 用 的 值 。 這 種 方 法 並 不 值 得 推 薦 , 因 爲 這 樣 會 更 復 雜 。 參 數 說 明 在 /linux/drivers/sound/Readme.Linux 文 件 中 描 敘 。 它 接 受 如 下 格 式 的 啓 動 參 數 :

sound=device1[,device2[,device3...[,device10]]]

這 裏 每 個 deviceN 是 類 似 於 0xTaaaId 這 樣 格 式 的 值 , 其 中 各 字 符 表 示 爲 :

T - 設 備 類 型 : 1=FM, 2=SB, 3=PAS, 4=GUS, 5=MPU401, 6=SB16, 7=SB16-MPU401。

aaa - 16 進 制 的 I/O 地 址 。

I - 16 進 製 表 示 的 中 斷 地 址 。

d - DMA 通 道 號 。

這 樣 的 格 式 看 起 來 是 很 混 亂 的 , 你 最 好 在 編 譯 的 時 候 就 使 用 你 知 道 的 值 。 使 用 "sound=0" 的 參 數 將 會 完 全 屏 蔽 聲 卡 驅 動 程 序 。

ISDN 驅 動 程 序

ICN ISDN 驅 動 程 序
語 法 :

icn=iobase,membase,icn_id1,icn_id2

這 裏 icn_id1 和 icn_id2 是 兩 個 字 符 串 , 用 來 爲 核 心 消 息 提 供 卡 的 名 字 。

PCBIT ISDN 驅 動 程 序
語 法 :

pcbit=membase1,irq1[,membase2,irq2]

這 裏 membaseN 是 第 N 塊 卡 其 共 享 內 存 的 地 址 , irqN 是 第 N 塊 卡 的 中 斷 值 。 缺 省 值 是 IRQ 5 和 內 存 地 址 0xD0000。

Teles ISDN 驅 動 程 序
語 法 :

teles=iobase,irq,membase,protocol,teles_id

這 裏 iobase 是 卡 的 I/O 端 口 地 址 , membase, irq 的 意 義 與 上 面 的 一 樣 , teles_id 是 唯 一 的 ASCII 字 符 串 標 識 。

串 口 驅 動 程 序

RISCom/8 多 串 口 驅 動 程 序 (’riscom8=’)
語 法 :

riscom=iobase1[,iobase2[,iobase3[,iobase4]]]

更 多 的 細 節 請 參 考 /usr/src/linux/Documentation/riscom8.txt.

DigiBoard 驅 動 程 序 (’digi=’)
如 果 該 選 項 被 使 用 , 則 應 該 使 用 6 個 參 數 。 語 法 :

digi=status,type,altpin,numports,iobase,membase

參 數 可 以 是 整 數 值 , 也 可 以 是 字 符 串 值 。 如 果 使 用 了 字 符 串 , 則 iobase 和 membase 參 數 需 要 使 用 16 進 制 的 形 式 。 整 型 參 數 值 按 順 序 爲 : status (允 許 (1) 或 屏 蔽 (0)該 卡 ), type (PC/Xi(0), PC/Xe(1), PC/Xeve(2), PC/Xem(3)), altpin (允 許 (1)或 屏 蔽 (0) alternate pin排 列 ), numports (該 卡 的 端 口 數 目 ), iobase (該 卡 設 置 的 I/O 端 口 號 (16進 制 )), membase (內 存 窗 口 的 基 地 址 (16進 制 )). 所 以 , 下 面 兩 個 不 同 格 式 的 參 數 形 式 其 實 是 一 樣 的 :

digi=E,PC/Xi,D,16,200,D0000
digi=1,0,0,16,0x200,851968

更 多 的 細 節 請 參 考 /usr/src/linux/Documentation/digiboard.txt.

Baycom 串 /並 口 無 線 Modem
語 法 :

baycom=iobase,irq,modem

只 有 三 個 參 數 ; 如 果 有 多 張 卡 , 就 使 用 多 個 該 命 令 。 modem 參 數 是 一 個 字 符 串 , 值 是 ser12, ser12*, par96, par96* 中 的 一 個 。 這 裏 "*" 代 表 使 用 軟 件 DCD。 ser12 和 par96 用 來 選 擇 所 支 持 的 modem 類 型 。 更 多 的 細 節 請 參 考 /usr/src/linux/drivers/net/README.baycom.

Soundcard 無 線 Modem 驅 動 程 序
語 法 :

soundmodem=iobase,irq,dma[,dma2[,serio[,pario]]],0,mode

除 了 最 後 一 個 參 數 以 外 其 他 的 都 是 整 型 值 ; 你 可 能 注 意 到 參 數 中 有 一 個 0, 需 要 該 數 值 是 因 爲 在 設 置 代 碼 中 有 一 個 錯 誤 。 模 式 參 數 是 一 個 字 符 串 , 其 語 法 是 hw:modem。 這 裏 hw 是 "sbc", "wss", "wssfdx" 中 的 一 個 值 , modem 是 "afsk1200", "fsk9600" 中 的 一 個 值 。

打 印 驅 動 程 序

’lp=’
對 於 1.3.75 版 本 以 後 的 核 心 來 說 , 你 可 以 告 訴 打 印 驅 動 程 序 你 使 用 了 或 沒 有 使 用 哪 個 並 行 端 口 。 如 果 你 不 想 讓 打 印 驅 動 程 序 取 得 所 有 可 用 的 並 口 , 後 者 是 非 常 有 用 的 , 這 樣 其 他 的 驅 動 程 序 ( 比 如 說 PLIP, PPA) 就 能 夠 使 用 那 些 端 口 。

參 數 的 格 式 是 多 個 I/O 地 址 及 IRQ 對 。 舉 例 來 說 , lp=0x3bc,0,0x378,7 將 使 用 位 於 0x3bc 地 址 的 端 口 , "無 IRQ" (輪 詢 IRQ) 模 式 , 然 後 使 用 位 於 0x378 地 址 , IRQ 爲 7 的 端 口 。 位 於 地 址 0x278 的 端 口 ( 如 果 有 的 話 ) 不 會 被 檢 測 , 因 爲 自 動 檢 測 模 式 只 發 生 於 沒 有 "lp=" 參 數 的 情 況 下 。 如 果 需 要 屏 蔽 打 印 驅 動 程 序 的 話 , 使 用 lp=0 就 可 以 實 現 。

WDT500/501驅 動 程 序
語 法 :

wdt=io,irq

鼠 標 驅 動 程 序

’bmouse=irq’
總 線 型 鼠 標 驅 動 程 序 只 能 接 受 一 個 參 數 , 也 就 是 該 硬 件 需 要 的 IRQ 值 。

’msmouse=irq’
對 於 微 軟 兼 容 鼠 標 來 說 參 數 與 前 面 總 線 鼠 標 是 一 樣 的 。

ATARI鼠 標 設 置
atamouse=threshold[,y-threshold]

如 果 只 有 一 個 參 數 , 該 參 數 同 時 代 表 x 起 點 座 標 和 y 起 點 座 標 。 如 果 有 兩 個 參 數 , 則 第 一 個 是 x 起 點 座 標 , 第 二 個 是 y 起 點 座 標 。 這 些 值 必 須 是 在 1 到 20 之 間 ( 包 括 20) ; 缺 省 值 是 2。

視 頻 設 備

’no-scroll’
該 選 項 告 訴 控 制 檯 驅 動 程 序 不 要 使 用 硬 件 滾 動 模 式 ( 滾 動 模 式 在 將 屏 幕 圖 象 移 動 到 圖 形 儲 存 器 中 而 不 是 移 動 數 據 時 非 常 有 效 ) 。 一 些 Braille 機 器 會 需 要 它 的 。

作 者

Linus Torvalds

參 考

klogd(8), lilo.conf(5), lilo(8), mount(8), rdev(8).

該 手 冊 頁 的 大 部 分 內 容 來 自 Paul Gortmaker 寫 的 Boot Parameter HowTo( 1.0.1) 版 本 。 在 該 HowTo 中 還 可 以 找 到 更 多 的 有 關 信 息 。

[中 文 版 維 護 人 ]

billpan <billpan [AT] yeah.net>

[中 文 版 最 新 更 新 ]

2000/11/06

《 中 國 linux論 壇 man手 冊 頁 翻 譯 計 劃 》 :

http://cmpp.linuxforum.net

本 頁 面 中 文 版 由 中 文 man 手 冊 頁 計 劃 提 供 。
中 文 man 手 冊 頁 計 劃 : https://github.com/man-pages-zh/manpages-zh