저는 Ubuntu Lucid(10.04)를 사용하고 있습니다. 루트로 실행되는 셸 스크립트에서 오디오 케이블(아날로그 잭)이 노트북에 연결되어 있는지 감지하고 싶습니다. 어떻게 해야 하나요? 휴대용 솔루션은 필요하지 않습니다. 아무리 구식이라도 랩탑에서 실행할 수 있는 것이 필요합니다.
답변1
한 가지 방법은 을 사용하는 것입니다 amixer
.
Jack이 다음을 삽입했습니다.
$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
...
잭이 연결되지 않음:
$ amixer -c 0 contents
numid=29,iface=CARD,name='Front Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
...
따라서 특정 항목에 대해 다음과 같이 할 수 있습니다.
amixer -c 0 contents | \
awk -F"," '
$1 == "numid=29" {
c=1
} c && /: values/ {
split($0, a, "=")
print a[2];
exit
}'
on
또는 의 출력을 제공합니다 off
.
iface
명령을 사용하고 + 등 으로 지정할 수도 있습니다 name
. 예를 들면 다음과 같습니다.
목록을 얻는 방법:
$ amixer -c 0 controls
어떤 -c 0
카드가 지정되어 있는지, 기본값인 경우 필요하지 않거나 하나만 필요합니다. 예를 들면 다음과 같습니다.
$ amixer -c 0 cget numid=29,iface=CARD
$ amixer -c 0 cget numid=29,iface=CARD | awk -F"=" 'NR == 3 {print $2;}'
나는 한때 Tcl/Tk를 사용하는 것으로 여겨지는 소프트웨어를 발견했는데, 이 소프트웨어는 다른 많은 하드웨어 정보와 함께 컴퓨터에 있는 모든 포트의 핀 전원을 표시했습니다. 그것은 훌륭한 소프트웨어이지만 더 이상 찾을 수 없습니다. 12개의 오래된 하드 드라이브를 검사했지만 성공하지 못했습니다. 일부 잭 포트를 디버깅하는 데 사용합니다. 그렇습니다. 특정 포트의 상태를 폴링하는 것은 절대적으로 가능합니다.
Jack은 온라인에서 검색하기 어렵습니다.잭. 이것은 이것을 거의 불가능하게 만듭니다.
사운드 카드 정보를 폴링하는 C 코드가 있습니다. 찾을 수 있는지 확인해야 합니다.
답변2
"아무리 해키더라도"라고 말씀하셨으니까요. . .
USB를 통해 노트북에 연결할 수 있는 외부 사운드 카드를 구입하세요. 아날로그 잭을 연결하십시오. 오디오 잭을 연결하려면 외부 사운드 카드를 연결하고 bash 스크립트가 외부 사운드 카드가 USB를 통해 연결되어 있는지 감지하도록 하십시오.