Похоже, это может быть та же ошибка, которая известна и в Ubuntu:
https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1812693
В этой вики есть предложение по обходному пути:
https://blog.kafaiworks.com/posts/arch-linux-audio-setup-on-msi-gp63/
Обходной путь заключается в редактировании файла /usr/share/pulseaudio/alsa-mixer/paths/analog-output-speaker.conf
следующим образом:
[Element Headphone]
switch = off
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right
[Element Speaker]
required-any = any
switch = mute
volume = off
, а затем для перезапуска pulseaudio (в Debian 10 это реализовано как systemd
для каждой пользовательской службы -):
systemctl --user restart pulseaudio.service
Если я правильно понимаю обходной путь, похоже, что регуляторы громкости/отключения звука для передних динамиков и наушников каким-то образом неправильно подключены/подключены -.
Инструмент hdajackretask
в пакете alsa-tools-gui
также может быть полезен :если вы можете найти работающие настройки переопределения для вашей модели ноутбука, вам, вероятно, следует связаться с разработчиками аудиодрайверов для Linux и сообщить о проблеме. выводы, поэтому переопределение может автоматически применяться к этой конкретной модели системы.
MSI GL73, по-видимому, использует тот же звуковой кодек ALC1220, а также нуждается в том же исправлении в маршрутизации звука, что и Clevo P950. В качестве дикого предположения вы можете попробовать добавить файл с именем /etc/modprobe.d/sound-fixup.conf
со следующим содержимым:
options snd-hda-intel model=clevo-p950
Затем запустите update-initramfs -u
от имени пользователя root, чтобы убедиться, что изменение будет эффективным и при ранней загрузке, затем перезагрузите компьютер и посмотрите, приведет ли оно к улучшению. Если MSI подключила вашу модель так же, как GL73, это может исправить ситуацию. Если нет, удалите файл /etc/modprobe.d/sound-fixup.conf
и снова запустите update-initramfs -u
, чтобы полностью избавиться от опции.
Вам нужно было сообщить awk, что такое разделитель полей:
awk -F'|' -v OFS='|' '{ print $0, ++count[$1,$2,$3] }' infile
с помощью -F
мы определили разделитель полей ввода, а с помощью -v OFS
определили разделитель полей вывода; вместо этого мы могли бы использовать BEGIN{ FS=OFS="|" }
для обоих, например:
awk 'BEGIN{ FS=OFS="|" } { print $0, ++count[$1,$2,$3] }' infile
Использование Raku (, ранее известного как Perl _6)
raku -ne ' state %seen; print($_, "|"); for $_.split("|").[0..2].join() { (++%seen{$_}).put };'
ИЛИ
raku -ne ' state %seen; print($_, "|"); ( ++%seen{$_} ).put for.split("|").[0..2].join;'
Пример ввода:
123|456365|PASS|566563|Apple
123|456365|FAIL|34322|Apple1
123|456365|FAIL|35322|Apple2
123|456335|PASS|56655|Apple34
123|456335|FAIL|34325|Apple53
123|34343|PASS|35323|Apple1
123|34343|PASS|34342|Apple13
123|34343|PASS|343442|Apple13
Пример вывода:
123|456365|PASS|566563|Apple|1
123|456365|FAIL|34322|Apple1|1
123|456365|FAIL|35322|Apple2|2
123|456335|PASS|56655|Apple34|1
123|456335|FAIL|34325|Apple53|1
123|34343|PASS|35323|Apple1|1
123|34343|PASS|34342|Apple13|2
123|34343|PASS|343442|Apple13|3
Выше приведены решения, написанные на Raku, члене семейства языков программирования Perl -. Вкратце, raku
запускается в командной строке с флагами-ne
(строки -, без -автоматической печати ). Хэш %seen
— этоstate
-d в начале одной строки -. Это позволяет инициализировать %seen
ровно один раз. Во втором утверждении исходная строка, за которой следует |
, — этоprint
-ed (без новой строки ). Затем в третьем операторе первые три столбца — это split
на |
и повторно-join
-ed, и каждое полученное значение ++%seen{$_}
используется для увеличения хэша %seen
на основе его уникального строкового значения. Увеличенное значение равно put
для завершения решения.