애드센스본문상단

 


VMWare의 우분투에서 adb 사용하기  - 리눅스/안드로이드

사실 VMWare에 설치된 우분투에서 adb를 사용하는 것과 PC에 설치된 우분투에서 adb를

사용하는 것에는 큰 차이점이 없다.

다만 VMWare에서 사용을 할 경우에는 VMWare에 대한 약간의 설정이 필요할 뿐이다.

VMWare의 설정은 아래와 같다. (VMWare에는 우분투가 설치되어 있는 것으로 가정한다.)


1. VMWare 설정

먼저 하드웨어 설정을 해주어야 하는데 USB Controller 부분만 신경써주면 된다.

사실 이 부분도 VMWare 기본 설정으로 되어 있는 부분이기에 수정해야 할 부분이 없다.

안드로이드 기기를 USB에 연결하고 아래와 같이 USB 디버깅이 활성화되어 있는지 확인한다.

활성화되어 있지 않다면 설정→애플리케이션→개발 항목으로 들어가서 항목을 체크해 준다.

그 다음은 VMWare에 장치를 연결할 차례이다.

위 그림과 같이 해당 기기를 VMWare에 연결한다.

lsusb 명령을 통해 안드로이드 기기가 정상적으로 연결되었는지 확인한다. (리스트의 2번째)


2. 안드로이드 SDK 설치

여기부터는 VMWare/일반 PC 모두 공통적으로 적용되는 부분이다.

안드로이드 디벨로퍼 사이트(http://developer.android.com/sdk/index.html)에서 리눅스용 패키지를

다운로드받아 압축을 해제한다. ( $> tar xzf android-sdk_r13-linux_x86.tgz)

X Window에서 SDK가 설치된 디렉터리의 tools 디렉터리로 이동하여 AVD Manager를 실행한다.

$> ./android update sdk

필요한 패키지를 설치한다. adb를 사용하려면 Android SDK Platform-tools를 설치해야 한다.

사용을 간편하게 하기 위하여 adb가 위치한 디렉터리에 대한 PATH를 설정한다.

$> export PATH=${PATH}:~/android-sdk-linux_x86/platform-tools
 

3. USB 디바이스 설정

위에서 USB가 정상적으로 연결되었는지 확인할 때 사용했던 lsusb 명령을 다시 수행해보면

Bus, Device, ID의 순서로 해당되는 값이 출력이 되는데 ID의 콜론 앞부분이 중요하다.
이 값이 USB 설정을 포함하는 udev rule 파일을 만들 때 사용된다.

여기서는 모토로라의 기기이므로 Vendor ID가 22b8이다.

편집기를 실행하여 /etc/udev/rules.d/ 디렉터리 아래에 51-android.rules 파일을 생성하고

아래와 같이 적는다.

SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"
파일을 저장하고 파일의 접근 권한을 아래와 같이 설정한다.

$> sudo chmod a+r /etc/udev/rules.d/51-android.rules

마지막으로 변경한 rule을 적용하기 위해 udev를 재시작 한다.

$> sudo service udev restart


4. ADB 실행

마지막으로 adb를 실행시킨다.

adb를 실행할 때 일반 권한으로 실행을 하면 아래와 같은 에러 메시지를 만날 수 있다.

error: insufficient permissions for device

따라서 adb는 아래와 같이 su의 권한으로 실행을 시킨다.

$> sudo adb start-server

아래의 명령으로 adb에서 정상적으로 안드로이드 기기를 인식하는지 확인한다.

$> sudo adb devices

정상적으로 인식했다면 아래와 같은 화면을 볼 수있다.
이제 아래와 같이 adb를 마음대로 사용할 수있다.

5. Trouble Shooting

100% 확실치는 않지만 adb 프로그램은 허용 가능한 Vendor ID Table을 가지고 있는 것으로 보인다.
(예 > Google: 18D1, HTC: 0BB4, LG: 1004, Samsung: 04E8... [참조 Vendor ID Table])

기기의 USB Vendor ID가 adb 프로그램이 가지고 있는 Table에 존재하지 않는 경우에는

우분투에서 USB를 정상적으로 인식하였음에도 불구하고 adb에서는 기기를 인식하지 못한다.

만약 그런 경우가 발생할 때에는 kernel/drivers/usb/gadget/android.c 파일의 VENDOR_ID로 정의된

값을 Vendor ID Table 리스트에 존재하는 값으로 변경한 다음 실행하면 해결이 될 것이다.



참고 사이트



핑백

  • 태효의 세상 사는 이야기 : 안드로이드 ADB에 써드파티 Vendor ID 추가하기 2011-12-16 16:18:26 #

    ... 지난 번 포스팅에서 Vendor ID가 리스트에 존재하지 않는 경우 ADB에서 인식하지 못한다는 글을 적은 적이 있다. (링크) 그래서 이에 대한 해결책으로 커널 소스코드를 직접 수정하는 방법을 제시했는데 그렇게 번거로운 방법을 사용하지 않고 해결할 수 있는 방법이 있다는 것을 알게 되었 ... more

덧글

  • icaros 2013/05/19 14:42 # 삭제 답글

    정말 감사합니다!
    이렇게 좋은글에 덧글이 하나도 없다니...ㄷㄷ
  • sr 2015/01/06 15:16 # 삭제 답글

    좋은 글 감사합니다.rules 파일 추가하고선 정상적으로 인식 및 마운트 되네요
댓글 입력 영역


애드센스본문측면

통계 위젯 (화이트)

640
174
313560

Analytics