Petalinux RootFS을 NFS로 설정하는 방법

Juni and ING·2020년 8월 23일
0

petalinux

목록 보기
4/6

RootNFS 설정 방법

NFS 관련한 패키지가 모두 설치된 것을 기반으로 작성하였음

문제가 있다.
NFS부팅까지는 문제가 없으나, 로그인 후 명령어를 1회 실행한 이후로 계속 'Command not found' 에러가 발생한다.
아직 해결하지 못했으니, 아래 내용은 참고만 하기 바람.

1. NFS Server 전용 디렉터리 생성

$mkdir /home/juni/work/bsp-zcu106-2019.2/rootnfs

2. petalinux-config 에서 NFS 설정

  1. nfs 설정

    • Image Packaging Configuration Root File System Type
      : NFS 선택
    • Location of NFS root directory
      : NFS Server 전용 디렉터리 경로 입력
  2. dts 설정

    • DTG Settings -> Kernel Bootargs
      : generate boot args automatically 해제

    • 해제 후 하단에 생성되는 입력 칸에 Bootargs 직접 입력

    Format) earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/nfs nfsroot=<nfs-server-ip>:<nfs-server-dir-path>,nfsvers=3,tcp ip=<nfs-client-ip>:<nfs-server-ip> rw
    Ex) earlycon console=ttyPS0,115200 clk_ignore_unused root=/dev/nfs nfsroot=192.168.20.105:/home/juni/work/bsp-zcu106-2019.2/rootnfs,nfsvers=3,tcp ip=192.168.20.106:192.168.20.105 rw

3. petalinux-config -c kernel 에서 NFS 설정

  1. ip 설정
    : Networking support -> Networking options -> TCP/IP networking 선택 -> IP : kernel level autoconfiguration 선택 -> IP: DHCP Support, BOOTP support, RARP support 모두 선택

  2. nfs 설정
    : File systems -> Network file systems -> Root file system on NFS 선택

4. Project build

  1. petalinux-build -c device-tree -x cleansstate && petalinux-build -c device-tree

    2번 단계를 하지 않았다면 스킵

  2. petalinux-build -c kernel

    3번 단계를 하지 않았다면 스킵

  3. petalinux-build -x distclean && petalinux-build

5. BOOT.BIN and boot image build

  1. Image 디렉터리로 이동
    $cd <plnx-proj-root>/images/linux

  2. BOOT.BIN Build

    Ex) $petalinux-package --boot --format BIN --fsbl zynqmp_fsbl.elf --u-boot u-boot.elf --pmwfw.elf --fpga *.bit --force
  3. Boot image build

    Ex) $tar czf 2019.2-zcu106-rootnfs.tar.gz BOOT.BIN image.ub *.bit system.dtb zynqmp_fsbl.elf bl31.elf pmufw.elf u-boot.elf

6. NFS Server directory setup

  1. 빌드로 생성된 rootfs 압축파일 사용하기
    $tar xzf <plnx-proj-root>/images/linux/rootfs.tar.gz -C <nfs-server-dir-path>

7. /etc/exports 편집하기

  1. Root 계정 로그인
    $su -

  2. export 편집하기
    $vim /etc/exports

  3. NFS 설정 추가하고 종료하기

    Format) <nfs-server-dir-path> <ip-to-allow>(rw,no_root_squash)
    Ex) $/home/juni/work/bsp-zcu106-2019.2/rootnfs 192.168.20.*(rw,no_root_squash)
  4. Export 설정 반영하기
    $service nfs restart
    $exportfs -r

8. 빌드한 Boot image 압축파일을 SD카드에 압축해제한 후 타겟보드 부팅. RootNFS로 부팅하는 지 확인

profile
인기는 없지만 그래도 임베디드를 사랑하는 한 개발자

0개의 댓글