* [sisyphus] доступ к alsa из-под разных пользователей
@ 2005-11-12 16:57 Artem
2005-11-12 17:08 ` Artem
2005-11-12 18:01 ` Sergey Vlasov
0 siblings, 2 replies; 15+ messages in thread
From: Artem @ 2005-11-12 16:57 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
Доброго времени суток всем!
Продолжая терзать slmodemd , стал добавлять в него софтовый вывод звука
(тот, который должен выводиться через отсутствующий у меня, и наверное,
у многих владельцев ноутбуков модемный динамик). Вот уже и модем начал
голос подавать (в виде прерывистого и более высокчастотного писка пока,
но это уже вопросы конверсии различных частот оцифровки и синхронизация
размеров буферов - решаются с помощью того же alsa api).
Т.к. slmodemd работает из-под root (под обычным user вроде тоже
работает, но выдает ошибки при старте - жалуется на memory allocation и
еще на что-то), то после старта из-под рута, он открывает звуковое
устройство alsa default - и после этого все программы (хmms, aplay)
из-под простых пользователей начинают ругаться на то, что нет доступа к
звуковому устройству (хотя у меня настроен dmix). Стартую slmodemd
из-под простого пользователя и в под тем же пользователем пробую xmms -
звуки от модема и от xmms нормально микшируются.
Подозревая, что это какие-то особенности sisyphus, отсылаю письмо сюда.
P.S. Открытие устройства выполняется следующим кодом (по прообразу aplay)
int rc;
char *pcm_name = "default";
snd_pcm_t *shandle;
<skip>
rc = snd_pcm_open(&shandle, pcm_name,
SND_PCM_STREAM_PLAYBACK, 0);
if (rc < 0) {
ERR("Cannot open speaker playback device %s\n",
snd_strerror(rc));
return 1;
}
<skip>
P.P.S. Это только у меня в XMMS при выводе через dmix не работает
"пауза"? Воспроизведение останавливается, но продолжить потом нельзя -
нужно сначала композицию включать кнопкой play. При указании вывода
напрямую в hw:0.0 - все работает.
Rgds, Artem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [sisyphus] доступ к alsa из-под разных пользователей
2005-11-12 16:57 [sisyphus] доступ к alsa из-под разных пользователей Artem
@ 2005-11-12 17:08 ` Artem
2005-11-13 22:01 ` Artem
2005-11-12 18:01 ` Sergey Vlasov
1 sibling, 1 reply; 15+ messages in thread
From: Artem @ 2005-11-12 17:08 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
Artem wrote:
>
> Т.к. slmodemd работает из-под root (под обычным user вроде тоже
> работает, но выдает ошибки при старте - жалуется на memory allocation и
> еще на что-то), то после старта из-под рута, он открывает звуковое
>
А может, его вообще доработать так, чтобы запускать из-под какого-нибудь
системного пользователя - в целях секурности? Какие в этом случае могут
быть грабли и из-под какой группы пользователей его стартовать лучше будет?
Повторятся ли в этом случае грабли с root ?
Rgds, Artem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [sisyphus] доступ к alsa из-под разных пользователей
2005-11-12 17:08 ` Artem
@ 2005-11-13 22:01 ` Artem
2005-11-13 22:04 ` Artem
0 siblings, 1 reply; 15+ messages in thread
From: Artem @ 2005-11-13 22:01 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
Artem wrote:
> Artem wrote:
>
>>
>> Т.к. slmodemd работает из-под root (под обычным user вроде тоже
>> работает, но выдает ошибки при старте - жалуется на memory allocation
>> и еще на что-то), то после старта из-под рута, он открывает звуковое
>
>
> А может, его вообще доработать так, чтобы запускать из-под какого-нибудь
> системного пользователя - в целях секурности? Какие в этом случае могут
> быть грабли и из-под какой группы пользователей его стартовать лучше будет?
> Повторятся ли в этом случае грабли с root ?
>
Хотелось бы услышать о возможности подобного в принципе...
Rgds, Artem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [sisyphus] доступ к alsa из-под разных пользователей
2005-11-12 16:57 [sisyphus] доступ к alsa из-под разных пользователей Artem
2005-11-12 17:08 ` Artem
@ 2005-11-12 18:01 ` Sergey Vlasov
2005-11-12 18:28 ` Artem
` (3 more replies)
1 sibling, 4 replies; 15+ messages in thread
From: Sergey Vlasov @ 2005-11-12 18:01 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
[-- Attachment #1: Type: text/plain, Size: 2344 bytes --]
On Sat, Nov 12, 2005 at 06:57:39PM +0200, Artem wrote:
> Продолжая терзать slmodemd , стал добавлять в него софтовый вывод звука
> (тот, который должен выводиться через отсутствующий у меня, и наверное,
> у многих владельцев ноутбуков модемный динамик). Вот уже и модем начал
> голос подавать (в виде прерывистого и более высокчастотного писка пока,
> но это уже вопросы конверсии различных частот оцифровки и синхронизация
> размеров буферов - решаются с помощью того же alsa api).
> Т.к. slmodemd работает из-под root (под обычным user вроде тоже
> работает, но выдает ошибки при старте - жалуется на memory allocation и
> еще на что-то), то после старта из-под рута, он открывает звуковое
> устройство alsa default - и после этого все программы (хmms, aplay)
> из-под простых пользователей начинают ругаться на то, что нет доступа к
> звуковому устройству (хотя у меня настроен dmix). Стартую slmodemd
> из-под простого пользователя и в под тем же пользователем пробую xmms -
> звуки от модема и от xmms нормально микшируются.
>
> Подозревая, что это какие-то особенности sisyphus, отсылаю письмо сюда.
Нет, всё хуже - это особенности dmix. Нужно задавать ему параметры:
ipc_key INT # Unique ipc key
ipc_perm INT # ipc permissions (default 0600)
ipc_gid INT # ipc gid (default -1 = disable)
ipc_key_add_uid BOOL # Add current uid to ipc_key
dmix использует SysV IPC (разделяемую память и семафоры, причём ему
нужно два сегмента разделяемой памяти - в одном управляющая
информация, в другом буфер для звуковых данных). Первый процесс,
использующий dmix, выполняет fork(), и получившийся новый процесс
становится сервером; остальные процессы получают от сервера дескриптор
реального звукового устройства (для этого используется unix socket в
/tmp, имя сокета передаётся через сегмент разделяемой памяти).
Кстати, параметр ipc_gid, необходимый для раздачи доступа к dmix,
появился совсем недавно - в libalsa-1.0.9 его нет, нужна ещё
официально не вышедшая 1.0.10.
> P.P.S. Это только у меня в XMMS при выводе через dmix не работает
> "пауза"? Воспроизведение останавливается, но продолжить потом нельзя -
> нужно сначала композицию включать кнопкой play. При указании вывода
> напрямую в hw:0.0 - все работает.
Что-то там сломано - возможно, что и в самом dmix.
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [sisyphus] доступ к alsa из-под разных пользователей
2005-11-12 18:01 ` Sergey Vlasov
@ 2005-11-12 18:28 ` Artem
2005-11-13 18:58 ` [sisyphus] " Michael Shigorin
` (2 subsequent siblings)
3 siblings, 0 replies; 15+ messages in thread
From: Artem @ 2005-11-12 18:28 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
Sergey Vlasov wrote:
>и sisyphus, отсылаю письмо сюда.
>
>
> Нет, всё хуже
Нет - все отлично! Попробуем IPC на практике. Благо, и книжка рядом
имеется. :-)
- это особенности dmix. Нужно задавать ему параметры:
>
> ipc_key INT # Unique ipc key
> ipc_perm INT # ipc permissions (default 0600)
> ipc_gid INT # ipc gid (default -1 = disable)
> ipc_key_add_uid BOOL # Add current uid to ipc_key
>
> dmix использует SysV IPC (разделяемую память и семафоры, причём ему
> нужно два сегмента разделяемой памяти - в одном управляющая
> информация, в другом буфер для звуковых данных). Первый процесс,
> использующий dmix, выполняет fork(), и получившийся новый процесс
> становится сервером; остальные процессы получают от сервера дескриптор
> реального звукового устройства (для этого используется unix socket в
> /tmp, имя сокета передаётся через сегмент разделяемой памяти).
>
> Кстати, параметр ipc_gid, необходимый для раздачи доступа к dmix,
> появился совсем недавно - в libalsa-1.0.9 его нет, нужна ещё
> официально не вышедшая 1.0.10.
>
Огромное спасибо!
>
>>P.P.S. Это только у меня в XMMS при выводе через dmix не работает
>>"пауза"? Воспроизведение останавливается, но продолжить потом нельзя -
>>нужно сначала композицию включать кнопкой play. При указании вывода
>>напрямую в hw:0.0 - все работает.
>
>
> Что-то там сломано - возможно, что и в самом dmix.
>
Значит, не один я такой ;-)
Rgds, Artem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [sisyphus] Re: доступ к alsa из-под разных пользователей
2005-11-12 18:01 ` Sergey Vlasov
2005-11-12 18:28 ` Artem
@ 2005-11-13 18:58 ` Michael Shigorin
2005-11-13 21:41 ` Artem
2005-11-17 14:07 ` Artem
2005-11-17 14:44 ` [sisyphus] xmms и dmix pause (was: доступ к alsa из-под разных пользователей) Artem
3 siblings, 1 reply; 15+ messages in thread
From: Michael Shigorin @ 2005-11-13 18:58 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
On Sat, Nov 12, 2005 at 09:01:16PM +0300, Sergey Vlasov wrote:
> > P.P.S. Это только у меня в XMMS при выводе через dmix не
> > работает "пауза"? Воспроизведение останавливается, но
> > продолжить потом нельзя - нужно сначала композицию включать
> > кнопкой play. При указании вывода напрямую в hw:0.0 - все
> > работает.
Можно багу на того, кто предложил это по умолчанию?
> Что-то там сломано - возможно, что и в самом dmix.
Есть устойчивое подозрение, что там _много_ что сломано...
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 15+ messages in thread
* [sisyphus] Re: доступ к alsa из-под разных пользователей
2005-11-12 18:01 ` Sergey Vlasov
2005-11-12 18:28 ` Artem
2005-11-13 18:58 ` [sisyphus] " Michael Shigorin
@ 2005-11-17 14:07 ` Artem
2005-11-18 6:49 ` Anton Farygin
2005-11-17 14:44 ` [sisyphus] xmms и dmix pause (was: доступ к alsa из-под разных пользователей) Artem
3 siblings, 1 reply; 15+ messages in thread
From: Artem @ 2005-11-17 14:07 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
> On Sat, Nov 12, 2005 at 09:01:16PM +0300, Sergey Vlasov wrote:
>
>
>> Что-то там сломано - возможно, что и в самом dmix.
>
> Есть устойчивое подозрение, что там _много_ что сломано...
Что ж... В течение "послеобеда" удалось выяснить следующее:
1. поддержка паузы (ф-ция snd_pcm_pause() в alsa api, в dmix ее деяния
воплощаются посредством snd_pcm_dmix_pause, см
alsalib-x.x.x/src/pcm/pcm_dmix.c ) в dmix не реализована - там
"заглушка" в виде
static int snd_pcm_dmix_pause(snd_pcm_t *pcm ... бла-бла-бла
{
return -EIO;
}
также в pcm_direct.c
dmix->shmptr->s.info = spcm->info & ~SND_PCM_INFO_PAUSE;
что в итоге приводит к выдаче ф-цией snd_pcm_hw_params_can_pause()
FALSE - результата.
>> > P.P.S. Это только у меня в XMMS при выводе через dmix не
>> > работает "пауза"? Воспроизведение останавливается, но
>> > продолжить потом нельзя - нужно сначала композицию включать
>> > кнопкой play. При указании вывода напрямую в hw:0.0 - все
>> > работает.
....
>> Можно багу на того, кто предложил это по умолчанию?
2. А может - не надо? ;-)
Я вообще-то патч наваял.... Для xmms-output-alsa (thanks to MPlayer
sources) O:-)
Но он, наверное, никому не нужен .... O:-)
Rgds, Artem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [sisyphus] Re: доступ к alsa из-под разных пользователей
2005-11-17 14:07 ` Artem
@ 2005-11-18 6:49 ` Anton Farygin
2005-11-18 12:02 ` [sisyphus] Re: ДПУФХР Л alsa ЙЪ-РПД ТБЪОЩИ РПМШЪПЧБФЕМЕК Artem
2005-11-18 15:32 ` [sisyphus] Re: доступ к alsa из-под разных пользователей Artem
0 siblings, 2 replies; 15+ messages in thread
From: Anton Farygin @ 2005-11-18 6:49 UTC (permalink / raw)
To: sisyphus
On Thu, 17 Nov 2005 16:07:01 +0200, Artem wrote:
> 2. А может - не надо? ;-) Я вообще-то патч
> наваял.... Для xmms-output-alsa (thanks to MPlayer sources) O:-)
> Но он, наверное, никому не нужен .... O:-)
А может быть исправить libalsa ? ;-)
Rgds,
Rider
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [sisyphus] Re: ДПУФХР Л alsa ЙЪ-РПД ТБЪОЩИ РПМШЪПЧБФЕМЕК
2005-11-18 6:49 ` Anton Farygin
@ 2005-11-18 12:02 ` Artem
2005-11-18 15:32 ` [sisyphus] Re: доступ к alsa из-под разных пользователей Artem
1 sibling, 0 replies; 15+ messages in thread
From: Artem @ 2005-11-18 12:02 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
Anton Farygin wrote:
> On Thu, 17 Nov 2005 16:07:01 +0200, Artem wrote:
>
>
>>2. А может - не надо? ;-) Я вообще-то патч
>>наваял.... Для xmms-output-alsa (thanks to MPlayer sources) O:-)
>>Но он, наверное, никому не нужен .... O:-)
>
>
> А может быть исправить libalsa ? ;-)
>
> Rgds,
> Rider
А смысл? За ними (разработчиками) - все равно не угонишся. Да и не
больно нужно это исправление libalsa - паузу можно делать по крайней
мере двумя способами - вот второй и не был в xmms ... ээ.. доделан, что-ли?
Rgds, Artem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [sisyphus] Re: доступ к alsa из-под разных пользователей
2005-11-18 6:49 ` Anton Farygin
2005-11-18 12:02 ` [sisyphus] Re: ДПУФХР Л alsa ЙЪ-РПД ТБЪОЩИ РПМШЪПЧБФЕМЕК Artem
@ 2005-11-18 15:32 ` Artem
1 sibling, 0 replies; 15+ messages in thread
From: Artem @ 2005-11-18 15:32 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
Anton Farygin wrote:
> On Thu, 17 Nov 2005 16:07:01 +0200, Artem wrote:
>
>
>>2. А может - не надо? ;-) Я вообще-то патч
>>наваял.... Для xmms-output-alsa (thanks to MPlayer sources) O:-)
>>Но он, наверное, никому не нужен .... O:-)
>
>
> А может быть исправить libalsa ? ;-)
>
> Rgds,
> Rider
Зачем? За девелоперами вряд ли угонишься ;-)
https://bugzilla.altlinux.org/attachment.cgi?id=1254&action=edit
Rgds, Artem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [sisyphus] xmms и dmix pause (was: доступ к alsa из-под разных пользователей)
2005-11-12 18:01 ` Sergey Vlasov
` (2 preceding siblings ...)
2005-11-17 14:07 ` Artem
@ 2005-11-17 14:44 ` Artem
2005-11-24 12:44 ` [sisyphus] " Michael Shigorin
3 siblings, 1 reply; 15+ messages in thread
From: Artem @ 2005-11-17 14:44 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
>> > P.P.S. Это только у меня в XMMS при выводе через dmix не
>> > работает "пауза"? Воспроизведение останавливается, но
>> > продолжить потом нельзя - нужно сначала композицию включать
>> > кнопкой play. При указании вывода напрямую в hw:0.0 - все
>> > работает.
....
>> Можно багу на того, кто предложил это по умолчанию?
А может - не надо? ;-)
Я вообще-то патч наваял.... Для xmms-output-alsa (thanks to MPlayer
sources) O:-)
Но он, наверное, никому не нужен .... O:-)
P.S. Еще замечено падение xmms (изредка) при просмотре каталогов для
добавления композиции.
У кого-то наблюдается подобное?
Так же (является это багом - или нет - не знаю) xmms вылетает с segfault
при добавлении папки, в которой
имеется плейлист, в котором имеется список композиций из данной папки,
включая сам плейлист (рекурсия ;-) )
Rgds, Artem.
^ permalink raw reply [flat|nested] 15+ messages in thread
* [sisyphus] Re: xmms и dmix pause (was: доступ к alsa из-под разных пользователей)
2005-11-17 14:44 ` [sisyphus] xmms и dmix pause (was: доступ к alsa из-под разных пользователей) Artem
@ 2005-11-24 12:44 ` Michael Shigorin
2005-11-24 22:33 ` [sisyphus] Re: xmms и dmix pause Artem
0 siblings, 1 reply; 15+ messages in thread
From: Michael Shigorin @ 2005-11-24 12:44 UTC (permalink / raw)
To: ALT Linux Sisyphus discussion list
On Thu, Nov 17, 2005 at 04:44:13PM +0200, Artem wrote:
> >>Можно багу на того, кто предложил это по умолчанию?
> А может - не надо? ;-) Я вообще-то патч наваял.... Для
> xmms-output-alsa (thanks to MPlayer sources) O:-)
> Но он, наверное, никому не нужен .... O:-)
Нужен, спасибо, постараюсь докарабкаться до xmms :-)
> P.S. Еще замечено падение xmms (изредка) при просмотре
> каталогов для добавления композиции. У кого-то наблюдается
> подобное?
Такого не встречал.
> Так же (является это багом - или нет - не знаю) xmms вылетает
Фигассе "не знаю". Конечно, является!
> с segfault при добавлении папки, в которой имеется плейлист,
> в котором имеется список композиций из данной папки, включая
> сам плейлист (рекурсия ;-) )
А пофиксить выйдет? :)
--
---- WBR, Michael Shigorin <mike@altlinux.ru>
------ Linux.Kiev http://www.linux.kiev.ua/
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [sisyphus] Re: xmms и dmix pause
2005-11-24 12:44 ` [sisyphus] " Michael Shigorin
@ 2005-11-24 22:33 ` Artem
0 siblings, 0 replies; 15+ messages in thread
From: Artem @ 2005-11-24 22:33 UTC (permalink / raw)
To: shigorin, ALT Linux Sisyphus discussion list
[-- Attachment #1: Type: text/plain, Size: 2069 bytes --]
Michael Shigorin wrote:
> On Thu, Nov 17, 2005 at 04:44:13PM +0200, Artem wrote:
>
>>>>Можно багу на того, кто предложил это по умолчанию?
>>
>>А может - не надо? ;-) Я вообще-то патч наваял.... Для
>>xmms-output-alsa (thanks to MPlayer sources) O:-)
>>Но он, наверное, никому не нужен .... O:-)
>
>
> Нужен, спасибо, постараюсь докарабкаться до xmms :-)
>
>
см. bugzilla.
>
> Такого не встречал.
>
>
Редко, но проявляется. На одной системе - чаще, на другой - реже...
Иногда - целой серией идет (невозможно папку добавить раз за разом).
Попробую собрать с debug и отловить. Кстати, толком так и не понял - как
включить вывод отладочной информации в xmms при сборке? В исходниках
вывод оной имеется. В alsa-out включал подобное информирование с помощью
установки переменной debug в 1 в С-шных исходниках и последующей
пересборки. А где в main эти "ручки" ?
>>Так же (является это багом - или нет - не знаю) xmms вылетает
>
>
> Фигассе "не знаю". Конечно, является!
>
>
>>с segfault при добавлении папки, в которой имеется плейлист,
>>в котором имеется список композиций из данной папки, включая
>>сам плейлист (рекурсия ;-) )
>
>
> А пофиксить выйдет? :)
>
Нужно придти к консенсусу по этому поводу :-) . Т.е. - что и как лучше
фиксить. Тут похоже и не только рекурсия виновата. В подтверждение
кидаю 2 плейлиста - попробуйте, авось еще что-то найдете.
В playlist1 - как раз рекурсия работает (см. конец файла) - загружается
(через добавление плейлиста) вроде бы успешно, но при прокрутке вниз -
segfault. Если поправить файл и добавить самого себя в начало - то
вылетает сразу же... Загрузка плейлиста через добавление каталога/файла
- segfault моментальный в любом из вариантов рекурсии.
В playlist2 - что здесь срабатывает - не знаю даже... Но сегфолтится
именно при добавлении как папки/файла, при добавлении как плейлиста -
все нормально.
Если 2-й баг в принципе решаем через отключение добавления плейлистов
через диалог файла/каталога - то в случае с первым ?
"Алгоритмы+структуры данных=программы"(с) ? ;-)
Rgds, Artem.
[-- Attachment #2: playlist1.gz --]
[-- Type: application/gzip, Size: 357 bytes --]
[-- Attachment #3: playlist2.gz --]
[-- Type: application/gzip, Size: 320 bytes --]
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2005-11-24 22:33 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-12 16:57 [sisyphus] доступ к alsa из-под разных пользователей Artem
2005-11-12 17:08 ` Artem
2005-11-13 22:01 ` Artem
2005-11-13 22:04 ` Artem
2005-11-12 18:01 ` Sergey Vlasov
2005-11-12 18:28 ` Artem
2005-11-13 18:58 ` [sisyphus] " Michael Shigorin
2005-11-13 21:41 ` Artem
2005-11-17 14:07 ` Artem
2005-11-18 6:49 ` Anton Farygin
2005-11-18 12:02 ` [sisyphus] Re: ДПУФХР Л alsa ЙЪ-РПД ТБЪОЩИ РПМШЪПЧБФЕМЕК Artem
2005-11-18 15:32 ` [sisyphus] Re: доступ к alsa из-под разных пользователей Artem
2005-11-17 14:44 ` [sisyphus] xmms и dmix pause (was: доступ к alsa из-под разных пользователей) Artem
2005-11-24 12:44 ` [sisyphus] " Michael Shigorin
2005-11-24 22:33 ` [sisyphus] Re: xmms и dmix pause Artem
ALT Linux Sisyphus discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \
sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru
public-inbox-index sisyphus
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.sisyphus
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git