Tina-SDK 소스코드 준비 및 환경 구축
D1s 프로세서 기반의 개발을 위해 먼저 전용 SDK 소스코드를 확보하고 우분투(Ubuntu) 환경에 구축해야 합니다. 아래의 절차에 따라 소스 압축 파일을 해제하고 무결성을 확인합니다.
# 작업 디렉토리 생성 및 이동
mkdir -p ~/allwinner_d1s_work
cd ~/allwinner_d1s_work
# 파일 무결성 검사 (MD5 체크섬 확인)
# 다운로드한 모든 분할 압축 파일의 해시값이 일치하는지 확인합니다.
md5sum tina-d1-h.tar.bz2.*
# 압축 해제 및 소스 병합
cat tina-d1-h.tar.bz2.* | tar -jxvf -
압축 해제가 완료되면 하위 디렉토리에 있는 소스를 상위 폴더로 정리하고, 특정 보드(D1s-CVBS)를 위한 확장 패치를 적용합니다. 패치 적용 시 서브모듈 업데이트를 잊지 마세요.
# 확장 패치 클론 및 적용
git clone https://github.com/DongshanPI/D1s-CVBS_TinaSDK.git d1s_patch
cd d1s_patch
git submodule update --init --recursive
cp -rfvd ./* ~/allwinner_d1s_work/tina-d1-h/
빌드 과정에서 발생할 수 있는 의존성 문제를 방지하기 위해 필수 도구 및 라이브러리를 설치합니다.
sudo apt-get update
sudo apt-get install -y build-essential subversion git libncurses5-dev zlib1g-dev \
gawk flex quilt libssl-dev xsltproc libxml-parser-perl mercurial bzr ecj cvs \
unzip lib32z1 lib32z1-dev lib32stdc++6 libc6:i386 libstdc++6:i386 lib32ncurses5
펌웨어 빌드 및 패키징
환경 설정 스크립트를 로드한 후 개발하려는 타겟 보드에 맞는 프로파일을 선택합니다.
cd ~/allwinner_d1s_work/tina-d1-h
source build/envsetup.sh
lunch
메뉴가 표시되면 d1s_cvbs-tina 항목(보통 3번)을 선택합니다. 이후 컴파일과 이미지 패키징 명령을 차례로 실행합니다.
# 컴파일 시작 (코어 수에 맞게 -j 옵션 활용 가능)
make -j$(nproc)
# 이미지 패키징
pack
성공적으로 완료되면 out/d1s-cvbs/tina_d1s-cvbs_uart3.img 경로에 펌웨어 파일이 생성됩니다.
펌웨어 업로드 (Flashing)
생성된 이미지를 Allwinner 전용 도구인 PhoenixSuit를 사용하여 개발 보드에 기록합니다.
- PhoenixSuit를 실행하고 'Firmware' 탭에서
.img파일을 선택합니다. - 보드의 FEL 버튼을 누른 상태에서 RESET 버튼을 짧게 눌러 기록 모드로 진입합니다.
- '전체 닦기(Whole Flash)' 모드를 선택하여 업로드를 시작합니다.
XR829 Wi-Fi 모듈 커스텀 및 이식
Wi-Fi 기능을 활성화하기 위해 커널 설정을 변경하고 장치 트리(DTS)를 수정해야 합니다.
커널 드라이버 활성화
make kernel_menuconfig
# 아래 경로로 이동하여 드라이버를 모듈(<M>)로 활성화
# Device Drivers -> Network device support -> Wireless LAN -> XR829 WLAN support
장치 트리 수정 (board.dts)
회로도에 명시된 핀 번호에 맞춰 GPIO 설정을 업데이트합니다. 예를 들어 wlan_regon과 wlan_hostwake 핀을 각각 PG12, PG10으로 지정합니다.
기능 테스트 및 네트워크 연결
이미지를 굽고 부팅한 후 아래 명령어로 Wi-Fi 동작을 확인합니다.
# 드라이버 로드 및 서비스 시작
cd /lib/modules/$(uname -r)
insmod xr829.ko
/etc/init.d/wpa_supplicant start
# 주변 네트워크 스캔
wifi_scan_results_test
# 액세스 포인트(AP) 연결
wifi_connect_ap_test "SSID_NAME" "PASSWORD"
# 연결 확인
ifconfig wlan0
ping -c 4 www.google.com
CVBS 카메라(VIN0) 연동 설정
아날로그 비디오 입력을 처리하기 위해 V4L2 미디어 프레임워크 설정을 구성합니다.
미디어 지원 설정
커널 설정(make kernel_menuconfig)에서 Multimedia support 하위의 V4L platform devices 및 SUNXI platform devices를 모두 체크합니다.
미디어 라이브러리 및 데모 구성
recorder.cfg 파일에서 카메라 인덱스를 확인해야 합니다. 하드웨어 연결 상태에 따라 camera_id 값을 0 또는 1로 조정하여 시스템 노드(/dev/video0 등)와 매칭시킵니다.
# trecorderdemo 설치를 위해 SDK 메뉴 설정 변경
make menuconfig
# Allwinner -> tina_multimedia_demo 선택
설정 변경 후 다시 빌드하여 타겟 보드에서 데모 프로그램을 실행합니다.
# 비디오 노드 링크 생성 (필요 시)
ln -s /dev/video4 /dev/video0
# 테스트 실행
trecorderdemo 0