Linux(Ubuntu)에서는 에 위치한 모뎀에 AT 명령을 보내려고 합니다 /dev/ttyACM0
. 나는 이것을 시도한다:
sudo socat - /dev/ttyACM0
하지만 무엇이든 입력할 때 이 명령을 반복하는 줄이 나타납니다(예상했던 명령입니다 OK
).
내가 할 때
sudo minicom modem1
작동하는 것 같습니다. 나는 an을 입력 AT
하고 를 얻습니다 OK
. 나는 약간의 쓰레기를 입력하고 를 얻습니다 ERROR
.
modem1
미니콤은 어떻게든 모뎀을 사용하도록 구성되어 있는 것 같습니다 /dev/ttyACM0
.
socat을 사용하여 AT 명령을 보내는 방법은 무엇입니까? 뭔가를 구성해야 합니까? 어쩌면 minicom의 구성을 사용할 수 있을까요 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
답변1
노력하다socat - /dev/ttyUSB2,crnl
이는 socat에 캐리지 리턴 및 줄 바꿈을 보내도록 지시합니다.
설명 - 이것은 전기 타자기의 암흑기로 거슬러 올라갑니다. 그곳에서는 캐리지를 페이지의 0 위치로 되돌리라고 지시해야 했습니다.입력하다- 그리고 종이를 한 줄 위로 이동하라고 지시합니다.
답변2
Linux에서 모뎀에 AT 명령을 보내는 가장 좋은 방법은 이 프로그램을 사용하는 것입니다.아티누트이는 명령줄에서 모뎀으로 AT 명령을 보내는 목적으로만 작성되었습니다.
당신은 그것을 사용할 수 있습니다모뎀이 작동 중인지 테스트합니다., 백업 전화번호부:
$ 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 명령을 사용하여 수행하는 다른 작업.
답변3
당신이 원하는 것을 보여주는 이 Chromium 프로젝트 게시물을 찾았습니다. 제목은 다음과 같습니다.셀룰러 모뎀 디버깅.
이 페이지에서 발췌
AT 명령 세트를 사용하여 모뎀과 직접 통신
대부분의 모뎀은 모뎀 및 쿼리 정보를 제어하는 AT 명령을 지원합니다. 개발자 모드가 활성화된 Chromium OS 기기에서는 socat 명령을 사용하여 모뎀과 통신할 수 있습니다. 테스트 이미지가 설치된 Chromium OS 장치가 필요합니다(또는 개발 서버에 익숙하다면 gmerge socat을 사용할 수 있습니다). 예를 들어:
- Crosh 셸을 시작하려면 CTRL+ALT+T를 입력하세요.
- bash 쉘에 들어가려면 쉘을 입력하십시오.
- 사용할 USB 장치 결정: ls /dev/ttyACM* /dev/ttyUSB*
- 모뎀 관리자가 실행 중이면 중지하십시오. 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 명령을 시도할 수 있습니다.
답변4
#TIL 이 목적으로 사용할 수 있습니다 screen
. 노력하다
screen /dev/ttyACM0 57600,cs8,-parenb,-cstopb,-hupcl