이전에 ARM보드와 윈도우간의 파일 공유를 위해 삼바를 포팅하다가 실패하고, CIFS를 통해 파일 공유가 있어서 소개합니다.

 

Samba 와 CIFS에 관하여 인터넷을 찾아보면 아래와 같이 잘 정리를 해 놓았습니다.

(인터넷에서 돌아다니는 대부부의 문서는 아래와 같은 정의를 사용하고 있습니다. 만약 저작권에 문제가 있다면 삭제하거나, 사용

허가를 받도록 하겠습니다. )

 

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

 

삼바는 리눅스와 윈도우간에 파일 및 프린터를 공유 할 수 있게 해주는 프로그램이다. 삼바를 통해 리눅스 서버를 타운영체제와 파일을 공유할 수 있는 파일서버로도 사용할 수 있다. 이와같이 삼바가 공유할 수있는 이유는 SMB(Server Message Block)/CIFS(Common Internet File System)라는 프로토콜을 이용함으로써 가능해졌다.

 

SMB ?

SMB(Server Message Block)는 마이크로소프트사와 인텔이 윈도우 시스템이 다른 시스템의 디스크나 프린터와 같은 자원을 공유할 있도록하기 위해 개발된 프로토콜이다. TCP/IP 기반하의 NetBIOS 프로토콜을 이용하기 때문에 이 프로토콜은 NFS, NIS, lpd 와 같은 유닉스의 분산인증구조와 유사하다. 따라서 윈도우 중심의 네트워크 환경에서는 리눅스를 이용한 공유시스템에서는 SMB가 필수적이다.

 

CIFS ?

CIFS(Common Internet File System) 는 네트워크를 위한 SMB 파일 공유 프로토콜의 확장된 버전이며, 윈도우와 유닉스 환경을 동시에 지원하는 인터넷의 표준 파일 규약의 프로토콜이다. CIFS는 이전의 폐쇄적인 SMB 프로토콜과는 달리 CIFS 규약 정의는 여러 유닉스 업체의 참여하여 결정된 내용이기 때문에 삼바도 버전이 올라감에 따라(삼바 버전 2.2 이상) CIFS 규약을 잘 준수하여 안정성이 상당히 향상 되었다.

 

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

 

ARM 보드와 윈도우간의 파일 공유를 위해 Samba의 경우에는 ARM보드에 올라갈 Kernel, Samba 소스 컴파일, Samba 환경 설정이 필요하지만 CIFS의 경우에는 ARM보드에 올라갈 Kernel에서 옵션만 설정해 주면 됩니다.

 

ARM 보드에 올라갈 Kernel 의 컴파일 옵션을 다음과 같이 설정합니다.

 

# make menuconfig

 

   File systems  --->

         [*] Network File Systems  --->

 

 Kernel.jpg

 

  Kernel 옵션을 위와 같이 설정한 후 컴파일 하여 ARM 보드에 다운로드 합니다.

 

 

[ 윈도우 설정 ]

윈도우에서 공유할 디렉토리를 생성하고 공유를 합니다.

 

window.jpg

 

 

 

 

[ ARM 보드 설정 ]

ARM 보드에서 아래와 같이 마운트를 하면 됩니다.

 

$ mount -t cifs -o rw,username=Administrator,password= //100.100.100.1/data /mnt/temp/data

 

[ 옵션 설명 ] 

username=Administrator

: 윈도우의 컴퓨터 이름입니다. ( 제어판에서 사용자 계정으로 확인 하면 됩니다. )

password=

: 윈도우에서 설정한 패스워드입니다. 만약 없다면 뒤에 아무런 문자도 쓰지 않으면 됩니다.

//100.100.100.1/data

: 윈도우의 IP주소와 공유 디렉토리입니다.

/mnt/temp/data

             : ARM 보드에서 마운트할 디렉토리입니다.

 

 

Samba 포팅이 성공한다면 다시 글을 올리도록 하겠습니다.