22 FreeBSD连载:调整控制台设置( 三 )


为了设置启动标志及其屏幕保护 , 首先要内核支持splash伪设备(需要pseudo-device splash配置行) , 再生成一个小于640x480 , 256色的非压缩的bmp图象文件 , 然后将其复制到/boot目录下 , 更改/boot目录下的loader.rc文件 , 设置boot loader载入处理图象文件的模块splash_bmp 。
# cp logo.bmp /boot
# cat/boot/loader.rc
load kernel
load -t splash_image_data logo.bmp
load splash_bmp这也是使用boot loader的资源文件loader.rc的一个例子 , 可以定制这个资源文件 , 指定boot loader自动载入相关模块 , 以及执行其他boot loader的命令 。
控制台鼠标设置
FreeBSD使用一个守护进程moused来接管对鼠标的控制 , 它可以通过sysinstall很方便的进行设置 。moused就能将鼠标的输入传递给控制台驱动程序 , 这样就可以在文本状态下使用鼠标进行操作 , 例如在普通情况下可以进行粘贴操作 , 在应用程序支持的条件下 , 还能和应用程序进行交互 。缺省条件下仅有第一个虚拟控制台支持这种鼠标操作 , 在这个控制台上使用 “vidcontrol -m off” 就能关闭鼠标指针 , 禁止这种操作 , 以后仍然可以使用 “vidcontrol -m on” 许可鼠标的操作能力 。
系统缺省只在第一个控制台虚拟终端设备上打开鼠标指针 , 因此为了在其他虚拟终端上使用鼠标 , 必须在相应的控制台上使用vidcontrol -m on命令 。
执行moused , 必须要指定鼠标连接的端口和类型 , 这样moused才能和鼠标通信 。常用的鼠标有连接到串口的鼠标 , 它使用的设备为串口设备/dev/cuaa0(串口1)或/dev/cuaa1(串口2) , 如果使用ps/2接口的鼠标 , 使用的设备为/dev/psm0 , 如果使用总线类型接口的鼠标 , 使用的设备为/dev/mse0 。为了使用相应的端口 , 首先要保证相应的设备被内核正确探测 , 这可以使用dmesg来查看系统的硬件检测信息 , 检查设备驱动sio0,sio1(串口设备) , psm0,或者mse0等是否被内核检测到 。然后就能启动moused了:
# vidcontrol -m on
# moused -p /dev/cuaa0 -t auto使用auto作为鼠标类型的参数 , 让moused来决定鼠标使用的协议 , 一般情况下moused能够侦测出正确的协议 。一般ps/2鼠标使用ps/2协议 , 普通总线鼠标使用busmouse协议 , 串口鼠标使用的协议类型较多 , 通常标记为MS-2key两键的鼠标使用microsoft协议 , PC-3key三键鼠标使用mouse system协议 , 此外还有intellimouse等不同的协议 。
由于Unix下习惯使用三键鼠标进行操作 , 因此个人计算机上常用的两键鼠标就有些不合适 , 此时可以使用同时按下左右两键来模拟第三个键 , 对于moused , 这需要使用参数 “-3” 支持 , 这是全屏幕的moused设置程序不能进行设置的 。moused还能更改鼠标的另一些属性 , 例如滚动速度、点按速度等 。
此外在使用了moused之后 , moused将维护一个伪设备文件/dev/sysmouse , 这个设备文件行为就如同一个鼠标端口设备 , 能被其他要使用鼠标的程序 , 如X Server所使用 , 简化了这些程序的设置任务 。
一些Linux二进制格式的程序与这个设备文件不兼容 , 如果需要使用Linux的访问鼠标的应用程序 , 如X Server , 就不能使用moused , 而要让Linux程序直接访问物理鼠标设备文件 。
如果要保留这些键盘、显示、鼠标设置 , 就需要更改系统启动配置文件rc.conf中的相关参数设置 , 这样每次启动系统将自动使用必要的命令载入正确的设置 , 以下为与这些设置相关的项 , 这些项均被被作为参数传递给上述的设置命令 , 因此需要根据具体设置更改下列选项 。
keymap="NO"# keymap in /usr/share/syscons/keymaps/* (or NO).
keyrate="NO"# keyboard rate to: slow, normal, fast (or NO).

推荐阅读