2013년 7월 14일 일요일

Xilinx ZedBoard u-boot를 해보자

xilinx zedboard를 이용한 u-boot를 해보도록 한다.
기존의 부팅들은 모두 sd카드를 이용했었는데 부족한 실력이지만 많은 삽질을 통해
u-boot를 성공시켰다.
u-boot를 하는데 필요했던 것들 그리고 방법에 대해 개략적으로 적어본다.

기본적으로 필요한 것들은 다음과 같다.

1. ubuntu 10.04.
2. ISE webpack 14.4
3. arm-xilinx-linux-gnueabi 크로스 컴파일러
4. tftp, dhcp, nfs

u-boot를 위해 본인이 참조한 사이트는 아래와 같다.
http://www.wiki.xilinx.com/Fetch+Sources
여기에보면 각각의 단계별로 페이지가 있으니 자세한것은 참조하면 된다.


먼저 uImage를 만들기 위해 uboot-mkimage를 설치한다.
이것이 없으면 추후 커널을 uImage로 만들때 에러가 뜨더라.

1. linux-kernel 다운받기.
  terminal 입력: git clone git://github.com/Xilinx/linux-xlnx.git

2. uImage 빌드.
  terminal 입력: make ARCH=arm Xilinx_zynq_defconfig
  terminal 입력: make ARCH=arm menuconfig
   -> 뭐하는 곳인지는 알것이라 생각.
  terminal 입력: make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage

3. u-boot 다운.
   terminal 입력: git clone git://github.com/Xilinx/u-boot-xlnx.git

4. u-boot 빌드.
   terminal 입력: make zynq_zed_config
    (만약 zc702, zc706보드를 쓴다면 config폴더 내에서 해당하는것을 찾아 적으면 된다.)
   terminal 입력: make

생성된 u-boot파일을 이용해 BOOT.bin파일을 만들어야 한다. 이것은 xilinx프로그램을 사용해서fsbl파일 만들기의 방법을 적용하면 됨.

5. devicetree 빌드
   우선 linux-kernel 폴더로 이동.
    terminal 입력: make ARCH=arm dtbs
    terminal 입력: make ARCH=arm <devicetree name>.dtb
     (경로: /linux-xlnx/arch/arm/boot/dts/<devicetree name>.dtb

6. RamDisk빌드.
    상위 URL에서 ramdisk 쪽으로 들어가면 미리 빌드된 이미지가 있다.
    이것을 사용하자.
        http://www.wiki.xilinx.com/Build+and+Modify+a+Rootfs
     이곳에서 다운받고 리눅스 상에 폴더하나 만들어서 넣어놓자.
     terminal 입력: mkimage -A arm -T ramdisk -C gzip -d ramdisk.image.gz uramdisk.image.gz

여기까지가 필요한 파일들의 빌드상황이다.



당 내용은 부정확하다. 수정된 내용에대해 추후 업데이트하는것으로 하겠다.


댓글 없음:

댓글 쓰기