Open Sound System (Italiano)
Questo articolo spiega come installare e configurare l' Open Sound System (OSS) sul tuo computer.
L' Open Sound System è un'architettura audio per i sistemi derivati da UNIX e POSIX-compatibili. La versione 3 di OSS é stata la versione originale usata per il sistema audio di Linux ed è inserita nel kernel ma nel 2002 fu rimpiazzata da ALSA quando la versione 4 di OSS divenne software proprietario. OSSv4 è ritornata software libero nel 2007 quando 4Front Technologies ha rilasciato il suo codice sorgente con licenza GPL.
Confronto con ALSA
Alcuni vantaggi e svantaggi confrontati con l'uso dell' Advanced Linux Sound Architecture.
Vantaggi di OSS (utenti)
- Controllo del volume audio per ogni applicazione.
- Alcune schede audio di tipo legacy sono meglio supportate (e.g. Creative X-Fi).
- Il tempo di risposta iniziale in applicazioni audio è generalmente migliore.
- Miglior supporto per le applicazioni che utilizzano l' API OSS. Molte applicazioni continuano ad usare questa API, che non richiedono un livello di emulazione come quello utilizzato da ALSA.
Vantaggi di OSS (sviluppatori)
- API migliore, più pulita e facila da usare documentazione.
- Supporto per i driver nello spazio utente.
- Accessibilità. OSS funziona su sistemi BSD e Solaris.
- Portabilità. OSS è più facile da portare su altri sistemi operativi.
Vantaggi di ALSA
- Supporto migliore per le periferiche audio USB. Con OSS l'output è sperimentale, l'input non è implementato.
- Supporto per le periferiche audio Bluetooth.
- Supporto per i modem software AC'97 e HDAudio come il Si3055.
- Supporto migliore per le periferiche MIDI. Con OSS è necessario utilizzare un sintetizzatore software come Timidity o Fluidsynth.
- Supporto per la sospensione. OSS e i programmi associati devono prima essere chiusi.
- Supporto migliore per la rilevazione dei jack. Su alcune schede madri HD gli utenti devono abbassare il volume degli altoparlanti per l'inserimento delle cuffie.
Installazione
Installa OSS eseguendo:
# pacman -S oss
Questo installa i file di OSS e esegue lo script di installazione che disabilita temporaneamente i moduli ALSA e installa i moduli kernel di OSS. Dal momento che ALSA è abilitato di default negli script di boot, è necessario disabilitarlo per evitare conflitti con OSS durante il boot. E' possibile fare questo modificando rc.conf
e aggiungendo:
MODULES=(!soundcore ...
Aggiungere poi OSS all'array dei demoni:
DAEMONS=(crond hal @oss...
Se l' utente non appartiene al gruppo audio, aggiungerlo con:
# gpasswd -a username audio
Poi avviare OSS con:
# /etc/rc.d/oss start
Nel caso OSS non sia in grado di riconoscere automaticamente la tua scheda audio alla partenza, esegui:
# ossdetect -v
Poi soundoff && soundon
per riattivarlo.
Testing
Considerare che il volume di default è molto alto, evitare di usare le cuffie e abbassare fisicamente il livello degli speaker (se possibile) prima di eseguire il test.
Test OSS eseguendo:
$ osstest
Dovrebbe essere possibile ascoltare una musica durante il processo di test. Se non c'è audio provare a regolare il volume o consultare la sezione dei problemi.
Per sentire suoni da più di un'applicazione simultaneamente è necessario vmix, il mixer software OSS.
Controllare che vmix sia abilitato eseguendo:
$ ossmix -a | grep -i vmix
Dovrebbe essere possibile vedere una linea del tipo 'vmix0-enable ON|OFF (currently ON)'. Se non è possibile vedere nessuna linea che inizi con 'vmix', probabilmente significa che vmix non è collegato alla periferica audio. Per collegare vmix, eseguire il comando:
$ vmixctl attach device
dove device è la scheda audio, eg., /dev/oss/oss_envy240/pcm0 .
Per evitare di rieseguire questo comando manualmente in futuro, è possibile aggiungere a /usr/lib/oss/soundon.user, come suggerito in questo articolo.
Se si riceve l'errore "Periferica o risorsa occupata", è necessario aggiungere "vmix_no_autoattach=1" in /usr/lib/oss/conf/osscore.conf, e successivamente riavviare.
Vedere quali periferiche sono riconosciute eseguendo:
$ ossinfo
Dovrebbe essere possibile vedere una lista delle proprie periferiche sotto Device object o Audio Devices. Se la periferica che si vuole utilizzare non è in cima alle sezioni Audio device o Device objects, è necessario modificare /usr/lib/oss/etc/installed_drivers. Il driver per la periferica che si vuole utilizzare dovrebbe essere in cima. E probabilmente necessario un soundoff && soundon
. Se questo non risolve, commentare tutti i driver presenti che non sono della periferica preferita.
Regolazione del Volume
Per regolare il volume delle varie periferiche devono essere impostati i livelli dei mixer. Il mixer da linea di comando si chiama ossmix
. E' molto simile al mixer audio di BSD (mixerctl). Il mixer grafico si chiama ossxmix
e per essere installato necessita di gtk2.
I controllo di base del comando ossxmix
:
/ High Definition Audio ALC262 \ --------------------------------> 1 /________________________________\________________________________ | \ | [x] vmix0-enable [vmix0-rate: 48.000kHz] vmix0-channels |--> 2 | [ Stereo [v] ] | | | | __codec1______________________________________________________ | | | _jack______________________________________________________ ||--> 3 | | | _int-speaker_________________ _green_________________ ||| | | | | | | | ||| | | | | _mode_____ | | | | _mode_____ | | | ||| | | | | [ mix [v] ] o o [x] [ ]mute | | [ mix [v] ] o o [x] | ||| | | | | | | | | | | | ||| | | | |_____________________________| |_______________________| ||| | | |___________________________________________________________||| | |______________________________________________________________|| | ___vmix0______________________________________________________ | | | __mocp___ O O _firefox_ O O __pcm7___ O O | |--> 4 | | | | O O | | x x | | O O | | | | | | | | x O | | | | x x | | | | O O | | | | | o o [x] | x x | o o [x] | x x | o o [x] | O O | | | | | | | | x x | | | | x x | | | | O O | | | | |_________| x x |_________| x x |_________| O O | | | |_____________________________________________________________| | |_________________________________________________________________|
- Una scheda per ogni periferica audio
- Le configurazione speciali del vmix (mixer virtuale) sono presenti in alto. Queste includono il sampling e la priorità del mixer.
- Queste sono le configurazioni dei jack della scheda audio (ingresso e uscita). Ogni regolazione mixer qui presente è fornita dalla scheda audio.
- Controlli e livelli audio del mixer vmix dell'applicazione . Se l'applicazione non sta attualmente riproducendo un suono sarà etichettata pcm08, pcm09..., quando l'applicazione è in riproduzione sarò mostrato il nome dell'applicazione.
Definizione dei Colori
Per l'audio ad alta definizione (HD), ossxmix
mostra le configurazioni dei jack colorate secondo i colori predefiniti:
Color | Type | Connector |
---|---|---|
verde | canali frontali (uscita stereo) | 3.5mm TRS |
nero | canali posteriori (uscita stereo) | 3.5mm TRS |
grigio | canali laterali (uscita stereo) | 3.5mm TRS |
oro | centrale e subwoofer (doppia uscita) | 3.5mm TRS |
blu | livello di linea (ingresso stereo) | 3.5mm TRS |
rosa | microfono (ingresso mono) | 3.5mm TS |
Salvare i Livelli del Mixer
I livelli del mixer sono salvati quando il computer viene spento. Per salvare immediatamente i livelli del mixer, come root:
# savemixer
savemixer
può essere utilizzato per salvare i livelli del mixer in un file con lo switch -f
e ricaricarli con lo switch -L
.
Altri Mixer
Altri mixer supportano OSS:
- GNOME - Gnome volume control
- KDE - Kmix - Il supporto OSS è in fase di sviluppo.
Configurare le Applicazioni per OSS
Skype
Il pacchetto skype
include soltanto il supporto per ALSA. Per ottenere una versione di Skype compatibile con OSS installare il pacchetto skype-oss
:
# pacman -S skype-oss
Sulle versioni x86_64 è possibile ottenere il pacchetto bin32-skype-ossAUR[broken link: package not found] da AUR.
Wine
- Eseguire
winecfg
.
$ winecfg
- Andare sulla scheda
Audio
.
- Selezionare
OSS Driver
.
Gajim
Come default Gajim usa aplay -q
per riprodurre un suono. Per cambiare questo comportamento andare in Opzioni Avanzate e cercare la variabile soundplayer
. Il programma ossplay incluso nel package oss è una buona alternativa: ossplay -qq
MOC
Per usare MOC con OSS v 4.1 è necessario cambiare la sezione OSSMixerDevice in /dev/ossmix
nel file di configurazione (posizionato in "$HOME"/.moc
).
Così MOC dovrebbe funzionare con la versione 4.1 di OSS.
In alternativa è possibile compilare il pacchetto moc-svn disponibile su AUR (esso ha il supporto per il nuovo vmix).
Per i problemi con l'interfaccia si provi a cambiare OSSMixerChannel; dopo aver avviato mocp premere 'w' (passa a mixer software).
Applicazioni che usano Gstreamer
Rimuovere le librerie e i programmi di pulseaudio e gstremaer*-pulse.
Per cambiare le impostazioni di gstreamer in modo da inviare il suono a OSS invece che ad ALSA come da default, eseguire:
gstreamer-properties
Cambiare il plugin Default Output in custom e cambiare la pipeline in:
oss4sink
Per l'ingresso:
oss4src
Se viene usato phonon con il backend gstreamer è necessario impostare la relativa variabile ambiente. Per aggiungerla all'utente corrente:
export PHONON_GST_AUDIOSINK=oss4sink
Aggiungere questo comando al proprio ~/.bashrc
per caricarla al login.
Firefox >=3.5
Firefox 3.5 introduce il supporto ai tag <video> e <audio> ed è in grado di riprodurre file multimediali ogg nativamente. Comunque, attualmente non può essere compilato con il supporto ad ALSA e ad OSS contemporaneamente. E' così necessario installare il pacchetto xulrunner-oss package da [community].
1. Chiudere firefox. 2. Installare il pacchetto xulrunner-oss da [community]. 3. Avviare firefox.
Mplayer
Se viene usata un'interfaccia grafica è necessario trovare le impostazioni di uscita di oss nelle impostazioni audio. Con l'uso della versione a riga di comando è necessario specificare la modalità di uscita audio: mplayer -ao oss /some/file/to/play.mkv
. Se non si vuole perdere tempo a scriverlo tutte le volte aggiungere "ao=oss" al proprio file di configurazione.("$HOME"/.mplayer/config
)
Music Player Daemon
MPD è configurato tramite /etc/mpd.conf o ~/.mpdconf. Controllare entrambi i file, alla ricerca di qualcosa del tipo:
audio_output { type "alsa" name "Some Device Name" }
Se viene trovata un'impostazione ALSA non commentata (le linee che non iniziano con #) come la precedente, commentarla tutta opppure cancellarla e aggiungere la seguente:
audio_output { type "oss" name "My OSS Device" }
Ulteriori impostazioni non dovrebbero essere necessarie per tutti gli utenti. Comunque, se vengono riscontrati dei problemi (MPD non funziona correttamente dopo essere stato riavviato), o se è preferibile avere file di configurazione specifici (più configurati dall'utente, meno configurati automaticamente), l'uscita audio per OSS può essere impostata specificatamente come segue: inizialmente eseguire:
ossinfo | grep /dev/dsp
Cercare la linea che dice qualcosa di simile a /dev/dsp -> /dev/oss/<SOME_CARD_IDENTIFIER>/pcm0
. Prendere nota del proprio <SOME_CARD_IDENTIFIER> e aggiungere le linee evidenziate nella sezione dell' uscita audio OSS del proprio file di configurazione di mpd:
audio_output { type "oss" name "My OSS Device" device "/dev/oss/<SOME_CARD_IDENTIFIER>/pcm0" mixer_device "/dev/oss/<SOME_CARD_IDENTIFIER>/mix0" }
Altre applicazioni
- Se non è possibile ottenere l'audio da un'applicazione non indicata qui, provare a controllare sulla pagina Configuring Applications for OSSv4
- Cercare pacchetti specifici per OSS usando
pacman -Ss -- '-oss'
e in AUR.
Risoluzione dei problemi
Risoluzione dei problemi con periferiche HDAudio
Capire la causa del problema
Se si possiede una periferica audio HDAudio, è molto probabile che sia necessario aggiustare alcune regolazioni del mixer prima che l'audio funzioni correttamente.
Le periferiche HDAudio sono molto potenti in questo senso e possono contenere molti piccolo circuiti (chiamati widgets) che possono sempre essere regolati via software. Questi controlli sono disponbili nel mixer, e possono essere usati, per esempio, per rimappare un jack per le cuffie in un jack di ingresso piuttosto che in uno di uscita.
Comunque, c'è un effetto collaterale, principalmente perchè lo standard HDAudio è più flessibile di quello che dovrebbe essere, e perchè i rivenditori spesso si preoccupano del corretto funzionamento soltanto dei loro driver ufficiali
Quindi quando si usano periferiche HDAudio, spesso si troveranno controlli mixer disorganizzati che non funzionano per niente nella configurazione di default e si rende necessario provare ogni combinazione dei controlli del mixer fino a raggiungere una configurazione funzionante.
Come risolvere
Aprire ossxmix
e provare a cambiare ogni configurazione del mixer nell' area centrale, che contiene i controlli specifici della scheda audio, come spiegato nella precedente sezione "Regolazione del Volume".
Probabilmente si vorrà impostare un programma per registrare/riprodurre continuamente in background (e.g. ossrecord -
per registrare oppure osstest -lV
per riprodurre), mentre si stanno cambiando le impostazioni del mixer.
- Aumentare ogni slider di controllo dei volumi.
- Per ogni opzione, provare a cambiare l'opzione selezionata, provando tutte le possibili combinazione.
- Se si ottiene del rumore, provare ad abbassare e/o a silenziare alcuni controlli volume fino ad individuare la sorgente del rumore.
Nota bene che non è necessario cambiare nessuna impostazione nell' area superiore o nell' area inferiore, dal momento che esse sono impostazioni relativa al mixer virtuale vmix
.
- Modificare
/usr/lib/oss/conf/oss_hdaudio.conf
s commentando e modificando hdaudio_noskip=0 con un valore da 0 a 7 che può rendere disponibili più opzioni relativa ai jack in ossmix.
E' stato necessario modificarlo a hdaudio_noskip=7 per attivare gli altoparlanti posteriori e il subwoofer sul computer portatile e riavviare oss per applicare i cambiamenti /etc/rc.d/oss restart
Suono disturbato con gli MMS in totem
Se gli stream hanno un suono disturbato o producono strani rumori in totem è possibile provare a riprodurli con un altro backend come ffmpeg (mplayer). Questo non risolverà il problema che ha gstreamer durante la riproduzione di stream MMS ma darà l'opzione di riprodurli con una buona qualità del suono. Riprodurli con mplayer è semplice:
# mplayer mmsh://yourstreamurl
Il microfono viene riprodotto dagli altoparlanti
Di default OSS riproduce il microfono attraverso gli speaker. Per disabilitare questa funzione trovare in ossmix la sezione misc. Disattivare ogni "input-mix-mute" per disabilitarla.
Risoluzioni di altri problemi
- Se si ottiene un suono distorto, provare ad abbassare alcuni slider del volume.
- Se è necessario cambiare la scheda audio di default controllare qui.
- Se è presente un' altro problema, provare a cercare o a chiedere aiuto sul forum 4front.
Consigli e trucchi
Usare i tasti multimediali con OSS
Un modo facile per attivare/disattivare l'audio e aumentare/ridurre il volume è usare lo ossvol
script disponibile in AUR.
Una volta installato provare ad attivare/disattivare l'audio con:
$ ossvol -t
Usare ossvol -h
per gli altri comandi disponibili.
Se non si conosce come assegnare i comandi ai propri tasti multimediali, controllare Extra keyboard keys.
Risoluzione dei problemi di ossvol
Se si riceve un errore del tipo:
Bad mixer control name(987) 'vol'
è necessario modificare lo script (/usr/bin/ossvol
) e cambiare il valore della variabile CHANNEL
posizionata all'inizio dello script. Ad esempio CHANNEL="vmix0-outvol"
.
- Nota se si sta usando xbindkeys per i propri tasti multimediali aggiungere:
"ossmix vmix0-outvol -- +1"
incrementa il volume
"ossmix vmix0-outvol -- -1"
decrementa il volume
alla sezione relativa alla regolazione del volume nel file .xbindkeysrc è una soluzione semplice per la regolazione del volume.
Modificare la frequenza di campionamento
Cambiare la frequenza di campionamento di uscita non è così ovvio. Le frequenze di campionamento possono essere cambiate soltanto da root e vmix non deve essere utilizzato da nessun altro programma. Prima di seguire questi passi, assicurarsi di utilizzare un sintoamplificatore e di utilizzare altoparlanti di qualità e non comuni altoparlanti da PC. Se si stanno usando comuni altoparlanti da PC, non preoccuparsi di cambiare niente dal momento che non sarà udibile nessuna differenza.
Di default la frequenza di campionamento è 48000hz. Ci sono diverse situazioni in cui si può voler cambiare. Dipende tutto dall'utilizzo che se ne fa. E' consigliato impostare la frequenza di campionamento corrispondente alla sorgente utilizzata più frequentemente. Se il computer deve cambiare la frequenza di campionamento di una sorgente per farla corrispondere a quella dell'hardware è probabile, anche se non certo, che ci sarà una perdita nella qualità dell'audio. Questo è particolarmente riscontrabile nel downsampling (ie. 96000hz → 48000hz). C'è un articolo su questo problema su "Stereophile" che è stato discusso sulla mailing list della Apple "CoreAudio API", se si vuole approfondire questa problematica.
Alcuni esempi di frequenze di campionamento:
- 44100hz - Frequenza di campionamento dello standard Red Book per i CD audio.
- 88000hz - Frequenza di campionamento dei SACD ad alta definizione. E' raro che la scheda madre supporti questo tipo di frequenza.
- 96000hz - Frequenza di campionamento della maggior parte dei download audio ad alta definizione. Se la scheda madre è una scheda madre AC'97, probabilmente questa sarà la frequenza più alta.
- 192000hz - Frequenza di campionamento dei BluRay e di alcuni (molto pochi) download ad alta definizione. Il supporto per ricevitori audio esterni è limitato alle periferiche high-end. Non tutte le schede madri lo supportano. Un esempio di chipset di una scheda madre che potrebbe supportarlo include l'Intel HDA audio.
Per verificare qual' è la frequenza di campionamento attualmente impostata:
- Eseguire
"ossmix | grep rate"
.
Probabilmente sarà visibile "vmix0-rate <decimal value> (currently 48000) (Read-only)"
.
In questo caso, OSS userà la frequenza richiesta dal programma che sta attualmente utilizzando la periferica, ignorando questa sezione. Eccezione: Le schede envy24(ht) hanno un' impostazione envy24.rate che ha una funzione similare (vedere la pagina di manuale di "oss_envy24"). E' possibile seguire i seguenti passi, ma al secondo passo, sotituire con ossmix il valore di "envy24.rate".
Passi per effettuare il cambiamento:
- Primo, essere sicuri che la scheda audio supporti la nuova frequenza. Eseguire "ossinfo -v2" e controllare se la frequenza voluta è presente nei "Native sample rates".
- Come root, eseguire
"/usr/lib/oss/scripts/killprocs.sh"
. Attenzione, questo comando terminerà tutti i programmi che hanno attualmente un canale audio aperto (ad esempio riproduttori multimediali, Firefox superiore alla versione 3.5 se xulrunner-oss è abilitato e il controllo del volume di gnome) - Dopo che tutti i programmi che stavano utilizzando vmix sono terminati, eseguire come root:
"vmixctl rate /dev/dsp 96000"
sostituendo la frequenza con la frequenza desiderata. - Eseguire
"ossmix | grep rate"
e controllare che"vmix0-rate <decimal value> (currently 96000) (Read-only)"
rispecchi la frequenza desiderata sia stata impostata correttamente. - Salvare i cambiamenti permanentemente tramite il file soundon.user per impostare la frequenza ad ogni soundon
scrivere "vmixctl rate /dev/dsp 96000" nel file /usr/lib/oss/soundon.user
e renderlo eseguibile.
Cambiare l'uscita audio di Default
Durante l'esecuzione di osstest, il primo test viene superato per il primo canale ma non per il canale di destra o per i canali stereo, il suono è distorto e sibilante. Se avviene questo è selezionata l'uscita audio sbagliata.
*** Scanning sound adapter #-1 *** /dev/oss/oss_hdaudio0/pcm0 (audio engine 0): HD Audio play front - Performing audio playback test... <left> OK <right> OK <stereo> OK <measured srate 47991.00 Hz (-0.02%)>
Il canale sinistro suona bene, il destro e lo stereo sono distorti.
Continuare il test fino ad ottenere un output funzionante:
/dev/oss/oss_hdaudio0/spdout0 (audio engine 5): HD Audio play spdif-out - Performing audio playback test... <left> OK <right> OK <stereo> OK <measured srate 47991.00 Hz (-0.02%)>
Se così viene superato il test su tutti i canali sinistro, destro e stereo procedere al prossimo passo.
Da qui: Changing_the_default_sound_output recuperare il comando per cambiare l'uscita audio di default; cambiare in base alla configurazione funzionante
sudo ln -sf /dev/oss/oss_hdaudio0/spdout0 /dev/dsp_multich
Con il surround 5.1 scegliere dsp_multichannel; con 2 canali dsp dovrebbe fuzionare.
Creative Sound Blaster X-Fi Surround 5.1 SB1090 USB
Queste informazioni provengono completamente da 4front-tech.com; per cortesia di kristian e Maxa. Grazie!!
E' sorprendente come la scheda audio esterna non funzioni soltanto a causa di un mancato valore di ritorno di true nella funzione write_control_value(...) in ossusb_audio.c.
Attualmente per risolvere è necessario ricompilare oss.
1. Ottenere l'ultima verione di oss dai Repo di Arch
https://repos.archlinux.org/wsvn/community/oss/repos/community-x86_64/[link interrotto 2020-08-04]
2. Estrarre
3. fare cd nella cartella ottenuta, è possibile rinominarla in oss
4. eseguire makepkg --nobuild
5. fare cd in src/kernel/drv/oss_usb/ ; modificare il file ossusb_audio.c; aggiungere Return 1; a questo punto dovrebbe apparire così e SALVARE
static int write_control_value (ossusb_devc * devc, udi_endpoint_handle_t * endpoint, int ctl, int l, unsigned int v) { return 1;
6. fare cd in /src/kernel/setup e modificare srcconf_linux.inx, cercare -Werror e rimuoverlo, altrimenti OSS non verrà compilato.
7. eseguire makepkg --noextract
Adesso è possibile installare il pacchetto con pacman -U ; rimuovere prima oss se è già installato(pacman -Rd oss)
Una semplice applet per il systray
Si vuole un'applet per controllare il volume come in GNOME? Da qui è possibile ottenerne una funzionante.
Scaricare questo script e rinominarlo con un nome a piacere, e.g.: ossvolctl. Eseguire il seguente comando:
$chmod +x ossvolctl #cp ossvolctl /usr/bin/ossvolctl
oppure
#install -Dm755 ossvolctl /usr/bin/ossvolctl
Avviare ossmix nella systray all'avvio
KDE 4
Creare un launcher di applicazione chiamato ossxmix.desktop
nella propria directory locale dei launcher (~/.local/share/applications/
e poi inserire:
[Desktop Entry] Name=Open Sound System Mixer GenericName=Audio Mixer Exec=ossxmix -b Icon=audio-card Categories=Application;GTK;AudioVideo;Player; Terminal=false Type=Application Encoding=UTF-8
Per aggiungerlo all'avvio automatico al caricamento dell' ambiente desktop:
System Settings > Advanced tab > Autostart. Poi cliccare aggiungi programma e scegliere dalla lista 'Multimedia'.
Gnome
- Come Root creare il file /usr/local/bin/ossxmix_bg con il seguente contenuto:
#!/bin/sh exec /usr/bin/ossxmix -b
Andare in System > Preferences > Start Up Applications
- Cliccare Aggiungi, scrivere OSSMIX nel campo Nome e
/usr/local/bin/ossxmix_bg
nel campo Comando e successivamente premere il tasto Aggiungi.
- Rieffettuare il login per vedere i cambiamenti.
Registrare l'uscita audio di un programma
Sospensione e Ibernazione
OSS non suppporta automaticamente la sospensione così è necessario fermare manualmente OSS prima della sospensione o della ibernazione
OSS fornisce soundon
e soundoff
per abilitare e disabilitare OSS, nonostante tutti i processi che usano il suono debbano prima essere terminati.
Il seguente script è un semplice metodo per fermare automaticamente OSS prima della sospensione e riavviarlo alla fine.
#!/bin/sh . "${PM_FUNCTIONS}" suspend_osssound() { /usr/lib/oss/scripts/killprocs.sh /usr/sbin/soundoff } resume_osssound() { /usr/sbin/soundon } case "$1" in hibernate|suspend) suspend_osssound ;; thaw|resume) resume_osssound ;; *) exit $NA ;; esac
Salvare il contenuto dello script (come root) in /etc/pm/sleep.d/50ossound
e renderlo eseguibile.
chmod a+x /etc/pm/sleep.d/50ossound
OSS non supporta la sospensione ma non è indispensabile dal momento che s2ram funziona correttamente senza fermare OSS. Creare semplicemente uno script di sospensione in /sbin/suspend e renderlo eseguibile.
#!/bin/sh ## Checking if you are a root or not if ! [ -w / ]; then echo >&2 "This script must be run as root" exit 1 fi s2ram -f sleep 2 /etc/rc.d/oss restart 2>/tmp/oss.txt || echo "OSS restart failed, check /tmp/oss.txt for advice"
Con questo tutte le applicazioni funzioneranno correttamente con la sospensione. \o/
Emulazione ALSA
E' possibile configurare alsa-lib
per utilizzare OSS come suo sistema audio di uscita. Questo funziona come una sorta di emulazione di ALSA.
E' da notare, comunque, che questo metodo può introdurre latenza aggiuntiva nel suono di uscita, e che l'emulazione non è completa e non funziona con tutte le applicazioni. Non funziona, ad esempio, con programmi che provano a riconoscere periferiche usando ALSA.
Per questo, dal momento che la maggior parte delle applicazioni supporta OSS direttamente, usare questo metodo soltanto come ultima risorsa.
In futuro, metodi più completi per emulare ALSA saranno disponibili, come libsalsa
and cuckoo
.
Istruzioni
- Installare il pacchetto
alsa-plugins
.
# pacman -S alsa-plugins
- Modificare
/etc/asound.conf
nel seguente modo.
pcm.oss { type oss device /dev/dsp } pcm.!default { type oss device /dev/dsp } ctl.oss { type oss device /dev/mixer } ctl.!default { type oss device /dev/mixer }
/etc/asound.conf
.Impostazioni per driver specifici
Se qualcosa non funziona, c'è la possibilità, che ci siano delle impostazioni specifiche per driver specifici (in questo modo è possibile attivare l'auto-sense dei jack sui portatili)
- Trovare il driver usato
# lspci -vnn|grep -i -A 15 audio
00:1e.2 Multimedia audio controller [0401]: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Audio Controller [8086:266e] (rev 03) Subsystem: Hewlett-Packard Company NX6110/NC6120 [103c:099c] Flags: bus master, medium devsel, latency 0, IRQ 21 I/O ports at 2100 [size=256] I/O ports at 2200 [size=64] Memory at d0581000 (32-bit, non-prefetchable) [size=512] Memory at d0582000 (32-bit, non-prefetchable) [size=256] Capabilities: <access denied> Kernel driver in use: *oss_ich* Kernel modules: snd-intel8x0
- Individuare il file di configurazione per la periferica in:
# cd /usr/lib/oss/conf/
- Provare a cambiare le impostazioni di default. Ci sono soltanto poche impostazioni e si spiegano da sole.
Impostazione:
ich_jacksense = 1
in oss-ich.conf abilita l'auto-sense dei jack su alcuni laptop (l'inserimento delle cuffie viene rilevato e gli altoparlanti vengono disattivati.)
- Riavviare oss per applicare i cambiamenti.
# sudo /etc/rc.d/oss restart
- oss_hdaudio.conf ha anche hdaudio_jacksens. Anche questo potrebbe funzionare. Sfortunatamente non per tutti.
Pacchetti sperimentali
La versione del repo Mercurial
C'è un pacchetto oss-mercurialAUR[broken link: package not found] in AUR. Questo pacchetto compila e installa l'ultima versione di sviluppo di OSS direttamente dal repo Mercurial.
E' possible provare questo pacchetto se si vuole contribuire al codice di OSS oppure se soltanto una modifica molto recente nel codice di OSS ha introdotto il supporto alla vostra periferica audio.
Se si vuole che oss riproduca i suoni delle animazioni flash (e anche dei suoni delle applicazioni Adobe-Air) è necessario installare libflashsupport:
# pacman -S libflashsupport