Linux как устранить дребезг клавиатуры

Как устранить дребезг на механической клавиатуре?

Точннее не сам дребезг, а его последствия в виде дублирующихся символов. Есть механическая клавиатура, ии она иногда выдает два символа на одно ннажатие (специально не редактирую это сообщение). Как это побороть? Должна же быть где-то возможность задать задержку между приемами соседних нажатий?

Гугл на keyboard chattering/debouncing ничего полезного не выдал.

Переключатели? Чистить? Что за извра^W странности?

Спроси у отписавшихся выше, они знают.

так помогло решение Анона? Или всё равно есть повторы?

Пока повторов нет, но аргумент (время) я увеличил до 25.

Спасибо. И, напоследок, какие педали? Cherry Mx? цвет?

Синие. Ночью неудобно, кликают громко.

На топре переползай, краше нет. Silent версия вызывает слезы умиления. А тактильные ашушшения.

Пользователи механических клавиатур должны страдать [3]

Ибо задолбали весь день щелкать.

Нет никакого риска, хороший спирт электронике только на пользу

Спирт это как раз решение проблемы. А проблема в том, что в клавиатуру какого-то говна набилось под кнопки и корорит.

Спирт это как раз решение проблемы.

Вот как перестанет помогать программное решение, так и почищу.

еще бы цена на них адекватная была

Давно как существуют китайские клоны. Только под 35 грамм почему-то.

примеры ? китайских клав с вроде как черри вон полно за пару килорублей

Не, не то. Ко мне лично не приходили, но 35 — это перебор. 45 наше всё (это на Silence), на абычной — 55.

Каждый цент стоит. Привыкание в течении месяца, потом хоть плачь. Выход только один — носишь её, родимую. . Покупаешь и в офис.

этот каждый еще бы где-нибудь откопать

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

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

Источник

Тишина должна быть! или убираем щелчки в Ubuntu, когда ничего не играет

— Я — amlet, и я виндузятник 🙁
— Привет, amlet *applause*

В общем без долгих вступлений — короткая история решения проблемы появления щелчков, когда ничего не играет, с поправкой на ветер то, что я виндузятник, который хочет и пытается перейти на Linux. Может кому и пригодится. А тут ещё и сообщество закидает тухлыми помидоподскажет что-то: глядишь и умнее стану 😉

Начал я свой путь с Ubuntu. Погодите — рано кидатьНу потому что мне этот мир знаком только из сказокстатей, как на Linux всё радужно и здорово, но сразу в жесть падать типа Gentoo или Slackware инстинкт самосохранения не позволяет.

Так вот, поставил я на свой новенький, но уже явно устаревший Samsung NP350U2B (да, я ещё и самсунгу продался) Ubuntu последней версии, и стал жить-поживать, да чуда-чудное ждать, что всё станет само собой зашибись, всё рассосётся, мир во всём мире, а золотой дождь посыпится с неба… Да, Ubunt’а дала мне некоторые плюшки по сравнению с той же Windows 7, стоящей тут же на этом ноуте — самое заметное глазу: это меньшее количество тормозов — но счастье, как известно в мелочах (Стив, привет): выявилась одна раздражающая вещь, которая под горячуу руку ещё и жутко выбешивала…

Итак, краткое описание проблемы: когда не поступает никакого звука в наушники — начинаются щелчки, хотя должно быть просто тихо.

UPD: Тут описано решение, которое не до конца. Конечное решение проблемы вконце поста.

Особенностью проблемы было то, что если включить видео (например vlc) и поставить на паузу — щелчков не было. Я таким поганым хаком “решал” проблему несколько месяцев. Периодический поиск более конструкитивного решения проблемы постоянно приводил на подобные советы, которые к большому сожалению не очень-то совсем не работали 🙁

А тут как-то субботним вечером сел, чтобы радио-т послушать, а поскольку выпуск был негиковский, то от нечего делать решил увеличить свой локальный градус гиковости и решить-таки эту проблему окончательно. Кинул клич в чат (ну тут же гики вроде как собрались!). Откликнулся один товарищ — Sergey K., который навёл на файл:

и что в нём необходимо 1 на 0 поменять. Пообщались, он подтвердил мои подозрения, что это как-то с экономией батарейки связано и пр. Он ещё что-то рассказал о том, что после перезагрузки значение в этом файле вернётся на круги своя, поэтому написал какой-то там хитрый скрипт, который во время загрузки каждый раз редактирует этот файл.

Читайте также:  Топ файловых менеджеров для linux

Ну я не такой умный. Да и это не совсем тот путь, который я ожидал. Хотя огромное ему спасибо за наводку. Именно этот файл и стал той отправной точкой моего гугления и поисков информации в man, чтобы найти-таки решение проблемы. И вот она заветная ласточка, которая и привела к окончательному решению проблемы: PowerManagement/ReducedPower

Прочитав по диагонали (умение, приобретённое во время ускореенного чтения лицензионных соглашений на Windows) моё внимание привлёк путь:

$ ls /usr/lib/pm-utils/power.d/
95hdparm-apm
anacron
disable_wol
intel-audio-powersave
laptop-mode
pci_devices
pcie_aspm
sata_alpm
sched-powersave
usb_bluetooth
wireless
xfs_buffer

А что это у нас за intel-audio-powersave?

Листинг (не очень большой):

# Allow the driver to put the audio hardware to sleep
# once the driver has been inactive for a second.
# This hook should work with at least the ac97 and hda codecs.

help() <
cat «$dev/parameters/power_save» && echo Done. || echo Failed.
done
>

case $1 in
true) audio_powersave 1 ;;
false) audio_powersave 0 ;;
help) help;;
*) exit $NA
esac

После небольшого раздумывания и прикидывания на глаз, методом научного тыка было получено удовольствиебыло решено и в результате воплощено исправить строчку:

Потом перезагруз, ожидания окончания загрузки и… О чудо: щелчков вроде как не слышно! А что у нас в упоминаемом выше файле от Sergey K.:

$ cat /sys/module/snd_hda_intel/parameters/power_save
0

Радость, веселье и общая вакханалия от непомерной радости и собственной крутости прилагается 🙂

UPD: Чего добивался, то и получил. Первый же помидор был в яблочко. По наводке Manitou необходимо проделать:

$ echo «INTEL_AUDIO_POWERSAVE=false» > /etc/pm/config.d/snd_hda_intel

$ cat /sys/module/snd_hda_intel/parameters/power_save
0

Источник

Как устранить дребезг на механической клавиатуре?

Точннее не сам дребезг, а его последствия в виде дублирующихся символов. Есть механическая клавиатура, ии она иногда выдает два символа на одно ннажатие (специально не редактирую это сообщение). Как это побороть? Должна же быть где-то возможность задать задержку между приемами соседних нажатий?

Гугл на keyboard chattering/debouncing ничего полезного не выдал.

Этим занимается микросхема, управляющая клавой. Если микросхема не справляется, значит клаве пора на помойку.

Пользователи механических клавиатур должны страдать

А может какойто геркон или кондер перепаять?

Клава относительно новая. Кроме того, судя по гуглу, это частая проблема механических клавиатур. Так что не вариант.

А может какойто геркон или кондер перепаять?

Герконов там нет, а кондер. Если только добавить RC-цепочки, но я думаю программно это проще сделать.

Чтобы клава не дребезжяла, в ее льют кисель с хлебными крошками, данные природные материалы отлично справляются с гашением вибраций и не вредят экологии. Такие дела.

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

а точно проблема аппаратная? если в терминале вбить

Механика без RC-цепочки? Как-то неожиданно . Я думал что китайцы неважно пропаяли ее .

Гугл на keyboard chattering/debouncing ничего полезного не выдал.

Неправда, на специализированных сайтах это платина. Короче, переключатель рекомендуется активно жмакать, пока не пройдёт. Bouncing присущ любым Cherry MX, и бороться с ним должен контроллер. Видимо, у тебя дешёвое гогно.

У меня подобная проблема возникла после года использования blackwidow с клавишами k и h, при чём иногда печатало по 3-4 символа за нажатие. Для решения помог совет из этой ветки про заливание спирта под клавиши. Два месяца полёт нормальный.

так увеличь delay и будет тебе счастье) повторы символов должны исчезнуть

Осталась. У меня стоит 500 25, т.е. пол секунды до повтора. Дело не в задержке перед повтором.

Для решения помог совет из этой ветки про заливание спирта под клавиши. Два месяца полёт нормальный.

Неужели придется самому драйвер патчить?

При чём тут драйвер?

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

При том, что спирт — это костыльное решение. Может помочь, а может и не помочь, да еще на свой страх и риск. Тогда как патч драйвера — гарантировано и безопасно решает проблему.

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

А когда пол пылью покрывается, ты сразу паркет меняешь или моешь? 🙂

Читайте также:  Как правильно настроить linux mint

Патчит мозг, чтобы не замечать пыль

А когда пол пылью покрывается, ты сразу паркет меняешь или моешь? 🙂

Ты достал уже. Не хочу я ее разбирать и чистить, потому что она почти новая и чистая. Ты не понимаешь, что гораздо проще (и полезней кстати) написать заплатку для драйвера, чем каждый раз чистить кнопки?

Плюсую ТСа. Когда насру в унитаз тоже предпочитаю не смывать, а просто незамечать, что в нём насрано.

его последствия в виде дублирующихся символов

Для начала прочисти свитч. Такое бывает при попадании мелкого мусора (или волос, не проверял).

Если не поможет, то замени свитч на новый, они имеют свойство сходить с ума.

Должна же быть где-то возможность задать задержку между приемами соседних нажатий?

Этим занимается контроллер, но прежде чем его тиранить, попробуй решить проблему, а не обходить её.

Без разборки свитча (или хотя бы тщательной его продувки) я бы не стал этого делать, так как спирт может растворить мусор, попавший в свитч, он залипнет, и тогда придётся всё равно разбирать.

Чаще всего это действительно помогает. Но дуть лучше компрессором под малым давлением или баллончиком со сжатым воздухом, а не ртом, ибо пар → вода → коррозия → ещё большие глюки.

Тут уже советовали накапать спирта, а я посоветую смазать автомобильной силиконовой типа WD-40. Могу подтвердить что клаве от этого станет только лучше — на своей все свичи прокапал, брат жив, здоров, радуется. Кстати, модель то какая? Может там хардварный переключатель есть. И вообще, если, говоришь, ей не так много времени, то наверно можно и по гарантии обратиться и не морочить голову.

Почистить клавиатуру это костыльное решение, а писать костыли в драйвер — нет?

Перекатываться на Topre, где этот эффект невозможен.

Источник

Дребезг контактов клавиатуры.

У кнопок клавиатуры есть большой недостаток. За счет упругих свойств материала кнопка при нажатии замыкается не сразу, а многократно случайным образом «замыкается-размыкается». Это явление называется дребезгом контактов. Так как МП во много раз быстрее обрабатывает информацию, чем происходит этот процесс, последний может быть интерпретирован программой работы МП как многократное нажатие кнопки. Чтобы устранить это негативное явление применяют либо аппаратные средства устранения дребезга, либо программные. При аппаратном решении этого вопроса используется эффект R-S-триггера. При программной реализации идея устранения дребезга заключается в многократном считывании состояния кнопки до тех пор, пока ее фиксируемое состояние не станет устойчивым за заданный промежуток времени, характерный для окончания процессов дребезга. Пример функционального алгоритма устранения дребезга контактов приведен на рис.18, где В – предыдущее состояние кнопки; С – счетчик характерного времени дребезга; А – текущее состояние кнопки.

Рис.18

Асинхронный обмен.

До сих пор речь шла о синхронном обмене, когда ВУ «успевало» реагировать на команды МП. Если же внешнее устройство достаточно медленное, МП должен дождаться его реакции, иначе обмен будет сорван. Такой обмен с ожиданием реакции ВУ называется асинхронным. Для организации асинхронного обмена необходимо еще две управляющие шины (помимо «Запись» и «Чтение»): «Готовность» – ВУ сигнализирует МП, что оно готово (или не готово) к обмену; «Ожидание» – МП оповещает ВУ о том, что он его ждет. При этом взаимодействие МП и ВУ выглядит так, как показано на рисунке 19. На рисунке 20 приведен протокол обмена для асинхронного режима. Если ВУ не отвечает, то время ожидания может быть сколь угодно большим. Говорят, что МП «зависает». Такая ситуация недопустима при функционировании МПС и необходимо предусматривать меры для ее предотвращения.

Рис.19 Рис.20

Подводя итог рассмотрению программно-управляемого обмена, можно констатировать, что для его организации необходимо всего четыре управляющие шины: «Запись», «Чтение», «Готовность» и «Ожидание». Его особенностями (достоинствами и недостатками) являются:

· минимизация аппаратных затрат на создание блока сопряжения;

· значительные затраты времени работы МП по организации обмена с ВУ, особенно в режиме ожидания;

· увеличение программных затрат, связанных с взаимодействием с ВУ;

· пассивность ВУ, не способных инициировать обмен.

Таким образом, этот способ целесообразно использовать в тех случаях, когда быстродействие ВУ сравнимо с быстродействием МП, а управление обменом реализуется программно предельно просто.

Обмен по прерываниям.

Простота программно-управляемого ввода-вывода оборачивается «бездельем» МП, который почти все время находится в ожидании вво­да или вывода. Например, если на принтер выводится информация с быстродействием 1000 символов в секунду, то полезное время работы МП составит всего 0,1% и менее.

Читайте также:  Плеер для аудиокниг linux

При недопустимости такой ситуации требуется обеспечить такой режим работы МП, когда он выполняет две независимые программы, одна из которых — программа управления обменом с ВУ (программно-управляемый обмен) — вызывается только тогда, когда ВУ необходимо выполнить какие-то действия (аварийные, допусковые ситуации и др.). Указанный режим реализуется с помощью механизма прерываний. Данный способ представляет собой расширение «демократии» взаимодействия между элементами в системе и, как следствие, требует дополнительных организационных затрат: аппаратных и программных.

Для организации обмена по прерываниям необходимо дополнительно ввести две шины управления: «Запрос прерывания» (ЗПР) – ВУ запрашивает обслуживания у МП, «Разрешение прерывания» (РПР) – МП подтверждает начало обслуживания (рис.21).

Рис.21 Рис.22

На МП возлагаются следующие функции:

· принять сигнал ЗПР;

· завершить выполнение текущей команды основной программы;

· запомнить в стеке (ОЗУ) адрес следующей для исполнения команды;

· передать управление подпрограмме обработки прерывания (обслуживания запроса ВУ);

· выдать сигнал РПР.

Так как МП не «знает», где в запоминающем устройстве расположена подпрограмма обработки прерывания, он передает управление не ей, а команде ЗУ, расположенной чаще всего по адресу 0 (или любой другой, обусловленной схемотехникой МП). На программиста возлагается задача расположить по этому адресу команду передачи управления подпрограмме обработки запроса ВУ (см. рис.22).

Для корректного использования такого способа ввода-вывода между фоновой программой и программой обмена существуют некоторые соглашения. Так как основная программа будет продолжена, подпрограмма обработки прерывания ВУ должна:

1. Запомнить в стеке состояние всех используемых регистров основной программы.

2. Выполнить обмен информацией между МП и ВУ, устранив причину запроса.

3. Восстановить из стека состояние используемых регистров основной программы.

4. Передать управление в основную программу (адрес возврата находится в стеке).

МП может иметь несколько входов «Запрос прерывания», часть из которых обычно программно «маскируется» (запрещается или разрешается), а часть – нет (для случаев аварийной ситуации на технологическом объекте, требующей безотлагательного вмешательства).

Случай нескольких ВУ.

Если предполагается, что несколько ВУ может работать в режиме прерывания, то возникают дополнительные проблемы:

· у МП не хватает входов «ЗПР»;

· требуется несколько подпрограмм обслуживания прерывания с организацией механизма передачи им управления;

· необходимо определить, какое ВУ выдает сигнал «ЗПР»;

· при одновременном запросе прерывания от нескольких ВУ нужно выяснить, какое ВУ обслужить в первую очередь.

Обычно эти проблемы решаются двумя путями.

1. На аппаратном уровне выделяется отдельный блок сопряжения, называемый блоком приоритетных прерываний (БПП), на который возлагаются следующие функции (см. рис.23):

· объединение всех выходов «Запрос прерывания» от ВУ в один для соединения с входом «Запрос прерывания» МП;

· маскирование несущественных в текущий момент «Запросов прерывания» от ВУ;

· ранжирование ВУ по приоритетам (при их одновременных запросах);

· передача МП информации о том, какой подпрограмме обслуживания передать управление для обработки запроса прерывания.

2. На программном уровне в основной программе программист должен выполнить предварительную настройку БПП на текущие потребности; создать столько подпрограмм обработки прерываний, сколько имеется активных ВУ; организовать передачу им управления при получении соответствующей информации от БПП.

Рис.23

Совокупность всех выходов «Запрос прерывания», подсоединенных к МПС, называется вектором прерывания. В МП предусматривается несколько команд передачи управления на определенные адреса – ровно столько, какой размерности допустим вектор прерывания. Такие команды — однословные, длиной, соответствующей разрядности шин данных в МП. При обработке прерывания МП после выдачи сигнала «Разрешение прерывания» принимает с ШД код такой команды, выставленный БПП, и тем самым «узнает», на какой адрес передать управление для обработки данного прерывания. Так в персональных ЭВМ клона РС такие прерывания называются «Int» (interrupt, прерывание).

Протокол обмена между БПП и МП в момент поступления запроса на прерывания от ВУ выглядит следующим образом:

1. БПП выставляет сигнал «ЗПР» на МП.

2. МП завершает выполнение текущей команды, сохраняет в стеке адрес возврата и выдает на БПП сигнал «РПР», освобождая магистраль.

3. При получении «Разрешение прерывания» БПП выставляет на магистраль код команды безусловного перехода на фиксированную область памяти, соответствующую активированному входу «ЗПР» БПП.

4. МП принимает код этой команды с магистрали и исполняет ее.

Если количество ВУ больше, чем имеет входов «ЗПР» у БПП, применяется каскадное подключение нескольких БПП. В этом случае на программу возлагается либо опрос состояния БПП (аппаратный полинг), либо опрос состояния ВУ (программный полинг).

Последнее изменение этой страницы: 2019-04-19; Просмотров: 178; Нарушение авторского права страницы

Источник

Оцените статью