跳过导航链接 | |
退出打印视图 | |
![]() |
手册页第 1 部分:用户命令 Oracle Solaris 11.1 Information Library (简体中文) |
- 操控键盘的状态、显示键盘的类型或更改缺省的键盘异常中止序列影响
kbd [-r] [-t ] [-l] [-a enable | disable | alternate] [-c on | off] [-d keyboard device] [-D autorepeat delay] [-R autorepeat rate]
kbd [-i] [-d keyboard device]
kbd -s [language]
kbd -b [keyboard | console] frequency
kbd 实用程序操控键盘的状态、显示键盘类型或允许更改缺省的键盘异常中止序列影响。异常中止序列也适用于串口控制台设备。kbd 实用程序将 /dev/kbd 设置为缺省键盘设备。
-i 选项从键盘配置服务 svc:/system/keymap:default 读取并处理 keyclick 和 keyboard 异常中止设置的缺省值。只有支持按键发音器的键盘可以响应 -c 选项。要缺省打开按键音,请在 keymap 服务中将 keymap/keyclick 属性的值添加或更改为:
$ svccfg -s keymap:default setprop keymap/keyclick=true $ svcadm refresh keymap
接下来,运行命令 kbd -i 来更改设置。keymap/keyclick 属性的有效设置为 true 或 false。所有其他值均会被忽略。如果在 keymap 服务中未指定 keymap/keyclick 属性,该设置没有变化。
只有超级用户可以使用 -a 选项更改键盘异常中止序列影响。通常,该序列在 SPARC 系统的键盘上为 Stop-A 或 L1-A 和 Shift-Pause,在 x86 系统上为 F1-A 和 Shift-Pause,在大多数系统的串口控制台输入设备上为 BREAK。
无法将由错误的电子信号导致的 BREAK 情况与由远程 DCE 故意发送的该指令进行区分。作为修正措施,可以将 -a 选项与“替代中断”结合使用来切换中断解释。由于存在序列解释错误的风险,在施行“替代中断”序列时,不应通过串口控制台端口运行二进制协议(如 SLIP 和其他协议)。
尽管 PPP 是二进制协议,但它具有避免使用会干扰串行操作的字符的能力。缺省的“替代中断”序列为 CTRL-m ~ CTRL-b 或十六进制的 0D 7E 02。在 PPP 中,这可以通过在 ACCM 中设置 0x00000004 或 0x00002000 来避免。这分别强制实施 CTRL-b 和 CTRL-m 字符的转义。
要在 Solaris PPP 4.0 中执行此操作,应将以下内容:
asyncmap 0x00002000
添加到 /etc/ppp/options 文件或用于连接的任何其他配置文件。请参见 pppd(1M)。
SLIP 没有类似功能,使用“替代中断”序列时,不得使用 SLIP。
“替代中断”序列对键盘异常中止没有影响。有关“替代中断”序列的更多信息,请参见 zs(7D)、se(7D) 和 asy(7D)。
在许多系统上,键盘异常中止序列的缺省影响是暂停操作系统并进入调试器或监视器。某些系统具有带有一个安全位置的键开关。在这些系统上,将键开关设置到该安全位置可以覆盖该命令的任何软件缺省设置。
要永久更改键盘异常中止序列的软件缺省影响,请首先在 keymap 服务中将 keymap/keyboard_abort 属性添加或更改为:
$ svccfg -s keymap:default setprop keymap/keyboard_abort=disable $ svcadm refresh keymap
接下来,运行命令 kbd -i 来更改设置。有效设置为 enable、disable 和 alternate;所有其他值均被忽略。如果在 keymap 服务中未指定该变量,则该设置没有变化。
要将异常中止序列设置为硬件 BREAK,应在 keymap 服务中将 keymap/keyboard_abort 的值设置为:
$ svccfg -s keymap:default setprop keymap/keyboard_abort=enable $ svcadm refresh keymap
要更改当前设置,请运行命令 kbd -i。要将异常中止序列设置为“替代中断”字符序列,请首先在 keymap 服务中将 keyboard_abort 属性的当前值设置为:
$ svccfg -s keymap:default setprop keymap/keyboard_abort=alternate $ svcadm refresh keymap
接下来,运行命令 kbd -i 来更改设置。当施行“替代中断”序列时,只有串口控制台设备会受影响。
要设置缺省的自动重复延迟,应在 keymap 服务中将 repeat_delay 属性设置为所需值,以毫秒 (ms) 为单位。为避免因印刷错误而导致键盘无法使用,将拒绝低于 KIOCRPTDELAY_MIN(在 /usr/include/sys/kbio.h 中定义的)的延迟值并返回 EINVAL:
$ svccfg -s keymap:default setprop keymap/repeate_delay=500 $ svcadm refresh keymap
要设置缺省的自动重复频率,请在 keymap 服务中将 repeat_rate 属性设置为所需值,以毫秒为单位。负值和零值重复频率将被拒绝并返回 EINVAL。
$ svccfg -s keymap:default setprop keymap/repeate_rate=40 $ svcadm refresh keymap
要更改 delay 和 rate 的当前设置,请运行命令 kbd -i。在施行自动重复延迟和/或自动重复频率时,只有命令行模式会受影响。
要设置缺省语言,请在 keymap 服务中将 keymap/layout 属性设置为所需语言。可以通过运行 kbd -s 查明内核中支持的这些语言。其他值均会被忽略。例如,以下示例将键盘布局设置为西班牙语:
$ svccfg -s keymap:default setprop keymap/layout=Spanish $ svcadm refresh keymap
接下来,运行 kbd -i 以更改该设置。当 Solaris 重新引导时,会将西班牙语按键表装入到内核中。这些布局对 usb 和 ps/2 键盘有效。
要设置缺省的键盘蜂鸣器频率,请在 keymap 服务中将 keymap/kbd_beeper_freq 属性设置为所需值,以 HZ 为单位。该值应该介于 0 和 32767 之间(包含两者)。否则,它将被拒绝并返回 EINVAL:
$ svccfg -s keymap:default setprop keymap/kbd_beeper_freq=2000 $ svcadm refresh keymap
要设置缺省的控制台蜂鸣器频率,请在 keymap 服务中将 keymap/console_beeper_freq 属性设置为所需值,以 HZ 为单位。该值应该介于 0 和 32767 之间(包含两者)。否则,它将被拒绝并返回 EINVAL:
$ svccfg -s keymap:default setprop keymap/console_beeper_freq=900 $ svcadm refresh keymap
要更改键盘蜂鸣器频率和控制台蜂鸣器频率的当前设置,请运行 kbd -i。
支持以下选项:
启用、禁用或替代键盘异常中止序列影响。缺省情况下,在大多数系统上,键盘异常中止序列会暂停操作系统。通常,该序列在 SPARC 系统的键盘上为 Stop-A 或 L1-A 和 Shift-Pause,在 x86 系统上为 F1-A 和 Shift-Pause,在串口控制台设备上为 BREAK。
可以使用该选项更改缺省的键盘行为。只有超级用户可以使用 -a 选项。
设置键盘或控制台的蜂鸣器频率。
将键盘蜂鸣器频率设置为操作数,以 HZ 为单位。请参见“操作数”部分。
将控制台蜂鸣器频率设置为操作数,以 HZ 为单位。请参见“操作数”部分。
打开或关闭键盘按键音。
启用按键音
禁用按键音
指定要进行设置的键盘设备。缺省设置为 /dev/kbd。
设置自动重复延迟,以毫秒为单位。
通过 keymap 服务设置键盘属性。除了 -d keyboard device 之外,该选项不能与任何其他选项一起使用。-i 选项指示键盘命令从 keymap 服务中的键盘属性读取和处理 keyclick 和 keyboard 异常中止缺省值。-i 选项只能由具有 "Device Security"(设备安全)权限配置文件的用户或角色使用。
返回正在使用的键盘布局代码,以及正在使用的自动重复延迟和自动重复频率。
如果与 -R 或 -D 选项一起使用,该选项将返回更改之前的值。
将键盘重置为刚打开电源时的设置。
设置自动重复速率,以毫秒为单位。
将键盘布局设置到内核。
如果指定了 language,则会将布局设置为 language。如果未指定 language,则会显示可用的布局列表,用以提示用户指定 language。请参见“操作数”部分。
返回正在使用的键盘的类型。
支持下列操作数:
所指定的要在内核中设置的频率值。该值的接收方是由 -b 选项指定的。该值应该介于 0 和 32767 之间,否则将会被拒绝并返回 EINVAL。
所指定的要在内核中设置的语言。如果未发现语言,则会列出受支持的语言以供选择。它仅适用于 -s 选项。
示例 1 显示键盘类型
以下示例显示了键盘类型:
example% kbd -t Type 4 Sun keyboard example%
示例 2 设置键盘缺省值
以下示例将键盘缺省值设置为 keymap 服务中指定的值:
example# kbd -i example#
示例 3 显示信息
以下示例显示了键盘类型和布局代码。它还显示了自动重复延迟和自动重复频率设置。
example% kbd -l type=4 layout=43 (0x2b) delay(ms)=500 rate(ms)=33 example%
示例 4 设置键盘自动重复延迟
以下示例设置键盘自动重复延迟:
example% kbd -D 300 example%
示例 5 设置键盘自动重复频率
以下示例设置键盘自动重复频率:
example% kbd -R 50 example%
示例 6 选择和设置键盘语言
以下示例从指定的语言列表中选择并设置键盘语言:
example% kbd -s 1. Albanian 16. Malta_UK 2. Belarusian 17. Malta_US 3. Belgian 18. Norwegian 4. Bulgarian 19. Portuguese 5. Croatian 20. Russian 6. Danish 21. Serbia-And-Montenegro 7. Dutch 22. Slove ...... To select the keyboard layout, enter a number [default n]: example%
以下示例设置指定的键盘语言:
example% kbd -s Dutch example%
示例 7 设置键盘蜂鸣器频率
以下示例设置键盘蜂鸣器频率:
example% kbd -b keyboard 1000 example%
键盘设备文件
有关下列属性的说明,请参见 attributes(5):
|
kmdb(1)、loadkeys(1)、svcs(1)、inetd(1M)、inetadm(1M)、svcadm(1M)、pppd(1M)、keytables(4)、attributes(5)、smf(5)、kb(7M)、zs(7D)、se(7D)、asy(7D)、virtualkm(7D)
某些服务器系统具有带有一个安全键位置的键开关,系统软件可以读取该键位置。该键位置覆盖了键盘异常中止序列影响的正常缺省值,并更改缺省值以禁用该影响。在这些系统上,当键开关位于安全位置时,键盘异常中止序列影响不能被可使用 kbd 实用程序设置的软件缺省值覆盖。
目前,没有方法可用来确定键盘单击设置的状态。
kdb 服务由服务管理工具 smf(5) 管理,其服务标识符为:
svc:/system/keymap:default
可以使用 svcadm(1M) 来对此服务执行管理操作(如启用、禁用或请求重新启动)。启动和重新启动该服务的职责已委托给 inetd(1M)。使用 inetadm(1M) 可以为该服务进行配置更改以及查看该服务的配置信息。可以使用 svcs(1) 命令来查询服务的状态。