martedì 1 febbraio 2011

pinguini e Talibani

E lo sapevo. In un modo o nell'altro tutte le volte che c'è un upgrade di Ubuntu si rompe qualcosa. D'altra parte è difficile prolungare troppo la vita di una release, anche le LTS, perché dopo un po' librerie e pacchetti vari cominciano a lamentare incompatibilità. Così quando ho installato la USRP ho pensato di upgradare alla 10.10 Maverick Merkaat ma è successo il patatrac, con Multimon e DSD che non ne volevano più sapere.
Il mancato funzionamento era dovuto all'assenza dei tradizionali dispositivi audio sotto forma di /dev/dsp* e un po' di giri sui forum ne hanno svelato l'origine, riconducibile a uno dei problemi di lungo corso di Linux: il supporto delle schede audio. Ovviamente il tema è di grossa rilevanza se, come nel mio caso, si vogliono usare più schede audio per gestire i modi digitali.
Il primo pseudo-standard diffusosi tra le distribuzioni, oltre una decina d'anni fa, è stato l'Open Sound System (OSS). Solo che la licenza non era open e l'approccio ambiguo dei detentori ha spinto la comunità verso altri strumenti, la cui interazione è schematicamente riprodotta nell'immagine. Entrano così in scena ALSA e poco dopo, per i suoi limiti, anche PulseAudio. Tuttavia i due non sono in grado di offrire piena compatibilità verso applicazioni scritte per OSS e nelle distribuzioni viene mantenuta una modularità che consente di caricare i vecchi dispositivi quando necessario. Facile no?
Queste magagne sono sempre state note nella comunità e hanno persino ispirato un pinguino con problemi sonori in un film di animazione (Toy Story 2), ma hanno permesso che Linux cominciasse davvero ad essere diffuso in ambiente desktop, con installazioni quasi sempre lisce e lo smanettamento del kernel ridotto quasi a un ricordo.
Questo fino alla Ubuntu 10.10, quando il supporto per OSS scompare più o meno alla chetichella. I sostenitori della mossa sostengono che il passo fosse necessario per testare in pace il nuovo ambiente e che, comunque, l'avviso di "deprecazione" era già stato dato da tempo.
Fatto sta, i forum sono pieni di lamentele da parte di utenti con applicazioni che in assenza di suono non possono più essere usate, principalmente giochi e applicazioni multimediali connesse a schede tv e similari. Purtroppo la risposta "convinci lo sviluppatore ad aggiornarlo" non è sempre praticabile, specie nel caso di pacchetti proprietari vecchi di qualche anno.

Mi sono fatto tentare dall'opzione di sostituire tutta la sezione audio con OSS4, ma ciò non solo comportava problemi in qualche modo complementari all'accoppiata ALSA-PulseAudio -soprattutto se si hanno schede audio USB-, ma è anche piuttosto difficile da rimediare qualora si trovi la soluzione non ideonea. Learn from my fail...
La soluzione al problema si trova piuttosto nell'impiegare un kernel con il supporto OSS abilitato. Ci sono due modi per procuraselo:
Se avete una scheda che usa i driver della serie High Definition Audio potreste avere ulteriori problemi (ioremap error) che prescindono dalla querelle OSS: io li ho risolti applicando tre misure, non so quale sia stata quella definitiva:
  • usare il modulo patchato di David Henningson che si trova in questa discussione
  • inserire nelle opzioni di boot del kernel il parametro aggiuntivo pci=use_crs
  • modificare nei parametri di bios l'allocazione di memoria alla scheda video (256mb iso 128)
Buone demodulazioni...

Nessun commento:

Posta un commento