ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Tizen] 타이젠 개발툴 sdb 살펴보기(Z1, Z3, Gear1, Gear2)
    IT/Tizen 2015. 11. 25. 00:23


    안녕하세요, 타이젠 개발자 윤진입니다.


    본 포스팅은 이틀에 걸쳐 졸음과 싸워가며 작성한 포스팅입니다.

    오탈자가 있을 수 있으니 너그러운 맘으로 지적질(?) 부탁드립니다;


    사실 이전 포스팅에서도 타이젠 개발환경의 핵심툴인 sdb를 언급한 적이 있습니다.

    - sdb 설치하기 : [Tizen] 우분투에 타이젠 플랫폼 툴인 gbs & sdb 설치해보기

    - sdb 사용하기 with Gear S2 : [Tizen/Gear S2] 타이젠 기어S2와 호스트 PC 연결하기


    하지만 하루에도 수십차례 이용하는 sdb의 주요 기능에 대해 다룬 적이 없더군요.

    어쩌면 지금 이 시간에도 수많은 타이젠 개발자들이 sdb를 이용하고 있을텐데요.

    이 포스팅에서는 타이젠 개발자들이 주로 사용하는 sdb 기능을 설명하도록 하겠습니다.


    sdb는 개발시스템과 디바이스(혹은 에뮬)을 연결하여 사용할 수 있도록 도와주는 툴입니다.

    개발시스템과 에뮬 혹은 디바이스 혹은 에뮬과 디바이스를 동시에 연결할 수도 있지요.

    파일을 주고 받고, 원격 쉘 접속을 위해 sdb를 사용하고 있습니다.


    이런 sdb를 사용하기 위해서는 2가지 전제조건이 있습니다.


    전제 1. 당연히, sdb를 설치하셔야겠지요.

    sdb는 기본적으로 Tizen SDK와 함께 설치됩니다.

    따라서 Tizen SDK를 설치하셨다면,

    tizen-sdk/tools/sdb를 찾으실 수 있을겁니다.

    만약 SDK 없이 sdb 툴만 리눅스환경에서 따로 받고 싶으시면 위에 언급한 포스팅을 참고해주세요.


    전제 2. sdb로 붙이려는 디바이스의 debug 모드를 "On" 하셔야합니다.

    디바이스에서 debug 모드를 켜놓지 않으면 sdb를 붙일 수 없지요.

    타이젠 플랫폼에서는 Home > Settings > Device Info. > USB Debugging에서 설정하고,

    타이젠 상품 Gear 시리즈에서는 Apps > Settings > Gear Info. > Debugging에서 설정하며,

    타이젠 상품 Z1, Z3에서는 아래 포스팅을 참고해서 debug 모드를 설정하실 수 있습니다.

    [Tizen] 타이젠 Z1에 개발자모드 메뉴가 숨겨져 있는 까닭은?


    전제조건을 모두 만족하셨다면 이제 sdb 명령어를 살펴볼 차례입니다.

    sdb 명령어는 도스나 리눅스 쉘에서 직접 사용할 수 있습니다.


    sdb [option] <command> [parameters]


    option에는 총 3가지 명령어가 있습니다.

    옵션 1. "-d" 디바이스와 연결할 때 사용하는 명령어입니다.

    개발시스템과 연결한 장치가 여러개 있을 경우,

    그 중 USB와 직접 연결된 디바이스에 -d 옵션으로 접속할 수 있습니다.


    옵션 2. "-e" 에뮬레이터와 연결할 때 사용하는 명령어입니다.

    개발시스템과 연결한 장치가 여러개 있을 경우,

    그 중 에뮬레이터에 -e 옵션으로 접속할 수 있습니다.

       

    옵션 3. "-s" 시리얼넘버로 디바이스 혹은 에뮬에 접속할 수 있습니다.

    시리얼 넘버는 sdb get-serialno 명령어로 얻을 수 있는데요,

    앱개발할 때 사용한 경험이 거의 없군요 :)


    위의 명령어 세가지는 말 그대로 옵션입니다.

    개발시스템에 에뮬레이터와 디바이스가 모두 연결되어 있고,

    둘 중 하나를 번걸아가며 접속할 때 유용하게 사용할 수 있습니다.

    에뮬과 디바이스 중 하나만 접속이 되어 있다면,

    옵션을 사용하지 않아도 접속된 에뮬 혹은 디바이스에 알아서 접속해줍니다.


    command에는 다수의 유용한 명령어가 있습니다.

    명령어 1. "root" <on | off>

    root 명령어는 sdb로 에뮬 혹은 디바이스에 루트 권한으로 접속하게 해줍니다.

    에뮬이나 플랫폼 바이너리가 탑재된 TM1 시료에서 사용할 수 있습니다.

    Z1, Z3, Gear1, Gear2와 같은 상품에서는 root 권한을 얻을 수 없습니다.


    명령어 2. "connect" <host>[:<port>]

    connect는 Gear S2를 연결할 때 사용합니다.

    이 명령어는 아래 포스팅을 참고해주세요.

    [Tizen/Gear S2] 타이젠 기어S2와 호스트 PC 연결하기


    명령어 3. "shell"

    shell 명령어는 리모트쉘로 에뮬 혹은 디바이스에 접속할 수 있게 해줍니다.

    쉘 명령어로 장치에 접속을 한뒤,

    플랫폼에 설치된 다양한 명령어를 사용하여 장치의 상태를 확인할 수 있습니다.

    top 혹은 ps를 사용하여 장치상태를 확인해보세요 :)


    굳이 리모트 쉘에 접속할 필요없이,

    쉘명령어만 한 번 사용하여 결과를 보고 싶다면,

    sdb shell <명령어> 형식을 사용하면 됩니다.

    예를 들어 ps 상황만 체크하고 싶다면,

    sdb shell ps를 치면 쉘없이 ps 내용이 바로 출력됩니다.


    명령어 4. "install" <pkg_path>

    개발시스템에서 빌드한 패키지를 remote로 복사한 후 설치합니다.

    패키지만 가지고 있는 경우,

    sdb 명령어를 통해 쉽게 복사 & 설치할 수 있겠네요.


    명령어 5. "uninstall" <pkg_id>

    remote에서 패키지를 삭제할 때 사용할 수 있습니다.

    이 때 pkg_id를 정확하게 알아야합니다.

    자신이 삭제할 패키지의 ID는 정확히 알아야겠지요?


    명령어 6. "push" <local> <remote>

    개발시스템에서 빌드한 패키지를 에뮬 혹은 디바이스에 보낼 때 주로 사용합니다.

    패키지 뿐만 아니라 각종 파일을 넘기는데 사용하지요.

    <local>에는 개발시스템에서 보낼 파일을 기입합니다.

    <remote>에는 파일을 받을 장소를 선택합니다.

    만약 파일을 받을 디렉토리가 없다면 제대로 푸시되지 않을 수 있으니 미리 만들어주세요.

    # sdb push file_to_push.txt /home/developer

    위와 같이 file_to_push.txt 파일을 /home/developer 위치에 넣을 수 있습니다.


    명령어 7. "pull" <remote> [<local>]

    push와 상반되게 리모트 시스템에 있는 파일을 개발시스템으로 가져올 수 있습니다.

    <remote>에는 리모트 시스템에 있는 파일을 절대경로로 적어주면 됩니다.

    [<local>]을 적지 않으면 현재 디렉토리로 파일을 가져옵니다.


    명령어 8. "kill-server" & "start-server"

    sdb로 제대로 접속이 안될 경우,

    sdb server를 죽였다가 다시 살립니다.

    개발시스템과 에뮬 혹은 디바이스가 대부분 제대로 잘 붙는데요,

    아주 간헐적으로 알 수 없는 이유 때문에 잘 안붙을 때가 있습니다.

    그럴때 서버를 죽였다가 살려보세요. :)


    명령어 9. "get-serialno" & "devices"

    현재 접속된 디바이스 혹은 에뮬에 대한 시리얼 넘버를 알려줍니다.

    여기서 얻은 값을 보고 위에서 설명드린 -s 옵션과 함께 사용하면 됩니다.


    명령어 10. "dlog" [<filter_spec>]

    개발시스템에 접속한 리모트장치의 상태를 dlog를 통해 엿볼 수 있습니다.

    # sdb dlog

    위의 명령어로 쉽게 로그를 출력할 수 있지요 :)


    이상과 같이 간단하게 sdb의 명령어를 살펴봤습니다.

    그럼 오늘도 즐거운 개발하시길... :)


    끝_

Designed by Tistory.