Saya menggunakan Ubuntu Lucid (10.04). Dalam skrip shell saya yang berjalan sebagai root, saya ingin mendeteksi apakah kabel audio (jack analog) terhubung ke laptop atau tidak. Bagaimana aku melakukan itu? Saya tidak membutuhkan solusi portabel, saya membutuhkan sesuatu, tidak peduli seberapa hacky, yang berfungsi di laptop saya.
Jawaban yang Diterima:
Salah satu caranya mungkin dengan menggunakan amixer
.
Jack terpasang:
$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
...
Jack tidak dicolokkan:
$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
...
Jadi untuk yang spesifik itu yang bisa saya lakukan:
amixer -c 0 contents | \
awk -F"," '
$1 == "numid=29" {
c=1
} c && /: values/ {
split($0, a, "=")
print a[2];
exit
}'
memberikan output on
atau off
.
Seseorang juga dapat menggunakan perintah dan menentukan dengan iface
+ name
dll. misalnya:
Dapatkan daftar dengan:
$ amixer -c 0 controls
Dimana -c 0
menentukan kartu, tidak diperlukan jika default atau hanya satu. Kemudian misalnya:
$ amixer -c 0 cget numid=29,iface=CARD
$ amixer -c 0 cget numid=29,iface=CARD | awk -F"=" 'NR == 3 {print $2;}'
Saya pernah menemukan perangkat lunak, percaya itu menggunakan Tcl/Tk, yang menampilkan pin-power untuk semua port di komputer + banyak informasi HW lainnya. Itu adalah perangkat lunak yang bagus – tetapi saya tidak dapat menemukannya lagi. Saya telah melihat melalui 12 HDD lama tanpa hasil. Saya menggunakannya untuk men-debug beberapa port jack. Jadi ya, sangat mungkin untuk melakukan polling status port tertentu.
Jack adalah rasa sakit untuk mencari web karena JACK. Itu membuatnya hampir mustahil.
Saya memiliki beberapa kode-C yang melakukan polling informasi Soundcard. Harus mencari jika saya dapat menemukannya.