Ubuntu에서 AVD를 일반계정으로 실행하면 멈추는 문제로 3일재 골머리 앓습니다.

Lazy Stone의 이미지

우선, 저는 리눅스와 안드로이드 개발 둘 다에 초보자입니다. 이번에 처음 깔아봤네요.

일단, Ubuntu 11.04를 VirtualBox에 깔고,

source.android.com의 가이드 처럼 Andoid SDK와 이클립스를 설정했습니다.

Hello World 프로젝트 만들고 AVD로 돌려보려는데, AVD가 실행 되다가 멈추네요.
근데 sudo로 실행하면 또 실행 됩니다.

근데 깔려있는 이클립스를 sudo로 실행 해 보니, 플러그인이고 뭐고 없어서 그렇게 쓸 수도 없는듯 하고....

그래서 어떻게든 해결해 보려고, 분석방법을 알아보고
strace나 ltrace로 로그도 만들어 보고, AVD도 -debug 옵션줘서 실행도 해 봤습니다.

그걸로 내린 결론은, 우분투가 AVD의 소켓활동을 차단하고 있는게 아닐까 싶은데, 해결책을 알 수가 없네요.

strace의 결과를 간추려 보면,

...
socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC, 0) = 3
connect(3, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, 20) = 0
getpeername(3, {sa_family=AF_FILE, path=@"/tmp/.X11-unix/X0"}, [20]) = 0
getsockname(3, {sa_family=AF_FILE, NULL}, [2]) = 0
fcntl64(3, F_GETFL) = 0x2 (flags O_RDWR)
fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"l\0\v\0\0\0\22\0\20\0\0\0", 12}, {"", 0}, {"MIT-MAGIC-COOKIE-1", 18}, {"\0\0", 2}, {"__\256S\353\276b\361\345\26AA\356\330RA", 16}, {"", 0}], 6) = 48
read(3, 0x9d29d38, 8) = -1 EAGAIN (Resource temporarily unavailable)
...
...
...
poll([{fd=3, events=POLLIN}], 1, -1) = 1 ([{fd=3, revents=POLLIN}])
read(3, "\1\0p\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096) = 32
read(3, 0x9d2a770, 4096) = -1 EAGAIN (Resource temporarily unavailable)
read(3, 0x9d2a770, 4096) = -1 EAGAIN (Resource temporarily unavailable)
...
...

이렇게 무한루프를 돌던데, 저 소켓에서 읽을 수 없다는 내용이 아닐까 싶습니다.

그리고 ltrace결과에서

.....
[pid 2449] [0xbadd41] SYS_265(1, 0x7fe1a148, 0xbb1ff4, 0x7fe1a178, 0) = 0
[pid 2449] [0xb35416] SYS_socketcall(17, 0x7fe1a010, 0x2dbff4, 0, 0x7fe1a12f) = 20
[pid 2449] [0xbadd41] SYS_265(1, 0x7fe19ee8, 0xbb1ff4, 0x7fe19f18, 0) = 0
[pid 2449] [0xbadd41] SYS_265(1, 0x7fe1a148, 0xbb1ff4, 0x7fe1a178, 0) = 0
[pid 2449] [0xb35416] SYS_poll(0x08fd9be0, 2, 507) = 1
[pid 2449] [0xbadd41] SYS_265(1, 0x7fe1a148, 0xbb1ff4, 0x7fe1a178, 0) = 0
[pid 2449] [0xb35416] SYS_socketcall(17, 0x7fe1a010, 0x2dbff4, 0, 0x7fe1a12f) = 1792
[pid 2449] [0xbadd41] SYS_265(1, 0x7fe1a148, 0xbb1ff4, 0x7fe1a178, 0) = 0
......

이 부분에서 무한루프 돌면서 멈추어 있네요.

루트권한으로 실행하면 되는걸로 봐선, 뭐가 안깔려 있거나 해서 실행 불능인건 아닌듯 하고,
/tmp/.X11-unix/X0라는 소켓 파일의 존재유무나 권한과는 관계가 없더군요.

AVD를 -degug-all 옵션줘서 실행했을땐 ddms가 adb로 ping 날린다는 메시지에서 멈춘걸로 봐선
ddms에서 adb로 날리는 핑을 차단하는 방화벽 활동 같은것도 의심되기는 한데,
ufw도 disable 시켜놨는데도 이럽니다. 대체 뭐가 문제인지 알 수가 없네요.

설마 원래부터 AVD는 루트권한으로 실행해야 되는건 아니겠죠?

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.