ioctl_kd(2) System Calls Manual ioctl_kd(2) BEZEICHNUNG ioctl_kd - Ioctls fur Konsolen-Terminal und virtuelle Konsolen UBERSICHT #include /* Definition der op-Konstanten */ #include int ioctl(int dd, unsigned long op, void *argz); BESCHREIBUNG Die folgenden, Linux-spezifischen ioctl(2)-Aktionen werden fur Konsolen-Terminals und virtuelle Konsolen unterstutzt. KDGETLED Ermittelt den Zustand der LEDs. argz zeigt auf ein char. Die unteren drei Bits von *argz werden wie folgt auf den Zustand der LEDs gesetzt: LED_CAP 0x04 Feststelltaste-LED LED_NUM 0x02 Num-LED LED_SCR 0x01 Rollen-LED KDSETLED Setzt die LEDs. Die LEDs werden so gesetzt, dass sie den niedrigeren drei Bits des vorzeichenlosen >>long integer<< argz entsprechen. Falls allerdings ein >>higher order<<-Bit gesetzt ist, kehren die LEDs zum Normalzustand zuruck: Anzeige des Status der Tastaturfunktionen >>Feststellen<<, >>Num<< und >>Rollen<<. Vor Linux 1.1.54 gaben die LEDs lediglich den Zustand der entsprechenden Tastaturschalter wieder und KDGETLED/KDSETLED wurde auch die Tastaturschalter andern. Seit Linux 1.1.54 konnen mit den LEDs beliebige Informationen dargestellt werden, aber standardmassig zeigen sie die Tastaturschalter an. Die folgenden zwei Ioctls werden zum Zugriff auf die Tastaturschalter verwandt: KDGKBLED Ermittelt die Tastaturschalter CapsLock, NumLock, ScrollLock (nicht Lichter). argz zeigt auf ein char, der auf den Schalterzustand gesetzt ist. Die niedrigrangigen drei Bits (Maske 0x7) erhalten den aktuellen Schalterzustand und die niedrigrangigen Bits des nachsten Halbbytes (Maske 0x70) erhalten den Standardschalterzustand. (Seit Linux 1.1.54) KDSKBLED Setzt die Tastaturschalter CapsLock, NumLock, ScrollLock (nicht die LEDs). argz ist ein vorzeichenloser >>long integer<<, der den gewunschten Schalterzustand enthalt. Die niedrigrangigen drei Bits (Maske 0x7) enthalten den Schalterzustand und die niedrigrangigen Bits des nachsten Halbbytes (Maske 0x70) enthalten den Standardschalterzustand. (Seit Linux 1.1.54) KDGKBTYPE Tastaturtyp ermitteln. Dies liefert den Wert KB_101, definiert als 0x02. KDADDIO E/A-Port als gultig hinzufugen. Aquivalent zu ioperm(arg,1,1). KDDELIO E/A-Port als gultig loschen. Aquivalent zu ioperm(arg,1,0). KDENABIO E/A zur Graphikkarte aktivieren. Aquivalent zu ioperm(0x3b4, 0x3df-0x3b4+1, 1). KDDISABIO E/A zur Graphikkarte deaktivieren. Aquivalent zu ioperm(0x3b4, 0x3df-0x3b4+1, 0). KDSETMODE Text-/Graphikmodus setzen. argz ist ein vorzeichenloser >>long integer<<, der eines der folgenden enthalt: KD_TEXT 0x00 KD_GRAPHICS 0x01 KDGETMODE Text-/Graphikmodus ermitteln. argz zeigt auf ein int, der auf einen der oben fur KDSETMODE gezeigten Werte gesetzt wird. KDMKTONE Erzeugt einen Ton der angegebenen Lange. Die niedrigen 16 Bits des vorzeichenlosen >>long integer<< in argz legen die Periode in Uhrzyklen fest und die hoheren 16 Bits ergeben die Dauer in ms. Falls die Dauer Null ist, wird der Klang abgestellt. Die Steuerung kehrt sofort zuruck. Beispielsweise wurde argz = (125<<16) + 0x637 den Klang festlegen, der normalerweise mit Strg-G verbunden ist. (So seit Linux 0.99pl1; defekt in Linux 2.1.49-50.) KIOCSOUND Beginnt oder beendet die Klangerzeugung. Die niedrigen 16 Bits von argz legen die Periode in Uhrzyklen fest (d.h. argz = 1193180/Frequenz). argz = 0 schaltet den Klang ab. In jedem Fall kehrt die Steuerung sofort zuruck. GIO_CMAP Ermittelt die aktuelle Vorgabefarbzuordnungstabelle des Kernels. argz zeigt auf ein 48-byte-Feld. (Seit Linux 1.3.3) PIO_CMAP Andert die Standardfarbtabelle im Textmodus. argz zeigt auf ein 48-byte- Feld, das in dieser Reihenfolge die Rot-, Grun- und Blauwerte fur die 16 verfugbaren Bildschirmfarben enthalt: 0 ist aus und 255 volle Intensitat. Die vorgegebenen Farben sind in dieser Reihenfolge: Schwarz, Dunkelrot, Dunkelgrun, Braun, Dunkelblau, Dunkelviolett, Dunkelzyan, Hellgrau, Dunkelgrau, Hellrot, Hellgrun, Gelb, Hellblau, Hellviolett, Hellzyan und Weiss. (Seit Linux 1.3.3) GIO_FONT Ermittelt die 256-Zeichen-Bildschirmschrift in expandierter Form. argz zeigt auf ein 8192-Byte-Feld. Schlagt mit Fehlercode EINVAL fehl, falls die derzeit geladene Schrift eine 512-Zeichen-Schrift ist oder falls sich die Konsole nicht im Textmodus befindet. GIO_FONTX Ermittelt die Bildschirmschrift und zugehorige Informationen. argz zeigt auf ein struct consolefontdesc (siehe PIO_FONTX). Beim Aufruf sollte das Feld charcount auf die maximale Anzahl von Zeichen gesetzt werden, die in den Puffer passen, auf den chardata zeigt. Bei der Ruckkehr sind charcount und charheight mit den respektiven Daten der aktuell geladenen Schrift gefullt und das Feld chardata enthalt die Schriftdaten, falls der ursprungliche Wert von charcount anzeigt, dass genug Raum verfugbar war. Andernfalls bleibt der Puffer unverandert und errno ist auf ENOMEM gesetzt. (Seit Linux 1.3.1) PIO_FONT Setzt die 256-Zeichen-Bildschirmschrift. Ladt Schrift in den EGA-/VGA-Zeichenerzeuger. argz zeigt auf eine 8192-Byte-Abbildung mit 32 Byte je Zeichen. Nur die ersten N davon werden fur eine 8xN-Schrift (0 < N <= 32) benutzt. Dieser Aufruf annuliert ausserdem das Abbilden per Unicode. PIO_FONTX Bildschirmschrift und zugehorige Renderinginformation setzen. argz zeigt auf ein struct consolefontdesc { unsigned short charcount; /* Zeichen in Schrift (256 oder 512) */ unsigned short charheight; /* Scanzeilen pro Zeichen (1-32) */ char *chardata; /* Schriftdaten in expandierter Form */ }; Falls notig, wird die Grosse des Bildschirms entsprechend geandert und SIGWINCH an die entsprechenden Prozesse gesandt. Dieser Aufruf annuliert ausserdem das Abbilden per Unicode. (Seit Linux 1.3.1) PIO_FONTRESET Setzt die Bildschirmschrift, Grosse und das Abbilden per Unicode auf die Voreinstellungen beim Systemstart zuruck. argz wird nicht benutzt, sollte aber auf NULL gesetzt werden, um Kompatibilitat mit zukunftigen Versionen von Linux sicherzustellen. (Seit Linux 1.3.28) GIO_SCRNMAP Holt Bildschirmabbildung vom Kernel. argz zeigt auf einen Bereich der Grosse E_TABSZ, der mit den benutzten Schriftpositionen geladen wird, um jedes Zeichen anzuzeigen. Dieser Aufruf wird wahrscheinlich nutzlose Informationen zuruckgeben, falls die derzeit geladene Schrift mehr als 256 Zeichen hat. GIO_UNISCRNMAP Holt vollstandige Unicode-Bildschirmabbildung vom Kernel. argz zeigt auf einen Bereich der Grosse E_TABSZ*sizeof(unsigned short), der mit den Unicodes geladen ist, die jedes Zeichen darstellen. Ein besonderer Satz von Unicodes, der bei U+F000 anfangt, wird benutzt, um >>direkt zur Schrift<<-Abbildungen darzustellen. (Seit Linux 1.3.1) PIO_SCRNMAP Ladt die >>benutzerdefinierbare<< (vierte) Tabelle in den Kernel, die Bytes auf Konsolenschriftsymbole abbildet. argz zeigt auf ein Feld der Grosse E_TABSZ. PIO_UNISCRNMAP Ladt die >>benutzerdefinierbare<< (vierte) Tabelle in den Kernel, die Bytes in Unicodes abbildet, die dann gemass der derzeit geladenen Unicode-in-Schrift-Abbildung in Bildschirmsymbole ubersetzt werden. Besondere Unicodes beginnen bei U+F000 und konnen benutzt werden, um direkt auf die Schriftsymbole abzubilden. (Seit Linux 1.3.1) GIO_UNIMAP Holt Unicode-in-Schrift-Abbildung vom Kernel. argz zeigt auf ein struct unimapdesc { unsigned short entry_ct; struct unipair *entries; }; wobei entries auf ein Feld der folgenden Form zeigt: struct unipair { unsigned short unicode; unsigned short fontpos; }; (seit Linux 1.1.92) PIO_UNIMAP Hinterlegt Unicode-in-Schrift-Abbildung im Kernel. argz zeigt auf ein struct unimapdesc. (Seit Linux 1.1.92) PIO_UNIMAPCLR Leert die Tabelle, informiert moglicherweise uber den Hash-Algorithmus. argz zeigt auf ein struct unimapinit { unsigned short advised_hashsize; /* 0 falls keine Meinung */ unsigned short advised_hashstep; /* 0 falls keine Meinung */ unsigned short advised_hashlevel; /* 0 falls keine Meinung */ }; (seit Linux 1.1.92) KDGKBMODE Ermittelt aktuellen Tastaturmodus. argz zeigt auf einen long, der auf einen der folgenden Werte gesetzt wird: K_RAW 0x00 /* Roher (Scancode-)Modus */ K_XLATE 0x01 /* Keycodes mittels Keymap ubersetzen */ K_MEDIUMRAW 0x02 /* Medium-roher (Scancode-)Modus */ K_UNICODE 0x03 /* Unicode-Modus */ K_OFF 0x04 /* Deaktivierter Modus; seit Linux 2.6.39 */ KDSKBMODE Aktuellen Tastaturmodus setzen. argz ist ein long, der zu einem der oben fur KDGKBMODE gezeigten Werte identisch ist. KDGKBMETA Ermittelt den Metatasten-Handhabungsmodus. argz zeigt auf einen long, der auf einen der folgenden gesetzt ist: K_METABIT 0x03 setzt signifikantestes Bit K_ESCPREFIX 0x04 Maskierungsvorsatz KDSKBMETA Setzt den Metatasten-Handhabungsmodus. argz zeigt auf einen long, der auf einen der fur KDGKBMETA gezeigten Werte gesetzt ist. KDGKBENT Ermittelt einen Eintrag in der Tastenubersetzungstabelle (Tastencode zu Aktionscode). argz zeigt auf ein struct kbentry { unsigned char kb_table; unsigned char kb_index; unsigned short kb_value; }; wobei die ersten zwei Eintrage ausgefullt sind: kb_table wahlt die Tastentabelle (0 <= kb_table < MAX_NR_KEYMAPS) und kb_index ist der Tastencode (0 <= kb_index < NR_KEYS). kb_value wird auf den entsprechenden Aktionscode oder K_HOLE, falls es keine solche Taste gibt, oder K_NOSUCHMAP, falls kb_table ungultig ist, gesetzt. KDSKBENT Wahlt einen Eintrag in der Ubersetzungstabelle aus. argz zeigt auf ein struct kbentry. KDGKBSENT Ermittelt eine Funktionstastenzeichenkette. argz zeigt auf ein struct kbsentry { unsigned char kb_func; unsigned char kb_string[512]; }; kb_string wird auf die (Null-terminierte) Zeichenkette gesetzt, die dem Aktionscode der kb_funcn Funktionstaste entspricht. KDSKBSENT Setzt einen Funktionstastenzeichenketteneintrag. argz zeigt auf ein struct kbsentry. KDGKBDIACR Liest die Akzenttabelle des Kernels. argz zeigt auf ein struct kbdiacrs { unsigned int kb_cnt; struct kbdiacr kbdiacr[256]; }; wobei kb_cnt die Anzahl der Eintrage in dem Feld und jedes dieser ein folgendes ist: struct kbdiacr { unsigned char diacr; unsigned char base; unsigned char result; }; KDGETKEYCODE Liest den Kernel-Keycode-Tabelleneintrag (Scancode nach Keycode). argz zeigt auf ein struct kbkeycode { unsigned int scancode; unsigned int keycode; }; keycode wird so eingestellt, dass er dem ubergebenen scancode entspricht. (Nur 89 <= scancode <= 255. Fur 1 <= scancode <= 88, keycode==scancode.) (Seit Linux 1.1.63) KDSETKEYCODE Schreibt den Kernel-Tastaturcodetabelleneintrag. argz zeigt auf ein struct kbkeycode. (Seit Linux 1.1.63) KDSIGACCEPT Der aufrufende Prozess zeigt an, dass er das Signal argz akzeptiert, wenn dieses durch Drucken der entsprechenden Tastenkombination erzeugt wird. (1 <= argz <= NSIG). (Siehe spawn_console() in linux/drivers/char/keyboard.c.) RUCKGABEWERT Bei Erfolg wird 0 zuruckgegeben (ausser wo angegeben). Bei einem Fehlschlag wird -1 zuruckgegeben und errno gesetzt, um den Fehler anzuzeigen. FEHLER EINVAL argz ist ungultig. STANDARDS Linux. SIEHE AUCH ioctl(2), ioctl_console(2) UBERSETZUNG Die deutsche Ubersetzung dieser Handbuchseite wurde von Helge Kreutzmann erstellt. Diese Ubersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezuglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG ubernommen. Wenn Sie Fehler in der Ubersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Ubersetzer: . Linux man-pages 6.15 17. Mai 2025 ioctl_kd(2)