ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Fedora 12 에 NFS 구축
    Embedded 2010. 5. 1. 00:30
    먼저 NFS 라는것은 Network File System 이라는 시스템이다. 쉽게 말해서, 다른 네트워크에 있는 저장소를 사용하겠다는 뜻이다. 임베디드에서 NFS 를 사용하는 이유는, 크로스컴파일 환경에서, 개발하면서, make 하고, 이미지를 다시 올리고, 오류가 발생하면, 오류를 수정하고, 다시 make 를 하고, 다시 올리고 하는 작업에서, 불필요하게 중복작업을 되풀이하게 된다는 단점을 극복하고자 이용하는 방법이다.
    개발환경에서, NFS 서버를 구동시켜놓고, 타겟보드에서 NFS 모드로 부팅을 시작한다. 그러면 NFS 로 부팅이 되면서, 기존에 이미 구축했었던 NFS 서버에 올라가있는 파일시스템으로 부팅이 완료되는것이다. 그러면 호스트 개발환경에서는 NFS 파일시스템으로 설정했던 경로에 파일을 넣어둠으로써, 타겟보드에서 실행할수 있는 장점이 있는것이다.

    1. NFS 를 구동시킨다.
      1. [root@localhost]# service nfs restart
      2. 만약에 NFS가 설치되어 있지 않다면, 아래의 명령어로 설치
        1. [root@localhost]# yum install nfs
    2. NFS 설정을 셋팅한다.
      1. [root@localhost]# vim /etc/exports + 엔터
      2. 그리고 아래와 같이 입력을 한뒤에, 저장한다.
      3. /PROJECT/WENDERS/Filesystem/rootfs_gtk  *(rw,no_root_squash)
      4. 이때, 타겟보드에서 제공해주는 CD에 Filesystem 이라는 폴더에 보면 rooft_lite라는 폴더가 있다. 이폴더 경로를 적어주면 된다. 첫번째 인자값은 설정할 디렉토리, 두번째 "*" 는 누구나 접근가능하다는 의미이고, 세번째 인자 (rw,no_root_squash) 는 접근가능한 방법이다.
    3. [root@localhost]# exportfs 로 입력하여, 현재 NFS로 올라가있는 디렉토리를 확인한다.
    4. 이제 타겟보드에서 NFS 로 마운트하여 사용할수 있도록, 커멘드를 작성하고, 닫는다.
      1. [root@localhost]# cd <해당 target kernel 디렉토리>/arch/arm/config/
      2. [root@localhost]# vim WENDERS_NFS_defconfig 로 해당파일을 연다음 아래를 수정한다.
        1. CONFIG_CMDLINE="root=/dev/nfs nfsroot=/PROJECT/WENDERS/Filesystem/rootfs_lite ip=192.168.1.50:192.168.1.100::255.255.255.0::eth1:on console=ttyS0,38400 rw mem=128M “<수정전>
        2. CONFIG_CMDLINE="root=/dev/nfs nfsroot=/PROJECT/WENDERS/Filesystem/rootfs_gtk ip=192.168.1.50:192.168.1.100::255.255.255.0::eth1:on console=ttyS0,38400 rw mem=128M “<수정후>
    5. [root@localhost]# cd <target kernel 디렉토리>
    6. [root@localhost]# make WENDERS_NFS_defconfig
    7. [root@localhost]# make 와 같이 입력하면, 커널이미지가 zImage로 생성이 된다.이제 이미지를 타겟보드로 다운받는다.
    8. 타겟보드 프롬프트에서 blob> tftp zImage 와 같이 입력하여, 이미지를 다운받는다.(이미지가 tftp 서버에 설정디렉토리에 미리 복사를 해야 한다.)
    9. 다운받은뒤에 blob> nandwrite -z 0x80800000 0x00040000 0x00200000 라고 입력하여, 플래쉬에 쓴다.
    10. 이렇게 하고나서, target 보드를 reboot 하면, NFS 로 부팅하게 된다.
    만약 위와같이 설정한뒤에, 타겟보드를 reboot 했을시에, 정상적으로 부팅이 안되고, 커널 패닉이 일어날수 있다.이때 확인해야 할부분이, NFS 가 올라가있는 HOST IP 와 NFS 서버가 올라가 있는지, 그리고 iptables -F 로 하여서, 방화벽을 모두 꺼주어야 한다. 이게 아니라면, NFS 설정파일들중에서 오타가 들어가있어서, 정상적으로 NFS 가 안올라가 있을수 있다.
    위의 보드는 PXA320 보드에 맞추어서 설정한경우이다.

    'Embedded' 카테고리의 다른 글

    Cortex-M3에 대한 정리  (0) 2014.06.26
    프로젝트 정리  (0) 2011.11.20
    PXA255-Tiny 리눅스 포팅  (0) 2010.05.23
    단위  (0) 2010.04.30
Designed by Tistory.