[리눅스] Automatic Target Mode: Unable to detect device compatibility. Please select a target device.

2023. 4. 6. 01:12리눅스 실제 사용 팁

작성일 : 2013. 5. 3. 16:58

(이 글을 옮기는 시점인 현재는 와이파이를 활용한 무선 페어링 기술이 있어서 USB 케이블 연결 시 장비가 인식안된다고 이렇게까지 애쓰지 않아도 됨. 아싸~~)


개발 중인 Android (이하, 안드로이드) 앱을 내 폰에서 실행하려고 시도했는데

 

[2013-05-03 16:08:56 - MyFirstApp] Automatic Target Mode: Unable to detect device compatibility. Please select a target device.

 

와 같은 오류를 뱉으면서 실행이 안될 때.

 

ADB 에서 내 폰을 인식할 수 있도록 조치해주어야 한다.

리눅스에서 PCI 디바이스 (주로 비디오 / 사운드 카드 / 이더넷 / 무선랜 카드(또는 칩) 제조사와 이름)을 알기 위해서 lspci 를 실행하는데, 현재 접속된 USB 디바이스 정보를 볼 때는 이와 이름이 유사한 lsusb 를 실행한다.

 

내 폰. LG Optimus G Pro 는 벤더ID (1004), 제품ID (631f) 로 인식되었다.

요즘 리눅스 배포판에서는 디바이스 정보를 udev 데몬을 통해서 처리한다.

(통짜 디바이스 파일 덩어리 -> (동적 생성방식) devfs -> udev 순으로 발전)

 

Ubuntu 에서는 udev 데몬이 시작될 때 /etc/udev/rules.d 에 존재하는 스크립트들을 읽어들인다.

(여타 배포판에서도 이와 유사할 것이다)

(README 파일에서는 기존 스크립트들을 복사한 다음 필요한 부분을 고쳐서 쓰란다.)

 

아래처럼 /etc/udev/rules.d/${NN}-스크립트명.rules 형태를 지닌 스크립트를 작성해준다. ${NN} 는 실행 우선순위이다. 대체로 패키지 메인테이너들이 생성하는 번호와 충돌하지 않게 거의 안쓰는 뒷 번호 99를 쓰면 된다.

100 을 써도 되고 (두 자릿 수를 인식하지 않는 한 아마도 되겠지?)

 

MODE="0666"권한을 설정하는 부분이다. (read : 4, write : 2, execute : 1. 즉 4+2 (rw)가 가능하도록~)

 

스크립트 생성 및 편집을 마쳤으면 udev 데몬을 재시작해준다.

(본 글을 작성한 환경은 Ubuntu 임. 배포판마다 서비스/데몬 제어 방법이 약간씩 다르니까 참고!)

 

udev 데몬을 재시작하였으면 다시 이크립스에서 앱 프로젝트를 선택한 후, Run As -> Android Application 를 시도해보자.

아래처럼 인식이 될 것이다.

 

실행된 화면

첨부된 파일은 F240L (옵티머스G-Pro) 용.

90-lg-device.rules
0.00MB