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”来指定此设备作为根文件系统。
[奇怪且可能无趣的内容 ON]
这种不寻常的设备名称转换会产生一些奇怪的结果:例如,如果您有一个从 /dev/fd 到 /dev/fd0D720 的符号链接,作为 DD 格式的软盘驱动器 #0 的缩写,则不能使用此名称来指定根设备,因为内核在挂载根文件系统之前看不到此符号链接,并且它不在上面的表格中。如果您使用它,根设备将根本不会被设置,而不会出现错误消息。另一个示例:如果要按名称指定,则不能使用例如第六个 SCSI 磁盘上的分区作为根文件系统。这是因为表格中只有直到 /dev/sde 的设备,而没有 /dev/sdf。尽管您可以使用第六个 SCSI 磁盘作为根文件系统,但是您必须按数字指定该设备...(见下文)。或者,更奇怪的是,您可以使用没有对分区号进行范围检查这一事实,以及您知道每个磁盘使用 16 个次设备号的知识,并写入“root=/dev/sde17”(对于 /dev/sdf1)。
[奇怪且可能无趣的内容 OFF]
如果包含根分区的设备不在上面的表格中,您也可以按主设备号和次设备号指定它。这些数字以十六进制写入,没有前缀,也没有分隔符。例如,如果您的第一个 SCSI CD-ROM 驱动器中有一个内容适合作为根文件系统的 CD,则可以通过 “root=0b00” 从它启动。这里,十六进制“0b”=十进制 11 是 SCSI CD-ROM 的主设备号,次设备号 0 代表第一个。您可以通过查看 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)也可以设置至少为 8 的级别,也可以在运行时使用 “dmesg -n 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>[,<基地址>[,<内存起始地址>[,<内存结束地址>]]]],<设备名>
<设备名> 是网络驱动程序的名称,如 Linux 源代码的 drivers/net/Space.c 中指定的那样。最突出的是 eth0, ... eth3, sl0, ... sl3, ppp0, ..., ppp3, dummy 和 lo。
非以太网驱动程序(sl、ppp、dummy、lo)显然会忽略此选项的设置。此外,Linux/m68k 的现有以太网驱动程序(ariadne、a2065、hydra)不使用它们,因为 Zorro 板是真正的即插即用,因此对于 Linux/m68k 而言,“ether=” 选项完全没用。
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 磁带驱动程序的几个参数。<buffer_size> 是为每个设备的磁带操作保留的 512 字节缓冲区数量。<write_thres> 设置必须填充的块数,才能开始实际的磁带写入操作。最大值是缓冲区的总数。<max_buffer> 限制为所有磁带设备分配的缓冲区总数。
3.5) dmasound=¶
- 语法:
dmasound=[<buffers>,<buffer-size>[,<catch-radius>]]
此选项控制 Linux/m68k DMA 声卡驱动程序 (Amiga 和 Atari) 的一些配置:<buffers> 是要使用的缓冲区数量(最少 4 个,默认 4 个),<buffer-size> 是每个缓冲区的大小(以千字节为单位)(最少 4 个,默认 32 个),<catch-radius> 表示在设置频率时允许的误差百分比(最大 10,默认 0)。例如,使用 3% 的误差,你可以在 Falcon 上以其 8195Hz 的硬件频率播放 8000Hz 的 AU 文件,因此无需扩展声音。
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’
“正常平面”,即一个完整的平面接一个
- ‘i’
“交错平面”,即第一个平面的 16 位,然后是下一个平面的 16 位,依此类推... 这种模式仅用于内置的 Atari 视频模式,我认为没有卡支持这种模式。
- ‘p’
“打包像素”,即 <depth> 个连续位代表一个像素的所有平面;这是显卡上 8 个平面(256 种颜色)最常用的模式
- ‘t’
“真彩色”(或多或少地打包像素,但没有颜色查找表);通常深度为 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> 一样。
仅当指定 <vgabase> 时,<colw> 才具有意义。它告诉内核每个颜色寄存器的宽度,即每个单色(红色/绿色/蓝色)的位数。默认为 6,另一个比较常用的值是 8。
<coltype> 也与 <vgabase> 一起使用。它告诉内核有关你的图形卡板的颜色寄存器模型。目前,已实现“vga”(这也是默认值)和“mv300”(SANG MV300) 类型。
对于物理行长与可见长度不同的 ProMST 或 ET4000 卡,需要参数 <xres_virtual>。对于 ProMST,xres_virtual 必须设置为 2048。对于 ET4000,xres_virtual 取决于显卡的初始化。如果你缺少相应的 yres_virtual:外部部分是旧版本,因此我们不支持硬件相关的函数,如硬件滚动、平移或消隐。
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 阈值>,[<y 阈值>]
使用此选项,您可以设置鼠标移动报告阈值。这是在 IKBD 向内核发送新的鼠标数据包之前必须累积的鼠标移动像素数。较高的值会降低鼠标中断负载,从而降低键盘溢出的机会。较低的值会提供稍微更快的鼠标响应和稍微更好的鼠标跟踪。
您可以分别设置 x 和 y 的阈值,但通常这在实际应用中很少用到。如果选项中只有一个数字,则该数字将用于两个维度。默认值是两个阈值均为 2。
4.3) ataflop=¶
- 语法:
ataflop=<驱动器类型>[,<磁道缓冲>[,<步进率 A>[,<步进率 B>]]]
驱动器类型可以是 0、1 或 2,分别对应 DD、HD 和 ED。此设置会影响保留的缓冲区数量以及探测的格式(另请参见下文)。默认值为 1 (HD)。只能选择一种驱动器类型。如果您有两个磁盘驱动器,请选择“更好”的类型。
第二个参数 <磁道缓冲> 告诉内核是否使用磁道缓冲 (1) 或不使用 (0)。默认值取决于机器:Medusa 为否,所有其他机器为是。
使用以下两个参数,您可以更改用于驱动器 A 和 B 的默认步进率。
4.4) atascsi=¶
- 语法:
atascsi=<can_queue>[,<cmd_per_lun>[,<scat-gat>[,<host-id>[,<tagged>]]]]
此选项为 Atari 原生 SCSI 驱动程序设置一些参数。通常,可以从末尾省略任意数量的参数。对于每个数字,负值表示“使用默认值”。默认值取决于使用的是 TT 型 SCSI 还是 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 KB
- <scat-gat>
分散-聚集表的大小,即可以在磁盘上合并为一个 SCSI 命令的连续请求的数量。合法值在 0 到 255 之间。默认值:255/0。注意:此值在 Falcon 上强制为 0,因为使用 ST-DMA 不可能进行分散-聚集。不使用分散-聚集会显著降低性能。
- <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=<开关列表>
使用此选项,您可以切换一些经常用于启用/禁用某些硬件扩展的硬件线路。示例包括超扫描、超频等。
<开关列表> 是以下项目以逗号分隔的列表
- ikbd
将键盘 ACIA 的 RTS 设置为高电平
- midi
将 MIDI ACIA 的 RTS 设置为高电平
- snd6
设置 PSG 端口 A 的第 6 位
- snd7
设置 PSG 端口 A 的第 6 位
多次提及某个开关是没有意义的(与仅提及一次没有区别),但是您可以根据需要提供任意数量的开关来启用不同的功能。开关线路在内核初始化期间(甚至在确定当前硬件之前)尽早设置。
所有项目也可以使用 ov_ 作为前缀,例如 ov_ikbd、ov_midi 等。这些选项用于打开超扫描视频扩展。与裸选项的区别在于,切换操作是在视频初始化之后完成的,并且以某种方式与 HBLANK 同步。一个特殊之处是,在重新启动之前会关闭 ov_ikbd 和 ov_midi,以便禁用超扫描并且 TOS 可以正确启动。
如果同时提供带有和不带有 ov_ 前缀的选项,则较早的初始化(无 ov_)优先。但是,在这种情况下,仍然会发生重置时的关闭操作。
5) 仅用于 Amiga 的选项:¶
5.1) video=¶
- 语法:
video=<fbname>:<子选项...>
<fbname> 参数指定帧缓冲区的名称,有效选项为 amifb、cyber、'virge'、retz3 和 clgen,前提是相应的帧缓冲区设备已编译到内核中(或编译为可加载模块)。<fbname> 选项的行为在 2.1.57 中已更改,因此现在建议指定此选项。
<子选项> 是下面列出的子选项以逗号分隔的列表。此选项的组织方式类似于“video”选项 (4.1) 的 Atari 版本,但子选项较少。
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:<位平面数量>
指定所选视频模式的位平面数量。
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=<值>
为“静默”软盘驱动器设置 df0 值。该值应为十六进制,并带有“0x”前缀。
5.3) wd33c93=¶
- 语法:
wd33c93=<子选项...>
这些选项会影响 A590/A2091、A3000 和 GVP Series II SCSI 控制器。
<子选项> 是下面列出的子选项以逗号分隔的列表。
5.3.1) nosync¶
- 语法:
nosync:位掩码
位掩码是一个字节,其中前 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:x
指定 x = 0 表示永不允许断开连接,x = 2 表示始终允许断开连接。x = 1 表示“自适应”断开连接,这是默认值,通常也是最佳选择。
5.3.4) 调试¶
- 语法:
debug:x
如果定义了 DEBUGGING_ON,则 x 是一个位掩码,它会导致打印各种类型的调试输出 - 请参阅 wd33c93.h 中的 DB_xxx 定义。
5.3.5) 时钟¶
- 语法:
clock:x
x = WD33c93 芯片的时钟输入,单位为 MHz。正常值应为 8 到 20。默认值取决于您的主机适配器,A3000 内部控制器的默认值为 14,A2091 的默认值为 8,GVP 主机适配器的默认值取决于主机适配器和某些 GVP 主机适配器上的 SCSI 时钟跳线,可以是 8 或 14。
5.3.6) 下一个¶
无参数。当系统中存在多个基于 wd33c93 的主机适配器时,用于分隔关键字块。
5.3.7) nodma¶
- 语法:
nodma:x
如果 x 为 1(或者如果该选项仅写为“nodma”),则 WD33c93 控制器将不使用 DMA(= 直接内存访问)来访问 Amiga 的内存。这对于某些系统(例如 A3000 和带有 A3640 加速器 3.0 版的 A4000)非常有用,这些系统在使用 DMA 访问芯片内存时存在问题。默认值为 0,即如果可能则使用 DMA。
5.4) gvp11=¶
- 语法:
gvp11=<地址掩码>
早期版本的 GVP 驱动程序没有正确处理 DMA 地址掩码设置,这使得一些人必须使用此选项才能使其 GVP 控制器在 Linux 下运行。这些问题有望得到解决,现在强烈不建议使用此选项!
不正确的使用会导致不可预测的行为,因此请仅在您知道自己在做什么并且有理由这样做时才使用此选项。无论如何,如果您遇到问题并且需要使用此选项,请通过邮件告知 Linux/68k 内核邮件列表。
此选项设置的地址掩码指定哪些地址对于 GVP Series II SCSI 控制器的 DMA 有效。如果除了掩码中设置的位之外没有设置任何位,则该地址有效。
某些版本的 GVP 只能 DMA 到 24 位地址范围,某些版本可以寻址 25 位地址范围,而其他版本可以使用整个 32 位地址范围进行 DMA。正确的设置取决于您的控制器,应由驱动程序自动检测。一个示例是 24 位区域,它由 0x00fffffe 的掩码指定。