[Bug 513650] [NEW] console_ioctl KDGETLED does not work ubuntu 9.04 2.6.28-15
Launchpad Bug Tracker
513650 at bugs.launchpad.net
Thu Jan 28 07:56:02 UTC 2010
You have been subscribed to a public bug:
1.) when i run the program, i get always "0" for CAPS LOCK LED status in ubuntu 9.04 2.6.28-15 generic.
i toggled caps lock on-off and program gives "0".
2.) The code works in ubuntu 8.04 2.6.24-16 and other 8.04 releases.
#include <stdio.h>
#include <fcntl.h>
#include <sys/stat.h>
#include <linux/kd.h> /* Keyboard IOCTLs */
#include <sys/ioctl.h> /* ioctl() */
#include <sys/types.h>
#define ERROR -1
int fd; /* Console fd (/dev/tty). Used as fd in ioctl() */
long int arg; /* Where the LED states will be put into. */
void checkleds();
void main()
{
/* To use as the fd in ioctl(). */
if ((fd = open("/dev/console", O_NOCTTY)) == ERROR) {
perror("open");
exit(ERROR);
}
/* Value stored in arg. */
if (ioctl(fd, KDGETLED, &arg) == ERROR) {
perror("ioctl");
close(fd);
exit(ERROR);
}
/* Here we print out current LEDS. */
checkleds();
}
void checkleds()
{
/* LED_SCR = 0x1, LED_NUM = 0x2, LED_CAP = 0x4 */
if (arg == LED_SCR) printf("Scroll Lock LED is on.\n");
else if (arg == LED_NUM) printf("Numeric Lock LED is on.\n");
else if (arg == LED_CAP) printf("Caps Lock LED is on.\n");
else if (arg == LED_NUM + LED_CAP)
printf("Numeric Lock and Caps Lock LEDs are on.\n");
else if (arg == LED_NUM + LED_SCR)
printf("Numeric Lock and Scroll Lock LEDs are on.\n");
else if (arg == LED_CAP + LED_SCR)
printf("Caps Lock and Scroll Lock LEDs are on.\n");
else if (arg == LED_NUM + LED_SCR + LED_CAP)
printf("Numeric Lock, Scroll Lock, and Caps Lock LEDs are on.\n");
}
** Affects: linux (Ubuntu)
Importance: Undecided
Assignee: Kernel Bugs (kernel-bugs)
Status: New
--
console_ioctl KDGETLED does not work ubuntu 9.04 2.6.28-15
https://bugs.launchpad.net/bugs/513650
You received this bug notification because you are a member of Kernel Bugs, which is a bug assignee.
More information about the kernel-bugs
mailing list