Как получить вывод звука по HDMI без необходимости запуска X?

У меня есть безголовый компьютер, подключенный к моей звуковой системе, и я использую его для запуска демона воспроизведения музыки, который я контролирую по сети. (Помимо всего прочего)

Однако я не могу вывести звук из динамиков без запуска X.

Я запускаю импульсный звук в общесистемном экземпляре , и мой демон не работает в X. Тем не менее, когда мой демон играет музыку, а я ее не слышу, я могу исправить это, запустив startx в несвязанном сеансе. После запуска X я слышу звук. Звук снова исчезнет, ​​если я убью X-сервер.

Интересно / досадно, что звук также прекращается после того, как X работал несколько минут. Возможно, это из-за какой-то заставки, но я не смог проверить или сфальсифицировать эту теорию.

Так что мой текущий обходной путь - это ssh в коробку всякий раз, когда я хочу музыку и startx, и перезапускать ее каждые пятнадцать минут или около того. Я хотел бы сделать лучше.


Мне удалось проверить следующее:

  • Настройки в alsamixer не влияют на эту проблему. Соответствующий выходной канал никогда не отключается
  • В alsamixer я не вижу разницы между тем, когда звук работает, а когда нет
  • Ничего не отключено в pactl list
  • ]
  • Нет разницы в выводе из pactl list между до запуска X и после его запуска. (За исключением идентификатора экземпляра pactl, подключенного к импульсу, который отличается при каждом запуске pactl)
  • Пользователь, управляющий музыкальным демоном, является членом групп audio, pulse и pulse-access
  • Программа музыкального демона не сообщает о каких-либо сообщениях об ошибках и действует так, как если бы она воспроизводила музыку так, как должна
  • Запущена какая-то форма демона dbus. ps aux|grep dbus сообщает dbus-daemon --system --fork --activation=upstart до и после того, как я запустил X

Некоторые сведения о моем оборудовании:

  • Материнская плата: http: // www.asus.com/Motherboards/AT5IONTI_DELUXE/
  • Звуковой чип: Nvidia GPU 0b HDMI / DP (от alsamixer)
  • Использование HDMI для вывода
  • (Machine также есть Intel Realtek ALC887, который я не использую)

Вывод lsmod:

Module                  Size  Used by
deflate                12617  0 
zlib_deflate           27139  1 deflate
ctr                    13201  0 
twofish_generic        16635  0 
twofish_x86_64_3way    25287  0 
twofish_x86_64         12907  1 twofish_x86_64_3way
twofish_common         20919  3 twofish_generic,twofish_x86_64_3way,twofish_x86_64
camellia               29348  0 
serpent                29125  0 
blowfish_generic       12530  0 
blowfish_x86_64        21466  0 
blowfish_common        16739  2 blowfish_generic,blowfish_x86_64
cast5                  25112  0 
des_generic            21415  0 
xcbc                   12815  0 
rmd160                 16744  0 
bnep                   18281  2 
rfcomm                 47604  12 
sha512_generic         12796  0 
crypto_null            12918  0 
parport_pc             32866  0 
af_key                 36389  0 
ppdev                  17113  0 
binfmt_misc            17540  1 
nfsd                  281980  2 
ext2                   73795  1 
nfs                   436929  1 
lockd                  90326  2 nfsd,nfs
fscache                61529  1 nfs
auth_rpcgss            53380  2 nfsd,nfs
nfs_acl                12883  2 nfsd,nfs
sunrpc                255224  16 nfsd,nfs,lockd,auth_rpcgss,nfs_acl
btusb                  18332  2 
vesafb                 13844  2 
pl2303                 17957  1 
ath3k                  12961  0 
bluetooth             180153  24 bnep,rfcomm,btusb,ath3k
snd_hda_codec_hdmi     32474  4 
nvidia              11308613  0 
ftdi_sio               40679  1 
usbserial              47113  6 pl2303,ftdi_sio
psmouse                97485  0 
snd_hda_codec_realtek   224173  1 
snd_hda_intel          33719  5 
snd_hda_codec         127706  3 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel
serio_raw              13211  0 
snd_seq_midi           13324  0 
snd_hwdep              17764  1 snd_hda_codec
snd_pcm                97275  3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
snd_rawmidi            30748  1 snd_seq_midi
snd_seq_midi_event     14899  1 snd_seq_midi
snd_seq                61929  2 snd_seq_midi,snd_seq_midi_event
snd_timer              29990  2 snd_pcm,snd_seq
snd_seq_device         14540  3 snd_seq_midi,snd_rawmidi,snd_seq
snd                    79041  20 snd_hda_codec_hdmi,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_rawmidi,snd_seq,snd_timer,snd_seq_device
asus_atk0110           18078  0 
mac_hid                13253  0 
jc42                   13948  0 
soundcore              15091  1 snd
snd_page_alloc         18529  2 snd_hda_intel,snd_pcm
coretemp               13554  0 
i2c_i801               17570  0 
lp                     17799  0 
parport                46562  3 parport_pc,ppdev,lp
r8169                  62154  0 

Есть идеи? Что делает Х, это так важно?

4
задан 26 June 2013 в 00:58

1 ответ

Выход HDMI управляется графическим драйвером, который в вашем случае является драйвером с закрытым исходным кодом от Nvidia. По-видимому, этот драйвер включает аудиокодер HDMI только во время работы X.

Пожаловаться на Nvidia.

В качестве альтернативы, используйте выход S / PDIF вашей материнской платы.


Приложение от asker, Магнуса Хоффа:

Продолжая этот угол, я в конечном итоге запустил X, но отключил dpms, поэтому выход HDMI поддерживается на своем питании, полностью функциональное состояние. Я понял, что должен был сделать это, прочитав документацию nvidia .

Чтобы это произошло, я добавил в свой .xinitrc следующее:

xset s off
xset -dpms

Источник: http://crunchbang.org/forums/viewtopic.php?pid=121360# p121360

0
ответ дан 26 June 2013 в 00:58

Другие вопросы по тегам:

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