Myriad Blog 1.3.0 Tuesday, Oct 21st, 2014 at 00:50am 

Monday, Aug 22nd, 2011 at 04:57pm
Acam III, version Ubuntu, étape 83

 
Il semble y avoir un problème majeur sur Linux, qui pourrait nous empêcher de développer le plug-in sur ce système. Les accès à la librairie sonore ALSA ne semblent pas fonctionner depuis l'intérieur d'un plug-in.
 
Nous allons un peu rentrer dans la technique, au cas où un programmeur expérimenté dans ce domaine passe par là.
 
Nous avons réalisé quelques tests sur un plug-in très simple (celui fourni en démonstration par Mozilla):
 
Les appels à ALSA ne nécessitant pas l'utilisation de pointeurs (comme par exemple, la demande de version snd_asoundlib_version) fonctionnent très bien.
 
Par contre, dès qu'un pointeur doit être envoyé (par exemple, dans la fonction snd_device_name_hint), la fonction plante ou a un comportement erratique, comme s'il y avait un problème d'adressage mémoire. En aucun cas elle ne retourne de valeur cohérente.
Nous avons cherché et recherché, sans succès.  
 
Par contre, si firefox est lancé en mode super-utilisateur (sudo firefox depuis le terminal), tous les appels se mettent à fonctionner correctement.
 
Est-ce un problème de droits? Comment est-il possible que cela fasse planter les fonctions ALSA, plutôt que de sortir "proprement" une erreur ? Est-ce dû à la manière dont Firefox gère ses plug-ins?
 
Nous n'avons pas pu trouver la moindre réponse à ces questions, ni même un forum de discussions de développeurs susceptible de nous renseigner. En attendant, on est bloqués, notre plug-in sans le son étant de peu d'intérêt.
 
Donc si quelqu'un a une solution, une idée, une piste, ou une adresse intéressante, nous sommes bien entendu preneurs!
by Olivier Guillion
Comments

Comment from rbek Tuesday, Aug 23rd, 2011 at 00:18am
Getting to ALSA from browser
Sometimes this has indeed something to do with rightsmanagement. From your description it is not clear to me how you intend to achieve sound through which architectural or design choice. There are various plugins that achieve sound through ALSA, so yours should also be able to do so.
 
Can you be more descriptive?
 
I guess you have contacted the ALSA project?
 

Comment from Gilbert Rouquié Tuesday, Aug 23rd, 2011 at 06:47pm
Mozilla plugin utilisant ALSA
Je ne suis pas sûr que des plugins utilisent directement ALSA. Je pense à VLC et je suspecte que le plugin ne fait que communiquer avec un autre process Unix, qui contient le code proprement dit. Votre plugin est il dans la même catégorie - je veux dire ne contient-il qu'un code squelette qui communique avec un autre process lequel contiendrait le coeur fonctionnel d'affichage et de production sonore et ne recevrait du plugin que l'identification de la fenêtre d'incrustation ?
 
Sinon, je poursuivrais bien la différence entre firefox lancé en superutilisateur / utilisateur normal. Je vous suggèrerais de comparer l'arbre des process de firefox dans les deux cas ( ps -efH ), afin de comprendre si dans un cas mais pas dans l'autre firefox pourrait avoir emballé votre plugin dans son process de crash protection. Ou bien lancé le plugin sous un utilisateur qui n'est ni root ni votre utilisateur normal, ce qui pourrait lui exclure d'atteindre les devices alsa /dev/snd/...
 
Suivant la même idée, remplacer sudo firefox par su - -c firefox root puis replacer root par votre propre utilisateur normal afin de bien valider que c'est bien la distinction utilisateur / superutilisateur qui est pertinente et non pas le fait de lancer firefox par son icone de lancement dans Gnome. Si alors le lancement par root seul fonctionne encore, je vous suggèrerais de débrancher temporairement SELinux ( getenforce et sudo setenforce 0 ) et/ou de jeter un coup d'oeil dans ses logs ( /var/log/audit ). Si vous ne voyez rien que SELinux aie interdit qu'il permet à 'root', alors je commencerais des tests plus délicats - genre donner à votre plugin le droit setuid root et coder dans son chargement et avant les appels ALSA, un setuid pour passer root, puis lancer de nouveau firefox en root et en normal et voir si quelque chose a changé [ ps -efH de nouveau et peut-être les appels ALSA fonctionnent ils alors ].

Comment from Olivier Guillion Wednesday, Aug 24th, 2011 at 05:09pm
Re: Mozilla plugin utilisant ALSA
Merci !  
J'ai essayé tout ça ce matin, avant de m'orienter vers un problème de liens. Comme je l'explique dans le billet d'aujourd'hui, j'ai apparemment abîmé ALSA sur mon système, et je ne sais pas le remettre en place.
 
Si vous connaissez un moyen pour remettre en place les librairies ALSA qui viennent par défaut avec Ubuntu, je suis preneur


Most recent first
Oldest first

Top of page
Last update:  (c) Myriad 2013