#linux-kernel #driver #linux-device-driver
#linux-ядро #драйвер #linux-device-driver
Вопрос:
когда я вижу результат cat /proc/bus/input/devices
, я вижу это:
I: Bus=0010 Vendor=0001 Product=0001 Version=0100
N: Name="aml_keypad"
P: Phys=keypad/input0
S: Sysfs=/devices/c8100580.rc/input/input0
U: Uniq=
H: Handlers=kbd mouse0 event0
B: PROP=0
B: EV=7
B: KEY=7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffff fffffffffffffffe
B: REL=103
Как я могу удалить обработчик из драйвера. (Я компилирую ядро для себя)
Например, я хочу удалить mouse0 из обработчиков
Комментарии:
1. Какую фактическую функциональную цель вы пытаетесь достичь здесь? Если ваша цель — скажем, отключить сенсорную панель, есть общепринятые способы сделать это.
2. Я хочу по-прежнему использовать устройство, но удалить из него функциональность мыши. (на самом деле это обязательно для меня, если вы знаете мой вариант использования) . возможно ли это? @ChrisStratton
3. Если вы отключите все функции мыши, вы можете настроить CONFIG_INPUT_MOUSEDEV
Ответ №1:
Чтобы удалить обработчик, достаточно просто прокомментировать соответствующий _set_bit
в исходном коде драйвера. В моем случае :
// __set_bit(BTN_MOUSE, dev->input_device->keybit);
// __set_bit(BTN_LEFT, dev->input_device->keybit);
// __set_bit(BTN_RIGHT, dev->input_device->keybit);
// __set_bit(BTN_MIDDLE, dev->input_device->keybit);
//
// __set_bit(EV_REL, dev->input_device->evbit);
// __set_bit(REL_X, dev->input_device->relbit);
// __set_bit(REL_Y, dev->input_device->relbit);
// __set_bit(REL_WHEEL, dev->input_device->relbit);
Приведенный выше фрагмент является частью этого файла.