레드마인 접속 시, 아래 이미지와 같이 문구가 출력된다면... ruby 설정 파일을 삭제하거나 소유권을 확인한다. test@redmine2:/usr/share/redmine$ ll /var/lib/redmine/ 합계 20 drwxr-xr-x 3 root root 4096 5월 8 10:27 ./ drwxr-xr-x 71 root root 4096 12월 29 10:25 ../ -rw-r--r-- 1 www-data www-data 4121 5월 8 10:32 Gemfile.lock drwxr-xr-x 4 root root 4096 12월 28 11:12 default/ test@redmine2:/usr/share/redmine$ Gemfile.lock 파일의 소유권이나 권한 문제로 레드마인이 정상적으로..
RDK는 열악한 환경으로 인해 진행이 참 더딘것 같다. 짬짬이 보고 있는데, 볼 때마다 새로워 짬짬이 정리해 두려고 한다. 새로운 모델(이미지 타겟)을 생성하기 위해 레시피 및 이미지 생성을 위한 bb 파일을 추가해야 한다. 라즈베리파일3 플랫폼의 모델을 추가하기 위해 meta-handan/conf/machine/handan-rdk-raspi3.conf 파일을 아래의 내용을 추가한다. require conf/machine/raspberrypi-rdk-hybrid.conf MACHINEOVERRIDES .= ":handan" # required for image creation MACHINE_IMAGE_NAME = "raspi-rdk-handan-image" DISTRO_FEATURES_remove = "..
dtv setup-environment 스크립트를 참고하여 우리 환경에 맞게 아래와 같이 수정하였다. Handan layers을 bitbake가 참조할 수 있도록 bblayer에 meta-handan을 추가하고 새로 소스를 내려받아서 빌드할 때마다 레시피를 다시 다운받기 때문에 downloads 디렉토리를 링크로 만들어 관리하도록 한다. $ vi work_dir/setup-environment TOP_DIR=$(pwd) DOWNLOAD_DIR='downloads' if [ ! -L $DOWNLOAD_DIR ] && [ ! -d $DOWNLOAD_DIR ] ; then ln -s ../_rdk40-2021q3_downloads downloads fi if [ $(grep -c 'handan-rdk-rasp..
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과 ..
RDK 2021q1 릴리즈 버전은 DTVKit이 포함된 것을 확인하고, 아래 글을 참고하여 Raspberry Pi3에 RDK을 올려서 DTVKit기반으로 개발된 동작하는 DVBApp을 확인하였다. rpidtv [DTVKit Wiki] dtvkit.org DTVKit은 DVB TS를 수신하기 위한 Tuner driver가 필요하며, 이것은 LinuxTV에서 찾아 펌웨어를 설치하도록 한다. TV 수신카드도 없고, USB Tuner driver가 없는 관계로 DVB 기능은 검증할 수 없으므로, 이 기능을 제외하고 기본 DTVKit 라이브러리 구조와 DVB App이 어떻게 작성되었는지 확인하려고 한다. Yocto 기반으로 개발환경을 구성한 RDK를 매번 빌드하고 이미지를 쓰는 것은 매우 번거로운 일이며, 단순히..
STM32CubeIDE를 사용하여 윈도우 환경에서 소스코드를 생성한 것을 리눅스 환경에서 포트 변경이나 추가로 인해 코드를 다시 생성하면 윈도우 리눅스간 개행문자 차이로 인해 소스 버전관리 도구인 GIT은 아래 이미지와 같이 코드가 변경된 것으로 인식한다. 개행문자를 제외한 나머지 코드는 동일한데 이것을 소스 변경사항으로 올릴 경우 코드 버전 관리가 안되기 때문에 dos2unix를 사용하여 변경된 개행문자를 통일 시키도록 한다. 파일이 한개라면 문제가 없겠지만, 수많은 파일을 변경해야 된다면 이것 또한 일이기 때문에 아래의 명령어를 사용하여 일괄적으로 변경할 수 있다. $ find . -type f | xargs dos2unix dos2unix는 텍스트 파일에만 적용되며, 바이너리 파일을 변환하지 않기 ..
1. Build 환경변수 설정 및 전체빌드 $ source meta-cmf/setup-environment $ bitbake rdk-generic-mediaclient-westeros-wpe-image 특정 패키지 클린빌드 $ bitbake -c cleansstate $ bitbake 2. Bootloader RTD131x_CMF_RDK4.0_User_Guide_XXX 문서 참조 현 단계에서는 bootloader를 수정하지 않고 리얼텍에서 제공한 이미지 그대로 사용 Normal lk update 파일 demo-0001-RTD1319_hwsetting_BOOT_2DDR4_8Gb_s2400-drm.bin (3.9MB) Recovery 파일 0001-RTD1319_hwsetting_BOOT_2DDR4_8Gb_..
우분투 20.04에서 RDK 4.0 빌드할 때, 발생한 에러에 대한 패치를 만드는 마지막 레시피이다. 생각보다는 많이 발생하지 않았지만, Chipset 제조사나 미들웨어에서 권장한 우분투 버전이 아닌 다른 버전에서 빌드환경을 구성하는 일은 정말 피곤한 일이다. qemu 빌드 과정에서 발생하는 아래의 에러는 최신 glibc가 C++ 표준을 따라 에서 제거하여 발생한 문제이다. | /usr/bin/ld.bfd: qga/commands-posix.o: in function `dev_major_minor': | /media/gon/proj/RDK/temp/build-raspberrypi-rdk-hybrid/tmp/work/x86_64-linux/qemu-native/2.7.0-r1/qemu-2.7.0/qga/c..
우분투 20.04 설치된 gawk 5.0.1 버전이 설치되며, 이 버전의 gawk는 '#' 앞에 '\'을 있을 경우 문법 에러로 인식하여 아래와 같은 에러가 발생한다. | gawk -f ../../libgpg-error-1.24/src/mkstrtable.awk -v textidx=3 \ | ../../libgpg-error-1.24/src/err-sources.h.in >../../libgpg-error-1.24/src/err-sources.h | gawk -f ../../libgpg-error-1.24/src/mkstrtable.awk -v textidx=3 \ | ../../libgpg-error-1.24/src/err-codes.h.in >../../libgpg-error-1.24/src/err-..
우분투 20.04는 GCC 9.x 버전이 설치되며, glib 빌드하면 아래와 같은 에러가 발생한다. | ../../glib-2.48.2/gio/gdbusmessage.c: In function ‘g_dbus_message_to_blob’: | ../../glib-2.48.2/gio/gdbusmessage.c:2698:30: error: ‘%s’ directive argument is null [-Werror=format-overflow=] | 2698 | tupled_signature_str = g_strdup_printf ("(%s)", signature_str); | | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | cc1: some warnings being treate..
우분투 20.04에서 glibc 버전이 변경되어 많은 RDK 레시피에서 빌드 에러가 발생한다. Perl 역시 glibc으로 인해 아래와 같은 에러가 발생한다. pp.c: In function ‘Perl_pp_crypt’: pp.c:3628:47: error: ‘struct crypt_data’ has no member named ‘current_saltbits’ 3628 | PL_reentrant_buffer->_crypt_struct_buffer->current_saltbits = 0; | ^~ glibc 2.31 버전에서 current_saltbits 삭제되어 발생한 문제이며, 아래와 같이 패치를 적용하면 빌드에러를 해결할 수 있다. --- perl-5.22.1_old/pp.c2015-10-31 05..
우분투 20.04 버전에 설치된 glibc 버전은 2.31이며 C++ 표준으르 따르기 위해 에서 가 제거되어 아래의 빌드 에러가 발생한다. | gcc -L/media/gon/proj/RDK/temp/build-raspberrypi-rdk-hybrid/tmp/sysroots/x86_64-linux/usr/lib -L/media/gon/proj/RDK/temp/build-raspberrypi-rdk-hybrid/tmp/sysroots/x86_64-linux/lib -Wl,-rpath-link,/media/gon/proj/RDK/temp/build-raspberrypi-rdk-hybrid/tmp/sysroots/x86_64-linux/usr/lib -Wl,-rpath-link,/media/gon/proj/RD..
우분투 20.04에서 elfuilts를 빌드하면 아래와 같은 에러가 발생한다. | gcc -D_GNU_SOURCE -DHAVE_CONFIG_H -DLOCALEDIR='"/media/gon/proj/RDK/temp/build-raspberrypi-rdk-hybrid/tmp/sysroots/x86_64-linux/usr/share/locale"' -I. -I../../elfutils-0.166/libelf -I.. -I. -I../../elfutils-0.166/libelf -I../../elfutils-0.166/lib -I.. -isystem/media/gon/proj/RDK/temp/build-raspberrypi-rdk-hybrid/tmp/sysroots/x86_64-linux/usr/include ..
아래 에러는 m4 동일하게 GCC7으로 빌드해서 발생하는 문제이다. | gcc -I. -I./lib -I../bison-3.0.4 -I../bison-3.0.4/lib -isystem/media/gon/proj/RDK/temp/build-raspberrypi-rdk-hybrid/tmp/sysroots/x86_64-linux/usr/include -isystem/media/gon/proj/RDK/temp/build-raspberrypi-rdk-hybrid/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe -c -o lib/isnanf.o ../bison-3.0.4/lib/isnanf.c | ../bison-3.0.4/lib/fseterr.c: In function 'fs..
아래와 같은 m4 빌드 에러는 우분투 18.04 이상 버전을 사용할 경우 발생한다. | ../../m4-1.4.17/lib/freadahead.c: In function ‘freadahead’: | ../../m4-1.4.17/lib/freadahead.c:91:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib." | 91 | #error "Please port gnulib freadahead.c to your platform! Look at the definitio..