Вопрос или проблема
Я вижу следующее предупреждение в dmesg
:
[ 2.631179] psmouse serio2: synaptics: Ваш тачпад (PNP: SYN1218 PNP0f13) сообщает, что он может поддерживать другой интерфейс. Если i2c-hid и hid-rmi не используются, вы можете попробовать установить psmouse.synaptics_intertouch в 1 и сообщить об этом на [email protected].
...
[ 2.819449] input: SynPS/2 Synaptics TouchPad как /devices/platform/i8042/serio2/input/input10
Тачпад работает, но мне кажется, что он не работает так хорошо, как раньше. Я использую Gentoo с пользовательским ядром. Недавно я переключился на другие дистрибутивы и вернулся к Gentoo, полностью перенастроив ядро. Я не думаю, что сделал что-то необычное в отношении устройств ввода, так что это возможно является ошибкой, как указано в dmesg
.
$ uname -r
5.1.4-gentoo
$ grep -E 'INPUT|I2C_HID|HID_RMI' .config
CONFIG_RFKILL_INPUT=y
CONFIG_INPUT=y
CONFIG_INPUT_LEDS=m
CONFIG_INPUT_FF_MEMLESS=y
CONFIG_INPUT_POLLDEV=y
CONFIG_INPUT_SPARSEKMAP=m
# CONFIG_INPUT_MATRIXKMAP не установлен
# CONFIG_INPUT_MOUSEDEV не установлен
# CONFIG_INPUT_JOYDEV не установлен
CONFIG_INPUT_EVDEV=y
# CONFIG_INPUT_EVBUG не установлен
CONFIG_INPUT_KEYBOARD=y
CONFIG_INPUT_MOUSE=y
CONFIG_INPUT_JOYSTICK=y
CONFIG_INPUT_TABLET=y
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_INPUT_MISC=y
# CONFIG_INPUT_AD714X не установлен
# CONFIG_INPUT_BMA150 не установлен
# CONFIG_INPUT_E3X0_BUTTON не установлен
# CONFIG_INPUT_MSM_VIBRATOR не установлен
# CONFIG_INPUT_PCSPKR не установлен
# CONFIG_INPUT_MMA8450 не установлен
# CONFIG_INPUT_APANEL не установлен
# CONFIG_INPUT_ATLAS_BTNS не установлен
# CONFIG_INPUT_ATI_REMOTE2 не установлен
# CONFIG_INPUT_KEYSPAN_REMOTE не установлен
# CONFIG_INPUT_KXTJ9 не установлен
# CONFIG_INPUT_POWERMATE не установлен
# CONFIG_INPUT_YEALINK не установлен
# CONFIG_INPUT_CM109 не установлен
# CONFIG_INPUT_UINPUT не установлен
# CONFIG_INPUT_PCF8574 не установлен
# CONFIG_INPUT_ADXL34X не установлен
# CONFIG_INPUT_IMS_PCU не установлен
# CONFIG_INPUT_CMA3000 не установлен
# CONFIG_INPUT_IDEAPAD_SLIDEBAR не установлен
# CONFIG_INPUT_DRV2665_HAPTICS не установлен
# CONFIG_INPUT_DRV2667_HAPTICS не установлен
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
CONFIG_USB_PWC_INPUT_EVDEV=y
CONFIG_SND_JACK_INPUT_DEV=y
# CONFIG_SND_HDA_INPUT_BEEP не установлен
CONFIG_HID_RMI=y
CONFIG_I2C_HID=y
Если i2c-hid и hid-rmi не используются
Мой вопрос: как проверить, не используются ли они?
вы можете попробовать установить psmouse.synaptics_intertouch в 1
$ sudo sysctl -a | grep "psmouse.synaptics_intertouch"
Ничего не возвращает, поэтому нечего устанавливать.
Если вы скомпилировали i2c-hid
и hid-rmi
как модули, вы можете проверить, были ли они автоматически загружены или же всё ломается, когда вы их выгружаете.
$ sudo sysctl -a | grep “psmouse.synaptics_intertouch
Ничего не возвращает, поэтому нечего устанавливать.
Это параметр командной строки ядра. В качестве альтернативы, если вы скомпилировали psmouse как модуль, вы можете выгрузить его и снова загрузить через modprobe, передавая synaptics_intertouch=1
в качестве параметра.
Ответ или решение
Для проверки использования i2c-hid
и hid-rmi
для вашего сенсорного устройства, как предполагается в предупреждении из dmesg
, следует учитывать несколько аспектов, связанных с загрузкой ядра и модулями. Код dmesg
, который вы наблюдаете, указывает на то, что, возможно, управление сенсорной панелью не оптимально и рекомендуется использовать другие драйверы.
Теория: В Linux система устройства, такие как сенсорные панели, могут поддерживать разные интерфейсы и драйверы. Ваше устройство, судя по информации из dmesg
, может использовать i2c и HID протоколы, которые более продвинуты по сравнению с PS/2. Драйверы i2c-hid
и hid-rmi
разработаны для оптимального использования этих протоколов с повышенной функциональностью и отзывчивостью. Когда система загружает ядро, она может выбрать использование одного из них, если это предусмотрено вашей конфигурацией ядра и настройками системы.
Пример: Из вашей конфигурации ядра .config
, вы отметили, что и CONFIG_HID_RMI=y
, и CONFIG_I2C_HID=y
установлены. Это говорит о том, что ядро поддерживает данные модули. Для проверки их фактического использования можно выполнить несколько шагов.
Применение:
-
Проверка загруженных модулей:
- Выполните команду
lsmod
в терминале. Это покажет все загруженные модули ядра. Обратите внимание на наличиеi2c_hid
иhid_rmi
в списке.
- Выполните команду
-
Проверка устройств:
- Используйте команду
i2cdetect
(доступна в пакетеi2c-tools
) для проверки наличия i2c-устройств. Это может указать на использование i2c-шины вашим сенсорным устройством.
- Используйте команду
-
Логирование устройств:
- Посмотрите содержимое
/proc/bus/input/devices
, чтобы увидеть, какое устройство и какой драйвер используется для сенсорной панели.
- Посмотрите содержимое
-
Тестирование конфигурации ядра:
- Попробуйте выгрузить модули и загрузить их снова, чтобы проверить реакцию системы. Например, командой
rmmod i2c_hid
иrmmod hid_rmi
, затемmodprobe i2c_hid
иmodprobe hid_rmi
.
- Попробуйте выгрузить модули и загрузить их снова, чтобы проверить реакцию системы. Например, командой
-
Использование параметров загрузки:
- Если указанные модули не загружены, попробуйте изменить параметры загрузки. Настройки можно применить через
grub
(добавив опции) или конфигурационные файлы модулей. Дляpsmouse
, если он скомпилирован как модуль, попробуйте командуmodprobe -r psmouse
иmodprobe psmouse synaptics_intertouch=1
.
- Если указанные модули не загружены, попробуйте изменить параметры загрузки. Настройки можно применить через
Следуя этим шагам, вы сможете определить и настроить наиболее эффективное использование драйверов для вашей сенсорной панели, что могут привести к улучшению её производительности.