ubuntu 에서 adb 의 android 장치 연결 상태 가 몇가지 있다.


1. no permissions 라고 나오는 경우.

예전글 http://blog.1day1.org/405 에서 처럼 장치를 인식시켜 준다.


2. unauthorized 라고 나오는 경우.

폰을 연결하고, 실행시켰을때 다음과 같은 에러가 난다.

[ERROR] :  Invalid "--device-id" value "LGF180Sa51d66e"
[ERROR] Application Installer abnormal process termination. Process exit value was 1

# adb devices

를 해보면

List of devices attached
LGF180Sa51d66e    unauthorized

usb 디버깅 체크를 하면, 접근 PC에 대해 디버깅을 허용할 것인지 안내창이 뜬다.

그것을 체크하지 않으면, unauthorized 라고 나온다. 체크하면 정상적으로 device 라고 나온다.



# 삼성 폰

$ adb devices

List of devices attached
44db4d4c    unauthorized

=> USB 디버깅 허용

List of devices attached
44db4d4c    device






# LG 폰

$ adb devices

List of devices attached
LGF180Sa51d66e    unauthorized

=> USB 디버깅 허용

List of devices attached
LGF180Sa51d66e    device





WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  0 , 댓글  1개가 달렸습니다.
  1. 진우제 2014.12.16 23:23
    안녕하세요 좋은 강의 감사합니다!
    # adb devices이거는 어떻게 하나요?
    Uauthorized mode에서 허용 팝업이 전혀 뜨지를 않네요
    조금만더 자세히 답변을 주시면 안될까요?
    답변주시면 감사하겠습니다.
secret
현재 모토로이를 우분투와 윈도우7 에 세팅해서 개발중에 있다.
윈도우7 은 모토로이 드라이버가 있어서 설치하면 된다.

우분투는 따로 모토로라에서 드라이버를 제공하지 않는다.
우분투의 usb 장치를 인식시키는 방법을 사용한다. 이때 udev 를 이용한다.
테스트는 우분투 8.04 hardy 버전과 9.10 karmic 버전에서 테스트했다.

먼저 안드로이드 SDK 를 설치한다.

$ adb devices

를 해보면.. (sdk 의 tools 디렉토리에  adb 명령이 있다.)

List of devices attached
???????????? no permissions


처럼 나온다.
디바이스가 인식되지 않아서 그렇다. udev 를 이용해 인식시켜보자.
(정확히 말하면 권한이 없다고 해야 겠다. lsusb 로는 이미 인식은 되어 있다)

모토로이를 연결하고 lsusb 명령을 내려보면.
$ lsusb

Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 005: ID 22b8:41db Motorola PCS
Bus 001 Device 002: ID 148f:2573 Ralink Technology, Corp. RT2501USB Wireless Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 003: ID 05af:0802 Jing-Mold Enterprise Co., Ltd
Bus 004 Device 002: ID 045e:0040 Microsoft Corp. Wheel Mouse Optical
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub



이런식으로 나온다. 모토로이가 어떤 것인지 딱 감이 올 것이다.

Bus 001 Device 005: ID 22b8:41db Motorola PCS


adb 에서 인식할 수 있도록, 장치를 등록한다.(진한 부분이 핵심이다)

관리자 권한으로 udev rules 를 만들어 준다.

# vi /etc/udev/rules.d/99-android.rules


위와 같이 파일을 만들어서 내용은 다음과 같이 넣어준다.(vi 등의 편집기)

SUBSYSTEM=="usb", ATTRS{idVendor}=="22b8", SYMLINK+="android_adb", MODE="0666"


한줄로 위 내용을 적어주고, 저장한다.

$ ls /etc/udev/rules.d/ -al
합계 24
drwxr-xr-x 2 root root 4096 2010-02-14 01:54 .
drwxr-xr-x 3 root root 4096 2009-12-06 02:15 ..
-rw-r--r-- 1 root root 1405 2009-12-21 20:25 70-persistent-cd.rules
-rw-r--r-- 1 root root  787 2009-12-11 00:51 70-persistent-net.rules
-rw-r--r-- 1 root root   91 2010-02-14 01:54 99-android.rules
-rw-r--r-- 1 root root 1157 2009-10-16 15:01 README


위처럼 rules 파일을 만들어 주면 된다.

udev 를 다시 실행시켜주면 정상적으로 사용할 수 있게 된다.(관리자권한 필요)


/etc/init.d/udev restart
또는
restart udev


이때 모토로이의 usb 저장소(외장형 SD)도 같이 인식되는 것을 볼 수 있다.


adb 명령을 다시 해보면.(처음과 다른것을 볼 수 있다)

$ adb devices
List of devices attached
04031826748580332373    device


위 처럼 인식된 장치가 보이게 된다.(보이는 숫자는 다를 것이다.)

이클립스에서 빌드명령을 내려보면, 타겟이 모토로이로 지정되어 뜨게 된다.



WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  1 , 댓글  3개가 달렸습니다.
  1. 꼭 필요한 정보였는데 ㅠㅠ 감사드려요 ㅠ ^^
  2. 좋은 팁, 감사합니다... ^^;

    저는 Karmic Koalal를 쓰는데...

    마지막 $ adb devices명령어전에,

    adb kill-server
    adb start-server
    라고 해서 adb를 restart시켜줘야 인식을 하더라구여~~
  3. 뭐라는지 하나도 모르겠네.. 그래 나 기계치다
secret
모토로이를 usb 디버깅 모드로  바로 실행시켜볼려고 하는데, 잘 안된다.

현재 virtualbox + ubuntu ( http://blog.1day1.org/394 ) 조합으로 사용중이다.
호스트OS인 윈7에 모토로이 드라이버 설치하고,
http://www.mymotorola.co.kr/product/PrdDownUsb.aspx?id=0045

가상머신에 우분투를 실행시켜 udev 로 인식시키는 것 까지는 되었는데.
http://aphyr.com/journals/show/debugging-the-droid-on-ubuntu-karmic

이클립스에서 어플을 실행시키면 연결된 모토로이로 apk 파일을 업로드해서 실행되는데.
업로드를 못하는 것 같다. 가상머신과 연결상의 문제가 있는 것 같다.
따로 우분투용 드라이버를 설치해야 하는 것인지? (모토로라 쪽에서는 윈도우 드라이버만 제공하는데.)

가상머신이 아닌, 우분투 호스트로 부팅을 해서 다시 테스트 해봐야 겠다.
이것도 안되면 윈도우7 에 개발환경을 만들어야 할 듯 하다.


에뮬을 로딩하는 방식보다 엄청빠르다고 한다.(당연하지만...)
그래서 꼭 하긴 해야 하는데...


[추가]
우분투를 가상머신이 아닌, 호스트로 부팅해서 테스트를 해봤다. 잘 된다.
(android 개발환경을 처음부터 다시 세팅했다.)
64bit 환경이라 몇가지 32bit 라이브러리를 설치해줘야 하는 것 빼고는 별 차이가 없다.

정말 빠르다. 바로 실행되네.

새해첫날에 이상한 짓 하고 있는것 같군요. ^^
개발폰에 직접 실행시키는 재미가 색다르네요.
에뮬에서 실행시키는 것과는 느낌이 상당히 다릅니다. 좋습니다.



WRITTEN BY
1day1
하루하루 즐거운일 하나씩, 행복한일 하나씩 만들어 가요.

트랙백  1 , 댓글  0개가 달렸습니다.
secret