Як відключити енергозбереження на аудіо-контактах мого Lenovo Y50?


3

Наступні дії: Як зробити роботу сабвуфера Lenovo Y50 на Linux?

Щоб скоротити речі, у мене є Lenovo Y50, який має вбудований сабвуфер, який працює тільки на Linux Mint, якщо я встановлюю деякі настройки на двох контактах за допомогою HDA Analyzer. Таке ж рішення не працює у Fedora та інших дистрибутивах. Більше інформації на посилання вище.

Я мав деякий час, щоб дослідити, і помітив, що існують відмінності в тому, що вкладки текстового датчика HDA Analyzer вказують мені на кожний контакт, на кожному з дистрибутивів (Linux Mint ліворуч, Fedora справа):

Image 1

Image 2

Я дізнався, що D0 означає стан повної потужності, а D3 - стан низького енергоспоживання. Я досліджував, як повністю вимкнути енергозбереження на моїй аудіокартці, тому я спробував наступне у Fedora, ввівши його в термінал і перевіривши до і після перезавантаження, але це не вирішило моєї проблеми:

echo 0 > /sys/module/snd_hda_intel/parameters/power_save

echo N > /sys/module/snd_hda_intel/parameters/power_save_controller

Я також намагався включення енергозбереження на Linux Mint і воно дійсно відключає сабвуфер перед перезавантаженням (і все ще було вимкнено після перезавантаження).

Я хотів би знати, якщо хто-небудь ще є якісь ідеї про те, як далі спробувати перемкнути стан живлення на цих двох контактах (0x17 і 0x1a) з D3 в D0, щоб зробити звук виходу сабвуфера. Дякую!

EDIT: Ось рішення, засноване на скрипті python, зробленому мною тут . Не забувайте відповіді, які допомагали (ще раз спасибі!).

Відповіді:


3

На додаток до налаштування стану живлення на D0 для контактів 0x17 і 0x1a, спробуйте збільшити вихідний обсяг вузла 0x3 (AUD_OUT).

Протестований на тій же моделі ноутбука, що працює під тестуванням debian, сабвуфер тепер працює.

Простий спосіб перевірити це підключити навушники, сабвуфер не буде приглушений.


Це працює. Ви також маєте рацію про те, що навушники та сабвуфер не були приглушені, але це ще одна глава розроблюваної Linux.
Dragoș

Прохолодно, я додав сценарій до моєї відповіді, що робить всі кроки в одному, використовуючи тільки hda-verb, без hda аналізатора. Не впевнений, що це нормальний початковий рівень гучності. (Але після цього з'являється, щоб налаштувати з регулярними регуляторами гучності?) Nice співпраці!
miyalys

3

За допомогою debianuser у каналі IRC #alsa на freenode, я думаю, що я міг би трохи наблизитися до нас. Здається, стан потужності може бути встановлений за допомогою інструменту hda_verb, який є частиною alsa-tools, однак не існує можливості керування power_save_controller конкретно power state. Ви можете отримати інформацію про те, що parameters можна встановити за допомогою запуску hda-verb -L

Приклад отримання енергетичний стан пристрою:

sudo hda-verb / dev / snd / hwC1D0 0x1a GET_POWER POWER_STATE

Приклад налаштування енергетичний стан пристрою:

sudo hda-verb / dev / snd / hwC1D0 0x17 SET_POWER 0x0 POWER_STATE

Так конкретно, що вам здається, що потрібно робити, виконується:

sudo hda-verb / dev / snd / hwC1D0 0x17 SET_POWER 0x0
sudo hda-verb / dev / snd / hwC1D0 0x1a SET_POWER 0x0

Зауважте, що це не спрацює Аналізатор HDA запускається, але може бути запущений після цього, щоб перевірити, чи зміна працювала. У моєму випадку це змінилося на D0.

Цікаво, якщо це вирішує вашу проблему?
Як я вже сказав, у мене є той самий комп'ютер, хоча я не зовсім впевнений, що мій сабвуфер фактично вимкнений, оскільки я не чую великої різниці від прикладного звукового файлу, який я створив під час відтворення в Windows або Archlinux. Може бути, частота (65 Гц) занадто висока? У разі, якщо хтось бажає протестувати його:
http://miyalys.eu.org/files/65hzsine.wav

Може бути, ми можемо знайти спосіб відключити штатні динаміки, так що тільки сабвуфер?

Редагувати: За допомогою від leneb Відповідаю, я створив цей скрипт, який повинен бути запущений як root, який робить всі ці речі, тільки використовуючи hda-verb. Не впевнений, що рівень гучності цілком нормальний. (зворотній зв'язок оцінений) І проблема з підключенням навушників, не заглушуючи сабвуфер, зберігається.

#! /usr/bin/env sh

# Run this script as root!

dev="/dev/snd/hwC1D0"

hda-verb $dev 0x17 SET_POWER 0x0
hda-verb $dev 0x1a SET_POWER 0x0
hda-verb $dev 0x03 0x300 0xa055
hda-verb $dev 0x03 0x300 0x9055
hda-verb $dev 0x17 0x300 0xb000
hda-verb $dev 0x17 0x707 0x40
hda-verb $dev 0x1a 0x707 0x25

При необхідності всі ці кроки можуть бути зроблені і без hda-verb, тільки з використанням python, але це зробить код набагато менш чистим.


На жаль, сабвуфер натискає, коли я використовую команди, але він все ще не працює. Що стосується відключення звичайних динаміків, я б використовував HDA Analyzer, щоб знайти якийсь варіант для їх відключення? (Я б завантажував Linux Mint live, увімкнув сабвуфер, дізнався, як вимкнути динаміки за допомогою HDA Analyzer і відтворити налаштування на Arch).
Dragoș

Ах, дуже погано! Чи не працює "тільки" означає, що сабвуфери не грають, або що стан живлення не змінюється на D0? Що стосується вимкнення динаміків, то так, ви, мабуть, маєте рацію.
miyalys

Стан потужності дійсно змінюється на D0. Тільки що сабвуфер не гратиме. Ви відповіли на оригінальне запитання,
Dragoș

Добре, добре досі важлива проблема не є вирішена (можливо ми ближчі хоч), так hopefully хтось прибуває з кращою відповіддю, якщо один з нас не.
miyalys
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.