리눅스 시스템에서 구동되는 운영체제는 크게 3부분으로 나누게 된다. 머리, 가슴, 배가 아니라 부트로더, 커널, 루트파일시스템이 그것이다. 사용하는 시스템에 따라서 부트로더도 BL0, BL1, BL2로 나뉘기도 하고 파일 시스템도 RAM 파일시스템과 루트파일시스템을 별도로 두기도 한다. 이는 시스템을 구성하는 개발자 또는 회사에서 차용한 임베디드 시스템 운영체제의 기본 골격에 따라서 차이가 날 수 있다. 

     

     필자는 회사에서 이스라엘 v사의 제품을 이용하고 있다. 이전 회사에서는 네덜란드 N사의 평가보드를 기반으로 만든 임베디드 시스템이었고, 그 전에는 국내 S사의 프로세스를 사용하였다. 뭐 어쨋든간에 이스라엘 v사 제품은 N사 제품을 기반으로 한다. 이 제품의 구성은 SPL(BL1)과 BL2 및 ATF등이 포함되어있는 일체형 이미지이다. 따라서 부트로더를 업데이트 하려면 이 이미지를 구성하는 구성요소 전체를 빌드하여 하나의 파일로 병합하여야 한다. 병합된 파일은 리눅스의 dd 명령을 통해서 eMMC에 기록되며, 이후 부팅시 해당 영역의 내용을 읽어 업데이트된 부트로더가 시스템을 구동하는 순서로 진행하여야 한다. 

     

    1. 준비사항

      첫번째로 빌드된 이미지가 필요하다. (본 문서에서는 imx-boot-sd.bin이다.)

      두번째로 Windows가 설치된 PC 그리고 해당 PC가 우리가 사용하는 장치와 네트워크로 연결되어있어야 한다. 

      세번째로 Windows가 설치된 PC에는 winscp를 설치/

      마지막으로 임베디드 장치에는 ssh가 설치되어있어야 한다. 

     

    2. 부트로더 업데이트

    1)  임베디드 장치를 터미널로 열어 설정된 ip번호를 확인한다. 문서에서는 192.168.100.119이며, 사용자는 독자가 사용하는 계정과 비번을 입력하면 된다. 

     

    2) Winscp로 장치와 연결

      PC에서 WinSCP를 실행하여 로그인 화면을 다음과 같이 구성한다.  구성이 완료되면 로그인 버튼을 누른다.

    SCP 설정화면

    3) 정상적으로 연결이 되면 파일 브라우저가 표시된다. 아래의 그림에서 좌측은 PC 우측증 임베디드 장치이다.  복사할 파일을 선택하여 드래그 하여 놓으면 복사가 된다. 장치로 부트로더 이미지를 복사한다. 

     

         

    SCP가 연결되면...

     

    4) 마지막으로 복사한 이미지를 기록하기 위해서 터미널 또는 ssh로 장치에 로그인한다. 필자는 터미널 프로그램으로 테라텀을 사용하였다. 그리고 부트로더 기록 위치는 본인이 사용하는 다운로드 툴등에 표시되어있으니 확인하고 진행한다. 

    IP와 비밀번호를 절절히 잘 입력한다.

    $ dd if=./imx-boot-sd.bin of=/dev/mmcblk2 bs=1k seek=33 conv=fsync

    $ sync

    부트로더 이미지 기록

     

      그리고 리부팅 하면 정상적으로 부팅이 됨을 알수있다. 한가지 주의해야할 점은 부트로더 환경 설정의 경우 변경되지 않을 수 으므로 이후 부트로더 커맨드 모드에서 env default -a 명령을 진행하고 saveenv 명령을 싱행하여 초기화 해주도록 하자. 

    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기