Linux/m68k 的命令行选项¶
最后更新:1999 年 5 月 2 日
Linux/m68k 版本:2.2.6
作者:Roman.Hodek@informatik.uni-erlangen.de (Roman Hodek)
更新:jds@kom.auc.dk (Jes Sorensen) 和 faq@linux-m68k.org (Chris Lawrence)
0) 简介¶
我经常被问到 Linux/m68k 内核理解哪些命令行选项,或者 ... 选项的确切语法是什么,或者 ... 关于选项 ... 。 我希望本文档提供所有答案...
请注意,某些选项可能已过时,其描述可能不完整或缺失。 请更新信息并提交补丁。
1) 内核选项处理概述¶
内核知道命令行上的三种选项
内核选项
环境设置
init 的参数
参数属于哪个类别按以下方式确定:如果选项是内核本身已知的,即名称('=' 之前的部分)或者在某些情况下,整个参数字符串对于内核是已知的,则它属于类别 1。 否则,如果参数包含 '=',则它属于类别 2,并且该定义放入 init 的环境中。 所有其他参数作为命令行选项传递给 init。
本文档描述了本文档开头提到的版本中 Linux/m68k 的有效内核选项。 后续版本可能会添加新的此类选项,并且某些选项可能在较旧版本中缺失。
一般来说,选项的值('=' 之后的部分)是由逗号分隔的值列表。 这些值的解释由“拥有”该选项的驱动程序决定。 选项与驱动程序的这种关联也是某些选项进一步细分的原因。
2) 常规内核选项¶
2.1) root=¶
- 语法:
root=/dev/<设备>
- 或者:
root=<十六进制数>
这告诉内核应该将哪个设备挂载为根文件系统。 该设备必须是具有有效文件系统的块设备。
第一种语法按名称给出设备。 这些名称在内核中以一种不寻常的方式转换为主/次编号。 通常,这种“转换”由 /dev 中的设备文件完成,但这在这里是不可能的,因为根文件系统(带有 /dev)尚未挂载... 因此内核自己解析该名称,并进行一些硬编码的名称到数字的映射。 该名称必须始终是两个或三个字母的组合,后跟一个十进制数。 有效名称是
/dev/ram: -> 0x0100 (initial ramdisk)
/dev/hda: -> 0x0300 (first IDE disk)
/dev/hdb: -> 0x0340 (second IDE disk)
/dev/sda: -> 0x0800 (first SCSI disk)
/dev/sdb: -> 0x0810 (second SCSI disk)
/dev/sdc: -> 0x0820 (third SCSI disk)
/dev/sdd: -> 0x0830 (forth SCSI disk)
/dev/sde: -> 0x0840 (fifth SCSI disk)
/dev/fd : -> 0x0200 (floppy disk)
名称后面必须跟一个十进制数,表示分区号。 在内部,该数字的值只是添加到上述表中提到的设备编号。 例外是 /dev/ram 和 /dev/fd,其中 /dev/ram 指的是你的引导程序加载的初始 ramdisk(请查阅你的引导程序的说明,以了解如何加载初始 ramdisk)。 从内核版本 2.0.18 开始,如果你想从初始 ramdisk 启动,则必须将 /dev/ram 指定为根设备。 对于软盘设备,/dev/fd,该数字代表软盘驱动器编号(软盘上没有分区)。 即,/dev/fd0 代表第一个驱动器,/dev/fd1 代表第二个驱动器,依此类推。 由于该数字只是添加的,你还可以通过添加大于 3 的数字来强制使用磁盘格式。 如果你查看你的 /dev 目录,你可以看到 /dev/fd0D720 的主设备号为 2,次设备号为 16。 你可以通过在内核命令行上写入 “root=/dev/fd16” 来为此设备指定根 FS。
[奇怪且可能不感兴趣的东西 ON]
这种不寻常的设备名称转换会产生一些奇怪的后果:例如,如果你有一个从 /dev/fd 到 /dev/fd0D720 的符号链接,作为 DD 格式的软盘驱动器 #0 的缩写,你不能使用此名称来指定根设备,因为内核在挂载根 FS 之前无法看到此符号链接,并且它不在上表中。 如果你使用它,则根本不会设置根设备,而不会显示错误消息。 另一个示例:如果你想通过名称指定,则不能使用例如第六个 SCSI 磁盘上的分区作为根文件系统。 这是因为上表中只有 /dev/sde 之前的设备,而不是 /dev/sdf。 虽然,你可以使用第六个 SCSI 磁盘作为根 FS,但你必须按数字指定设备...(参见下文)。 或者,更奇怪的是,你可以利用分区号没有范围检查这一事实,并且知道每个磁盘使用 16 个次设备号,并写入 “root=/dev/sde17”(对于 /dev/sdf1)。
[奇怪且可能不感兴趣的东西 OFF]
如果包含根分区的设备不在上表中,你还可以通过主设备号和次设备号指定它。 这些数字以十六进制写入,没有前缀,也没有分隔符。 例如,如果你的 CD 上包含适合作为第一个 SCSI CD-ROM 驱动器中根文件系统的内容,你可以通过 “root=0b00” 从其启动。 在这里,十六进制 “0b” = 十进制 11 是 SCSI CD-ROM 的主设备号,次设备号 0 代表第一个 SCSI CD-ROM。 你可以通过查看 include/linux/major.h 来找出所有有效的主设备号。
除了主设备号和次设备号,如果包含根分区的设备使用具有唯一分区标识符的分区表格式,那么你可以使用它们。 例如,“root=PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF”。 也可以使用已知的分区 UUID 作为起点来引用同一设备上的另一个分区。 例如,如果设备的分区 5 的 UUID 为 00112233-4455-6677-8899-AABBCCDDEEFF,则分区 3 可以如下找到
PARTUUID=00112233-4455-6677-8899-AABBCCDDEEFF/PARTNROFF=-2
权威信息可以在“内核的命令行参数”中找到。
2.2) ro, rw¶
- 语法:
ro
- 或者:
rw
这两个选项告诉内核是否应该以只读或读写方式挂载根文件系统。 默认值为只读,但 ramdisk 除外,它们的默认值为读写。
2.3) debug¶
- 语法:
debug
这将内核日志级别提高到 10(默认值为 7)。 这与 “dmesg” 命令设置的级别相同,只是 dmesg 可选择的最大级别为 8。
2.4) debug=¶
- 语法:
debug=<设备>
此选项使某些内核消息打印到选定的调试设备。 这可以帮助调试内核,因为消息可以在其他机器上捕获和分析。 哪些设备是可能的取决于机器类型。 没有对设备名称有效性的检查。 如果设备未实现,则什么也不会发生。
以这种方式记录的消息通常是内核内存故障或错误的内核陷阱之后的堆栈转储,以及内核崩溃。 确切地说:级别为 0(崩溃消息)的所有消息以及日志级别为 8 或更高的所有消息(它们的级别无关紧要)。 在堆栈转储之前,内核自动将日志级别设置为 10。 也可以通过 “debug” 命令行选项(参见 2.3)以及运行时使用 “dmesg -n 8” 设置至少为 8 的级别。
Amiga 可能的设备
- “ser”
内置串口;参数:9600bps, 8N1
- “mem”
将消息保存到芯片内存中的保留区域。 重启后,可以使用 AmigaOS 下的工具 ‘dmesg’ 读取它们。
Atari 可能的设备
- “ser1”
ST-MFP 串口 (“Modem1”);参数:9600bps, 8N1
- “ser2”
SCC 通道 B 串口 (“Modem2”);参数:9600bps, 8N1
- “ser”
默认串口 对于 Falcon 而言,这是 “ser2”,对于任何其他机器而言,这是 “ser1”
- “midi”
MIDI 端口;参数:31250bps, 8N1
- “par”
并行端口
此端口的打印例程为未连接打印机的情况实现超时(否则内核将锁定)。 超时不准确,但通常为几秒钟。
2.6) ramdisk_size=¶
- 语法:
ramdisk_size=<大小>
此选项指示内核设置给定大小(以 KB 为单位)的 ramdisk。 如果 ramdisk 内容由引导程序传递,请不要使用此选项! 在这种情况下,大小会自动选择,不应覆盖。
唯一的应用程序是软盘上的根文件系统,应该加载到内存中。 为此,请选择磁盘的相应大小作为 ramdisk 大小,并将根设备设置为磁盘驱动器(使用 “root=”)。
2.7) swap=
我在 2.2.6 中找不到此选项的任何迹象。
2.8) buff=¶
我在 2.2.6 中找不到此选项的任何迹象。
3) 常规设备选项(Amiga 和 Atari)¶
3.1) ether=¶
- 语法:
ether=[<irq>[,<base_addr>[,<mem_start>[,<mem_end>]]]],<dev-name>
<dev-name> 是网络驱动程序的名称,如 Linux 源代码中的 drivers/net/Space.c 中指定的那样。 最突出的是 eth0, ... eth3, sl0, ... sl3, ppp0, ..., ppp3, dummy 和 lo。
非以太网驱动程序(sl, ppp, dummy, lo)显然会忽略此选项的设置。 此外,Linux/m68k 的现有以太网驱动程序(ariadne, a2065, hydra)不使用它们,因为 Zorro 板确实是即插即用,因此 “ether=” 选项对于 Linux/m68k 完全无用。
3.2) hd=¶
- 语法:
hd=<柱面数>,<磁头数>,<扇区数>
此选项设置 IDE 磁盘的磁盘几何形状。 第一个 hd= 选项用于第一个 IDE 磁盘,第二个用于第二个 IDE 磁盘。 (即,你可以给出此选项两次。)在大多数情况下,你不需要使用此选项,因为内核可以自己获取几何数据。 它存在只是为了在你的一个磁盘发生故障的情况下使用。
3.3) max_scsi_luns=¶
- 语法:
max_scsi_luns=<n>
设置要扫描的 SCSI 设备的最大 LUN(逻辑单元)数。 <n> 的有效值介于 1 和 8 之间。如果在内核配置期间选择了“探测每个 SCSI 设备上的所有 LUN”,则默认值为 8,否则为 1。
3.4) st=¶
- 语法:
st=<缓冲区大小>,[<写入阈值>,[<最大缓冲区数>]]
设置 SCSI 磁带驱动程序的几个参数。 <缓冲区大小>是为每个设备的磁带操作保留的 512 字节缓冲区数。 <写入阈值>设置必须填充的块数才能开始实际的磁带写入操作。 最大值是缓冲区的总数。 <最大缓冲区数>限制为所有磁带设备分配的缓冲区总数。
3.5) dmasound=¶
- 语法:
dmasound=[<缓冲区数>,<缓冲区大小>[,<捕获半径>]]
此选项控制 Linux/m68k DMA 声音驱动程序的一些配置(Amiga 和 Atari):<缓冲区数>是你想要使用的缓冲区数(最小 4 个,默认 4 个),<缓冲区大小>是每个缓冲区的大小(以 KB 为单位)(最小 4 个,默认 32 个),<捕获半径>表示设置频率时允许的误差百分比(最大 10,默认 0)。 例如,使用 3%,你可以在 Falcon 上播放 8000Hz AU 文件,其硬件频率为 8195Hz,因此不需要扩展声音。
4) 仅适用于 Atari 的选项¶
4.1) video=¶
- 语法:
video=<fbname>:<子选项...>
<fbname> 参数指定帧缓冲区的名称,例如大多数 atari 用户将希望在此处指定 atafb。 <子选项> 是以下列出的子选项的逗号分隔列表。
- 注意
请注意,在 1.3.x 内核的开发过程中,此选项已从 atavideo 重命名为 video,因此如果你从 1.2.x 内核升级到 2.x,你可能需要更新你的启动脚本。
- 注意注意
video= 的行为在 2.1.57 中发生了更改,因此建议的选项是指定帧缓冲区的名称。
4.1.1) 视频模式¶
此子选项可以是任何预定义的视频模式,如 Linux/m68k 源代码树中的 atari/atafb.c 中所列。 如果硬件允许,内核将在启动时激活给定的视频模式并将其设置为默认模式。 当前定义的名称是
stlow : 320x200x4
stmid, default5 : 640x200x2
sthigh, default4: 640x400x1
ttlow : 320x480x8, 仅适用于 TT
ttmid, default1 : 640x480x4, 仅适用于 TT
tthigh, default2: 1280x960x1, 仅适用于 TT
vga2 : 640x480x1, 仅适用于 Falcon
vga4 : 640x480x2, 仅适用于 Falcon
vga16, default3 : 640x480x4, 仅适用于 Falcon
vga256 : 640x480x8, 仅适用于 Falcon
falh2 : 896x608x1, 仅适用于 Falcon
falh16 : 896x608x4, 仅适用于 Falcon
如果在命令行上未给出视频模式,则内核会依次尝试模式名称 “default<n>”,直到硬件可以使用一种模式为止。
如果通过 “external:” 子选项激活了外部驱动程序,则视频模式设置没有意义。
4.1.2) inverse¶
反转显示。 这仅影响文本控制台。 通常,背景选择为黑色。 使用此选项,你可以将背景设置为白色。
4.1.3) font¶
- 语法:
font:<字体名称>
指定在文本模式下使用的字体。 目前,你只能在 VGA8x8、VGA8x16 和 PEARL8x8 之间进行选择。 如果显示的垂直大小小于 400 像素行,则 VGA8x8 是默认值。 否则,VGA8x16 字体是默认值。
4.1.4) hwscroll_¶
- 语法:
hwscroll_<n>
要保留的额外视频内存行数,用于加速滚动(“硬件滚动”)。 只有在内核可以以足够精细的步长设置视频基地址时,硬件滚动才有可能。 对于 STE、MegaSTE、TT 和 Falcon 而言,这是正确的。 对于普通 ST 和显卡而言,这是不可能的(前者是因为基地址必须在那里位于 256 字节边界上,后者是因为内核根本不知道如何设置基地址。)
默认情况下,<n> 设置为显示器上可见文本行的数量。 因此,与没有硬件滚动相比,视频内存量增加了一倍。 你可以通过将 <n> 设置为 0 来完全关闭硬件滚动。
4.1.5) internal:¶
- 语法:
internal:<xres>;<yres>[;<xres_max>;<yres_max>;<offset>]
此选项指定某些扩展的内部视频硬件的功能,例如 OverScan。 <xres> 和 <yres> 给出了屏幕的(扩展的)尺寸。
如果你的 OverScan 需要黑色边框,你必须写入 “internal:” 的最后三个参数。 <xres_max> 是硬件允许的最大行长,<yres_max> 是最大行数。 <offset> 是屏幕内存的可见部分与其物理起始位置的偏移量(以字节为单位)。
通常,必须以某种方式激活扩展的间隔视频硬件。 为此,请参见下面的 “sw_*” 选项。
4.1.6) external:¶
- 语法:
external:<xres>;<yres>;<depth>;<org>;<scrmem>[;<scrlen>[;<vgabase> [;<colw>[;<coltype>[;<xres_virtual>]]]]]
这可能是最复杂的参数... 它指定你拥有一些外部视频硬件(显卡),以及如何在 Linux/m68k 下使用它。 内核无法比你在此处告诉它的更多地了解硬件! 内核也无法设置或更改任何视频模式,因为它不知道任何板载内部信息。 因此,你必须在启动 Linux 之前切换到该视频模式,并且一旦 Linux 启动,就无法切换到其他模式。
此子选项的前 3 个参数应该是显而易见的:<xres>、<yres> 和 <depth> 给出了屏幕的尺寸和平面数量(深度)。 深度是可能颜色的数量以 2 为底的对数。 (或者,另一种方式:颜色数量是 2^深度)。
你还必须告诉内核视频内存是如何组织的。 这通过一个字母作为 <org> 参数完成
- ‘n’
“normal planes”,即一个完整的平面接一个平面
- ‘i’
“interleaved planes”,即第一个平面的 16 位,然后是下一个平面的 16 位,依此类推... 我认为只有内置的 Atari 视频模式才使用此模式,没有显卡支持此模式。
- ‘p’
“packed pixels”,即 <depth> 连续位代表一个像素的所有平面;这是显卡上 8 个平面(256 种颜色)最常见的模式
- ‘t’
“true color”(或多或少是 packed pixels,但没有颜色查找表);通常深度为 24
对于单色模式(即 <depth> 为 1),<org> 字母具有不同的含义
- ‘n’
正常颜色,即 0=白色,1=黑色
- ‘i’
反转颜色,即 0=黑色,1=白色
关于视频硬件的下一个重要信息是视频内存的基地址。 该信息在 <scrmem> 参数中给出,作为带有 “0x” 前缀的十六进制数。 你必须在硬件的文档中找到此地址。
下一个参数 <scrlen> 告诉内核视频内存的大小。 如果它缺失,则大小由 <xres>、<yres> 和 <depth> 计算得出。 目前,在此处写入一个值没有用处。 它仅用于硬件滚动(这对于外部驱动程序而言是不可能的,因为内核无法设置视频基地址),或者用于 X 下的虚拟分辨率(X 服务器尚不支持)。 因此,目前最好将此字段留空,或者通过在视频地址后结束 “external:”,或者如果你想给出一个 <vgabase>,则写入两个连续的分号(允许将此参数留空)。
<vgabase> 参数是可选的。 如果未给出,则内核无法读取或写入视频硬件的任何颜色寄存器,因此你必须在启动 Linux 之前设置适当的颜色。 但是,如果你的显卡在某种程度上与 VGA 兼容,你可以告诉内核 VGA 寄存器集的基地址,以便它可以更改颜色查找表。 你必须在你的显卡的文档中查找此地址。 为了避免误解:<vgabase> 是_基_地址,即 4k 对齐的地址。 为了读取/写入颜色寄存器,内核使用地址 vgabase+0x3c7...vgabase+0x3c9。 <vgabase> 参数以十六进制形式写入,带有 “0x” 前缀,就像 <scrmem> 一样。
<colw> 仅在指定了 <vgabase> 时才有意义。 它告诉内核每个颜色寄存器的宽度,即每种颜色(红色/绿色/蓝色)的位数。 默认值为 6,另一个非常常用的值是 8。
此外,<coltype> 与 <vgabase> 一起使用。 它告诉内核你的 gfx 显卡的颜色寄存器模型。 目前,实现了类型 “vga”(也是默认值)和 “mv300”(SANG MV300)。
对于 ProMST 或 ET4000 显卡,如果物理行长度与可见长度不同,则需要参数 <xres_virtual>。 对于 ProMST,xres_virtual 必须设置为 2048。 对于 ET4000,xres_virtual 取决于显卡的初始化。 如果你缺少相应的 yres_virtual:external 部分是旧版,因此我们不支持依赖于硬件的功能,如硬件滚动、平移或消隐。
4.1.7) eclock:¶
连接到 Falcon VIDEL 移位器的外部像素时钟。 目前,这仅适用于 ScreenWonder!
4.1.8) monitorcap:¶
- 语法:
monitorcap:<vmin>;<vmax>;<hmin>;<hmax>
这描述了多频显示器的功能。 不要将它与固定频率显示器一起使用! 目前,只有 Falcon 帧缓冲区使用 “monitorcap:” 的设置。
<vmin> 和 <vmax> 分别是你的显示器可以工作的最小和最大垂直频率,以 Hz 为单位。 <hmin> 和 <hmax> 对于水平频率也是如此,以 kHz 为单位。
默认值为 58;62;31;32(与 VGA 兼容)。
TV/SC1224/SC1435 的默认值涵盖 PAL 和 NTSC 标准。
4.1.9) keep¶
如果指定此选项,帧缓冲设备本身不会进行任何视频模式计算和设置。目前唯一执行此操作的 Atari fb 设备是 Falcon。
这样做的目的是:驱动程序不会覆盖未知视频扩展的设置,因此您仍然可以使用启动时找到的模式,前提是驱动程序不知道如何自行设置此模式。但这也意味着您无法再切换视频模式了...
您可能想要使用 “keep” 的一个例子是 Falcon 的 ScreenBlaster。
4.2) atamouse=¶
- 语法:
atamouse=<x-threshold>,[<y-threshold>]
使用此选项,您可以设置鼠标移动报告阈值。这是在 IKBD 向内核发送新的鼠标数据包之前必须累积的鼠标移动像素数。较高的值会降低鼠标中断负载,从而降低键盘溢出的可能性。较低的值会提供稍快的鼠标响应和稍好的鼠标跟踪。
您可以分别设置 x 和 y 阈值,但通常这没有什么实际用途。如果选项中只有一个数字,则它将用于两个维度。默认值为两个阈值均为 2。
4.3) ataflop=¶
- 语法:
ataflop=<drive type>[,<trackbuffering>[,<steprateA>[,<steprateB>]]]
驱动器类型可以是 0、1 或 2,分别代表 DD、HD 和 ED。此设置会影响保留的缓冲区数量以及探测的格式(另请参见下文)。默认值为 1 (HD)。只能选择一种驱动器类型。如果您有两个磁盘驱动器,请选择“更好”的类型。
第二个参数 <trackbuffer> 告诉内核是否使用磁道缓冲 (1) 或不使用 (0)。默认值取决于机器:Medusa 不使用,所有其他机器都使用。
使用以下两个参数,您可以更改用于驱动器 A 和 B 的默认步进率。
4.4) atascsi=¶
- 语法:
atascsi=<can_queue>[,<cmd_per_lun>[,<scat-gat>[,<host-id>[,<tagged>]]]]
此选项设置 Atari 本地 SCSI 驱动程序的一些参数。通常,可以从末尾省略任意数量的参数。对于每个数字,负值表示“使用默认值”。默认值取决于使用 TT 样式还是 Falcon 样式 SCSI。下面,默认值表示为 n/m,其中第一个值指的是 TT-SCSI,第二个值指的是 Falcon-SCSI。如果为一个参数指定了非法值,则会打印一条错误消息,并且该设置将被忽略(其他设置不受影响)。
- <can_queue>
这是在 Atari SCSI 驱动程序内部排队的最大 SCSI 命令数。值为 1 实际上会关闭驱动程序内部的多任务处理(如果它导致问题)。合法值 >= 1。<can_queue> 可以任意高,但大于 <cmd_per_lun> 乘以您拥有的 SCSI 目标(LUN)数量的值没有意义。默认值:16/8。
- <cmd_per_lun>
为一个逻辑单元(LUN,通常为一个 SCSI 目标)发出的最大 SCSI 命令数。合法值从 1 开始。如果未使用标记队列(参见下文),则大于 2 的值没有意义,但会浪费内存。否则,最大值是驱动程序可用的命令标记数(目前为 32)。默认值:8/1。(注意:> 1 的值似乎会在 Falcon 上引起问题,原因尚不清楚。)
<cmd_per_lun> 值在很大程度上决定了 SCSI 为自身保留的内存量。公式相当复杂,但我可以给你一些提示
- 无散射-聚集
cmd_per_lun * 232 字节
- 完全散射-聚集
cmd_per_lun * 约 17 Kbytes
- <scat-gat>
散射-聚集表的大小,即可以合并到一个 SCSI 命令中的磁盘上连续请求的数量。合法值介于 0 和 255 之间。默认值:255/0。注意:由于 ST-DMA 无法进行散射-聚集,因此此值在 Falcon 上强制为 0。不使用散射-聚集会严重影响性能。
- <host-id>
由启动器(您的 Atari)使用的 SCSI ID。这通常是 7,最高可能的 ID。SCSI 总线上的每个 ID 都必须是唯一的。默认值:在运行时确定:如果 NV-RAM 校验和有效,并且 NV-RAM 的字节 30 中的位 7 已设置,则此字节的低 3 位用作主机 ID。(此方法由 Atari 定义,也被一些 TOS HD 驱动程序使用。)如果未给出以上信息,则默认 ID 为 7。(TT 和 Falcon 都是如此)。
- <tagged>
0 表示关闭标记队列支持,所有其他值 > 0 表示对支持它的目标使用标记队列。默认值:目前关闭,但当已证明标记队列处理是可靠的时,可能会更改。
标记队列意味着可以向一个 LUN 发出多个命令,并且 SCSI 设备本身会对其请求进行排序,以便可以以最佳顺序执行它们。并非所有 SCSI 设备都支持标记队列 (:-().
4.5 switches=¶
- 语法:
switches=<交换机列表>
使用此选项,您可以切换一些硬件线路,这些线路通常用于启用/禁用某些硬件扩展。例如 OverScan、超频等...
<交换机列表> 是以下项目的逗号分隔列表
- ikbd
将键盘 ACIA 的 RTS 设置为高电平
- midi
将 MIDI ACIA 的 RTS 设置为高电平
- snd6
设置 PSG 端口 A 的位 6
- snd7
设置 PSG 端口 A 的位 6
多次提及一个交换机是没有意义的(与仅一次没有区别),但您可以根据需要提供任意数量的交换机以启用不同的功能。交换机线路在内核初始化期间尽早设置(甚至在确定当前硬件之前。)
所有项目也可以加上 ov_ 前缀,即 ov_ikbd, ov_midi, ... 这些选项用于开启 OverScan 视频扩展。与裸选项的区别在于,开启是在视频初始化之后完成的,并且以某种方式与 HBLANK 同步。一个特殊之处是 ov_ikbd 和 ov_midi 在重新启动之前关闭,以便禁用 OverScan 并且 TOS 正确启动。
如果您同时给出一个带有和不带有 ov_ 前缀的选项,则较早的初始化(没有 ov_)优先。但重置时仍然会发生关闭。
5) 仅适用于 Amiga 的选项:¶
5.1) video=¶
- 语法:
video=<fbname>:<子选项...>
<fbname> 参数指定帧缓冲区的名称,有效选项为 amifb, cyber, ‘virge’, retz3 和 clgen,前提是相应的帧缓冲区设备已编译到内核中(或编译为可加载模块)。 <fbname> 选项的行为在 2.1.57 中已更改,因此现在建议指定此选项。
<子选项> 是下面列出的子选项的逗号分隔列表。此选项的组织方式类似于 Atari 版本的 “video” 选项 (4.1),但子选项较少。
5.1.1) 视频模式¶
同样,类似于 Atari 的视频模式(参见 4.1.1)。预定义的模式取决于所使用的帧缓冲区设备。
OCS、ECS 和 AGA 机器都使用彩色帧缓冲区。以下预定义的视频模式可用
- NTSC 模式
ntsc : 640x200, 15 kHz, 60 Hz
ntsc-lace : 640x400, 15 kHz, 60 Hz 隔行扫描
- PAL 模式
pal : 640x256, 15 kHz, 50 Hz
pal-lace : 640x512, 15 kHz, 50 Hz 隔行扫描
- ECS 模式
multiscan : 640x480, 29 kHz, 57 Hz
multiscan-lace : 640x960, 29 kHz, 57 Hz 隔行扫描
euro36 : 640x200, 15 kHz, 72 Hz
euro36-lace : 640x400, 15 kHz, 72 Hz 隔行扫描
euro72 : 640x400, 29 kHz, 68 Hz
euro72-lace : 640x800, 29 kHz, 68 Hz 隔行扫描
super72 : 800x300, 23 kHz, 70 Hz
super72-lace : 800x600, 23 kHz, 70 Hz 隔行扫描
dblntsc-ff : 640x400, 27 kHz, 57 Hz
dblntsc-lace : 640x800, 27 kHz, 57 Hz 隔行扫描
dblpal-ff : 640x512, 27 kHz, 47 Hz
dblpal-lace : 640x1024, 27 kHz, 47 Hz 隔行扫描
dblntsc : 640x200, 27 kHz, 57 Hz 双扫描
dblpal : 640x256, 27 kHz, 47 Hz 双扫描
- VGA 模式
vga : 640x480, 31 kHz, 60 Hz
vga70 : 640x400, 31 kHz, 70 Hz
请注意,ECS 和 VGA 模式需要 ECS 或 AGA 芯片组,并且这些模式的 ECS 芯片组限制为 2 位颜色,AGA 芯片组限制为 8 位颜色。
5.1.2) depth¶
- 语法:
depth:<nr. of bit-planes>
指定所选视频模式的位平面数。
5.1.3) inverse¶
使用反转显示(黑底白字)。在功能上与 Atari 的 “inverse” 子选项相同。
5.1.4) font¶
- 语法:
font:<字体名称>
指定在文本模式下使用的字体。在功能上与 Atari 的 “font” 子选项相同,不同之处在于,如果显示的垂直尺寸小于 400 像素行,则使用 PEARL8x8 而不是 VGA8x8。
5.1.5) monitorcap:¶
- 语法:
monitorcap:<vmin>;<vmax>;<hmin>;<hmax>
这描述了多频显示器的功能。目前,只有彩色帧缓冲区使用 “monitorcap:” 的设置。
<vmin> 和 <vmax> 分别是你的显示器可以工作的最小和最大垂直频率,以 Hz 为单位。 <hmin> 和 <hmax> 对于水平频率也是如此,以 kHz 为单位。
默认值为 50;90;15;38(通用 Amiga 多频显示器)。
5.2) fd_def_df0=¶
- 语法:
fd_def_df0=<value>
为“静默”软盘驱动器设置 df0 值。该值应为十六进制,带有“0x”前缀。
5.3) wd33c93=¶
- 语法:
wd33c93=<子选项...>
这些选项影响 A590/A2091、A3000 和 GVP Series II SCSI 控制器。
<子选项> 是下面列出的子选项的逗号分隔列表。
5.3.1) nosync¶
- 语法:
nosync:bitmask
bitmask 是一个字节,其中前 7 位对应于 7 个可能的 SCSI 设备。设置一位以防止在该设备上进行同步协商。为了保持向后兼容性,诸如 “wd33c93=255” 之类的命令行将自动转换为 “wd33c93=nosync:0xff”。默认值为禁用所有设备的同步协商,例如 nosync:0xff。
5.3.2) period¶
- 语法:
period:ns
ns 是 SCSI 数据传输周期中最小的纳秒数。默认值为 500;可接受的值为 250 - 1000。
5.3.3) disconnect¶
- 语法:
disconnect:x
指定 x = 0 以永远不允许断开连接,2 以始终允许它们。 x = 1 执行“自适应”断开连接,这是默认设置,通常是最佳选择。
5.3.4) debug¶
- 语法:
debug:x
如果定义了 DEBUGGING_ON,则 x 是一个位掩码,它会导致打印各种类型的调试输出 - 请参阅 wd33c93.h 中的 DB_xxx 定义。
5.3.5) clock¶
- 语法:
clock:x
x = WD33c93 芯片的时钟输入(以 MHz 为单位)。正常值应为 8 到 20。默认值取决于您的主机适配器,A3000 内部控制器的默认值为 14,A2091 的默认值为 8,GVP 主机适配器的默认值为 8 或 14,具体取决于主机适配器和某些 GVP 主机适配器上存在的 SCSI 时钟跳线。
5.3.6) next¶
无参数。当系统中有多个基于 wd33c93 的主机适配器时,用于分隔关键字块。
5.3.7) nodma¶
- 语法:
nodma:x
如果 x 为 1(或者如果该选项只是写成 “nodma”),则 WD33c93 控制器将不会使用 DMA(= 直接内存访问)来访问 Amiga 的内存。这对于某些系统(例如具有 A3640 加速器的 A3000 和 A4000,修订版 3.0)很有用,这些系统在使用 DMA 访问芯片内存时遇到问题。默认值为 0,即尽可能使用 DMA。
5.4) gvp11=¶
- 语法:
gvp11=<addr-mask>
早期版本的 GVP 驱动程序未正确处理 DMA 地址掩码设置,这使得某些人有必要使用此选项,以便使其 GVP 控制器在 Linux 下运行。这些问题有望得到解决,现在强烈建议不要使用此选项!
不正确的使用会导致不可预测的行为,因此请仅在您知道自己在做什么并且有理由这样做时才使用此选项。无论如何,如果您遇到问题并且需要使用此选项,请通过发送邮件到 Linux/68k 内核邮件列表告知我们。
此选项设置的地址掩码指定哪些地址对 GVP Series II SCSI 控制器的 DMA 有效。如果除了掩码中设置的位之外,没有设置其他位,则地址有效。
某些版本的 GVP 只能 DMA 到 24 位地址范围,某些可以寻址 25 位地址范围,而另一些可以使用整个 32 位地址范围进行 DMA。正确的设置取决于您的控制器,应由驱动程序自动检测。一个示例是 24 位区域,它由 0x00fffffe 的掩码指定。