Linux (Ubuntu)에서 AT 명령을 모뎀으로 보내려고합니다 /dev/ttyACM0
. 나는 그것을 다음과 같이하려고했다.
sudo socat - /dev/ttyACM0
그러나 아무것도 입력 할 때이 명령을 반복하는 줄을 얻습니다 ( OK
).
내가 할 때
sudo minicom modem1
작동하는 것 같습니다. 나는를 입력하고을 AT
얻는다 OK
. 나는 쓰레기를 타이핑한다 ERROR
.
modem1
minicom의 경우에 모뎀을 사용하도록 구성되어있는 것 같습니다 /dev/ttyACM0
.
socat을 사용하여 AT 명령을 보내려면 어떻게해야합니까? 무언가를 구성해야합니까? 아마도 modem1
미니 컴 구성을 사용할 수 있습니까 (이 구성을 찾거나 보는 방법을 모르겠습니다)?
추가 정보
주어진 socat
명령이 맞습니까? 몇 가지 옵션을 사용해야합니까? -v
옵션을 사용하면 다음을 볼 수 있습니다.
AT
> 2013/10/23 17:10:28.917413 length=3 from=0 to=2
AT
< 2013/10/23 17:10:28.921598 length=3 from=0 to=2
AT
AT
ksjdhfjdgfhjkdfh
> 2013/10/23 17:10:30.244923 length=17 from=3 to=19
ksjdhfjdgfhjkdfh
< 2013/10/23 17:10:30.251383 length=29 from=3 to=31
ksjdhfjdgfhjk\b \bd\b \bf\b \bh\b \b
ksjdhfjdgfhj
장치 자체는 다음 dmesg 출력으로 찾을 수 있습니다.
[5983726.808063] usb 2-1: USB disconnect, device number 3
[5983730.800021] usb 2-1: new full-speed USB device number 4 using uhci_hcd
[5983730.920014] usb 2-1: device descriptor read/64, error -71
[5983733.629524] usb 2-1: New USB device found, idVendor=0572, idProduct=1329
[5983733.629533] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[5983733.629539] usb 2-1: Product: USB Modem
[5983733.629544] usb 2-1: Manufacturer: Conexant
[5983733.629549] usb 2-1: SerialNumber: 24680246
[5983733.632673] cdc_acm 2-1:1.0: ttyACM0: USB ACM device
tty는 다음과 같이 구성됩니다.
speed 57600 baud; line = 0;
eof = ^A; min = 1; time = 0;
-brkint -icrnl -imaxbel
-opost -onlcr
-isig -icanon -echo -echoe
답변
시험 socat - /dev/ttyUSB2,crnl
이것은 socat에게 캐리지 리턴과 줄 바꿈을 보내도록 지시합니다.
설명-이것은 전기 타자기의 어두운 시절로 거슬러 올라갑니다. 여기에서 캐리지를 페이지의 0 위치로 돌려 놓아야 한다고 말해야합니다. .
답변
Linux에서 AT 명령을 모뎀으로 보내는 가장 좋은 방법은 AT 명령을 명령 줄에서 모뎀으로 보내기위한 목적으로 작성된 atinout 프로그램을 사용하는 것입니다.
모뎀 을 사용하여 작동하는지 테스트 하고 전화 번호부를 백업 할 수 있습니다 .
$ atinout - /dev/ttyACM0 ten_first_phonebook_entries.txt <<EOF
at+cscs="UTF-8"
at+cpbs="SM"; +cpbr=1,10
at+cpbs="ME"; +cpbr=1,10
EOF
$
또는 AT 명령을 사용하는 다른 것들.
답변
나는 당신이 원하는 것을 보여주는이 Chromium 프로젝트 게시물을 보았습니다. 제목 은 셀룰러 모뎀 디버깅 입니다.
해당 페이지에서 발췌
AT 명령 세트를 사용하여 모뎀과 직접 통신
대부분의 모뎀은 모뎀을 제어하고 정보를 쿼리하는 AT 명령을 지원합니다. 개발자 모드가 활성화 된 Chromium OS 기기에서 socat 명령을 사용하여 모뎀과 통신 할 수 있습니다. 테스트 이미지가 설치된 Chromium OS 기기가 필요합니다 (또는 dev 서버에 익숙한 경우 gmerge socat을 사용할 수 있음). 예를 들면 다음과 같습니다.
- CTRL + ALT + T를 입력하여 crosh 쉘을 입력하십시오.
- bash 쉘을 입력하려면 shell을 입력하십시오.
- ls / dev / ttyACM * / dev / ttyUSB *와 함께 사용할 USB 장치를 파악하십시오.
- 모뎀 관리자가 실행 중이면 중지하십시오. sudo stop modemmanager
- 모뎀과 통신하려면 sudo socat-/ dev / ttyACM1, crnl 또는 sudo socat-/ dev / ttyUSB0을 입력하십시오.
- “AT + CFUN = 1″명령으로 모뎀이 활성화되어 있는지 확인하십시오.
예를 들면 다음과 같습니다.
crosh> shell chronos@localhost ~ $ sudo stop modemmanager chronos@localhost ~ $ ls /dev/ttyACM* /dev/ttyUSB* /dev/ttyUSB0 /dev/ttyUSB1 /dev/ttyUSB2 chronos@localhost ~ $ socat - /dev/ttyUSB1 ATZ OK AT+CFUN=1 OK ATI Manufacturer: Qualcomm Incorporated Model: ...... Revision:.... ESN: 0x80d... +GCAP: +CIS707A, .... chronos@localhost ~ $
모뎀에 따라 “AT + CGMI”, “AT + CGSN”등과 같은 다른 AT 명령을 시도 할 수 있습니다.