1.\" 2.\" Copyright (c) 1999 3.\" Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> 4.\" All rights reserved. 5.\" 6.\" Redistribution and use in source and binary forms, with or without 7.\" modification, are permitted provided that the following conditions 8.\" are met: 9.\" 1. Redistributions of source code must retain the above copyright 10.\" notice, this list of conditions and the following disclaimer as 11.\" the first lines of this file unmodified. 12.\" 2. Redistributions in binary form must reproduce the above copyright 13.\" notice, this list of conditions and the following disclaimer in the 14.\" documentation and/or other materials provided with the distribution. 15.\" 16.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 17.\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 18.\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 19.\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 20.\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 21.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 22.\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 23.\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24.\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 25.\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26.\" 27.\" $FreeBSD$ 28.\" 29.Dd January 29, 2008 30.Dt ATKBD 4 31.Os 32.Sh NAME 33.Nm atkbd 34.Nd the AT keyboard interface 35.Sh SYNOPSIS 36.Cd "options ATKBD_DFLT_KEYMAP" 37.Cd "makeoptions ATKBD_DFLT_KEYMAP=_keymap_name_" 38.Cd "options KBD_DISABLE_KEYMAP_LOAD" 39.Cd "device atkbd" 40.Pp 41In 42.Pa /boot/device.hints : 43.Cd hint.atkbd.0.at="atkbdc" 44.Cd hint.atkbd.0.irq="1" 45.Sh DESCRIPTION 46The 47.Nm 48driver, together with the 49.Nm atkbdc 50driver, provides access to the AT 84 keyboard or the AT enhanced keyboard 51which is connected to the AT keyboard controller. 52.Pp 53This driver is required for the console driver 54.Xr syscons 4 . 55.Pp 56There can be only one 57.Nm 58device defined in the kernel configuration file. 59This device also requires the 60.Nm atkbdc 61keyboard controller to be present. 62The 63.Em irq 64number must always be 1; there is no provision of changing the number. 65.Ss Function Keys 66The AT keyboard has a number of function keys. 67They are numbered as follows and can be associated with strings 68by the 69.Xr kbdcontrol 1 70command. 71You can use a keyboard map file (see 72.Xr kbdmap 5 ) 73to map them to arbitrary keys, particularly 74the functions in the range from 65 to 96 75which are not used by default. 76.Pp 77.Bl -tag -width "Function Key Number" -compact 78.It "Function Key number" 79Function Key 80.It "1, 2,...12" 81F1, F2,...\& F12 82.It "13, 14,...24" 83Shift+F1, Shift+F2,...\& Shift+F12 84.It "25, 26,...36" 85Ctl+F1, Ctl+F2,...\& Ctl+F12 86.It "37, 38,...48" 87Shift+Ctl+F1, Shift+Ctl+F2,...\& Shift+Ctl+F12 88.It 49 89Home and Numpad 7 (without NumLock) 90.It 50 91Up Arrow and Numpad 8 (without NumLock) 92.It 51 93Page Up and Numpad 9 (without NumLock) 94.It 52 95Numpad - 96.It 53 97Left Arrow and Numpad 4 (without NumLock) 98.It 54 99Numpad 5 (without NumLock) 100.It 55 101Right Arrow and Numpad 6 (without NumLock) 102.It 56 103Numpad + 104.It 57 105End and Numpad 1 (without NumLock) 106.It 58 107Down Arrow and Numpad 2 (without NumLock) 108.It 59 109Page Down and Numpad 3 (without NumLock) 110.It 60 111Ins and Numpad 0 (without NumLock) 112.It 61 113Del 114.It 62 115Left GUI Key 116.It 63 117Right GUI Key 118.It 64 119Menu 120.It "65, 66,...96" 121free (not used by default) 122.El 123.Pp 124See the man page for the 125.Xr kbdcontrol 1 126command for how to assign a string to the function key. 127.Sh DRIVER CONFIGURATION 128.Ss Kernel Configuration Options 129The following kernel configuration options control the 130.Nm 131driver. 132.Bl -tag -width ATKBD_DFLT 133.It Em ATKBD_DFLT_KEYMAP 134This option sets the default, built-in keymap of the 135.Nm 136driver to the named keymap. 137See 138.Sx EXAMPLES 139below. 140.It Em KBD_DISABLE_KEYMAP_LOAD 141The keymap can be modified by the 142.Xr kbdcontrol 1 143command. 144This option will disable this feature and prevent the user from 145changing key assignment. 146.El 147.Pp 148.Ss Driver Flags 149The 150.Nm 151driver accepts the following driver flags. 152They can be set either in 153.Pa /boot/device.hints , 154or else from within the boot loader 155(see 156.Xr loader 8 ) . 157.Bl -tag -width FAIL 158.It bit 0 (FAIL_IF_NO_KBD) 159By default the 160.Nm 161driver will install even if a keyboard is not actually connected to the 162system. 163This option prevents the driver from being installed in this situation. 164.It bit 1 (NO_RESET) 165When this option is given, the 166.Nm 167driver will not reset the keyboard when initializing it. 168It may be useful for laptop computers whose function keys 169have special functions and these functions are forgotten when the 170keyboard is reset. 171.It bit 2 (ALT_SCANCODESET) 172Certain keyboards, such as those on some ThinkPad models, behave 173like the old XT keyboard and require this option. 174.It bit 3 (NO_PROBE_TEST) 175When this option is given, the 176.Nm 177driver will not test the keyboard port during the probe routine. 178Some machines hang during boot when this test is performed. 179.El 180.\".Sh FILES 181.Sh EXAMPLES 182The 183.Nm 184driver requires the keyboard controller 185.Nm atkbdc . 186Thus, the kernel configuration file should contain the following lines. 187.Pp 188.Dl "device atkbdc" 189.Dl "device atkbd" 190.Pp 191The following example shows how to set the default, built-in keymap 192to 193.Pa jp.106.kbd . 194.Pp 195.Dl "device atkbdc" 196.Dl "options ATKBD_DFLT_KEYMAP" 197.Dl "makeoptions ATKBD_DFLT_KEYMAP=jp.106" 198.Dl "device atkbd" 199.Pp 200In both cases, you also need to have following lines in 201.Pa /boot/device.hints . 202.Pp 203.Dl hint.atkbdc.0.at="isa" 204.Dl hint.atkbdc.0.port="0x060" 205.Dl hint.atkbd.0.at="atkbdc" 206.Dl hint.atkbd.0.irq="1" 207.\".Sh DIAGNOSTICS 208.\".Sh CAVEATS 209.\".Sh BUGS 210.Sh SEE ALSO 211.Xr kbdcontrol 1 , 212.Xr atkbdc 4 , 213.Xr psm 4 , 214.Xr syscons 4 , 215.Xr kbdmap 5 , 216.Xr loader 8 217.Sh HISTORY 218The 219.Nm 220driver first appeared in 221.Fx 3.1 . 222.Sh AUTHORS 223.An -nosplit 224The 225.Nm 226driver was written by 227.An S\(/oren Schmidt Aq sos@FreeBSD.org 228and 229.An Kazutaka Yokota Aq yokota@FreeBSD.org . 230This manual page was written by 231.An Kazutaka Yokota . 232