Ноутбук Lenovo l14-gen2 (intel) решение проблем со звуком и сетью.
Чиним wifi и звук на ноутбуке Lenovo l14-gen2 (intel).
Салют, $USER!
Эй, кстати, наш Telegram уже ждёт именно тебя. Забегай!
Предисловие.
В общем, наверное, как и любой другой системный администратор, я однажды озадачился выбором ноутбука. Знал точно, что хочу Lenovo ThinkPad и нужен был 13-дюймовый, чтобы легче было носить в рюкзаке. Искал T-серию, но в городе, в котором живу, её попросту не было, а здесь и сейчас была только серия L второго поколения на процессоре Intel. А ноутбук был нужен ну вот прям, очень сильно. Тогда ещё работал в офисе, часто надо было подключаться из дома, и проще было в офисе работать на своём, что решало главную проблему синхронизации данных. Но сейчас не об этом.
Вот я в магазине забираю ноутбук. Дорога домой, распаковка и начало установки Linux, тут-то и вылезли проблемы: нет звука, но на самом деле для меня это не беда, есть Bluetooth и наушники.
Но проблема была в другом: жутко тормозил SSH, а именно для этих целей и брался ноутбук, а тут такая засада.
Подкинул USB Wi-Fi свисток, подключил сеть, о чудо, SSH работает прекрасно! И так я прожил с USB-свистком около 8 месяцев, времени не было заниматься данным вопросом.
Почему же он еще так долго жил без звука и с USB Wi-Fi свистком? С появлением у меня MacBook вся работа перешла на него, а этот ноутбук использовался в серверной и у клиентов для подключения к оборудованию.
Так получилось, что я поменял место работы, и сейчас работаю полностью удалённо. Появилось время и желание всё-таки починить и заставить всё работать, так как, к удивлению, на удалёнке мне и потребовался данный ноутбук как второй на столе.
Чиним SSH.
С первого, что я начал, это с SSH. После часа гугления и чтения документации по NetworkManager наткнулся на управление питанием адаптера, и решил попробовать. Внесу маленькую ремарку: Wi-Fi определялся как 2.5, так и 5, и при этом хорошо работал Bluetooth. То есть дело было не в драйвере, что ещё подтверждалось тем, что на других сериях с аналогичным модулем и драйвером работало хорошо.
Начнём с энергосбережения Wi-Fi модуля, вообще там есть 3 режима:
3– максимальное энергосбережение (по умолчанию во многих дистрибутивах)2– сбалансированный режим1– отключено (максимальная производительность) Попробуем изменить с максимального на сбалансированный.
выполняем:
1
sudo sed -i 's/3/2/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf
На всякий случай отправляю в перезагрузку и после пробую с ноутбука подключиться по SSH и вижу, что всё работает без лагов, подключаюсь к ноутбуку по SSH — такая же песня, всё прекрасно, ну что же, значит, одной проблемой меньше.
Ограничения
- В данный момент Wi-Fi модуль работает в сбалансированном режиме, что может уменьшить автономность ноутбука от батареи.
Ну, если вдруг нужна автономность, то…
1
sudo sed -i 's/2/3/' /etc/NetworkManager/conf.d/default-wifi-powersave-on.conf && sudo reboot
Пробуем завести звук.
Со звуком вышло немного проще, на одном из англоязычных форумов нашёл сообщение, что человек перешёл с SOF на более старый драйвер, и у него всё заработало. Смотрю, какой драйвер загружен у меня.
1
lspci -nnk | grep -A 2 Audio
Вижу что sof-audio-pci-intel-tgl
SOF (Sound Open Firmware) — открытая кроссплатформенная прошивка и инфраструктура для управления аудио DSP (Digital Signal Processor) в современных процессорах.
В современных дистрибутивах по умолчанию включён именно SOF. План:
- Отключить SOF
Через GRUB загрузить более старую версию драйвера.
- Запрещает загрузку драйверов SOF (Sound Open Firmware) - нового драйвера для современных аудиокодеков Intel
Файл в /etc/modprobe.d/ автоматически применяется при загрузке системы
1
2
3
4
echo "blacklist snd_sof_pci_intel_tgl" | sudo tee /etc/modprobe.d/blacklist-sof.conf
echo "blacklist snd_sof_intel_hda_common" | sudo tee -a /etc/modprobe.d/blacklist-sof.conf
echo "blacklist snd_sof_intel_hda" | sudo tee -a /etc/modprobe.d/blacklist-sof.conf
echo "blacklist snd_sof" | sudo tee -a /etc/modprobe.d/blacklist-sof.conf
После чего, вносим дополнение в GRUB
1
2
3
nano /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash snd_intel_dspcfg.dsp_driver=1"
Что это делает: snd_intel_dspcfg.dsp_driver=1 - принудительно выбирает старый драйвер HDA вместо нового SOF
- Значение 1 означает: использовать legacy HDA драйвер
- Значение 2 (по умолчанию): использовать новый SOF драйвер
- Значение 3: автоопределение
После чего изменений:
1
2
update-grub
reboot
Загрузжаемся и проверяем.
1
cat /proc/cmdline | grep dsp_driver
Должно быть.
1
snd_intel_dspcfg.dsp_driver=1
Ну и после чего проверяем звук. У меня все заработало.
