Essential Linux Device Drivers 책에 있는 가상 마우스 드라이버를 실행하려고 하는데 /var/log/Xorg.0.log의 insmod를 사용하여 이 모듈을 커널에 로드하면 다음과 같은 내용이 표시됩니다.
[ 757.212] (II) config/udev: Adding input device (/dev/input/event10)
[ 757.212] (II) No identifier specified, ignoring this device.
Xorg가 이 장치를 무시하지 않도록 하려면 어떻게 해야 합니까? 아니면 커널 모듈 코드에 무엇을 추가해야 합니까?
답변1
입력 장치 드라이버에서 다음 코드 줄을 바꿔보세요.
set_bit(EV_REL, vms_input_dev->evbit);
set_bit(REL_X, vms_input_dev->relbit);
set_bit(REL_Y, vms_input_dev->relbit);
그리고
vms_input_dev->name = "Virtual Mouse";
vms_input_dev->phys = "vmd/input0"; // "vmd" is the driver's name
vms_input_dev->id.bustype = BUS_VIRTUAL;
vms_input_dev->id.vendor = 0x0000;
vms_input_dev->id.product = 0x0000;
vms_input_dev->id.version = 0x0000;
vms_input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_REL);
vms_input_dev->keybit[BIT_WORD(BTN_MOUSE)] = BIT_MASK(BTN_LEFT) | BIT_MASK(BTN_RIGHT) | BIT_MASK(BTN_MIDDLE);
vms_input_dev->relbit[0] = BIT_MASK(REL_X) | BIT_MASK(REL_Y);
vms_input_dev->keybit[BIT_WORD(BTN_MOUSE)] |= BIT_MASK(BTN_SIDE) | BIT_MASK(BTN_EXTRA);
vms_input_dev->relbit[0] |= BIT_MASK(REL_WHEEL);
우분투 12.04에서 작동합니다