원격 컴퓨터에 SSH를 통해 연결하고 특정 COM 포트에 연결된 장치의 모델을 확인하려고 합니다.
몇 가지 명령을 시도했지만 SSH 연결을 사용 중이거나 액세스 중인 컴퓨터에 이 명령을 실행하기 위한 모듈이 설치되어 있지 않기 때문에 작동하지 않습니다.
지금까지 나는 다음을 시도했습니다.
dmesg
lspci
lsblk
lsusb
명령으로 인식되는 것은 dmesg인데 내가 원하는 정보를 제공하지 않고 lspci가 알 수 없는 장치 메시지를 잔뜩 인쇄합니다.
솔직히 말해서, 나는 그것이 불가능하다고 생각하기 시작했습니다. 또한 SSH를 통해 연결된 시스템에 모듈을 설치하지 않고 이 작업을 수행해야 합니다.
답변1
좋아요, 그럼 PC가 중요한 게 아니라 COM 포트에 연결된 신비한 장치라는 건가요?
lsserial
불행하게도 COM 포트는 자동으로 제공되는 메타데이터가 없는 매우 낮은 수준의 연결이므로 100% 신뢰도로 장치를 식별하는 데 유용한 정보를 직접 제공할 수 있는 이와 같은 범용 도구 는 없습니다 .
통신 중인 소프트웨어를 식별할 수 없는 경우( fuser /dev/ttyS*
표시된 PID에 대한 프로세스 정보를 사용하고 가져옴) 이를 단서로 사용하거나 프로세스가 장치를 적극적으로 사용하지 않는 경우 "대화"를 시도해야 합니다. @mosvy가 보여준 것처럼 장치가 일반적인 프로토콜에 응답하는지 확인하십시오.
cutecom
COM 포트에 연결된 장치를 사용하는 경우 , minicom
또는 이와 유사한 일종의 직렬 포트 지향 터미널 에뮬레이터가 설치되어 있을 가능성이 높습니다 seyon
. 기존 UUCP 직렬 포트 유틸리티도 cu
유용할 수 있습니다. 사용된 흔적이나 기존 구성 파일을 찾을 수 있다면 사용된 직렬 포트 매개변수를 찾을 수 있을 것입니다. 그렇지 않으면 많은 시행착오가 필요할 수 있습니다.
모뎀은 일반적으로 "AT"에 "OK"로 응답 Enter하고 일반적으로 COM 포트 속도를 자동으로 감지합니다. 기본 통신이 설정되면 ATI1
Enter다른 ATI 명령을 증가하는 숫자로 사용하여 모뎀에서 기본 식별 정보를 얻을 수 있습니다.
GPS 시간 수신기 또는 UPS와 같은 장치는 자체적으로 일부 데이터를 주기적으로 출력할 수 있으며 1200bps만큼 낮은 속도를 사용할 수 있습니다. 스위치, 라우터 및 유사한 네트워크 하드웨어는 일반적으로 9600bps, 38400bps 또는 115200bps와 같은 포트 속도를 사용하여 인식 가능한 로그인 프롬프트를 표시할 수 있습니다. 또 다른 변형은 하드웨어 핸드쉐이킹(RTS/CTS 및/또는 DSR/DTR)이 필요한지 여부입니다. 비트/패리티 조합의 경우 가장 일반적인 것은 8n1이며, 이는 8개의 데이터 비트, 패리티 없음, 1개의 정지 비트입니다.
root
또한 이전에 COM 포트와 관련하여 사용된 특수 명령에 대해 사용자의 셸 기록 파일을 확인하는 등 보다 간접적인 접근 방식을 시도할 수도 있습니다 .
현장의 누군가에게 식별 정보(예: 제조업체 로고 또는 모델 번호)가 명확하게 보이는 장치 사진을 찍는 등 실제로 COM 포트 케이블 끝에 있는 장치를 살펴보도록 하십시오. 이것이 쉬운 일인지 묻고 있습니다.
프린터는 아마도 COM 포트를 통해 원격으로 식별하기 가장 어려울 것입니다. 예를 들어 Epson ESC/P 프린터 명령 언어에는 상태 읽기에 대한 명령이 전혀 포함되어 있지 않은 것 같습니다. 프린터가 PCL을 이해한다면 아마도 PJL도 이해할 것입니다. 이 경우 다음을 시도해 볼 수 있습니다.
(exec <>/dev/ttySn; stty sane; printf "\e%-12345X@PJL INFO ID\n" >&0; cat)
프린터가 PJL을 인식하면 모델 ID로 응답해야 합니다. 단어를 또는 ID
로 바꾸면 프린터에서 더 많은 정보를 얻을 수 있습니다 .CONFIG
VARIABLES