У меня есть безголовый компьютер, подключенный к моей звуковой системе, и я использую его для запуска демона воспроизведения музыки, который я контролирую по сети. (Помимо всего прочего)
Однако я не могу вывести звук из динамиков без запуска 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 Некоторые сведения о моем оборудовании:
Вывод 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
Есть идеи? Что делает Х, это так важно?
Выход 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