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手 冊 頁 翻 譯 計 劃 》 :
跋
本
頁 面 中 文 版 由
中 文 man 手 冊 頁 計
劃 提 供 。
中 文 man 手 冊 頁 計
劃 :
https://github.com/man-pages-zh/manpages-zh