우분투 20.04 버전의 glibc 버전은 2.31이 설치되어 있으며, 아래의 명령어로 glibc 설치 버전을 확인할 수 있다. $ getconf -a | grep glibc RDK 4.0 레시피 빌드 과정중 rpm에서 아래와 같은 에러가 발생하며, 이것은 호스트 환경의 glibc 버전이 2.30 이상이라면 에러가 발생한다. | x86_64-linux-libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../rpm-5.4.15/rpmio -I.. -I../../rpm-5.4.15/rpmio -I../../rpm-5.4.15 -I../../rpm-5.4.15/build -I../../rpm-5.4.15/lib -I../lib -I../../rpm-5.4.15/rpmdb -I..
타켓보드의 GDB Server에 연결하려면 호스트는 gdb-multiarch 필요하다. gdb-multiarch는 우분투 기본 저장소에 등록되어 있어 PPA 추가없이 설치가 가능하다. $ sudo apt install gdb-multiarch Buildroot GDB server 패키지를 추가해야 하며, 빌드 옵션은 가급적 'debug_level=0'으로 설정하고 '-g' 옵션을 추가하도록 한다. 그리고 방화벽이 설정되어 있다면 GDB가 사용할 포트번호는 허용해야 한다. 참고로, 방화벽 설정은 BR2_PACKAGE_GDB_SERVER 옵션이 추가되면 8844 포트를 허용하였으나, 방화벽 변경 사항 및 GDB 라이브러리 및 바이너리 추가로 rootfs가 변경되어 타겟보드에 rootfs 이미지를 re-wri..
Buildroot는 wget 사용하여 패키지를 다운받으며, 네트워크 연결 타임아웃 값을 3초로 설정하여 네트워크 연결 실패로 인한 빌드 에러가 자주 발생한다. 아래와 같이 타임아웃을 15초로 설정하면 네트워크 상태에 따라 네트워크 연결이 조금 늦더라도 네트워크 연결 실패로 인한 빌드 에러는 발생하지 않는다. --- package/pkg-download.mk(리비전 13107) +++ package/pkg-download.mk(리비전 13117) @@ -364,7 +364,7 @@ # the next time the download is tried. define DOWNLOAD_WGET test -e $(DL_DIR)/$(2) || \ -($(WGET) --no-check-certificate -T 3 -..
ALi linux_FT_Tool을 사용하여 윈도우 디버그 도구인 WinGDB 없이 우분투 환경에서 ALi Probe를 사용하려면 아래의 패키지를 설치해야 한다. $ sudo apt install libusb-dev libusb-1.0-0-dev ALi Probe는 CYPRESS USB 라이브러리를 사용하기 때문에 ALi Probe 드라이버(ALiProbe_Linux64_Driver.zip)를 설치하도록 한다. $ cd ALiProbe_Linux64_Driver $ sudo ./install.sh 위 명령어 실행으로 ALi Probe 드라이버 설치 및 udev 스크립트가 추가되며, ALi SDK 패키지에 포함된 linux_FT_Tool을 사용하여 우분투에서 바로 Jtag 연결이 가능하다. linux_FT_..
LIRC를 사용하여 IR 레코딩 하기 위해서, lircd 데몬을 실행되고 있다면 kill 시키도록 한다. lircd 데몬이 실행 상태에서 ir 레코딩은 이상한 데이터가 기록된다. 타켓보드에서 irrecord 명령어를 아래와 같이 실행하여 ir 레코딩을 시작할 수 있다. $ irrecord -d /dev/lirc0 ./lircd.conf irrecord를 실행하면 아래와 같이 RCU 이름을 설정하고 IR 레코딩을 진행하도록 한다. HD_WSCL 이름을 갖는 lirc.conf 파일이 생성되며, 다음 단계에서는 최대한 많은 key를 입력하도록 한다. 여기서 주의할 점은 1초이상 길게 눌려서는 안된다. 위 단계에서 RCU가 사용하는 RC5/NEC 등의 프로토콜을 판단한다. 프로토콜 스캔이 완료되면 각 key에 ..
ALi SDK에서 제공하는 ALiCrypto tool을 사용하여 RSA key를 생성할 수 있으며, 자세한 내용은 ALiCrypto 문서를 참고하도록 한다. ALiCrypto는 cmd 파일을 참조하여 RSA key 생성, 데이터 인크립트 및 디크립트, 파일 자르기 or 병합 등의 다양한 연산을 처리할 수 있다.하다. cmd 파일은 어떤 연산을 실행하느냐에 따라 구성이 틀려지며, RSA key 생성은 아래와 같이 구성하면 된다. $ vi generate_key.cmd [PARAMETER] key_random_number= [CMD] key_pair_gen 4바이트 난수는 0x12345678과 같이 Hexdecimal 값으로 정의해야 한다. CMD 항목에 실행할 연산을 정의해야한다. $ ./ALiCrypto..
RDK 권장 개발환경은 우분투 14.04 버전 사용하지만, 이미 우분투 14.04 LTS 버전은 지원이 중단된 상태이기 때문에 최신버전의 우분투 20.04 버전에서 RDK 개발환경 구성하였으며, RDK Central Wiki에서 Ubuntu 18.04 개발환경을 구성한 문서를 참고하여 정리하였다. RDKB - Yocto 3.1 Migration for Turris-Omnia Reference platform - User manual - M4 - 2020 - RDK - RDK Central Wiki Introduction Upgrading Turris-Omnia Reference Platform for Yocto 3.1 ie., from morty to dunfell Considerations for br..
1. Shell 변경 우분투 기본 shell인 dash shell 사용해도 큰 문제가 없지만, 일부 shell 스크립트가 dash에서 에러를 발생하여 기본 shell을 bash로 변경하도록 한다. $ sudo dpkg-reconfigure dash 2. 개발도구 설치 ALi SDK를 빌드하기 위해 아래와 같은 개발도구 및 라이브러리 그리고 유틸리티를 설치해야 한다. $ sudo apt install build-essential cmake m4 git subversion dos2unix $ sudo apt install libncurses5-dev libssl-dev libssl은 최신 버전이 1.1이지만, libssl-dev는 1.0 버전을 사용해야 한다. 참고로 우분투 18.04는 libssl1.0-d..
ST Chipset으로 새로운 개발은 진행하지 않지만, 기존 양산된 제품이 있어 OS21 개발 환경을 정리하였다. 1. Linux Shell 변경 $ sudo dpkg-reconfigure dash 기본 Shell을 우분투 DASH를 사용할 경우 shell script가 문제가 발생하여 기본 Shell을 BASH 변경한다. 2. GCC 및 32bit 공유 라이브러리 설치 $ sudo apt install build-essential zlib1g:i386 e2fslibs:i386 libcomerr2:i386 bzip2:i386 STSDK 빌드하기 위해 Host PC에 위와 같은 라이브러리가 설치되어 있어야 한다. 3. ST JTAG $ sudo apt install libx11-6:i386 libncurs..
ALi에서 제공한 "ALi SDK Integration Guide for SDK8.x Conax" 문서를 참고하여, ConaxSE Lab에 제출해야 할 FW에 대한 확인 사항을 정리하였으나, SDK에 따라 차이가 있으므로 SDK 문서를 기준으로 FW를 준비해야 한다. 1. Encrypted Image boot_total_area.abs FPK / AES key 영역(0x6E0, 0x8080, 0x8100)을 0x00으로 변경해야 함 uboot.ubo unified_ota.ubo / unified_main.ubo 2. Plaintext Image ALi 문서에는 output/images/temporary 디렉토리의 binary(u-boot.bin / linux.bin / etc)을 Nagra에 전달 Enc..
1. AES / RSA KEY Nagra에 RSA Public key 요청 ALi DDK의 FPK, AES0, AES1, RSA0, RSA1 KEY 변경 key_transfer.sh 스크립트 내용 참고 2. MarkID / Version Mask BL_MERGE.cmd 파일의 MKT_ID & VER_ID 데이터를 아래와 같이 변경하도록 한다. 이 데이터는 부트 각각의 영역에 정확히 삽입되었는지 확인하도록 한다. 3. Bootloader option check DTS 최종 버전 확인 (MTD / Memory Map / etc) ALi 1st bootloader에 DTB 포함되어 때문에 DTS 최종 버전인지 확인이 필요 ALi 1st bootloader debug 옵션 비활성화 ALi Starter / AL..