¿Cómo puedo detectar si el cable de audio está conectado?

Estoy usando Ubuntu Lucid (10.04). En mi script de shell que se ejecuta como root, quiero detectar si un cable de audio (conector analógico) está conectado a la computadora portátil o no. ¿Cómo puedo hacer eso? No necesito una solución portátil, necesito algo, no importa cuán raro sea, eso funciona en mi computadora portátil.

Una forma podría ser quizás usar amixer .

Jack enchufado:

 $ amixer -c 0 contents numid=29,iface=CARD,name='Front Headphone Jack' ; type=BOOLEAN,access=r-------,values=1 : values=on ... 

Jack no enchufado:

 $ amixer -c 0 contents numid=29,iface=CARD,name='Front Headphone Jack' ; type=BOOLEAN,access=r-------,values=1 : values=off ... 

Entonces, para ese específico que podría hacer:

 amixer -c 0 contents | \ awk -F"," ' $1 == "numid=29" { c=1 } c && /: values/ { split($0, a, "=") print a[2]; exit }' 

dando salida de on o off .


También se pueden usar commands y especificar por iface + name etc.

Obtener list por:

 $ amixer -c 0 controls 

Donde -c 0 especifica la tarjeta, no es necesario si está pnetworkingeterminado o solo uno. Entonces por ejemplo:

 $ amixer -c 0 cget numid=29,iface=CARD $ amixer -c 0 cget numid=29,iface=CARD | awk -F"=" 'NR == 3 {print $2;}' 

Me encontré con una pieza de software una vez, creo que usó Tcl / Tk, que muestra la potencia de pin para todos los puertos en la computadora y mucha otra información de HW. Era una buena pieza de software, pero no puedo encontrarla de nuevo. Miré a través de 12 discos duros viejos sin suerte. Lo usé para depurar algunos puertos Jack. Entonces, sí, es definitivamente posible sondear el estado de un puerto específico.

Jack es un dolor para search en la web debido a JACK . Lo hace casi imposible.


Tengo un código C que hace sondeos de información de la tarjeta de sonido. Tengo que search si puedo encontrarlo.

Como dijiste "no importa que tan hacky". . .

Obtenga una tarjeta de sonido externa que puede conectar a su computadora portátil a través de USB. Conecta el conector analógico a eso. Conecta tu tarjeta de sonido externa cuando quieras conectar la toma de audio y haz que tu script bash detecte si la tarjeta de sonido externa está conectada o no a través de USB.