LINUX.ORG.RU
ФорумTalks

Добавить патч в драйвер клавиатуры

 


0

1

Приветствую котаны. Нужен ваш совет-подсказка.

Есть у меня ноут (и не только у меня судя по нытью по форумам) Dell Latitude 7350, с проблемой характерной только под Linux: периодически программно залипают рандомные клавиши, вплоть до нажатия любой следующей.

Методом долгих проб, тыков, матов, кореженья клавиатуры и заказа новой, была найдена и проблема и решение.

«Косяк» в драйвере ядра: https://github.com/torvalds/linux/blob/master/drivers/input/keyboard/atkbd.c, решение затрагивает одну строчку.

Немного напрягает коммент, как раз возле спорной строки: «is now delegated to userspace tools», и я немного не могу понять его суть: т.е. мы даем вам глючный драйвер, квирки в таблицу больше не добавляем, ни инфы ни уведомления о направлении глюка не даём, а если хотите - дрочитесь через юзерспейс ? Хотя через юзерспейс оно тоже работает, патч для починки клавы занимает одну строку в шелле.

Собственно вопрос по теме: нужно писать в пулл реквест гита ? Или есть какие-то другие места ? Стоит вообще заморачиваться с этим ?

★★★★★

мы даем вам драйвер для вашей глючной клавиатуры, квирки добавляйте сами

Починил.

Suigintou ★★★★★
()

Или есть какие-то другие места

Мне кажется, патч для конкретной этой проблемы нужно отправлять в https://github.com/systemd/systemd, потому что udev теперь живёт там. Патчить файл /hwdb.d/60-keyboard.hwdb. В файле используется восклицательный знак для пометки кодов клавиш, которые требуют костылей с force-release.

i-rinat ★★★★★
()

решение затрагивает одну строчку

Что-то я не вижу твоего патча.

скрипт для починки клавы занимает одну строку в шелле

Поправил тебя. Скрипта тоже не вижу.

CYB3R ★★★★★
()

пулл реквест гита

Какой ещё «пулл реквест гита»?

Или есть какие-то другие места

Как уже сказали, hwdb, который живёт в репозитории systemd. Это и есть «юзерспейс», о котором говорится в драйвере.

мы даем вам глючный драйвер

Мы даём вам универсальный драйвер. А если у вас глючное железо — дрочитесь через юзерспейс.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от intelfx

Я тебя понял. Короче лучше не заморачиваться, патчем пользоваться самому, а юзерам которые на профильных форумах советуют оставаться на работающей винде вместо глючного линукса - поставить лайки.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от i-rinat

Мне кажется, патч для конкретной этой проблемы нужно отправлять в https://github.com/systemd/systemd, потому что udev теперь живёт там. Патчить файл /hwdb.d/60-keyboard.hwdb. В файле используется восклицательный знак для пометки кодов клавиш, которые требуют костылей с force-release.

Спасибо, почитаю на досуге.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

Что-то я не вижу твоего патча.

И правильно. Сабж про коммиты, а не про обсуждение патча.

скрипт для починки клавы занимает одну строку в шелле

И правильно. Сабж про коммиты, а не про обсуждение скрипта.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от CYB3R

Ну так показывай коммиты тогда уж!

Обязательно.

windows10 ★★★★★
() автор топика
Ответ на: комментарий от chenbr0

В использовании линукса естественно.

Да вроде нет. Оно не говорит линуксу «нет», это просто кривой линуксячий драйвер сам себя ограничивает.

Другие ОС почему-то ограничивают, начиная с Винды и заканчивая МиньетОсью и MSDOS. Глючат только *никсы.

И почитав код драйвера, я в принципе понял почему: велосипеды подпертые костылями и работающие через жопу. Не, я конечно понимаю, базарный метод разработки, всё такое. Но чтобы не следовать спецификации i8042, а наплодить кучу подпорок, вызывая их в зависимости от вендора оборудования - это полный швах.

	.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Dell Computer Corporation"),
			DMI_MATCH(DMI_CHASSIS_TYPE, "8"), /* Portable */
		},
		.callback = atkbd_setup_forced_release,
		.driver_data = atkbd_dell_laptop_forced_release_keys,
	},
	{
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
			DMI_MATCH(DMI_PRODUCT_NAME, "HP 2133"),
		},
		.callback = atkbd_setup_forced_release,
		.driver_data = atkbd_hp_forced_release_keys,
	},

В общем зря я стал изучать код, мое идеализированное представление о Линуксе рухнуло. И БЗДуны туда же, видимо слепо своровали коТ )))

windows10 ★★★★★
() автор топика
Ответ на: комментарий от windows10

И почитав код драйвера, я в принципе понял почему: велосипеды подпертые костылями и работающие через жопу.

Ну так исправь. Показывай свой идеальный код. Можешь не мне кидать, а сразу в мэйлинг лист.

CYB3R ★★★★★
()
Ответ на: комментарий от CYB3R

Ну так исправь. Показывай свой идеальный код. Можешь не мне кидать, а сразу в мэйлинг лист.

Не знаю что это такое. Да и не интересно мне это уже. У меня работает, а остальные пусть пользуются нормальной ОС.

windows10 ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.