Flash su Firefox in Ubuntu Hardy, il punto della situazione

Edit del 02/11/2009: la guida presente in questo articolo è ormai obsoleta. Per risolvere problemi di Audio (con PulseAudio), e di crash di Firefox dipendenti dal Flash, vi consiglio di seguire questo ottimo tutorial, suggeritomi da Simba nei commenti e valido per Ubuntu Hardy, Indrepid, Jaunty e Karmik.

Firefox e Flash... altro che integrazione

Molti in seguito al passaggio ad Ubuntu Hardy hanno notato problemi nell’uso di Firefox (3.0 beta5) con filmati flash, per esempio:

  • Impossibilità di riprodurre filmati
  • Audio assente o disturbato
  • Crash improvvisi di Firefox
  • Estrema lentezza

Tutti questi problemi sono dovuti ad una situazione alquanto complicata che provo qui di seguito a schematizzare.

  • Bug del plugin di Adobe
    Essendo un plugin proprietario, ci vuole molto affinchè gli sviluppatori rilascino patch. Questo è uno dei grandi difetti dei software closed-source. Il plugin flash per linux fa notoriamente pena, purtroppo…
  • Firefox 3
    La versione beta5 presente in Hardy, benchè sia nella fase finale di sviluppo, essendo ancora instabile e presenta ancora piccoli bug e malfunzionamenti.
  • PulseAudio
    Una delle novità introdotte in Hardy è la presenza di default del sistema audio “PulseAudio” che va a sostituire i precedenti ALSA, OSS, ESD. Se da una parte ci sono tutti i vantaggi del nuovo sistema, dall’altra ci sono ancora diverse applicazioni che hanno qualche problema di compatibilità ed hanno bisogno di plugin e workaround specifici per funzionare. Uno di questi è ovviamente Flash, che nativamente non supporta (ancora) PulseAudio.
  • libflashsupport
    Per ovviare a questo, “quelli di Ubuntu” hanno pensato di creare una nuova libreria, libflashsupport, che fa da “ponte” tra Flash e PulseAudio. In effetti il giochino funziona… flash funziona e l’audio si sente.
    Purtroppo è stato verificato che la presenza di libflashsupport rende Firefox3 ancora più instabile di quanto già non fosse. Nella versione finale di Hardy il pacchetto “libflashsupport” è stato reso opzionale, mentre durante il ciclo di sviluppo era installato forzatamente insieme a “flashplayer-nonfree”.

Come potrete capire, la situazione è alquanto complicata. In attesa che Adobe risolva il problema alla radice (aggiornando il plugin), possiamo provare alcune soluzioni temporanee che sono state suggerite.

1) Problema: Non sento alcun suono nei filmati flash.

Soluzione: Probabilmente il sistema è stato impostato per utilizzare PulseAudio, ma non è presente la libreria libflashsupport. Installare il pacchetto “libflashsupport” per risolvere il problema. Alternativamente impostare come predefinito “ALSA” in Sistema -> Preferenze -> Audio. Se ancora non sentite niente, cancellate il file ~/.asoundrc presente nella Home.

2) Problema: Firefox è instabile e crasha durante la riproduzione dei filmati Flash.

Soluzione 1: Rimuovere libflashsupport. Questo migliora molto la sabilità di Firefox durante la riproduzione di filmati flash. I crash si fanno molto più sporadici. Togliendo questa libreria ovviamente si toglie anche il supporto a PulseAudio. Ciò significa che dovremmo reimpostare l’audio predefinito del sistema scegliendo ALSA o OSS, esattamente come è stato suggerito nella prima soluzione.

Soluzione 2: E’ stata trovata una soluzione un po’ ingegnosa che permette di avere la libflashsupport (e quindi PulseAudio) e contemporaneamente diminuire di molto i crash. E’ stato infatti suggerito (su Launchpad) di installare il pacchetto “nspluginwrapper” che solitamente è utilizzato nei sistemi a 64bit per far funzionare il plugin flash. E’ stata fatta una versione anche per i386, che permette di avere qualche vantaggio. In pratica “gestisce” il Flash al posto di Firefox. Questo vuol dire che si avranno due processi separati durante l’esecuzione di un filmato.
I vantaggi? Almeno due:

  • In caso di crash di Flash, Firefox non crasha. Rimane solo un quadrato grigio, ma è possibile continuare a lavorare o ricaricare la pagina.
  • Viaggiando su processi separati, il sistema riesce a bilanciare meglio il carico. Io ho notato che la riproduzione è molto più fluida, soprattutto nei computer meno recenti come il mio. Un incremento notevole si dovrebbe vedere anche con i processori dual-core.

Se volete provarlo, potete scaricare ed installare il pacchetto in questione con i seguenti comandi:

wget http://launchpadlibrarian.net/13470096/nspluginwrapper_0.9.91.5-2ubuntu2_i386.deb
sudo apt-get remove --purge flashplugin-nonfree
sudo dpkg -i nspluginwrapper_0.9.91.5-2ubuntu2_i386.deb
sudo apt-get install flashplugin-nonfree

Durante la riproduzione di un flash, potrete notare nel monitor di sistema un processo npviewer.bin. E’ lui che si occupa del Flash, alleggerendo il carico a Firefox !

Attualmente io ho deciso di utilizzare nspluginwrapper + ALSA, senza libflashsupport.

Sperando che i problemi vengano risolti a breve, spero di avervi fornito un quadro completo della situazione 🙂