Hangerő némítás leálláskor?

Kezdőlap Fórumok Hangkártyákkal kapcsolatos problémák Hangerő némítás leálláskor?

10 bejegyzés megtekintése - 1-10 / 11
  • Szerző
    Bejegyzés
  • #1890705
    SeGa
    Felhasználó

      Azt figyeltem meg, hogy a gép leállításakor a hangszóró “zizeG2 egy kissé, azaz nincs lenémítva.A hangrendszer alsa, az initscriptje (/etc/init.d/alsa-utils) szerint:case $1 in ...,stop)...#mute_and_zero_levels "$TARGET_CARD" || EXITSTATUS=1...azaz a lenémítást valaki valamiért kikommentezte.A hangszórót magát az alsa mixerből kézzel is le tudom némítani, de nyilván kényelmesebb lenne egy automata módszer.Valami ötlet, hogy miért nem így csinálták?Debian Wheezy van a gépen.Üdv,SeGa

      #2207661
      uzsolt
      Felhasználó

        Gondolom, nem mindenki szereti, ha kikapcsoláskor lenémul a hangszórója, és a következő bekapcsoláskor nem hallja az indulót 🙂

        #2207662
        SeGa
        Felhasználó

          Ez azért nem olyan egyszerű!Az említett script a rendszer leállításakor elmenti, újraindításakor betölti a mixer beállításait.A kikommentezett némítás a beállítándításkor sok mentése után van. Tehát a szerző szándéka az lehetett, hogy a beállításokat megőrzi, a hangrendszert elnémítja (hogy leállításkor a hangszóró ne "zizegjen"), majd rendszerindításkor az elárolt értékeket visszaállítja (hogy mire a grafikus környezet feláll, már legyen hang).Ennek fényében a némítás kiiktatása nem logikus. Vagy odaírhatták volna, hogy "uncomment if you like".Üdv,SeGa

          #2207663
          uzsolt
          Felhasználó

            Ja, értem. Hát akkor kommenteld ki, ha úgy jobbnak érzed 🙂

            #2207664
            SeGa
            Felhasználó

              Kikommenteltem, de nem némított minden esetben.Eddig jutottam.Egyrészt, ha az alsamixerrel minden egyes hangeszközt lenémítok _és_ elmentem az alsactl paranccsal az állapotot, akkor nincs zavaró zizegő hang leállításkor.Másrészt a scriptet böngészve az látszik, hogy a mute_and_zero_levels hivja a mute_and_zero_levels_on_card függvényt, ez utóbbi pedig a mute_and_zero_level függvényt minden egyes hangeszközre.A legutóbbi függvény már nem is az initscriptben van, hanem a /usr/share/alsa/utils.sh script tartalmazza. Ennek megfelelo sora: amixer $CARDOPT -q set "$1" "0%" mute 2>&1Ez tényleg nullázni és némítani akar mindent. Viszont mivel néma módban dolgozik, nem írja ki, mit állított be. Meg kellene buherálni, hogy valamit kiírjon vagy naplózzon.Üdv,SeGa

              #2207665
              pointux
              Felhasználó

                Viszont mivel néma módban dolgozik, nem írja ki, mit állított be.

                Mármint mit nem?Egyébként valóban az alsa szolgáltatás záró akkordjában (az elágazás stop cimkéje) kell elnémítani (ráadásul az elején), mert utána már hogy. (Az amixer meg nem permenens, de, ha pl. mégsem működnek az elmentett beállítások, akkor a fordítot műveletett megcsináltathatod a szolgáltatás indításánál és újraindításánál... persze ott meg akkor, amikor már fut.)

                #2207666
                SeGa
                Felhasználó

                  Nem jól fogalmaztam.Tehát az amixer a -q kapcsolóval csendes módban dolgozik, és nem ír ki semmit. Így nem tudjuk, hogy mit sikerült némítania, mit nem.Barkácsoltam egy saját, nem init scriptet, ami ugyanezeket a kódrészleteket használja. Ezt csak úgy konzolból indítva vagy kiírja az adott mixer kontroll jellemzőit, meg azt, hogy nullázta és némította vagy azt írja ki, hogy nem talál ilyen komtrollt. Az alsamixer szerint tényleg nullázott és némított minden kontrolt. Kivétel a "beep", mert ilyen az eredeti scriptben nincs.A mindenrejó(?) kontrollok listája a forráskód szerint ez: Master, PCM, Synth, CD, Line, Mic, "PCM,1", Wave, Music, AC97, "Master Digital", DAC, "DAC,0", "DAC,1", Headphone, Speaker, Playback. Ebből persze nem következik, hogy a listából hiányzó "beep" okozná a hangszóró zizegését leállításkor.A kikommentezett némítás az init scriptben tényleg a stop cimkénél van, de nem az elején. Előtte vankártya/nincskártya ellenőrzés és a szintek tárolása található.Egyszóval: a rejtély számomra továbbra is rejtély.SeGa

                  #2207667
                  pointux
                  Felhasználó

                    Akkor minek rakod bele 'q' opciót, ami direkt ellenkezőjét teszi, mint a szándékod.Itt egy példa:[bash]amixer cset numid=10 off | grep ":" | sed 's/.*=//'[/bash]Ez a 10-es id-jű vezérlőt elnémítja (természetesen 'Switch'-nek kell lennie) és kiírja a kapcsoló vezérlés utáni állapotát, ami 'off'.Vagy[bash]amixer cset numid=9 100% | grep ":" | sed 's/.*=//'[/bash]E a 9-est állítja 100%-ra és kiírja a vezérlő értékét pl. 255.Ez kiírja a maximum értéket:[bash]amixer cget numid=9 | grep ";" | sed 's/.*max=//' | sed 's/,.*//'[/bash]Így %-ot is lehet is számolni.Így aztán egy scrpttel bármit ki tudsz iratni, megváltoztatni, akár feltételesen is.

                    #2207668
                    SeGa
                    Felhasználó

                      “Akkor minek rakod bele 'q' opciót, ami direkt ellenkezőjét teszi, mint a szándékod.”Állj, itt valami félrecsúszott, de nagyon!A -q opciót nem én tettem bele.A sztori sorrendben ez volt:Tapasztaltam, hogy leállításkor a hangszóró "zizeg".Próbáltam megérteni, miért.Kiderült, hogy az Alsa init szkriptjében van egy némításért felelős sor, de ki van kommentezve.A kommentet kiszedve a hangszóró még mindíg "zizegett" leállításkor.Továbbelemezve az init szkriptet kiderült, hogy a sokadik hívott rutinban szerepel valahol az amixer, de -q opcióval, azaz üzenetei el vannak nyomva.A szkript megfelelő sorát idéztem ebben a fórumban, de egy szóval sem állítottam, hogy saját alkotásom.A nagyobbik baj, hogy a megoldást nem találom.SeGa

                      #2207669
                      pointux
                      Felhasználó

                        Bocs, akkor nem értettem, hogy mit akarsz, azt hittem, hogy az egyik cél, vagy még meg nem oldott cél a kiíratás.Csak távolítsd el a "-q"-t, ha azt akarod tesztelni, hogy mit ír ki. Nem fog semmi galibát okozni.Utána beteheted, ha azt akarod, hogy a futáskor már ne írjon ki semmit.Az olyan mini scriptekkel el lehet némítani, sőt szelektíven lehet kiíratni valamit.Ha elnémítod (akár miyerből is) és azután állítod le, akkor zizeg?Ha teljesen kikapcsoltad akkor zizeg/inkább zúg?Ha ezek a "hibák" fennállnak, akkor inkább valamilyen illesztési hibát feltételeznek és szoftveresen nem fogod tudni javítani.

                      10 bejegyzés megtekintése - 1-10 / 11
                      • Be kell jelentkezni a hozzászóláshoz.