HP EliteBook

Материал из ALT Linux Wiki

Включение звука на HP EliteBook 840 G3 (Conexant CX20724)

Voting.svg  Проблема: после установки ALT Linux с GNOME звук не работает на встроенных динамиках, хотя система видит звуковую карту.

Symbol support vote.svg  Причина: драйвер ядра пытается использовать современный аудиостек SOF (Sound Open Firmware), который не поддерживает устаревший кодек Conexant CX20724. Кроме того, драйвер по умолчанию отключает динамики, считая, что подключены наушники.

Отключение SOF и настройка ядра

1. Откройте файл конфигурации GRUB:

 su -
 nano /etc/default/grub

2. Найдите строку GRUB_CMDLINE_LINUX и добавьте в неё параметры:

 snd_intel_dspcfg.dsp_driver=3 snd_hda_intel.dmic_detect=0 snd_hda_intel.power_save=0

Пример итоговой строки:

 GRUB_CMDLINE_LINUX='failsafe vga=normal snd_intel_dspcfg.dsp_driver=3 snd_hda_intel.dmic_detect=0 snd_hda_intel.power_save=0'

3. Сохраните файл и обновите GRUB:

 su -
 grub-mkconfig -o /boot/grub/grub.cfg

💡 Что делают параметры:

  • snd_intel_dspcfg.dsp_driver=3 — отключает SOF, использует классический драйвер snd_hda_intel
  • snd_hda_intel.dmic_detect=0 — отключает поиск несуществующего цифрового микрофона
  • snd_hda_intel.power_save=0 — предотвращает отключение звука из-за энергосбережения

Создание скрипта для включения динамиков

1. Создайте каталог и скрипт:

 mkdir -p ~/.local/bin
 nano ~/.local/bin/fix-hp-audio.sh

2. Вставьте следующее содержимое:

#!/bin/bash

amixer -c0 set 'Auto-Mute Mode' 'Disabled' 2>/dev/null || true
amixer -c0 set 'Speaker+LO' unmute 2>/dev/null || true
amixer -c0 set 'Speaker+LO' 85% 2>/dev/null || true

3. Сделайте скрипт исполняемым:

 chmod +x ~/.local/bin/fix-hp-audio.sh
Примечание: Auto-Mute Mode — функция, которая отключает динамики, если система "думает", что подключены наушники.

Мы её отключаем. Speaker+LO — это именно встроенные динамики на вашем ноутбуке. По умолчанию они выключены ([off]) и на 0% громкости.


Настройка автоматического запуска при входе

1. Создайте пользовательский systemd-сервис:

 mkdir -p ~/.config/systemd/user
 nano ~/.config/systemd/user/hp-audio-fix.service

2. Вставьте:

[Unit]
Description=Fix HP EliteBook 840 G3 Audio
After=pipewire.service wireplumber.service
Wants=pipewire.service

[Service]
Type=oneshot
ExecStart=/bin/bash -c 'sleep 20 && %h/.local/bin/fix-hp-audio.sh'
RemainAfterExit=yes

[Install]
WantedBy=default.target

3. Включите сервис:

 systemctl --user daemon-reload
 systemctl --user enable hp-audio-fix.service
Почему sleep 20? Системе нужно время, чтобы полностью загрузить звуковую подсистему. Без задержки команды могут выполниться слишком рано и не сработать.


Перезагрузка и проверка

 su -
 reboot

После входа в GNOME подождите 20–30 секунд, затем проверьте звук:

 speaker-test -t wav -c 2 -l 1 -f 440

Вы должны услышать попеременный звук в левом и правом динамике.

Также проверьте в Параметры ⇾ Звук — должен работать тест и регулировка громкости.

Symbol kept vote.svg  Готово!

Теперь звук автоматически включается при каждой перезагрузке. Вы можете регулировать громкость как обычно — через значок звука в GNOME.

Примечание: Если захотите изменить громкость — отредактируйте число 85% в скрипте. Не удаляйте скрипт и сервис — иначе после перезагрузки звука снова не будет. Эта инструкция работает гарантированно для HP EliteBook 840 G3 с Conexant CX20724.


Встроенный микрофон не работает при записи видео на HP EliteBook 840 G3/G4/G5 с Conexant CX20724

Voting.svg  Проблема: микрофон определяется системой, но не работает в приложениях (браузер, OBS, Zoom и др.), особенно при включённой камере.

Test-result-pass.png  Решение: микрофон работает — просто система по умолчанию выбирает не тот вход.

Исправляется простым скриптом.

Как была найдена причина

1. Сначала проверили:

 arecord -D hw:0,0 -f cd -d 3 test.wav

→ Запись работает → микрофон исправен на уровне драйвера.

2. Но в приложениях — тишина. Установили pavucontrol и увидели: По умолчанию выбран «Микрофон (подключено)» — микрофон не работает. При ручном выборе «Встроенный микрофон (отключено)» — всё заработало!

3. Выяснили: Аудиокодек Conexant CX20724 (используется в HP EliteBook 840 G3/G4/G5) ложно считает, что в аудиоразъём что-то вставлено, и переключается на несуществующий внешний микрофон. Встроенный микрофон остаётся активным, но не используется по умолчанию.

4. После перезагрузки выбор сбрасывается, и приходится снова выбирать вручную.

Итоговое решение: автоматический выбор правильного микрофона

Ниже — пошаговая инструкция для неподготовленного пользователя. Всё делается через терминал, но команды простые и безопасные.

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

Откройте терминал и выполните:

 su -
 apt-get update
 su -
 apt-get install pulseaudio-utils

Это установит команду pactl, которая позволяет управлять микрофоном в PipeWire (звуковой системе ALT Linux).

Создание каталога для скрипта

 mkdir -p ~/.config/autostart

Создание скрипта, который будет включать правильный микрофон

Выполните:

 nano ~/.config/autostart/fix-mic.sh

В открывшемся окне вставьте следующий текст (скопируйте целиком):

#!/bin/bash

sleep 3
SOURCE="alsa_input.pci-0000_00_1f.3.analog-stereo"
PORT="analog-input-internal-mic"
if pactl list sources short 2>/dev/null | grep -q "$SOURCE"; then
  pactl set-source-port "$SOURCE" "$PORT"
  pactl set-source-mute "$SOURCE" 0
  pactl set-source-volume "$SOURCE" 100%
fi

Сохраните файл: Нажмите Ctrl+O, затем Enter, Нажмите Ctrl+X, чтобы выйти.

Теперь сделайте файл исполняемым:

 chmod +x ~/.config/autostart/fix-mic.sh

Создание файла автозапуска

Выполните:

 nano ~/.config/autostart/fix-mic.desktop

Вставьте (замените ваш_логин на ваше имя пользователя):

  [Desktop Entry]
  Type=Application
  Name=Fix HP Microphone
  Exec=/home/ваш_логин/.config/autostart/fix-mic.sh
  Hidden=false
  NoDisplay=true
  X-GNOME-Autostart-enabled=true
Узнать ваш логин можно командой: whoami


Сохраните (Ctrl+O, EnterCtrl+X).

Перезагрузка компьютера

 su -
 reboot

Проверка после перезагрузки

1. Войдите в систему.

2. Откройте терминал и запустите:

 pavucontrol

если не установлен —

 su -
 apt-get install pavucontrol

3. Перейдите во вкладку «Input Devices».

4. Убедитесь, что выбран «Встроенный микрофон».

5. Поговорите — полоска уровня должна прыгать.

6. Запустите запись видео (в браузере, OBS и т.д.) — звук должен быть.

Почему это работает? Скрипт запускается автоматически при входе в систему. Он принудительно выбирает встроенный микрофон (analog-input-internal-mic), игнорируя ложное обнаружение внешнего разъёма.

Устанавливает громкость и снимает «mute» — на всякий случай.

Важно! Это решение безопасно: оно не меняет ядро, не требует правки системных файлов, кроме автозапуска.

Подходит для HP EliteBook 840 G3, G4, G5 с аудиокодеком Conexant CX20724. Работает в ALT Linux с PipeWire (стандартная конфигурация начиная с p11).


Symbol kept vote.svg  Готово! Теперь ваш микрофон работает всегда — и при обычной записи, и при видеоконференциях, и после каждой перезагрузки. Больше не нужно лезть в настройки — всё настроено один раз и навсегда.