# Ongelma äänien ja iptablesin kanssa

## KimmoKM

Ongelma 1:

Ongelmat alkavat siitä kun minä huomasin että noin minuutin pelaamisen/käyttämisen jälkeen Strataguksen (RTS-pelimoottori) äänet lakkaavat ja saan virheilmoitukset:

```
SDL: Audio timeout - buggy audio driver? (disabled)

audio: Bad file descriptor
```

ja aika pian sen jälkeen alkaa tulvimaan viestiä

```
src/sound/sound.c:115: ***** NO FREE SLOT IN SOUND FIFO *****
```

. Noh, minä ajattelin että ongelma oli vain Strataguksen kanssa ja jätin sen aikalailla huomiotta, koska Stratagus oli ainoa ohjelma jossa äänet eivät toimi. Mutta tänään asentaessani Supertuxin huomasin että ongelma olikin muissa ohjelmissa. Ilmeisesti jotain on mennyt rikki SDL:n, ALSA:n tai jonkun muun sellaisen kirjastoissa. Ongelman takia olen uudelleenasentanut SDL:n, libogg:n, ALSA:n jne. eikä se ole auttanut. Ainoa ääniin liittyvä muutos on kernelin kääntö jonkun ehdotuksesta OSS-tuen kanssa joka poisti äänet kokonaan. Tämän vuoksi palautin varmuuskopion (Valitettavasti vanhan, minut pitäisi kirota Gehennomiin Demogorgonin ruoaksi) kernelin konfiguraatiosta ja tämän jälkeen äänet alkoivat toimia. Tämä vuorostaan rikkoi iptablesin joka itkee käynnistyessään jostain, siitä ongelmassa 3.

Ongelma 2:

Ohjelmissa, joita en ole kääntänyt itse, äänet toimivat usein kaksinkertaisella nopeudella. Ongelmallisia ohjelmia ovat esim. Myth II ja Kohan (Kaupallisia pelejä) ja Macromedian FlashPlayer. Kaikissa suljetuissa ohjelmissa ongelmia ei ole (Kuten Americas Army ja kaupallinen versio TuxRaceristä).

Ongelma 3:

Ongelma siis alkoi kernelin käännön yhteydessä. Olin palauttanut varmuuskopion joka oli yhden käännön vanha eikä siinä ollut iptables-tukea. Joten palautin sen niin hyvin kuin vain osasin käyttäen samaa HOWTO:a kuin sen ensimmäistä kertaa toimimaan saadessani. Nyt kumminkin iptables valittaa käynnistyessään:

```

* Loading iptables state and starting firewall...

 * Restoring iptables ruleset

iptables-restore v1.2.11: iptables-restore: unable to initializetable 'nat'

Error occurred at line: 2

Try `iptables-restore -h' or 'iptables-restore --help' for more information.                                          [ !! ]

```

/var/lib/iptables/rules-save sisältää tällaista:

```

# Generated by iptables-save v1.2.11 on Fri Apr 22 21:46:01 2005

*nat

:PREROUTING ACCEPT [2071:366428]

:POSTROUTING ACCEPT [3591:222119]

:OUTPUT ACCEPT [17991:1080199]

[14400:858080] -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.5

#COMMIT

# Completed on Fri Apr 22 21:46:01 2005

# Generated by iptables-save v1.2.11 on Fri Apr 22 21:46:01 2005

*filter

:INPUT ACCEPT [0:0]

:FORWARD DROP [0:0]

:OUTPUT ACCEPT [0:0]

:drop-and-log - [0:0]

[66113:6123898] -A INPUT -i lo -j ACCEPT

[21523:24922614] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -j ACCEPT

[0:0] -A INPUT -s 192.168.1.0/255.255.255.0 -i eth0 -j drop-and-log

[0:0] -A INPUT -d 192.168.1.5 -i eth0 -p icmp -j ACCEPT

[315376:307593257] -A INPUT -d 192.168.1.5 -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

[0:0] -A INPUT -d 192.168.1.5 -i eth0 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 22 -j ACCEPT

[195:64952] -A INPUT -j DROP

[0:0] -A FORWARD -p tcp -m tcp --sport 137:139 -j DROP

[0:0] -A FORWARD -p udp -m udp --sport 137:139 -j DROP

[0:0] -A FORWARD -p tcp -m tcp --sport 635 -j DROP

[0:0] -A FORWARD -p udp -m udp --sport 635 -j DROP

[0:0] -A FORWARD -p tcp -m tcp --sport 2049 -j DROP

[0:0] -A FORWARD -p udp -m udp --sport 2049 -j DROP

[0:0] -A FORWARD -p tcp -m tcp --sport 111 -j DROP

[0:0] -A FORWARD -p udp -m udp --sport 111 -j DROP

[0:0] -A FORWARD -i eth0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

[0:0] -A FORWARD -i eth0 -o eth0 -j ACCEPT

[0:0] -A FORWARD -j DROP

[66113:6123898] -A OUTPUT -o lo -j ACCEPT

[21100:2230286] -A OUTPUT -s 192.168.1.5 -d 192.168.1.0/255.255.255.0 -o eth0 -j ACCEPT

[0:0] -A OUTPUT -s 192.168.1.0/255.255.255.0 -d 192.168.1.0/255.255.255.0 -o eth0 -j ACCEPT

[0:0] -A OUTPUT -d 192.168.1.0/255.255.255.0 -o eth0 -j drop-and-log

[272154:53596636] -A OUTPUT -s 192.168.1.5 -o eth0 -j ACCEPT

[0:0] -A OUTPUT -j DROP

[0:0] -A drop-and-log -j LOG --log-level 6

[0:0] -A drop-and-log -j DROP

COMMIT

# Completed on Fri Apr 22 21:46:01 2005

```

Tämä on kopioitu Fedoran varmuuskopiosta ja se oli hyvin suurella vaivalla tehty enkä tahtoisi siihen juurikaan tehdä muutoksia (Paitsi parempaan suuntaan) ja se ainakin toimii. Nyt iptables ei kuitenkaan käynnisty. Jotain puuttuu kernelistä?

Mikäli tarvitset lisätietoa jostain, kysy. Mielellään myös ohjeet siihen miten vastauksen saa selville jos kysymys on monimutkainen.  :Wink: 

Näitä ongelmia lukuunottamatta Gentoo on toiminut vallan mainiosti ja ns. "hyvä maku on jäänyt suuhun".[/code]

----------

## Obi-Lan

Aika villei vikoi. Mikä versio kernelistä? Itse kokeilisin toisella äänikortilla mitä tapahtuu (veikkasisin bugii arjureis tjsp). Iptablesiin en osaa muuta heittää, kuin että ehkä sulta puuttuu joku moduli.

----------

## KimmoKM

 *Obi-Lan wrote:*   

> Aika villei vikoi. Mikä versio kernelistä? Itse kokeilisin toisella äänikortilla mitä tapahtuu (veikkasisin bugii arjureis tjsp). Iptablesiin en osaa muuta heittää, kuin että ehkä sulta puuttuu joku moduli.

 Kernelin versio on 2.6.10 jolla sain ATI:n ajurit suoraan toimimaan. Iptables-ongelmassa epäilen myös puuttuvaa, moduulia, itse asiassa olen varma siitä koska ongelma ilmeni tämän sähläyksen aiheuttaman kernelin käännön jälkeen. Mutta ongelma on se että edes Googletuksen, [kirosanan] manuaalin ja noin tunnin menuconfigista etsimisen ja IRC:stä kysymisen jälkeen ei löytynyt vastausta.

Tuosta äänien nopeusongelmasta voi sanoa sen verran että sama ongelma oli Fedorassakin mutta Mythin sain toimimaan (Sen puhutut alkuteksit ovat niin loistavia että niiden "puuttuminen" saa minut menettämään innostuksen sen pelaamiseen  :Wink: . Muissa en sitten saanut.

BTW, sinulla on kiva nickname.

----------

## Obi-Lan

http://gentoo-wiki.com/HOWTO_Iptables_for_newbies#Kernel_Config

Onkoha tosta linkistä mitään iloa... Ja sitte jos oot kääntäny kaikki moduleiks niin kato /etc/modules.autoload.d/kernel-2.6, että kaikki tarvittavat modulit latautuu bootis? (en oo kyl varma onko tarpeellista). Kokeile firestarterilla yms. saatko yleensä toimiin. Mutua: mille kernel versiolle skriptas on kirjoitettu, onko mahdollista, että komentojen syntaksi olisi muuttunut. Vastaako laitteisto ja osoitteet skriptiä?

Itse en ole jaksanu conffata minkäänlaista palomuuria, opiskelija-asuntolan muuri suojaa sen minkä suojaa, enkä usko että kukaan täällä asuvista sisäverkossa kiinni olevista insinööriopiskelijoista mihkää osais murtautua  :Wink:  (minä mukaan lukien).

Joo oon miettiny pitäskö mun hankkia trademark mun nickille...

----------

## KimmoKM

 *Obi-Lan wrote:*   

> http://gentoo-wiki.com/HOWTO_Iptables_for_newbies#Kernel_Config

 

Tuota minä käytin jo.

 *Quote:*   

>  Mutua: mille kernel versiolle skriptas on kirjoitettu, onko mahdollista, että komentojen syntaksi olisi muuttunut. Vastaako laitteisto ja osoitteet skriptiä?

 Ai iptablesin? Jollekkin 2.4x:lle mutta versiossa 2.6.10 toimi mainiosti ennen tuota tuhoista kernelin kääntöä.[/quote]

Ja - äänet ovat jossain välissä toimineet. Eli jossain välissä olen tehnyt jossain (SDL:ssä vaikka en tiedä miten?) tuhoa eikä uudestaan käännetyissä ohjelmissa äänet toimi.

Nyt avatar vastaa nicknamea.  :Wink: 

----------

## KimmoKM

Nyt kun asensin Cedegan CVS-version, sekään ei toiminut (Käännetty kun se on), mutta sain vinkin sen virheilmoitukista:

```
err:wave:ALSA_WaveInit open pcm: Laitetta ei ole

ALSA lib seq_hw.c:446:(snd_seq_hw_open) open /dev/snd/seq failed: Tiedostoa tai hakemistoa ei ole

fixme:ddraw:Main_DirectDraw_SetCooperativeLevel (0xaa4a3b48)->(00010021,00000015)
```

Jospa tässä on ongelma /dev/snd/seq:n puuttumisessa?

----------

## KimmoKM

Asensin nvsound-moduulin (nfroce-audio-paketissa) ja ongelma yksi korjaantui. Olisi pitänyt tehdä tämä aiemmin. Mutta muut ongelmat ovat edelleen jäljellä.

----------

## KimmoKM

Nyt huomasin, että kannattaisi asentaa ALSA. Mutta:

```
root /etc # init.d/alsasound restart

 * Storing ALSA Mixer Levels...

/usr/sbin/alsactl: save_state:1194: No soundcards found...                                                            [ !! ]

 * Unloading ALSA...                                                                                                  [ ok ]

 * Unloading ALSA modules...                                                                                          [ ok ]

 * Loading ALSA modules...

 *   Loading: snd-card-0...                                                                                           [ ok ]

 *   Loading: snd-seq-oss...                                                                                          [ ok ]

 *   Loading: snd-pcm-oss...                                                                                          [ ok ]

 * ERROR: Failed to load necessary drivers                                                                            [ ok ]

 * Restoring Mixer Levels...

 * No mixer config in /etc/asound.state, you have to unmute your card!                                                [ ok ]
```

Joku ajuri ilmeisesti puuttuu ja /etc/asound.state puuttuu. Äänet kumminkin toimivat, mutta ongelmat eivät ole korjaantuneet. Ongelma on se, että se ei kerro mikä ajuri puuttuu. Olisi kiva tietää, mikä.

Ääniongelmat varmaan poistuvat, kun/jos hankin paremman äänikortin. Kolme muuta toimivat ongelmitta, tässä vain on ongelmia (Sekä Fedorassa että nyt Gentoossa).

----------

## pussi

Olethan varmasti lukenut Gentoo Linux ALSA Guide:n?

/etc/modules.d/alsa tiedostoon on laitettava oikeat aliakset (eli äänikorttisi kernel-moduulit) niin että gentoon init-skripta osaa ladata nuo snd-card-0 ym. Tämän jälkeen on vielä unmutettava äänet esim alsamixerillä (alsa-utils -paketista) kuten "* No mixer config in /etc/asound.state, you have to unmute your card! " yrittää kertoa.

EDIT: Toisin kuin tuossa ohjeessa sanotaan ei kannata asentaa alsa-drivers pakettia vaan kääntää alsa suoraan kerneliin moduuleiksi (olettaen että käytät 2.6 sarjan kerneliä)

----------

## KimmoKM

 *pussi wrote:*   

> Olethan varmasti lukenut Gentoo Linux ALSA Guide:n?

 Kyllä.

 *Quote:*   

> /etc/modules.d/alsa tiedostoon on laitettava oikeat aliakset (eli äänikorttisi kernel-moduulit) niin että gentoon init-skripta osaa ladata nuo snd-card-0 ym. Tämän jälkeen on vielä unmutettava äänet esim alsamixerillä (alsa-utils -paketista) kuten "* No mixer config in /etc/asound.state, you have to unmute your card! " yrittää kertoa.

 Oikeat aliakset ovat. Alsamixer taas ei käynnisty,

 *Quote:*   

> EDIT: Toisin kuin tuossa ohjeessa sanotaan ei kannata asentaa alsa-drivers pakettia vaan kääntää alsa suoraan kerneliin moduuleiksi (olettaen että käytät 2.6 sarjan kerneliä)

 Jossain käskettiin ottamaan kernelistä alsa-tuki pois.. No, minä poistan alsa-driversit ja käännän alsan kerneliin.

Edit:Kerneliin alsa-tuen kääntö ei auttanut. Samat vanhat virheilmoitukset.

Edit2:Alsamixerin herja on: "alsamixer: function snd_ctl_open failed for default: No such file or directory"

----------

## pussi

Näin homman pitäisi toimia:

1. Käännä kerneliin _oikeat_ alsan moduulit äänikortillesi (huom! MODUULEINA jos haluat käyttää gentoon initskriptiä, itse en ainakaan muuten saanut ääniä toimimaan).

2. Moduulien asennuksen jälkeen koita saatko ladattua äänikorttisi moduulin modprobella

3. Lisää moduuli etc/modules.d/alsa tiedostoon (esim. alias snd-card-0 snd-via82xx) tämän jälkeen saattaa joutua ajamaan modules-updaten (eikä siitä pitäisi olla haittaa vaikkei se välttämätöntä olisikaan).

4. tämän jälkeen /etc/init.d/alsasound restart ja unmuteat äänet alsamixerillä (alsa-utils paketista) ja äänten pitäisi toimia.

----------

## KimmoKM

Näin vaan olen tehnyt. Snd-intel8x0 latautuu modprobella ilman ongelmia.

Lisäksi tuo näyttää latautuvan:

 *   Loading: snd-card-0...                                                                                           [ ok ]

Mutta jotain puuttuu tai on väärin.

Ja, alsamixer ei edelleenkään käynnisty edellisessä viestissäni mainitsemasta syystä.

----------

## pussi

jos moduuli latautuu oikein mutta äänet eivät silti toimi olet todennäköisesti valinnut väärän äänikortin ajurit alsaan tai sitten jätit valitsematta jotain tarpeellista.

----------

## KimmoKM

Moduuli latautuu _ja_ äänet toimivat. Ja mouduuli on ainakin ALSA:n sivujen mukaan oikea (nForce-emolevylle integroitu äänikortti taitaa käyttää intel8x0:aa). Tuo herja vaan kummastuttaa enkä minä pidä herjoista.

----------

