# [SDL/ALSA?] Dziwny problem z grami/programami

## lazy_bum

Od jakiegoś czasu mam dość dziwny problem. Na jedym komputerze jest kilka kont, używane z Xami są w zasadzie tylko dwa. Leży sobie tam mój mały overlay, kilka sesji irssi/ekg (choć zazwyczaj są to dwie sesje ;).

Wracając do głównego problemu, wygląda on mniej tak, że gry działają kiedy chcą. Na początku może trochę informacji typu:

grupy

```
lazy_bum@roslin ~ $ groups lazy_bum

floppy cron audio cdrom video games lazy_bum

lazy_bum@roslin ~ $ groups malpa

floppy audio cdrom video games malpa
```

Znalazłem przynajmniej 3 gry, które są tym dotknięte: pengupop, xmoto i openttd. Wypatrzyłem, że wszystkie mają w DEPEND SDL, więc go przebudowałem. Problem szybko powrócił. Przebudowałem SDL (i inne sdl-*) na ~x86, problem znowu powrócił.

Objawia się to tak, że po odpaleniu gry ona... nie wiem jak to nazwać, jakby umierała? (-;

W przypadku pengupop pojawia się tło, ale już menu nie ma. xmoto robi ładny czarny ekran... i tyle (powinno się pojawić dogrywanie poziomów etc.). Gry nie zajmują procka, top pokazuje obciążenia rzędu 0-1%...

I na koniec najciekawsze: działa to też tak, że gry raz nie działają na jedym koncie, a raz na drugim (mówię o tych głównych dwóch, które korzystają z Xów). Oczywiście zdarza się też, że działają na obu kontach bez problemu. Przypadku odwrotnego nie zaobserwowałem.

I na koniec pytanie: WTF?! (czyli: Wyjaśnisz Ten Fakt ;)

::edit::

Jeszcze mogę dodać, że czasem da sie to naprawić przez wylogowanie się usera1, zalogowanie usera2, odpalenie Xów i gry, wyłączenie Xów, wylogowanie, a potem magicznie zaczyna działać i u usera1....

----------

## lazy_bum

*bump*  /-:

----------

## sebas86

Alsa.  :Smile: 

Dokładnie to samo dzieje się u mnie gdy jeden program zablokuje dźwięk (zazwyczaj firefox podczas przeglądania stron), skutecznie wiesza mpd, inne aplikacje do czasu odblokowania urządzenia. Leczenie proste - ubicie wszystkich procesów korzystających z dźwięku (dla tego po wylogowaniu śmiga). Pewnym rozwiązaniem jest wymuszenie aby wszystkie programy korzystały z urządzenia default - testowane na bmpx, wybrałem w nim konkretne urządzenie zamiast default i zaczął wtedy blokować inne programy, gdzieś w dokumentacji ALSY powinno to być opisane (po emerge alsa-lib pojawia się info o tym) niestety nie wiem jak wymusić na wszystkich aplikacjach aby korzystały z urządzenia default i tylko z niego.

----------

## RA6

Ostatnio próbowałem w openttd pograć i miałem to samo. Nie wiem czemu, ale coś nie tak było z sdl bo nie wykrywało mi wyjścia video tak jak miałem wcześniej  :Sad:  Kilka wersji openttd temu i z 2 xorg działało, a obecne wersje nie chciały więc dałem sobie spokój i usunąłem.

----------

## lazy_bum

 *sebas86 wrote:*   

> Alsa. :)
> 
> Dokładnie to samo dzieje się u mnie gdy jeden program zablokuje dźwięk (zazwyczaj firefox podczas przeglądania stron), skutecznie wiesza mpd, inne aplikacje do czasu odblokowania urządzenia. Leczenie proste - ubicie wszystkich procesów korzystających z dźwięku (dla tego po wylogowaniu śmiga). Pewnym rozwiązaniem jest wymuszenie aby wszystkie programy korzystały z urządzenia default - testowane na bmpx, wybrałem w nim konkretne urządzenie zamiast default i zaczął wtedy blokować inne programy, gdzieś w dokumentacji ALSY powinno to być opisane (po emerge alsa-lib pojawia się info o tym) niestety nie wiem jak wymusić na wszystkich aplikacjach aby korzystały z urządzenia default i tylko z niego.

 

Jest to jakiś trop. Gra nie działa -> stop ALSY -> gra działa -> start ALSY -> gra nie działa...

ALSA z jajka czy z portage? (u mnie ta pierwsza)

I jeszcze jedno, od dawna tak masz? U mnie kiedyś wszystko ładnie współgrało, a teraz... szkoda, ze nie pamiętam momentu, kiedy te cuda wystartowały.

----------

## sebas86

 *lazy_bum wrote:*   

> ALSA z jajka czy z portage? (u mnie ta pierwsza)

 

Testowane obydwa, dodatkowo może wspomnę, że przy wersji z portage pojawia się informacja:

 *Quote:*   

> If you experience problems, please try building the in-kernel
> 
> ALSA drivers instead. This ebuild is not recommended and is
> 
> likely to be removed from portage at a later date.

 

Ale za to z alsa-lib:

 *Quote:*   

> Please try media-sound/alsa-driver before filing bugs about unstable
> 
> or missing output with in-kernel drivers. Misaligned versions of
> 
> alsa-lib and drivers used can cause problems.

 

więc...  :Very Happy:  może spróbuj najpierw wersji z portage + usunięcie plików asound.state z /etc i /var/lib/alsa.

Zresztą po zmianie na wersje z portage bez większej różnicy, chociaż nie próbowałem jeszcze usuwać asound.state przy tym.

 *lazy_bum wrote:*   

> I jeszcze jedno, od dawna tak masz? U mnie kiedyś wszystko ładnie współgrało, a teraz... szkoda, ze nie pamiętam momentu, kiedy te cuda wystartowały.

 

W sumie od czasu kiedy zmieniłem maszynę i zacząłem używać mpd, wcześniej zazwyczaj wyłączałem wszystkie inne aplikacje przed uruchamianiem gier (bo potrafiło przykrzaczyć na Duronie kiedy ktoś się odzywał na IM albo Firefox coś odświeżał), więc nie było szans na zauważenie tego.

----------

## lazy_bum

Nie wiem czy to kwestia szczęścia, czy ten sposób działa, ale kolega mziab zasugerował, żeby dodać do /etc/env.d/99sdl takie o:

```
SDL_AUDIODRIVER=alsa 

AUDIODEV=default
```

Jak na razie ww. problem się nie pojawia, jeżeli nie objawi się w ciągu kilku(nastu) dni to dodam [SOLVED] do tematu.

----------

## lazy_bum

Problem powrócił...

Zdecydowanie ma to jakiś związek z alsą. Jak ją zastopuję - wszystko ładnie działa, jak wystartuję - przestaje. Oczywiście nadal dochodzą różne losowe objawy z pierwszego posta.

 *emerge alsa-lib alsa-headers alsa-utils -pv wrote:*   

> [ebuild   R   ] media-sound/alsa-headers-1.0.14  2,540 kB 
> 
> [ebuild   R   ] media-libs/alsa-lib-1.0.14a-r1  USE="midi -alisp -debug -doc" ALSA_PCM_PLUGINS="adpcm alaw copy dshare dsnoop extplug file hooks ladspa lfloat linear meter mulaw multi null rate route share shm" 768 kB 
> 
> [ebuild   R   ] media-sound/alsa-utils-1.0.14  USE="midi nls" 991 kB 

 

 *lspci | grep audio wrote:*   

> 00:0b.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)

 

 *emerge libsdl sdl-sound sdl-mixer -pv wrote:*   

> [ebuild   R   ] media-libs/libsdl-1.2.12  USE="X alsa opengl xv -aalib -arts -dga -directfb -esd -fbcon -ggi -libcaca -nas -noaudio -noflagstrip -nojoystick -novideo -oss -svga -xinerama" 2,764 kB
> 
> [ebuild   R   ] media-libs/sdl-sound-1.0.1-r2  USE="mikmod mp3 mpeg vorbis -flac -physfs -speex" 996 kB
> 
> [ebuild   R   ] media-libs/sdl-mixer-1.2.7  USE="mikmod mp3 vorbis -timidity" 1,915 kB

 

::edit::

Dodałem trochę danych dla pełniejszego obrazu.

----------

## lazy_bum

Problem dotyczy także dosboxa. Wygląda podobnie do innych, pojawia się okienko, w środku jest czarne i... tyle. Nie działa na nie ctrl+c w konsolce, ani X w rogu.

Da się jakoś sprawdzić co w danej chwili "zajmuje" ALSĘ? \-:

----------

## sebas86

Spróbuj np. 

```
lsof | grep sound
```

----------

## lazy_bum

Nic ciekawego:

```
gkrellm    3702   lazy_bum  mem       REG        3,6   741308     360014 /usr/lib/libasound.so.2.0.0

gkrellm    3702   lazy_bum    8u      CHR       14,0            10059282 /dev/sound/mixer

dosbox     3719   lazy_bum  mem       REG        3,6   741308     360014 /usr/lib/libasound.so.2.0.0

dosbox     3719   lazy_bum  mem       REG        3,6   146240     360720 /usr/lib/libSDL_sound-1.0.so.1.0.0
```

```
gkrellm2   3419      malpa  mem       REG        3,6   741308     360014 /usr/lib/libasound.so.2.0.0

gkrellm2   3419      malpa    8u      CHR       14,0            10059282 /dev/sound/mixer

dosbox     3500      malpa  mem       REG        3,6   741308     360014 /usr/lib/libasound.so.2.0.0

dosbox     3500      malpa  mem       REG        3,6   146240     360720 /usr/lib/libSDL_sound-1.0.so.1.0.0
```

Oba konta korzystają z gkrellm. Na obu konfiguracja gkrellm-volume lekko się różniła, więc została ujednolicona. Nie sądzę jednak, żeby to miało jakieś zbawienne skutki, bo, jak pisałem wcześniej, "niedziałanie" nie było przypisane do konkretnego konta.

----------

