RDK 개발소스 관리

RDK 개발소스는 로그인하여 하기의 사이트에서 내려받을 수 있다. 깃으로 Manifest 버전관리를 하며, 우리는 이것을 내려받아 사내 git server에 업로드하여 버전관리를 하려고 한다.

 

https://code.rdkcentral.com/r/admin/repos/manifests

 

code.rdkcentral.com

RDK manifest는 수많은 브랜치가 존재하지만, DTV 개발를 위해 rdkv-2021qX 브랜치를 사내 서버로 클론하여 관리할 예정이다. 참고로 Raspberry Pi3 모델은 rdkv-2021q1를 사용하며, Raspberry Pi4는 rdkv-2021q3-dunfell 사용하고 있다.

 

RDK manifest(upstream)를 클론하여 사내 깃서버에 업로드하고 upstream과 싱크를 맞추기 위해 사내 깃서버의 리비전을 업스트림과 동일하게 설정하여 아래 이미지와 같이 브랜치를 생성하였다.

사내 git server에 생성한 RDK manifest에 우리 레이어(meta-handan)를 추가하여, 패치 및 빌드에 필요한 설정을 레시피에 적용하도록 한다. meta-handan는 oe-layers.xml 파일에 아래와 같이 추가하였다.

그리고 라즈베리파이 DTV 구성을 레퍼런스(rdkv-extsrc)로 우리 개발 트리를 구성하였고, 우리가 만들 dvb-stack 소스를 아래와 같이 등록하도록 한다.

우리가 관리하는 소스를 내려받기 위한 git server를 등록하고 다운로드 받을 위치를 설정하도록 한다. manifest 구성을 완료하였다면 raspberry pi 3/4에서 사용할 개발 소스를 받을 수 있다.

 

  • Raspberry Pi 3
    • repo init -u git@10.10.10.134:rdk/manifests.git -b rdkv-2021q1
    • image writting
      $ sudo dd if=raspi-rdk-handan-image_rdkv-2021q1_<datetime>.rootfs.rpi-sdimg of=/dev/sdX conv=sync
  • Raspberry Pi 4
    • repo init -u git@10.10.10.134:rdk/manifests.git -b rdkv-2021q3-dunfell
    • image writting
      $ bzcat handan-rdk-raspi-image_rdkv-2021q3-dunfell_<datetime>.rootfs.wic.bz2 | sudo dd of=/dev/sdi bs=4M iflag=fullblock oflag=direct conv=fsync
  • Build command
    bitbake handan-rdk-raspi-image               : 전체 레시피 빌드
    bitbake -b XXX_git.bb                        : 특정 레시피 빌드
    bitbake -c listtasks <recipe name>           : 커맨드 리스트
    
    bitbake-layers show-recipes > output.file    : 레시피 목록 출력
  • 추후 불필요한 레이어 삭제 필요

 

repo로 관리되는 코드를 어떻게 관리해야 할지 고민한 끝에 내린 결론은 위와 같이 RDK repo를 클론하여 우리 저장소를 연결해서 관리하는 현재로썬 가장 효율적인 것 같다.