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