시리얼 포트 액세스가 거부됨
포트가 목록에 표시되고 선택도 가능하지만, 연결을 시도할 때마다 즉시 액세스 또는 권한 오류가 발생하며 연결되지 않습니다.
증상
드롭다운에 포트가 표시됩니다. 포트를 선택하고 연결을 클릭하면 시간 초과나 몇 초간의 시도 후가 아니라 즉시 연결이 실패합니다. 오류에는 포트 이름이 포함되며 다음과 비슷한 메시지가 표시됩니다.
COM7 열기 액세스 거부: 액세스가 거부되었습니다. 다른 애플리케이션이 이 시리얼 포트를 사용 중일 수 있습니다. 다른 레이저 또는 시리얼 소프트웨어를 종료하고 컨트롤러를 분리했다가 다시 연결한 다음 다시 시도하세요.
표시되는 문구는 운영 체제에 따라 다릅니다. Windows에서는 세부 정보에 "액세스가 거부되었습니다"라고 표시되고 다른 소프트웨어를 종료하라는 메시지가 나타나는데, 이는 Windows에서 가장 흔한 원인입니다. Linux와 macOS에서는 세부 정보에 "권한이 거부되었습니다"라고 표시되고 대신 시리얼 장치 권한을 확인하라는 메시지가 나타납니다.
/dev/ttyUSB0 열기 액세스 거부: 권한이 거부되었습니다. 사용자 계정에 시리얼 장치를 열 권한이 없을 수 있습니다. Linux에서는 사용자를 dialout 그룹 또는 배포판의 시리얼 그룹에 추가한 다음 로그아웃하고 다시 로그인하세요.
발생 원인
포트 자체는 정상이며 Beam Bench에서도 포트를 인식하지만, 포트를 여는 단계에서 문제가 발생합니다. 한 번에 하나의 프로그램만 시리얼 포트를 열어 사용할 수 있습니다. 다른 프로그램이 이미 포트를 열고 있으므로 운영 체제는 두 번째 열기 요청을 거부합니다. 따라서 Beam Bench는 핸드셰이크 중 시간 초과가 아니라 액세스 거부로 보고합니다.
Beam Bench는 다른 프로그램이 사용 중인 포트를 강제로 가져올 수 없습니다. 해결 방법은 사용자가 직접 포트를 이미 사용 중인 프로그램을 찾아 종료하는 것입니다.
해결 방법
Windows를 사용하는 경우
거의 항상 이 원인으로 발생합니다. 다음 항목을 확인하세요.
- Arduino IDE에서 시리얼 모니터가 열려 있거나, 동일한 COM 포트가 선택된 보드가 남아 있는 경우
- PlatformIO의 시리얼 모니터가 열려 있거나 업로드가 아직 진행 중인 경우
- PuTTY 같은 시리얼 터미널이 포트에 연결된 채로 남아 있는 경우
- 포트를 열었지만 해제하지 않은 펌웨어 플래시 도구가 있는 경우
- 다른 각인 프로그램이 최소화된 상태로 계속 실행 중인 경우
- Beam Bench가 두 번째로 실행 중인 경우. 다른 창이나 다른 인스턴스일 수 있습니다.
Linux를 사용하는 경우
오류 세부 정보에 "권한이 거부되었습니다"라고 표시되며, Linux에서는 거의 항상 사용자 계정이 dialout 그룹에 속해 있지 않다는 의미입니다. 이는 프로그램이 포트를 사용 중인 문제가 아니라 권한 문제입니다. 다른 프로그램이 포트를 사용 중일 때 Linux는 일반적으로 거부됨이 아니라 사용 중이라고 보고합니다. 해결 방법은 Linux 시리얼 권한을 참조하세요.
이미 dialout 그룹에 속해 있는데도 이 오류가 표시되면, 포트를 독점적으로 사용 중인 프로그램이 있는지 확인하세요. 시리얼 터미널(screen, minicom), 플래시 도구 또는 다른 Beam Bench 인스턴스일 수 있습니다. 해당 프로그램을 종료한 다음 다시 연결하세요.
macOS를 사용하는 경우
흔하지는 않지만 규칙은 같습니다. 시리얼 터미널이나 포트를 열어 둔 다른 프로그램이 Beam Bench의 포트 열기를 차단합니다. 해당 프로그램을 종료한 다음 다시 연결하세요.
대부분의 경우에 해결되는 일반적인 단계
- 시리얼 포트와 통신할 수 있는 모든 프로그램을 종료하세요. Arduino IDE, PlatformIO, 시리얼 터미널, 펌웨어 플래시 도구, 다른 각인 프로그램, Beam Bench의 두 번째 복사본을 포함합니다.
- 컨트롤러의 USB 케이블을 분리하세요.
- 몇 초간 기다리세요.
- 케이블을 다시 연결하세요.
- Beam Bench에서 다시 연결하세요.
포트를 사용 중인 프로그램을 찾을 수 없는 경우
재부팅하세요. 재부팅하면 추적하기 어려운 포트를 포함해 사용 중인 모든 포트가 해제됩니다. 재부팅 직후 Beam Bench가 정상적으로 연결되었다가 나중에 오류가 다시 발생한다면, 그 사이에 열었던 프로그램이 원인입니다.
여전히 해결되지 않나요?
- 머신이 연결되지 않음: 잘못된 포트와 잘못된 보드레이트를 포함한 보다 광범위한 연결 문제를 다룹니다.
- Linux 시리얼 권한: Linux에서
dialout그룹을 설정하는 방법입니다. - 연결 진단 패널: 연결을 시도하는 동안 이벤트 로그를 확인할 수 있습니다.
- 문제가 발생했을 때 사용 중이었던 운영 체제와 다른 프로그램을 함께 적어 Facebook 그룹에 게시하세요.