A.A.A. POSSIBILE SOLUZIONE (NON DEFINITIVA) PER BUG ALSA - AUDIO SPENTO

2 risposte [Ultimo messaggio]
Ritratto di AL9000
AL9000
(Guru)
Offline
Guru
Iscritto: 29/10/2005
Messaggi: 1277

Non so quanti di voi hanno problemi con i driver alsa e la scheda audio, ma penso di aver trovato una soluzione comoda per ovviare a questa seccatura.

Premetto: niente di definitivo, solo uno script da eseguire ogni qualvolta si presenta il problema.
Il tutto trovato molto empiricamente: si accettano consigli su migliorie varie da apportare.
Una volta eseguito il mio procedimento, si dovrà solo cliccare un collegamento ed immettere la password di root

Da quando ho opensuse 10.3 mi succede che molto spesso, all'avvio del sistema, l'audio sia disabilitato.

il problema è facilmente risolvibile aprendo una shell, diventando root ed impartendo il comando alsaconf, confermando tutte le scelte proposte di default.

E' comunque una grande scocciatura, così ho tentato un pò tutte le soluzioni che sono state proposte sul forum: aggiornare i pacchetti di alsa da un repository specifico, editare il file /etc/modprobe.d/sound e simili.

Nonostante la grandissima competenza di coloro che hanno proposto queste soluzioni (che ringrazio in ogni caso, visto che è gente degna della massima stima da parte di tutti noi del forum) il problema permaneva.

Così ho cominciato a spulciare nel sistema.

Essendo un tipo "comodo" ed essendomi stufato di dover sempre:

1)aprire una shell
2)diventare root
3)dare alsaconf
4)cliccare "invio" 4-5 volte
5)chiudere la shell
6)reimpostare il volume nel mio mixer

dopo l'ennesima riconfigurazione tramite alsaconf (quindi con audio attivo) ho fatto così ( e sembra funzionare):

1) creo una cartella nella mia home chiamandola audio
2) ci copio dentro i files /etc/modprobe.d/sound e /etc/modprobe.d/sound.YaST2save, così come stanno, senza modificarli
3) ci creo un file di testo chiamandolo audio, lo apro con un editor tipo kwrite e ci scrivo
#!/bin/bash<br /><br />cp /home/mio_nome_utente/audio/sound /etc/modprobe.d/<br /><br />cp /home/mio_nome_utente/audio/sound.YaST2save /etc/modprobe.d/<br /><br />rcalsasound restart
lo salvo e lo rendo eseguibile
4) creo un collegamento ad un'applicazione sul desktop, lo chiamo Audio Restart, scelgo l'icona che più mi piace, vado nella linguetta applicazione e nel campo comando ci scrivo
kdesu /home/mio_nome_utente/audio/audio
poi gli dò "ok", lo rendo eseguibile (non so se necessario) ed è fatta

Ora, quando il problema mi si presenta, clicco l'icona sul desktop, immetto la password di root e l'audio torna!

E non devo risettare i volumi del mio mixer, anche se scompare comunque dalla systray...eventualmente basta farlo ripartire: in ogni caso riesco a gestire i volumi da tastiera come faccio normalmente.

Se qualcuno vuole provare, se avete consigli per migliorare o semplificare ancora di più il tutto, sono tutto orecchi.

Ciao a tutti

Chi è investito di un'autorità si trasformerà inevitabilmente, secondo una legge sociale immutabile, in un oppressore ed in uno sfruttatore della società. (M.A. Bakunin)

Ritratto di AL9000
AL9000
(Guru)
Offline
Guru
Iscritto: 29/10/2005
Messaggi: 1277

continuo questo post da solo, nella speranza che sia utile non solo a me.

come spesso succede quando si va a tentativi come ho fatto io, la procedura che ho descritto non è esatta: ossia non è del tutto necessaria.

Mi spiego:

quando all'avvio del pc mi succede di avere l'audio spento (o disabilitato, fate voi), apro la shell, divento root, lancio alsaconf, confermo tutto e l'audio torna.

E fin qui ci siamo.

Ora, per evitare tutto questo, è sufficiente dare da root il comando
rcalsasound restart
mentre tutto il resto che ho descritto nel post precedente è superfluo.

Per evitare di dover dare questo comando ogni volta che occorre, basta creare uno script e poi un collegamento ad esso in avvio automatico che lo esegua ad ogni login: in questo modo, a prescindere dal fatto che il problema dell'audio spento si presenti o meno, faremo in ogni caso ripartire alsa ed avremo sempre il nostro audio abilitato...a patto di non riconfigurare la nostra scheda audio tramite yast o simili.

lo script (creato ad esempio nella nostra home), che richiede i privilegi di amministrazione e quindi richiederà l'immissione della password di root ad ogni avvio, potrebbe essere qualcosa di questo genere
#!/bin/bash<br />sleep 30<br />/usr/sbin/rcalsasound restart
Ho inserito il comando sleep per ritardare l'avvio dello script di 30 secondi, in modo da far prima terminare il caricamento di tutto il desktop+applicazioni varie: modificate od eliminate a vostro piacimento questo parametro.
Si salva lo script, lo si rende eseguibile, poi si crea un collegamento ad esso in avvio automatico con il seguente contenuto nel campo comando della linguetta applicazione (questo va bene per kde, gli utenti gnome faranno una cosa analoga ma per il loro desktop environment)
kdesu /home/nome_utente/nome_script

Per rendere il tutto ancora più comodo, eliminando l'immissione della psw di root all'avvio, basta configurare sudo affinchè l'utente semplice abbia i permessi sufficienti a dare il comando rcalsasound

Vi rimando a questa guida per la configurazione di sudo, per chi non lo conoscesse

A questo punto, lo script di cui sopra dovrebbe essere superfluo e basterà creare un collegamento in avvio automatico che abbia nel campo comando questo contenuto
sudo /usr/sbin/rcalsasound restart

Così facendo, in attesa che il problema venga risolto in maniera stabile e definitiva dagli sviluppatori di suse ed alsa, avremo l'audio abilitato ad ogni login, senza dover fare null'altro.

Ciao a tutti

Chi è investito di un'autorità si trasformerà inevitabilmente, secondo una legge sociale immutabile, in un oppressore ed in uno sfruttatore della società. (M.A. Bakunin)

Ritratto di AL9000
AL9000
(Guru)
Offline
Guru
Iscritto: 29/10/2005
Messaggi: 1277

ho provato svariati riavvi e spegnimenti-accensioni del pc e funziona: non devo fare più assolutamente nulla ed ho sempre l'audio abilitato, senza più necessità di impartire il comando alsaconf in un terminale o di immettere la password di root per eseguire rcalsasound.

Per quanto mi riguarda, quello che segue può benissimo essere la soluzione a questo problema, almeno finchè non metteranno a posto questa seccatura.

1) ho abilitato il mio utente all'esecuzione (senza password) di /usr/sbin/rcalsasound restart modificando il file /etc/sudoers

2) poi ho creato nella mia home lo script audio con questo contenuto
#!/bin/bash<br />sleep 30<br />sudo /usr/sbin/rcalsasound restart
e l'ho reso eseguibile

3) poi ho creato in avvio automatico il collegamento ad una applicazione, chiamandolo audio e mettendo nel campo comando semplicemente il percorso allo script "audio" che avevo creato

4) Sempre in avvio automatico ho creato pure il collegamento a kmix (il mixer audio che utilizzo), per far ricomparire la sua icona nella system tray
In ogni caso, con questo metodo, i livelli dei volumi rimangono settati come li avevo impostati io (anche senza far ricomparire il mixer nella systray), mentre con alsaconf si resettavano a livelli di default e li dovevo rimodificare (altra scocciatura evitata)

Mi sento soddisfatto. Laughing

Chi è investito di un'autorità si trasformerà inevitabilmente, secondo una legge sociale immutabile, in un oppressore ed in uno sfruttatore della società. (M.A. Bakunin)