Arch Linux — обновление системы полностью испортило видео и аудио

Поскольку действия, не являющиеся модификаторами -, активируются при нажатии клавиши.

На самом деле это почти не связано с аппаратной частью клавиатуры. Клавиатуры USB и PS/2 в этом отношении работают одинаково. В оборудовании нет ничего , что делало бы так -так называемые "клавиши-модификаторы" особенными. Любая клавиша , за одним исключением, может быть клавишей-модификатором или нет.

То, что является клавишей-модификатором, определяется раскладкой клавиатуры , используемой в программном обеспечении в операционной системе. Аппаратное обеспечение просто отправляет то, что действует (, замалчивая детали протокола ввода USB HID, фактически представляющего собой растровое изображение нажатых в данный момент клавиш, которое частично закодировано во внутреннюю -внешнюю форму, чтобы сохранить ее короткой )ключ вниз и ключевые события.

Например, в раскладке клавиатуры FreeBSD можно найти такие строки, как эта:

#                                                         alt
# scan                       cntrl          alt    alt   cntrl lock
# code  base   shift  cntrl  shift  alt    shift  cntrl  shift state
# ------------------------------------------------------------------
…
029   lctrl  lctrl  lctrl  lctrl  lctrl  lctrl  lctrl  lctrl   O
…
042   lshift lshift lshift lshift lshift lshift lshift lshift  O
…
054   rshift rshift rshift rshift rshift rshift rshift rshift  O
…
056   lalt   lalt   lalt   lalt   lalt   lalt   lalt   lalt    O
…
083   del    '.'    '.'    '.'    '.'    '.'    boot   boot    N
…

029, 042, 054 и 056 — это коды клавиатуры (, приведенные в общую систему из номеров использования USB HID и номеров скан-кодов PS/2 ), но это lctrl, lshift, rshiftиlaltдействия на карте, определяющие эти клавиши как клавиши-модификаторы. Определите их с другими действиями и переместите эти действия в другое место, как это действительно делают некоторые из -из -карт -коробки FreeBSD, а совершенно другие ключи являются модификаторами.

(Исключением из правила является клавиша Fn , которая является единственным модификатором, реализованным аппаратно. Он реализован полностью аппаратно и вообще не виден программным обеспечением . Он даже не генерирует никаких событий по сети. На самом деле есть еще один аппаратный модификатор. Это не ключ. Это состояние светодиода NumLock.)

Действие , когда оно является действием модификатора, таким как это, изменяет текущее состояние модификатора ,который (просто говоря )представляет собой набор флагов, записанных в операционной системе, которые фиксируют, какие модификаторы в данный момент «включены». Как видно из заголовков столбцов на карте клавиатуры, текущее состояние модификатора — с точки зрения флагов «включено» для состояний «shift», «altgr», «control» и «alt» — влияет на действие дальнейшие нажатия клавиш сопоставляются.

В строке с кодом ключа 083, который выгравирован . del на цифровой клавиатуре, вы можете видеть, что только если текущее состояние модификатора не ниже «alt cntrl», сопоставленное действие будет boot.

Драйверы клавиатуры активируют действия-модификаторы при получении события нажатия клавиши или отпускания клавиши . Однако другие действия вступают в силу только после нажатия клавиши нажатия или автоповтора . Так обстоит дело, например, с действием boot. Только если происходит нажатие клавиши или автоповтор для клавиши 083 и , текущее состояние модификатора уже "alt cntrl"/"alt cntrl shift", происходит действие boot.

Из этого должно быть очевидно, что для перевода текущего состояния модификатора операционной системы в это состояние, в первую очередь, действия laltи lctrl/ rctrlдолжны уже произойти . ], с помощью первого нажатия клавиш, которые им назначены. (Система FreeBSD также позволяет модификатор блокировать в дополнение к обычной системе модификаторов сдвигов , хотя только две раскладки клавиатуры из -из -поля -использовать их вообще. Стандарт клавиатуры ISO также допускает защелки-модификаторы , но FreeBSD не предоставляет этот механизм.)

FreeBSD, как я уже сказал, является здесь примером. Но большинство операционных систем с устройствами PS/2 или USB HID,от MS/PC -DOS (, где текущим состоянием модификатора является хорошо -известный байт в памяти )до Windows NT (, где раскладки клавиатуры представляют собой библиотеки DLL режима ядра -, содержащие код и данные ), работают примерно так.

Дополнительная литература

0
15.12.2019, 11:29
3 ответа

Пытаюсь решить эту проблему самостоятельно. Понижение версии nvidia может решить проблему со звуком. Но тогда вам также придется понизить версию ядра (или, по крайней мере, я сделал ), так как ваш дисплей снова сломается, если вы этого не сделаете. Моя проблема в том, что Steam не работает после понижения версии. Ниже приведена команда, которая должна работать для понижения версии.
sudo pacman -U /var/cache/pacman/pkg/nvidia-440.36-5-x86_64.pkg.tar.xz /var/cache/pacman/pkg/nvidia-utils-440.36-1-x86_64.pkg.tar.xz /var/cache/pacman/pkg/linux-5.4.2.arch1-1-x86_64.pkg.tar.xz

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

3
28.01.2020, 02:29

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

nvidia
nvidia-utils
lib32-nvidia-utils
linux
linux-headers
0
28.01.2020, 02:29

У меня была такая же проблема с моей видеокартой GTX1060 6 ГБ после обновления моей системы.

К счастью, я устанавливаю драйвер Nvidia LTS для Arch Linux, после чего он возвращается в нормальное состояние, если вы попробуете сделать это следующим образом.

$ sudo pacman -S nvidia-lts

После этого перезагрузите систему. Удачи!

0
27.02.2020, 02:26

Теги

Похожие вопросы