콘텐츠로 이동
무료 평가 시작

도구 문제 해결

오류 메시지는 프로그램이 출력하는 그대로 적었습니다. 메시지로 이 페이지를 검색합니다.

메시지 원인 해결
pdcomm-vserial: the PDComm Virtual Serial extension is not loaded macOS에서 driver 백엔드를 썼습니다. macOS에서는 pty 백엔드를 씁니다.
pdcomm-vserial: no PDComm Virtual Serial ports are installed Windows에 포트 드라이버가 없습니다. MSI를 설치하거나 ports install로 포트를 만듭니다.
pdcomm-vserial: No such file or directory (os error 2) Linux에서 드라이버 포트를 쓰는데 모듈이 적재되지 않아 /dev/pdcomm-vserial가 없습니다. sudo modprobe pdcomm_vserial로 적재합니다. Secure Boot 상태도 확인합니다.
pdcomm-vserial: Permission denied (os error 13) 드라이버 제어 장치는 root만 엽니다. sudo로 랩을 실행합니다. 응용 프로그램이 /dev/ttyPDVn을 열 때 이 오류가 나면 dialout 그룹에 추가합니다.
pdcomm-vserial: Device or resource busy (os error 16) 다른 랩(보통 pdcomm-vseriald 서비스)이 드라이버를 쓰고 있습니다. sudo systemctl stop pdcomm-vseriald로 서비스를 멈추고 실행합니다.
pdcomm-vserial: Address already in use (os error 48) 다른 프로그램이 listen 포트를 쓰고 있습니다. Linux에서는 os error 98입니다. 다른 포트를 지정하거나 127.0.0.1:0으로 빈 포트를 고르게 합니다.
… is not a loopback address; set allow_remote to expose it TCP 서버를 외부 주소로 열려고 했습니다. 신뢰할 수 있는 네트워크라면 랩에 "allow_remote": true를 지정합니다.
… exists and is not a symlink link 경로에 일반 파일이 있습니다. 파일을 지우거나 다른 경로를 씁니다.
pdcomm-vserial: ports commands manage the Windows driver; on Linux load pdcomm_vserial.ko ports 명령은 Windows 전용입니다. Linux는 패키지와 modprobe로 포트를 관리합니다.
pdcomm-vserial: daemon mode needs a Unix host; use run on Windows Windows에서 daemon을 실행했습니다. run을 씁니다.

랩 파일 자체의 오류는 랩 파일 오류를 참고합니다.

증상 원인과 해결
받은 문자가 깨지거나 프레이밍·패리티 오류가 남 양쪽의 속도, 데이터 비트, 패리티가 다릅니다. 가상 회선도 실제 수신기처럼 깨진 문자를 전달합니다. 추적 기록의 "event":"port" 줄로 각 노드의 실제 설정을 확인합니다.
포트를 연 직후 보낸 첫 프레임만 실패 응용 프로그램이 속도와 형식을 설정하기 전에 보냈습니다. 랩은 데이터를 받은 시점의 설정으로 전달합니다. 포트를 열고 설정을 마친 뒤 보냅니다. 추적 기록에서 첫 tx 앞의 port 줄로 그때의 설정을 확인합니다.
RS-485 버스에서 RTU 요청이 자주 실패 instant 진행 방식에서는 프레임 사이에 침묵이 없습니다. realistic을 씁니다.
버스에서 응답이 겹쳐 깨짐 두 장치가 동시에 송신했습니다. 추적 기록에서 collision을 찾고 장치 주소가 겹치지 않는지 확인합니다.
응용 프로그램이 포트를 열지 못함 랩이 멈추면 링크를 지웁니다. 랩이 실행 중인지, 링크 경로가 맞는지 확인합니다.
관리자에서 Start lab을 눌러도 Stopped with an error 로그 창의 pdcomm-vserial: … 메시지를 이 페이지에서 찾습니다. Cannot start …이면 관리자 옆에 pdcomm-vserial이 없으니 PDCOMM_VSERIAL_BIN을 지정합니다.
도구 결과 해결
a lab is already running; stop it first vserial_stop으로 먼저 멈춥니다. 서버 하나는 랩 하나만 실행합니다.
no lab is running vserial_start로 랩을 시작합니다.
JSON-RPC 오류 -32602 Unknown tool: … 도구 이름을 확인합니다. tools/list로 목록을 봅니다.
증상 원인과 해결
로그 파일이 생기지 않음 환경 변수 값이 하나라도 잘못되면 전체를 무시합니다. PDCOMM_LOG는 소문자 레벨 이름입니다. 상태의 configuration_errors를 확인합니다. 이미 실행 중인 프로그램은 다시 시작해야 환경 변수를 읽습니다.
Cannot open logging sink 로그 파일의 폴더가 없거나 쓸 권한이 없습니다.
Cannot configure PDComm logging 예외 설정 JSON이 잘못되었습니다. 시뮬레이터의 logging_configure로 같은 JSON을 보내면 원인 메시지를 볼 수 있습니다.
dropped가 0보다 큼 큐가 가득 찼거나 레코드가 8192바이트를 넘었습니다. 레벨을 debug나 info로 낮추거나 더 빠른 디스크에 씁니다.
한 파일에 두 프로세스의 레코드가 섞임 프로세스나 라이브러리마다 다른 파일을 지정합니다.
증상 해결
no search index found (tried: …) --index, --root, PDCOMM_DOCS_INDEX 중 하나로 search-index.json을 지정합니다.
검색 결과가 다른 언어로 나옴 --lang이나 PDCOMM_DOCS_LANG을 지정합니다.
오프라인 사이트에서 검색이 동작하지 않음 HTML 파일을 직접 열면 브라우저가 검색 색인을 읽지 못합니다. pdcomm-docs serve나 python3 -m http.server로 엽니다.

전체 명령과 오류는 pdcomm-docs 명령 레퍼런스를 참고합니다.