ATKBD(4)
πΈ atkbd(4) β the AT keyboard interface, but make it bestie πΈ
okay so you opened the atkbd(4) page from the Kernel Interfaces Manual and you're like βwhat is this keyboard driver tea?β β don't worry, I got you. this is literally the manual page but with the vibes turned all the way up. no cap, every detail is still here. π
π NAME π
atkbd β the AT keyboard interface. that's it. that's the whole vibe. πΉβ¨
β¨ SYNOPSIS β¨
here's the config tea, bestie. copy these exactly, okay? π
options ATKBD_DFLT_KEYMAP
makeoptions ATKBD_DFLT_KEYMAP=_keymap_name_
options KBD_DISABLE_KEYMAP_LOAD
device atkbd
In /boot/device.hints:
hint.atkbd.0.at="atkbdc"
hint.atkbd.0.irq="1"
π DESCRIPTION π
so the atkbd driver, together with the atkbdc driver, gives you access to the AT 84 keyboard or the AT enhanced keyboard that's connected to the AT keyboard controller. it's giving βkeyboard middlemanβ energy. π§
this driver is required for the console driver syscons(4) or vt(4). so like, you literally need it if you want a console. periodt. π
there can be only one atkbd device defined in the kernel configuration file. this device also requires the atkbdc keyboard controller to be present. and the irq number must always be 1 β there is no provision of changing the number. so don't even try it, bestie. it's not that kind of party. π«
π Function Keys π
the AT keyboard has a number of function keys. they are numbered as follows and can be associated with strings by the kbdcontrol(1) command. you can use a keyboard map file (see kbdmap(5)) to map them to arbitrary keys, particularly the functions in the range from 65 to 96 which are not used by default. so much potential β¨
1, 2,...12βF1, F2,... F1213, 14,...24βShift+F1, Shift+F2,... Shift+F1225, 26,...36βCtl+F1, Ctl+F2,... Ctl+F1237, 38,...48βShift+Ctl+F1, Shift+Ctl+F2,... Shift+Ctl+F1249βHomeandNumpad 7(withoutNumLock)50βUp ArrowandNumpad 8(withoutNumLock)51βPage UpandNumpad 9(withoutNumLock)52βNumpad -53βLeft ArrowandNumpad 4(withoutNumLock)54βNumpad 5(withoutNumLock)55βRight ArrowandNumpad 6(withoutNumLock)56βNumpad +57βEndandNumpad 1(withoutNumLock)58βDown ArrowandNumpad 2(withoutNumLock)59βPage DownandNumpad 3(withoutNumLock)60βInsandNumpad 0(withoutNumLock)61βDel62βLeft GUI Key63βRight GUI Key64βMenu65, 66,...96β free (not used by default)
want to assign a string to a function key? the man page for the kbdcontrol(1) command has the tea. go sip. π΅
π§ DRIVER CONFIGURATION π§
okay so the atkbd driver has some knobs you can turn. let's get into it. π οΈ
πΈ Kernel Configuration Options πΈ
the following kernel configuration options control the atkbd driver.
ATKBD_DFLT_KEYMAPβ this option sets the default, built-in keymap of theatkbddriver to the named keymap. see βEXAMPLESβ below. πKBD_DISABLE_KEYMAP_LOADβ the keymap can be modified by thekbdcontrol(1)command. this option will disable this feature and prevent the user from changing key assignment. so it's like a lock π for your keymap.
π¦ Driver Flags π¦
the atkbd driver accepts the following driver flags. they can be set either in /boot/device.hints, or else from within the boot loader (see loader(8)). pick your fighter π
- bit 0 (
FAIL_IF_NO_KBD) β by default theatkbddriver will install even if a keyboard is not actually connected to the system. this option prevents the driver from being installed in this situation. so if you want it to fail when there's no keyboard, this is your bit. π - bit 1 (
NO_RESET) β when this option is given, theatkbddriver will not reset the keyboard when initializing it. it may be useful for laptop computers whose function keys have special functions and these functions are forgotten when the keyboard is reset. so it's like βdon't forget my special keysβ energy. π - bit 2 (
ALT_SCANCODESET) β certain keyboards, such as those on some ThinkPad models, behave like the old XT keyboard and require this option. thinkpad girlies, this one's for you. π - bit 3 (
NO_PROBE_TEST) β when this option is given, theatkbddriver will not test the keyboard port during the probe routine. some machines hang during boot when this test is performed. so if your machine is dramatic, this bit is the fix. π
π EXAMPLES π
here's where it gets practical. the atkbd driver requires the keyboard controller atkbdc. thus, the kernel configuration file should contain the following lines. π
device atkbdc
device atkbd
the following example shows how to set the default, built-in keymap to jp.106.kbd. πΈ
device atkbdc
options ATKBD_DFLT_KEYMAP
makeoptions ATKBD_DFLT_KEYMAP=jp.106
device atkbd
in both cases, you also need to have following lines in /boot/device.hints. don't forget these, bestie. π«Ά
hint.atkbdc.0.at="isa"
hint.atkbdc.0.port="0x060"
hint.atkbd.0.at="atkbdc"
hint.atkbd.0.irq="1"
π SEE ALSO π
check out these besties π―ββοΈ
π HISTORY π
the atkbd driver first appeared in FreeBSD 3.1. vintage β¨
π AUTHORS π
the atkbd driver was written by SΓΈren Schmidt <sos@FreeBSD.org> and Kazutaka Yokota <yokota@FreeBSD.org>. this manual page was written by Kazutaka Yokota. legends only. π
this page is from Debian, dated January 29, 2008. stay slay, bestie. π β¨
π¦ where this page comes from
- freebsd 14.5: base 14.5
- freebsd 15.1: base 15.1
- nixpkgs unstable: source
- Copyright (c) 1999 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms