COM1
时使用。在COM1
上配置一个串行控制台
1.将串行电缆连接到COM1
和控制终端。 2.要配置在串行控制台显示的启动信息,以超级用户身份发出以下命令:1# echo 'console="comconsole"' >> /boot/loader.confCopied! 3.编辑/etc/ttys
,将ttyu0
条目中的off
改为on
,dialup
改为vt100
。否则,通过串行控制台连接时将不需要密码,从而导致一个潜在的安全漏洞。 4.重启系统来检查这些变更是否起作用
1.准备一根串口线缆。 2.拔掉键盘。绝大多数的PC在开机检测的时候会检测到键盘,如果没有检测到键盘,则会出现错误。一些机器会提示缺少键盘,就不会继续引导系统。如果你的计算机出现错误,但仍能继续启动,你可以不必理它。如果你的计算机没有键盘拒绝启动,那你需要配置 BIOS 来避免它。请参考你的主板的使用说明了解更多细节。小提示尝试在 BIOS 中将键盘设为 "Not installed" (未安装)。这个设置告诉BIOS在上电时不要探测键盘,这样如果键盘不在,它就不会发出警告。如果该选项在BIOS中不存在,则寻找“Halt on Error”选项。将此设置为 "All but Keyboard" 或 "No Errors" 将具有相同的效果。如果系统有 PS/2 鼠标,如果幸运的话,你也可以象键盘一样把它拔下来,这是因为 PS/2 鼠标与键盘的一些硬件是共享的,你的鼠标插上去,系统会认为键盘仍存在。注意虽然大多数系统可以在没有键盘的情况下启动,但相当多的系统在没有图形适配器的情况下无法启动。一些系统可以通过将 BIOS 配置中的“图形适配器”设置改为“未安装”来配置成在没有图形适配器的情况下启动。其他系统不支持这个选项,如果系统中没有显示硬件,将拒绝启动。对于这些机器,要留下某种图形卡的插头,即使它只是一块废旧的单声道板。显示器不需要连接。 3.将一个哑巴终端、一台带有调制解调器程序的旧电脑或另一个 UNIX® box 上的串口插入串口。 4.在/boot/device.hints
中为串口添加适当的hint.sio.*
条目。一些多端口卡也需要内核配置选项。请参考 sio(4) 的手册页面来了解每个支持的串口所需的选项和设备提示。 5.在启动驱动器的a
分区的根目录中创建boot.config
。这个文件指示启动块代码如何启动系统。为了激活串行控制台,需要下列一个或多个选项。当使用多个选项时,把它们都放在同一行:-h
在内部控制台和串行控制台之间进行切换。用它来切换控制台设备。例如,要从内部(视频)控制台启动,使用 -h 来指示 Boot Loader 和内核使用串行端口作为控制台设备。或者,如果要从串口启动,使用-h来告诉 Boot Loader 和内核使用视频显示器作为控制台。-D
在单控制台和双控制台的配置之间进行切换。在单配置中,控制台将是内部控制台(视频显示器)或串行端口,取决于-h
的状态。在双控制台配置中,无论-h
的状态如何,视频显示器和串口将同时成为控制台。然而,双控制台的配置只在引导块运行时生效。Boot Loader 得到控制后,由-h
指定的控制台就成为唯一的控制台。-P
使得引导块探测键盘。如果没有发现键盘,-D
和-h
选项会自动设置。注意由于当前版本的引导块的空间限制,-P
只能检测到扩展的键盘。少于 101 个键的键盘和没有 F11 和 F12 键的键盘可能无法被检测到。由于这个限制,一些笔记本电脑上的键盘可能无法被正确发现。如果是这种情况,请不要使用-P
。使用-P
来自动选择控制台,或者使用-h
来激活串行控制台。更多细节请参考 boot(8) 和 boot.config(5) 的手册页面。除了-P
之外,其他的选项都被传递给 boot loader。Boot Loader 将通过检查-h
的状态来决定是内部视频还是串行端口成为控制台。这意味着如果在/boot.config
中指定了-D
,但是没有指定-h
,那么串口只能在引导块中作为控制台使用,因为 Boot Loader 会使用内部视频显示作为控制台。 6.启动机器当 FreeBSD 启动时,引导块会将/boot.config
的内容回传到控制台,比如说:1/boot.config: -P2Keyboard: noCopied!第二行只有在/boot.config
中的-P
出现时才会出现,并表明键盘的存在或不存在。这些信息要么发送到串行控制台,要么发送到内部控制台,或者同时发送到两者,这取决于/boot.config
中的选项。选项送出消息的设备none内部控制台-h
串口控制台-D
串口控制台和内部控制台-Dh
串口控制台和内部控制台-P
,有键盘内部控制台-P
,无键盘串口控制台出现上面信息后,在引导块加载启动引导器和更多信息被映到屏幕之前将有一个小小的停顿。在通常情况下,你不需要打断启动进程,但为了确信设置是否正确,你也可以这样做。在控制台上按Enter
以外的任意键就能打断启动进程。引导块将进入命令行模式。你将看到:1>> FreeBSD/i386 BOOT2Default: 0:ad(0,a)/boot/loader3boot:Copied!检验上面出现的信息,可能是串口,或内部控制台,或两个同时,完全取决于你在/boot.config
中的选项。如果信息出现在正确的控制台,按Enter
继续启动进程。如果你要使用串口控制台,但你没有看到命令行,那可能设置有问题。这时,输入-h
然后按Enter
或Return
来告诉引导块 (然后是启动引导器和内核) 选择串口作为控制台。系统起来了之后,就可以回去检查一下是什么出了问题。
注意:在/boot/loader.conf
或/boot/loader.conf.local
中的这一行将配置 Boot Loader 和内核将他们的引导信息发送到串行控制台,而不考虑/boot.config
中的选项。1console="comconsole"Copied!这一行应该是/boot/loader.conf
的第一行,这样启动信息就会尽早显示在串行控制台。如果这一行不存在,或者它被设置为console="vidconsole"
,那么 Boot Loader 和内核将使用 Boot block 中由-h
指示的控制台。参见 loader.conf(5) 了解更多信息。目前,Boot Loader 在 Boot Block 中没有相当于-P
的选项,也没有规定根据键盘的存在自动选择内部控制台和串行控制台。
提示:虽然这不是必须的,但可以通过串行线提供一个登录提示。要配置这一点,请使用终端配置中的说明编辑/etc/ttys
中的串口条目。如果串口的速度已经改变,请改变std.9600
以符合新的设置。
/etc/make.conf
并将 BOOT_COMCONSOLE_SPEED
设置为新的控制台速度。然后,重新编译并安装引导块和引导加载器:-h
启动,或者内核使用的串行控制台与启动块使用的不同,可以在自定义的内核配置文件中加入下列选项,并加上所需的速度,然后编译一个新的内核:/boot.config
中添加 -S19200
启动选项,用要使用的速度代替 19200。/boot/loader.conf
中添加以下选项。用要使用的速度替换 115200: