Bug 12464 - При установке создаёт неработоспособный конфиг alsa
Summary: При установке создаёт неработоспособный конфиг alsa
Status: CLOSED WONTFIX
Alias: None
Product: Sisyphus
Classification: Development
Component: ltsp5-server (show other bugs)
Version: unstable
Hardware: all Linux
: P2 major
Assignee: led
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2007-08-03 21:15 MSD by Michael A. Kangin
Modified: 2007-12-13 17:07 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael A. Kangin 2007-08-03 21:15:47 MSD
При установке пакет делает символьную ссылку /etc/asound.conf на свой вариант
конфига, что приводит к неработоспособной альсе:

[ -f /etc/asound.conf ] || ln -sf ltsp/asound.conf /etc/asound.conf ||:
[mak@admin ~]$ alsaplayer
*** PULSEAUDIO: Unable to connect: Connection refused
snd_pcm_open: В соединении отказано (default)
Failed to initialize plugin!
Failed to register plugin: /usr/lib/alsaplayer/output/libalsa_out.so
Failed to load output plugin "alsa". Trying defaults.
*** PULSEAUDIO: Unable to connect: Connection refused
snd_pcm_open: В соединении отказано (default)
Failed to initialize plugin!
/usr/lib/alsaplayer/output/libalsa_out.so failed to load
jack: server not running?
/usr/lib/alsaplayer/output/libjack_out.so failed to load
error opening /dev/dsp
Failed to initialize plugin!
/usr/lib/alsaplayer/output/liboss_out.so failed to load
No $AUDIOSERVER, falling back on $DISPLAY
NAS server not available
Failed to initialize plugin!
/usr/lib/alsaplayer/output/libnas_out.so failed to load
Failed to initialize plugin!
/usr/lib/alsaplayer/output/libesound_out.so failed to load
NOTE: THIS IS THE NULL PLUGIN.      YOU WILL NOT HEAR SOUND!!
------------------
Comment 1 led 2007-08-03 23:10:02 MSD
(In reply to comment #0)

Вы запускаете alsaplayer на сервере?
Comment 2 Michael A. Kangin 2007-08-04 00:20:54 MSD
Я запускаю сервер на альсаплеере.
Как-то на своей рабочей машине поставил ltsp5-server для тестирования
технологии. А потом, в один прекрасный день, после обновления системы остался
без звука.
Comment 3 led 2007-08-04 00:42:54 MSD
(In reply to comment #2)
> Я запускаю сервер на альсаплеере.
> Как-то на своей рабочей машине поставил ltsp5-server для тестирования
> технологии. А потом, в один прекрасный день, после обновления системы остался
> без звука.

Понятно... Сделано так для того, чтобы весь ALSA-звук прозрачно уходил на 
терминалы, проигрывание звука в сессиях на самом сервере не предполается.
Возможно, удастся придумать что-то, чтобы не страдали ставящие "на 
потестировать"... Или вы подскажете вариант? Вариант модификации чего-либо в ~/ 
терминальных пользователей - не предлагать:)
Comment 4 Michael Shigorin 2007-08-04 02:59:10 MSD
Возможно, control и/или сообщение в %post?
Comment 5 Michael A. Kangin 2007-08-04 03:28:28 MSD
А вот как раз очень хочется предложить. :)

В каком-нибудь стартовом скрипте:
if [ $DISPLAY -сильно-похож-на "терминального клиента" -a super_detect_pulse ]; then
cat Pulse-pulse-pulse > ~/.asound.conf
else
rm ~/.asound.conf
fi
Comment 6 led 2007-08-04 03:45:12 MSD
(In reply to comment #4)
> Возможно, control и/или сообщение в %post?

Если в alsa-plugins будет соответствующий control, то он там не помешает:)
Если же имеется ввиду control, относящийся ТОЛЬКО к LTSP/pulse, то только для:
ln -sf ltsp/asound.conf /etc/asound.conf
?
И по-умолчанию - "выключено"? Тогда ИМХО мы придём к усложнению 
установки/настройки LTSP-сервера (рабочего или тестового) в угоду тем, кто 
поставил ltsp5-server на свою рабочую станцию "на посмотреть" (это не в обиду 
последним, просто угодить последним без причининения неудобств первым врядли 
получится, а более приоритетными для меня (может я ошибаюсь) почему-то кажутся 
первые...)
В любом случае, если найдётся вариант для автоматического разруливания 
типа "локальная сессия - используем /etc/asound.conf, если он есть, или 
используем ALSA по-умолчанию, если нет; удалённая сессия - 
используем /etc/ltsp/asound.conf" - это будет здОрово.
Comment 7 led 2007-08-04 03:49:33 MSD
(In reply to comment #5)
> А вот как раз очень хочется предложить. :)

Нет, это принципиально: после
adduser user
в ~user/ может писать что-либо или читать оттуда только этот user. Это не 
ограничение LTSP, это ограничение, чтобы администратора не уволили (или чего 
похуже). Такую "свинью" в своём пакете я админам подкладывать не стану:)
Comment 8 Michael A. Kangin 2007-08-04 04:17:35 MSD
Интересный аспект :)
А можно сделать при создании пользователя ссылку ln -s
/tmp/asound.conf.$NEWUSERNAME ~/.asound, и автоматически корёжить уже
/tmp/asound.conf.$NEWUSERNAME? Кривовато конечно...

Немного поленился изучить доки: pulse должен на сервере работать или на клиентах
или и там и там?
Comment 9 led 2007-08-04 04:26:04 MSD
(In reply to comment #8)
> Интересный аспект :)
> А можно сделать при создании пользователя ссылку ln -s
> /tmp/asound.conf.$NEWUSERNAME ~/.asound, и автоматически корёжить уже
> /tmp/asound.conf.$NEWUSERNAME? Кривовато конечно...

Так отож, что "кривовато", потому как нужен модифицированный adduser/useradd. 
Кроме того, если этот пользователь залогинится на сервере локально, как в вашем 
случае, то получит ровно тоже, что и вы:)

> Немного поленился изучить доки: pulse должен на сервере работать или на 
клиентах
> или и там и там?

На терминале. Он там запускается при загрузке, если в /etc/lts.conf 
SOUND_DAEMON=pulseaudio.
Comment 10 Michael A. Kangin 2007-08-04 04:56:39 MSD
Нет, не получит, потому что стартовый пользовательский скриптик может посмотреть
в $DISPLAY и нужным образом покорёжить asound.conf в $TMP.

На самом деле, если пользователи могут постоянно входить терминально/локально
(как вот я всё хочу обзавестить вторым рабочим местом на кухне :) ), впору
думать за механизм /альтернатив/ конфигов.
Comment 11 Michael Shigorin 2007-08-05 23:20:44 MSD
Тёзка, давайте Вы как лицо заинтересованное над таким вариантом подумаете, а
пока могу предложить rm -f /etc/asound.conf и создание ~/.asound нужным
пользователям.

Для майнтейнера нет мотивации лучше "себе любимому" :)
Comment 12 led 2007-08-06 02:03:35 MSD
(In reply to comment #11)
Вроде бы что-то нарисовалось: без линков, ~/.asoundrc, /tmp/* и т.п.; а только 
благодаря вычитыванию исходников libalsa и догадками (надеюсь, верными) про то, 
как работают в rpm %trigger* (догадками, потому как ни в "Maximum RPM", ни во 
всезнающем Гугле информации о %trigger* найти не удалось :( )
Comment 13 Michael Shigorin 2007-08-06 13:45:07 MSD
(In reply to comment #12)
> информации о %trigger* найти не удалось :(
Прокачивай гугленье ;)

http://wiki.sisyphus.ru/devel/SpecTips/triggers
/usr/share/doc/rpm-4.0.4/manual/triggers
Comment 14 led 2007-08-07 01:14:51 MSD
fixed in ltsp5-5.0-alt0.38