'2016/03'에 해당되는 글 1건

  1. 2016.03.28 Hanback HBE-RoboCAR Embedded II fastboot 설정하기

학교에서 교과과정 중 한백전자의 HBE-RoboCAR Embeded II 모델을 가지고 실습을 하는 수업이 있었습니다. 

 HBE-RoboCAR에 bootloader와 kernel, file system을 fusing하기 위해서는 한백에서 제공하는 dnw를 사용해야 한다고 명시되어 있고 그 이외에 다른 방법은 설명이 되어 있지 않았습니다. 하지만 dnw 유틸리티는 윈도우 XP만 지원하는 유틸리티이기 때문에 지금 사용되는 컴퓨터에서 사용하기에는 무리가 있어 u-boot bootloader를 수정하여 u-boot내에 있는 fastboot를 이용할 수 있도록 한다면 bootloader와 kernel, file system을 조금 더 쉽게 fusing할 수 있을 것이라고 생각하여 bootloader를 수정해 보았고 이 방법이 성공하여 블로그에 포스팅합니다.


기본적으로 이 방법은 linux기반으로 진행됩니다. VMware나 virtual box를 이용한 가상머신에서 linux를 설치하는 방법은 추후에 업로드 될 글을 보시거나 다른 분들의 블로그에 있는 방법을 이용하시면 됩니다.


이 방법을 사용하기 위해서는 arm-cross-compiler가 필요합니다. 이 cross-compiler를 한백전자에서 제공하는 CD의 Tools에 보시면 toolchain이라는 디렉토리가 있는데 그 안에 있는 arm-2009q3.tar.bz3 파일을 linux로 옮겨 압축을 풀어 사용하시거나 arm cross compile toolchain을 받아서 사용하셔도 됩니다. arm-cross-compiler를 package manager (yum, apt-get, dnf 등등)으로 설치하지 않고 직접 다운 받으신 경우에는 환경변수 등록을 해주셔야 합니다.


한백전자에서 제공하는 CD를 보면 그 안에 source폴더가 있습니다. source폴더 안에 bootloader 폴더에 들어가면 "u-boot-sv210-hanback_20110622.tar.bz2" 파일이 있습니다 이를 linux로 옮겨서 작업을 하시면 됩니다.


linux에서 터미널을 켜 위의 파일을 복사한 디렉토리로 이동하신 뒤 tar -xvf u-boot-sv210-hanback_20110622.tar.bz2 명령어를 입력하시면 해당 파일의 압축이 풀립니다.


압축을 푸시면 u-boot-sv210-hanback_20110622라는 디렉토리가 생성되는데 u-boot-sv210-hanback_20110622/include/configs/rb210.h 파일을 수정해야 합니다.

u-boot-sv210-hanback_20110622/include/configs/rb210.h 파일의 698번째 line을 보시면 CFG_FASTBOOT_TRANSFER_BUFFER_SIZE라는 항목이 0x8000000으로 되어있습니다. 이를 0x9000000으로 수정해주시면 됩니다. (file system fusing을 위해 크기를 늘려야 합니다.)


dnw에서 사용하는 명령어는 usbdown인데 우리는 fastboot를 사용할 계획이므로 usbdown에서 사용하는 메모리 번지와 메모리 크기를 fastboot에서도 동일하게 사용하도록 하여야 합니다.

fastboot에 관한 파일은 u-boot-sv210-hanback_20110622/cpu/s5pc1xx/fastboot.c에 있습니다.

usbdown에 관한 파일은 u-boot-sv210-hanback_20110622/common/cmd_usbdown.c에 있습니다.


이 두 파일의 bootloader, kernel, filsystem 시작 주소와 크기를 일치시켜 주시면됩니다. 물론 usbdown을 기준으로 일치시키셔야 합니다.


u-boot-sv210-hanback_20110622/cpu/s5pc1xx/fastboot.c 파일에서 수정해야할 내용은 아래와 같습니다.




위와 같이 수정하시면 fastboot를 사용하기 위한 bootloader의 설정이 끝납니다.

Fastboot의 내용을 모두 수정하셨으면 u-boot-sv210-hanback_20110622/ 위치로 이동하셔서 

make distclean 명령어를 입력하여 기존의 컴파일된 내용과 기존 설정을 삭제합니다.

make rb210_config 명령어를 입력하여 RoboCAR의 설정을 u-boot에 적용합니다.

make 명령어로 compile을 진행합니다. (make -j4 를 이용하여 multi-core compile이 가능합니다.)

compile이 완료되면 u-boot-sv210-hanback_20110622/ 디렉토리에 u-boot.bin 파일이 생성됩니다.


RoboCAR를 위에서 내려다 봤을때 LCD 오른쪽 아래에 있는 mini USB (5Pin) Type B와 컴퓨터를 연결해주세요. (블루투스 모듈도 컴퓨터에 연결하셔야 합니다.)

컴퓨터와 연결한 후 매뉴얼에 있는대로 부팅하신 뒤 q 키를 눌러 RoboCAR의 bootloader 메뉴로 진입하세요. 그런다음 fastboot를 입력하시면 아래와 같은 화면이 나옵니다. (USB를 연결하지 않으시면 아래와 같은 화면이 나오지 않습니다!)

이상태로 컴퓨터에서 (bootloader를 compile한 linux를 의미합니다.) u-boot-sv210-hanback_20110622/ 위치로 이동하셔서

fastboot flash bootloader u-boot.bin 명령어를 입력하세요

컴퓨터에서 위와 같은 메시지가 나오면 fusing이 완료 된 것입니다.


그 다음 RoboCAR를 재부팅하시면 fastboot를 이용하여 kernel과 filesystem을 fusing할 수 있습니다.



Posted by 어벙벙대마왕
,