본문 바로가기

안드로이드

안드로이드를 공유폴더로 이용하기

 

안드로이드 폰을 사용하다 보면 여러 가지 방법으로 폰과의 데이터를 주고 받는다.

 

대략 몇 가지 방법을 보자면 다음과 같다.

- USB 케이블을 통한 대용량 저장소 이용

- sd 카드를 뽑아서 sd 리더기를 이용

- 폰에 FTP 서버를 구동시키고 PC에서 FTP 프로그램을 이용

- PC에 FTP 서버를 구동시키고 폰에서 FTP 클라이언트를 이용

- 폰에 SMB(공유폴더) 클라이언트를 구동시켜 PC의 공유폴더를 이용

 

여러 가지 방법 중 FTP 관련이나 폰을 SMB 서버로 이용하는 것은 알려진 정보가  적은 편이다.

 

일단 폰에서 SMB 서버를 돌릴 경우 장점이라면

폰의 데이터를 보기 위해서 전송이라는 별도의 과정을 생략해도 된다는 뜻이다.

가령 폰에 mp3나 영화가 있다고 하면 PC에서 이를 재생하기 위해서는 무슨 방법을 쓰던 PC로 저장해야 한다.

하지만 공유폴더 기능을 이용하면 PC에 별도로 저장하지 않고 바로 접근해서 사용할 수가  있다.

요즘 많이 서비스하는 n드라이브나 세컨드라이브와 같이 내 폰을 탐색기에서 바로 이용가능 하다.

 

우선 폰에서 smb 서버를 구동하기 위해서는 서버프로그램이 필요하다.

 

http://forum.xda-developers.com/showthread.php?t=653336 에서 JimmyChingala 의 프로그램을 이용하면 된다.

 

[주의]

폰의 내부 시스템에 직접 서버 데몬을 구동시키는 것이기 때문에 ROOT 권한이 반드시 필요하다.

이 글을 보고 이해가 잘 가지 않는 다면 적용하지 않는 것이 좋다.

 

[파일복사]

파일 및 폴더는 아래와 같이 구성한다.

 

1 우선 해당파일의 압축을 풀어 폰에 복사를 한다.
  • 원래는 폰에다가 sambaAndroid-0.3b.tar 를 복사해놓고 폰에서 풀라고 써있긴 하지만 필자의 폰에는 tar 프로그램이 안깔려 있어 그냥 풀어다가 넣었다

-----------------------------------------------------------------------

2
  • 폰에다 복사할 파일, 폴더
    • /data/local/samba
    • /data/local/samba/bin
      • 파일
        • dhcp-samba-script
        • killsamba
        • nmbd
        • samba-rc
        • smbd
        • smbpasswd
    • /data/local/samba/lib
      • 파일
        • smb.conf
    • /data/local/samba/lib/codepages
      • 파일
        • codepage.437 … (포함 37개)
    • /data/local/samba/private
      • 파일
        • smbpasswd
    • /data/local/samba/var
      • 파일
        • log.nmbd (나중에 생김. 로그)
        • log.smbd (나중에 생김. 로그)
    • /data/local/samba/var/locks
    • /data/local/samba/var/tmp

    ----------------------------------------------------------------------

  • 3

    파일 및 폴더의 퍼미션

    drwxrwxr-x root     root              2010-08-24 09:39 lib
    drwxrwxr-x root     root              2010-08-24 11:04 var
    drwxrwxr-x root     root              2010-08-24 10:17 private
    drwxrwxr-x root     root              2010-08-24 09:36 bin

    ./lib:
    drwxrwxr-x root     root              2010-08-24 09:36 codepages
    -rw-r--r-- root     root          578 2010-08-24 09:39 smb.conf

    ./lib/codepages:
    -rw-rw-rw- root     root       131614 2010-05-29 12:26 unicode_map.1251
         …
    -rw-rw-rw- root     root       131614 2010-05-29 12:26 unicode_map.KOI8-U

    ./var:
    -rw-r--r-- root     root         4302 2010-08-24 11:02 log.nmbd
    drwxr-xr-x root     root              2010-08-24 11:50 locks
    drwxrwxrwx root     root              2010-08-24 11:04 tmp
    -rw-r--r-- root     root         5007 2010-08-24 11:29 log.smbd

    ./private:
    -rw------- root     root          102 2010-08-24 11:00 smbpasswd
    -rw------- root     root         8192 2010-08-24 11:29 secrets.tdb

    ./bin:
    -rwxr-xr-x root     root          687 2010-06-20 14:30 dhcp-samba-script
    -rwxr-xr-x root     root       457952 2010-05-29 12:26 killsamba
    -rwxr-xr-x root     root      1251280 2010-05-29 12:26 nmbd
    -rwxr-xr-x root     root          727 2010-05-31 09:29 samba-rc
    -rwxr-xr-x root     root      2185252 2010-05-29 12:26 smbd
    -rwxr-xr-x root     root      1463988 2010-05-29 12:26 smbpasswd

     

    2번 항목 이외에 퍼미션에서 보이는 항목들은 자동으로 생성되는 항목이다.

     

    [환경설정]

    • 무선랜카드 명칭 :  lib 폴더안의 smb.conf 파일을 열어보면   interfaces  =   라는 부분이 있는데 이것을 자신의 무선랜카드 장치명으로 변경한다.. 필자의 안드로원 같은경우는 wlan0 으로 되어있다.
      잘 모를 경우 ddms 연결하고 부팅하거나 무선랜 온/오프 하다 보면 화면하단의 로그에 wlan0 처럼 유사한 문자열이 뜬다.
    • 패스워드 : 아이디와 패스워드의 기본값은 bogan / bogan1 이다.
      패스워드 파일은 /private 폴더안의 smbpasswd 이고 패스워드 변경은 쉘에서 bin 폴더의 smbpasswd 를 실행시켜서 바꿀수 있다. 새로운 아이디는 private/smbpasswd 파일을 수정해서 등록 할 수 있다.
    • 무선랜이 온/오프되거나 할때 자동으로 서비스를 구동시키기 위해서는
      dhcp-samba-script 파일을 96-restart-samba 로 이름을 변경하여 /system/etc/dhcpcd/dhcpcd-hooks/ 폴더에 복사하면 된다.
    • samba-rc 파일의 내용을 보면 start, stop, restart ,cleanup, fixperms 의 명령어가 준비되어있는걸 알 수 있다.

     

    [구동]

    bin 폴더에서 ./samba-rc start 로 구동을 시킨다.

     

     

    [특이사항]

    • 작동이 원할하지 않을 때는  log.nmbd 나 log.smbd 를 열어본다.. 작동이 안되는 이유를 얻을 수 있다.
    • 필자의 경엔 초기에 var/tmp 폴더가 생성되지 않아 로그인이 안되는 경우가 있었다. 로그를 확인후 해당 폴더를 만들어주니 잘돌아갔다.
    • 폰에 따라 기본 명령어가 없을 수도 있다.  필자의 폰에는 samba-rc stop 실행시 필요한 pkill 이라는 명령어가 없어서 리스타트하는데 좀 불편했다. 게다가 rm 명령어에 –f 스위치도 동작을 안하는 등 차이가 있을 수 있다.
    • 압축파일내의 readme.txt 를 보면 더욱 자세한 내용을 알 수 있다.
    • test 라는 커맨드는 계속 에러를 뿜는다.. 동작에는 지장이 없다.
    • 안드로원에서 dhcp를 이용한 자동실행이 원할하지 않다. 수동으로 동작을 시키면 잘 된다.

     

    [단점]

    -한글이 깨짐