레이블이 TI-IPNC인 게시물을 표시합니다. 모든 게시물 표시
레이블이 TI-IPNC인 게시물을 표시합니다. 모든 게시물 표시

3/09/2016

DM368 IPNC-MT5 관련정리

1. DM368 IPNC-MT  관련 파일 정리 
  • dm3xx_sd_boot-6.1.zip                                 // 이전 참좀  
  • GUI_VideoPlayer_SDK_V2.2.0.0.exe                  //  현재 사용안함  
  • ImageTuningTool_DM36x_V2.1.0.zip                //  현재 사용안함  
  • Release_Notes_IPNC_DM36x.pdf                     //  Release Note  
  • UserGuide_IPNC_RDK_DM36x.pdf                   //  UserGuide 
  • IPNC_RDK_DM36x_V5.1.0-Linux-x86-Install.bin  //   RDK 

1.1 DM368IPNC-MT5 RDK 구성

   
     IPNC_RDK_DM36x_Version5.0.0.tar.gz
   
     상위 RDK 파일은 아래와 같은 구성존재하며 개별설치.
  • Appro_IPNC_RDK_DM36x_v5.0.0.0.tar.gz          //av_capture - 2A and AEW lib 
  • OpenSrc_IPNC_RDK_DM36x_v5.0.0.0.tar.gz    //ipnc_app & file system , kernel , uboot 포함 
  • PrivateTI_IPNC_RDK_DM36x_v5.0.0.0-Linux-x86-Install.bin   //TI DVSDK 


            * 참고사항
            TI-DVSDK  ( CROSS COMPILE 포함)
            http://www.ti.com/product/tms320dm368/toolssoftware


2. DM368 RDK 전체구조

  • DM368 IPNC MT RDK 전체 구조 
     TI SDK 와 APPROPHO에서 제공하는 IPNC APP 제공.


├── Binaries
│   └── dm368   // 기본 Image들  
│                ├── diagnostic_ipnc_dm368.bin      // 진단 BIN .(CAMERA TEST 및 각 DEVICE TEST, CCS UTIL 참좀) 
│                │
│                ├── ipnc_dm368_ubifs                  //  FILE SYTEM BIN
│                ├── nandwriter_ipnc_dm368.out     //  CCS NANDWRITER 실행파일
│                │
│                │      //LINUX 관련 Image들 
│                ├── u-boot-1.3.4-dm368_ipnc.bin     
│                ├── uImage_ipnc_dm368
│                ├── ubl_432arm_340ddr_ipnc_dm368.bin
│                └── ubl_486arm_360ddr_ipnc_dm368.bin
│  
│                        // 반드시 참고 AV-SERVER 및 기타 문서 
├── Collaterals    // DM368 IPNC-MT5 관련 문서  
│  
│  
├── Hardware     // 관련 HW문서 
│  
├── Source        //  관련 전체소스   
│   │
│   ├── dvsdk_ipnctools   //TI-DVSDK (KERNEL 및 UBOOT, CODEC )    
│   │   │ 
│   │   ├── codec-engine_2_26_02_11  
│   │   ├── codecs-dm365
│   │   ├── dm365mm-module_01_00_03
│   │   ├── dvsdk_docs
│   │   ├── framework-components_2_26_00_01
│   │   ├── xdctools_3_16_03_36
│   │   ├── linuxutils_2_26_02_05
│   │   ├── xdais_6_26_01_03
│   │   │
│   │   ├── linux-devkit                //CROSS-COMPILER 
│   │   │   
│   │   │                                     // UBOOT, KERNEL (상위 OpenSrc_IPNC_RDK에 포함)
│   │   └── ipnc_psp_03_21_00_04  // 빌드시 make lsp 
│   │         ├── docs
│   │         ├── kernel
│   │         └── u-boot               
│   │    
│   │
│   └── ipnc_rdk                 //  IPNC-APPLICATION 
│       │                              //  $ make (application 전체 빌드시)
│       ├── av_capture          //  av_server source  
│       │   ├── application    
│       │   ├── bin
│       │   ├── build
│       │   └── framework    //  av_server device control (drv) 부분  
│       │
│       ├── ipnc_app
│       │   ├── interface
│       │   ├── multimedia
│       │   ├── network
│       │   ├── root_filesys
│       │   ├── sys_server
│       │   ├── utils
│       │   └── webdata
│       │                              //  $ make ubifs (File system Image 생성시) 
│       ├── target                //  현재 File system     
│       │
│       └── tftp                   // 최종결과 이미지 확인 
│     
└── Utils                              //CCS 관련 소스파일 
    ├── diagnostic_ipnc_dm36x  // CCS 진단프로그램 Source 
    ├── flash_utils_dm36x          // CCS UBL & NandWriter 
    └── gel_dm36x                  //  GEL 파일  


3. 관련 문서정리


3.1  DM368 관련 문서 링크 


  • 기본 TI사이트 및 DM368 기본정보

      http://www.ti.com/product/TMS320DM368/technicaldocuments
      http://processors.wiki.ti.com/index.php/DM368

  • H.264/MPEG4의 기본이해  (Profile과 Level 파악)
      Profile은 encoder에서 정해지는 제약된 표준을 말하며, 이들은 주요 특징을 가지고 있다.
   
      https://ko.wikipedia.org/wiki/H.264/MPEG-4_AVC


      Profiles의 전체특징을 자세히 기술을 했으며, Profile 약어 기준으로 개별특징을 확인가능하다.
     아래의 Feature support in particular profiles 에서 Profile들의 특징을 자세히 알아보자.

  • Baseline Profile (BP, 66)
  • Constrained Baseline Profile (CBP, 66 with constraint set 1)

      Levels 은 profile에 대한 decoder 성능을 나타내주는 척도를 말해준다.
      이는 Streaming에 중요하다,

      https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC

  • Codec 관련 정보 
      Codec Interface는 기본적으로 DVSDK에 포함되어져있다.

      http://software-dl.ti.com/dsps/dsps_public_sw/codecs/DM365/index_FDS.html
      http://processors.wiki.ti.com/index.php/DM365_Codec_Availability_Schedule
      http://processors.wiki.ti.com/index.php/DM365_Codecs_FAQ

      http://nahsun.com/index.php/technology/audio-codec

3.2 DM368 IPNC-MT5 관련 중요 문서 정리 

  • GettingStartedGuide      
      초반에 VLC 설정 및 설치할때 읽어야 기본 작동설치문서
      http://www.appropho.com/NewWeb/DOC_DM365IPNC/GettingStartedGuide.pdf

  • APPROPHO에서 제공  
        A. UserGuide_IPNC_RDK_DM36x.pdf  (설치 및 TEST 시 중요) 
            -  GettingStartedGuide 내용포함
            -  처음설치 및 각각 빌드하는 방법  ( 2.9 참조)
            -  CCS 관련 프로그램 사용법    
            -  제공하는 APP 기본 사용법  
            -  Face Recognition  및 SALDRE   (release version 미제공)  (3.3.1)

      B. Collaterals  (개발시 중요)
            - Application_DesignGuide_IPNC_DM36x.pdf  //전체 APPLICATION 구조   
            - AVServer_DesignGuide_IPNC_DM36x.pdf    // AVServer 기본사용법 및 관련 API    


4. 빌드 방법 

      초반에 make sysall로 전체 빌드한 후 필요한 부분만 재빌드해서 사용하자.
      자세한 내용은 Makefile과 Rules.make 를 참조하자
  • Kernel 및 U-BOOT 

$ cd ~/dm368/mt5/Source/ipnc_rdk
$ make lsp  or make lspall                // Kernel 및 Kernel Module 
$ ll tftp/DM368/                             // 최종이미지 변경날짜 확인 

$ make uboot                                // U-BOOT
$ ll tftp/DM368/                             // 최종이미지 변경날짜 확인 

  • APPLICATION (av_server 및 기타 )

$ cd ~/dm368/mt5/Source/ipnc_rdk
$ make                                        // make app 동일 
$ ll target/filesys_dm368/opt/ipnc/     // 변경된 실행파일 날짜 확인 
$ make ubifs 
$ ll tftp/DM368/                            // 최종이미지확인    


2/06/2016

ONVIF

1. Background

ONVIF는 Open Network Video Interface Forum의 약어라고 하며, Axis Communications, Bosch Security Systems and Sony
이 세회사에 의해 조직이 되었다고 한다. 현재Member들은 Level이 있다고하며, user, contributing, and full member로 구분이 된다고 한다.

1.1 ONVIF Spec 1.0  

2.0은 현재 뭐가 더 추가되었는지는 정확히 모르겠지만, 거의 유사할거라구 추측이 되지만, 
많이 개선이 되었을 거라고 생각이 된다. 
  1. IP configuration             
  2. Device discovery
  3. Device management
  4. Media configuration      
  5. Real time viewing         
  6. Event handling
  7. PTZ camera control   
  8. Video analytics
  9. Security

1.2 Profiles

  1. Profile S - Addresses common functionalities of IP video systems, such as video and audio streaming, PTZ controls, and relay activation.
  2. Profile C - Addresses common functionalities of IP access control systems, such as door state and control, credential management, and event handling.
  3. Profile G - Addresses video storage, recording, search, and retrieval.
  4. Profile Q (Release Candidate) - Addresses device discovery and configuration, as well as the management of TLS certificates and keys
Wiki의 Milestones과 Reference를 보면 각각의 spec의 release된 날짜와 spec을 확인이 가능하지만, Link가 깨져서 아래에 다시 찾았다. 

  • 문서구성 
주요문서는 기본 Spec 문서와 Profiles 문서들로 구성이 되는 것 같으며, Spec을 보고 
어떻게 돌아가는지 이해를 해야하고, 세부 기능들은 Profiles들을 봐야하는 것 같다. 

  https://en.wikipedia.org/wiki/ONVIF

  • Member Company 확인 
  https://www.onvif.org/about/member-list/

2. ONVIF의 기본구조 

처음 ONVIF Spec을 구하지 못해 아래 사이트에서 쉽게 설명을 해주고 있어 간단히,
이해는 했지만, 정확히 이해를 하지 못해 역시 Spec을 봐야겠다고 다시 생각이 들었다.

  • 기본 객체용어
  1. NVT (Network Video Transmitter) :  Network를 통해 Video를 송신하는 자  
  2. NVC (Network Video Client)        :  Network를 통해 Vidoe를 수신하는 자 
  3. NVD (Network Video Display)      :  Network를 통해 Video를 Dislay하는 자. 
  4. NVS (Network Video Storage)      :  Network를 통해 Video를 저장하는자 (NVR)
  5. NVA (Network Vidoe Anlytic)       :  Network를 통해 Video를 분석하는자 (Appro) 제공 
  • 기본 Device Model 
  1. IP Camera는 상위 NVT 가 될 것 같다.  
  2. NVR은   NVC,NVD,NVS가 합쳐져야 할 것 같다. 
  3. NVA는  순수 Debug과 분석용으로 사용하는 것 같다. 
  • 기본구조설명
  상위 내용들을 쉽게 설명해주는 사이트
  http://m.blog.naver.com/msnayana/80155230549

2.1 ONVIF의 기본구성 

기본구조를 보면, SOAP이라는 Protocol을 사용하며, WSDL이라는 언어를 이용하여 주고 받는다.
아래그림은 ONVIF의 Main SPEC 2.0 에 Overview에 나온다.


개인적으로 생각을 정리하면 Web server와 Web Client 동작 형식 거의 동일하며,
다만 언어를 HTML에서 XML로 변경을 해서 다른목적으로 사용하는 것 같다.

  1. SOAP : HTTP,HTTPS,SMTP를 이용하여, Web Service를 이용하고, WSDL을 주고받는 Protocol  
  2. WSDL : XML기반으로 network service를 하기위해서 endpoint에서 사용하한다고 한다. 
SOAP이라는 것은 Protocol이기 때문에  HTTP or SMTP 도 될수도 있다는 것 같으며, 정확히 HTTP 상위에 어떤 Protocol 없는걸로 보아서,
둘 중하나를 사용하기에 이름을 SOAP이라고 사용하는 것 같다.

WSDL은 SOAP 기반으로 즉 XML Message 요청과응답을 하고 이로 인해 설정 및 상태 체크를 하는것 같다

위와 같이 이해하는것은 wiki의 SOAP 주요 특징이 확장성 과 중립성 , 독립성인데, 중립성에서 부연설명을 보면 대략 감이 잡힌다.

  https://en.wikipedia.org/wiki/SOAP

SOAP을 이용하면 XML기반의 RPC기능이 가능하다고 하는데 예제를 보면, 쉽게이해가 간다.
Request XML Message의 Method를 넣고, Response XML에서 이를 얻는다.

  • XML-RPC 예제
  https://en.wikipedia.org/wiki/XML-RPC

  • ONVIF Core Spec (전체구조를 쉽게 이해)
  https://www.onvif.org/specs/core/ONVIF-Core-Specification-v221.pdf


상위 스펙을보고, 다시 위의 기본구조설명 해주 사이트를 보니, 이해하기가 쉬워졌다.

하지만 IP Camera와 ONVIF 실제 소스를 가지고 추후에 분석을 해보고 해야하는데,
이부분 아직 없기때문에 추후 하기로 한다.

그리고, HTTP의 한계를 어떻게 극복을 했는지 그 부분이 궁금하며, GET/POST로만 했는지, AJAX or Node.js 사용하는지 등 다른 부분 역시 궁금하다.
SMTP를 어떻게 이용했는지 역시 궁금하기도 하다.



3. ONVIF의 관련 문서 

  • ONVIF Profiles
  https://www.onvif.org/profiles/


  • SOAP1.2 
  http://schemas.xmlsoap.org/wsdl/soap12/

  • UDDI 
  http://www.uddi.org/pubs/DataStructure-V2.03-Published-20020719.pdf
  http://www.uddi.org/pubs/ProgrammersAPI-V2.04-Published-20020719.pdf

  • WSDL
  http://schemas.xmlsoap.org/wsdl/
  https://www.onvif.org/ver10/device/wsdl/devicemgmt.wsdl
  https://www.onvif.org/ver10/event/wsdl/event.wsdl



4. ONVIF Tools 

  • NVC-TEST Tool for Linux
즉 IP Camera를 Test하기 좋은 Program인 것 같다
  http://www.lingodigit.com/onvif_nvc.html

sudo dpkg -i onvif-device-tool_15.12-20160408_jessie_i386.deb

  • ONVIF Device Manager
Window에서 사용이 가능하며, NVC가 NVT, NVS와 NVA를 다루기 위한 Program인 것
같은데, 본인도 설치만 했지 직접 TEST를 못해봤다.

  https://sourceforge.net/projects/onvifdm/
  http://kipod.com/

8/16/2015

DM8127-IPNC 개발환경설정

1. 개발환경설정

참조 http://ahyuo.blogspot.kr/2015/08/dm8127.html

1.1 CROSS COMPILE 설정

  • 아래와 같이 Rules.make에서 수정 (이미 CROSS COMPILE을 이곳에 설치) 

$ cd ~/dm8127/work/Source/ipnc_rdk
$ ls 
Makefile  Rules.make  ipnc_app  ipnc_mcfw  target  tftp  ubinize.cfg

$ vi Rules.make
BUILD_TOOL_DIR          := /opt/codesourcery/arm-2009q1


1.1  FILE SYSTEM 구축 및 NFS 설치

기본으로 File System 압축이 풀려있지 않으므로, 압축을 풀고, NFS을 구축하자.
압축을 푼후, 전체빌드를 해야 file system 안에 모듈들이 들어가고 필요앱들이 설치된다.

*주의: 기본적으로 압축을 풀면 NFS가 동작이 되지 않는다.


$ cd work/Source/ipnc_rdk/target
$ sudo tar zxvf filesys_ipnc_rdk.tar.gz 
$ sudo chown -R : ./*


2.  BUILD 설정

  • IPNC_RDK_InstallGuide_Version3.0.0.pdf (설치 및 빌드)

       2.1 IPNC Application Build Procedure
       이부분 부터 정독 (아래부분 그 부분 간단히 정리)

2.1 설정확인 및 변경 

아래와 같이 실제 디렉토리로 이동 후,  Rules.make를 설정후  빌드를 시작한다.
* 빌드시 PATH의 설정을 반드시 설정

환경변수 CROSS_COMPILE 과 ARCH를 별도로 외부에서 설정하지 않아도 된다.
이를 설정하면 오히려 에러가 발생
  • Rules.make  : 기본설정 -> 원하는 설정을 여기서 변경 
  • Makefile      : 빌드하고 싶은 Target을 찾아 빌드 





현재 dm8127/work 아래에 모든것이 설치되어 있고 아래와 같이 기본적인것들을 확인한다.

 $ cd ~/dm8127/work/Source/ipnc_rdk
 
 $ vi Makefile // 각각 target 확인
 
 $ Rules.Make  // 설정 확인 아래와 같이 SD로 사용하면, SD로 변경 
...
# Binary to boot from NAND or SDCARD
#BINARY_MODE    := nand
BINARY_MODE     := sd
..
 
2.2 How To Build It

 $ cd ~/dm8127/work/Source/ipnc_rdk
아래와 같이 빌드를 실행을 한다.
빌드를 실행전 반드시 CROSS_COMPILE 포함을 확인한다.


  • Host에서 빌드 중 에러가 발생할 경우 설치해야할 PKG


$ apt-get install bison   //bison error 
$ apt-get install flex //yyparse



  • 세부 Build 설정 

아래를 하기 전에 Rule.make를 확인을 다시 확인하자. -s는 silent의 의미이다.

//Basic  
 $ make -s sysall      // clean and rebuild IPNC RDK as well as all packages , all of things. 
 $ make -s sysclean    // clean all of the packages 
 $ make -s ubifs       // create ubifs filesystem and install it in TFTP home 
 $ make -s jffs2       // work it same as above 
//U-BOOT  
 $ make -s ubootmin    // uboot.min.xxx  only
 $ make -s ubootbin    // uboot.bin      only
 $ make -s uboot       // uboot both of them,min bin
//CMEM
 $ make -s cmem         // 
 $ make -s cmemclean    //
//LINUX AND UBOOT
 $ make -s lsp   // linux and uboot 
//FILE SYSTEM
 $ make -s ubifs 
 $ make -s jffs2
 //APP
 $ make -s ipncapp

8/15/2015

DM8127-IPNC 설정 과 SDBOOT 설정 및 IMAGE생성

1. DM8127-IPNC 구조 



1.1 DM8127-IPNC 기본 Camera 구조




1.2 DM8127-IPNC Sub Board 구조 


         

            처음  Connector를 삽입시 검정부분을 살짝 빼고 삽입하자.
     
현재설정

  • J3   : 20PIN JTAG 연결 - XDS510-USB
  • JP1 : CLOSE ,  
  • JP2 : CLOSE  ,SD BOOT
  • JP3 : CLOSE  ,UART IC ENABLE 
  • J4  :  UART Cable 연결 


1.3 UART 관련 설정 








2. SD BOOT 변경 및 Image 생성


2.1 SD-IMAGE 생성방법

아래와 같이 백업을 위해 DM8127와 동일한 TST0 생성하고 진행을 하고,
이곳에서 아래와 같이 script로 SD-IMAGE를 생성하자.

( */dev/sdd  SD-IMAGE 전용 VDI 새로 생성해서 mount되어있음, 실제 mmc가 아님)
*아래방법은 항상 조심해서 사용해야 하며, 본인인 경우, 여러개의 VDI를 사용하고 해서
  /dev/sdx가 이름이 수시로 변경이 되어, mount로 확인안하고 사용하여 VDI data를 지워버렸다.


  • Linux 에서 SD Image 생성 

$ cd  ~/dm8127/work/Binaries
$ ls 
DM385  DM8127  update.txt  
$ cp -a DM8127  DM8127-TST0

$ cp ../Utils/sd-script/mksd-ti814x.sh DM8127-TST0/sd/
$ cd DM8127-TST0/sd/
$ ls
MLO  filesys_full_feature.tar.gz  filesys_low_power.tar.gz  mksd-ti814x.sh  u-boot.bin  uImage

$ sudo ./mksd-ti814x.sh /dev/sdd MLO u-boot.bin uImage filesys_full_feature.tar.gz
or
$ sudo ./mksd-ti814x.sh /dev/sdd ./MLO ./u-boot.bin ./uImage ./filesys_full_feature.tar.gz


*SD-IMAGE 전용 빈 공간의 VDI를 생성해서  Virtual box 추가한 사항 (8G-Byte VDI)


  • VDI 관련 사항

위사항을 하기전에
우선적 SD IMAGE용 VDI 8G or 16G  고정크기만들어 연결해야한다.
  http://ahyuo.blogspot.kr/2013/12/virtual-box-ubuntu-1204.html

관련 Script:
  http://processors.wiki.ti.com/index.php/TI81XX_PSP_UBOOT_User_Guide#U-Boot_SD_.28Secured_Digital_card.29_Support


  http://elinux.org/Panda_How_to_MLO_%26_u-boot

  https://github.com/linux-sunxi/u-boot-sunxi/wiki

  • WINDOW에 복사 및 WRITE 

sdx 안에 새로 생성된 Image를 window으로 가져와 SD/MMC에 굽는다.
VDI를 새로 추가한 위치에 따라 sdx의 이름은 변경될 수 있으며, mount로 항상확인 하자.
  1. 아래와 같이 /dev/sdd 에서 Image를 dump를 생성 
  2. 새로 생성한 Image를  Window의 Win32DiskImager로 SD Card Image Write

  $ cd /media/sf_SHARED   
  $ sudo cat /dev/sdd > sdcard.img 
     or 
  $ sudo dd if=/dev/sdd of=./sdcard.img   // slow version 
     or
  $ sudo dd if=/dev/sdd of=./sdcard.img bs=64M  // fast version 
     or
  $ sudo dd if=/dev/sdd of=./sdcard.img bs=256M  // fast version 
     or
  $ sudo dd if=/dev/sdd of=./sdcard.img bs=512M  // fast version 



2.2 U-BOOT 환경설정

위 생성대로 boot 했을 경우, 문제사항이 UBOOT의 환경설정
bootcmd와 bootargs가 발생이 하며, 이를 해결하기 위해서 아래와 같이 설정을 해준다.

이를 쉽게 해결하기 위해서 SD 카드 boot 영역에 FAT에 boot.scr을 만들어주어
해결해줘도 되고 아래와 같이 UBOOT에서 아래와 같이 직접 설정해줘도 된다.

  • U-BOOT의 환경설정 

TI8148_IPNC#pri
...
loadbootscript=fatload mmc 0 ${script_addr} boot.scr
bootscript= echo Running bootscript from MMC/SD to set the ENV...; source ${script_addr}
.....
bootcmd=ipnc_ff_init 1; mmc rescan 0; fatload mmc 0 0x81000000 uImage; bootm 0x81000000
bootargs=console=ttyO0,115200n8 noinitrd mem=80M rootwait vram=4M notifyk.vpssm3_sva=0xBFD00000 root=/dev/mmcblk0p2 rw eth=00:0C:0C:02:30:FB ip=192.168.1.168 cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 earlyprintk

  • boot.scr 만드는 방법

$ vi boot.txt
setenv bootcmd 'ipnc_ff_init 1; mmc rescan 0; fatload mmc 0 0x81000000 uImage; bootm 0x81000000'
setenv bootargs 'console=ttyO0,115200n8 noinitrd mem=80M rootwait vram=4M notifyk.vpssm3_sva=0xBFD00000 root=/dev/mmcblk0p2 rw eth=00:0C:0C:02:30:FB ip=192.168.1.168 cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 earlyprintk'
boot

$ mkimage -A arm -O linux -T script -C none -n TI_script -d boot.txt boot.scr


  • SPL      : TI-MIN# 
  • U-BOOT: TI8148_IPNC#

A. SD BOOT 환경설정

  SDBOOT에는 IMAGE 저장장소는 FAT를 사용하고, FILESYS를 EXT3를 사용한다


  • bootcmd for full feature 
TI8148_IPNC# setenv bootcmd 'ipnc_ff_init 1; mmc rescan 0; fatload mmc 0 0x81000000 uImage; bootm 0x81000000';saveenv 

  • bootcmd for low power filesys 

TI8148_IPNC# setenv bootcmd 'ipnc_ff_init 0; mmc rescan 0; fatload mmc 0 0x81000000 uImage; bootm 0x81000000';saveenv 


  •    아래과 같이 bootargs 기본설정  (network 정보 및 memory )
    IP는 본인 설정대로, dhcp로 변경가능

TI8148_IPNC# setenv bootargs 'console=ttyO0,115200n8 noinitrd mem=80M rootwait vram=4M notifyk.vpssm3_sva=0xBFD00000 root=/dev/mmcblk0p2 rw eth=00:0C:0C:02:30:FB ip=172.24.191.14 cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 earlyprintk';saveenv


B. NFS 환경설정

NFS BOOT는 현재 문제가 생긴것을 확인 원인 추후 파악


  • HOST 에서 해야할일 

uImage 복사

$ make -s lsp
$ cp ../ti_tools/ipnc_psp_04_04_00_01/kernel/arch/arm/boot/uImage /tftpboot/uImage-dm8127_rdk 

File System Mount TEST

$ cd ~/dm8127/work/Source/ipnc_rdk/target/filesys
$ ls  // host에서 filesystem 확인 
$ cd ..
$ mkdir test
$ sudo mount -t nfs 192.168.1.100:/home/jhlee/dm8127/work/Source/ipnc_rdk/target/filesys test
$ ll ./test
$ sudo umount ./test

  • Device 에서 설정 
TI8148_IPNC# 생략 save는 본인의 선택

set serverip '192.168.1.100';set ipaddr '192.168.1.39'; set gatewayip '192.168.1.1';set netmask '255.255.255.0'
set hostname "jhlee-VirtualBox"


setenv bootargs 'console=ttyO0,115200n8 root=/dev/nfs nfsrootdebug rw rootdelay=10 mem=80M vram=4M notifyk.vpssm3_sva=0xBFD00000 nfsroot=192.168.1.100:/home/jhlee/dm8127/work/Source/ipnc_rdk/target/filesys,nolock eth=32:30:3a:63:64:3a ip=192.168.1.168 cmemk.phys_start=0x85000000 cmemk.phys_end=0x89000000 cmemk.allowOverlap=1 earlyprintk'
setenv bootcmd tftp uImage-dm8127_rdk;bootm


RAM 512로 했을 경우, Memory Map , 문서 IPNC_RDK MemoryMap 참조

  - cmemk.phys_start="0x85000000"  cmemk.phys_end="0x89000000"
      CMEM 64M

  - notifyk.vpssm3_sva=0xBFD00000
             VPSS M3 Notify (For FB Dev) :2M


2.3 SD BOOT 후 확인사항

  • U-BOOT의 PROMPT  (TI8148_IPNC -> TI-MIN)
  • IPNC의 NETWORK 설정: STATIC IP : 192.168.1.68로 설정됨 - 이는 172.24.191.14 상관없음 
  • Web 접속 후 각 연결 사항 확인 및 동작확인 (확인)
  • Web - Histogram도 지원 및 각 GUI 지원 각 기능 확인 ( 확인결과 별 문제없음)
  • 2A기능 확인  (확인)
  • 렌즈 줌인 줌아웃 테스트 (확인)
  • VLC 동작확인 못함 (카메라 RTSP 동작확인) )
  • 기타 카메라 테스트 진행 


  • VLC 로 RTSP 동작 확인
  1. SD BOOT후 로그에서 아래와 같이 RTSP 주소 확인 
  2. 화면재생시 VLC 도구->코덱정보 해상도 정보확인 

..... 
Play this stream using the URL:
 rtsp://192.168.1.168:8553/PSIA/Streaming/channels/1?videoCodecType=MPEG4

Play this stream using the URL:
 rtsp://192.168.1.168:8554/PSIA/Streaming/channels/1?videoCodecType=MPEG4

Play this stream using the URL:  
        // 1600x900  60HZ   VLC 에서 확인
 rtsp://192.168.1.168:8557/PSIA/Streaming/channels/2?videoCodecType=H.264

Play this stream using the URL:
 rtsp://192.168.1.168:8555/PSIA/Streaming/channels/0?videoCodecType=MJPEG

Play this stream using the URL:
        // 720x482     30HZ  VLC에서 확인 
 rtsp://192.168.1.168:8556/PSIA/Streaming/channels/2?videoCodecType=H.264




8/13/2015

DM8127-IPNC-RDK 기본구조 및 봐야할 문서

1. DM8127 IP Camera 기본특징

현재 TI사에서 제공하는 CHIP이며, APPRO 사에서 TI Platform을 사용하여 IP Camera 을 제작하여 팔고 있다.
DM8127 IPNC는 DM814x 시리즈와 기능이 유사하며,기존의 DM385의 기능에 DSP에 좀 더나은 비디오 분석기능을 추가했다.
더 자세한 부분은 TI사의 IPNC( IP Network Camera) History를 보면 어느정도 이해가 되겠다.

  • TI사 IPNC HISTORY
TI에서 제공하는 IP Camera 이며, 개별을 비교가능가능
  http://www.ti.com/tool/ipcamerard

  • DM8127에 관련한 기사
  http://www.newswire.co.kr/newsRead.php?no=744886
  https://www.immervisionenables.com/2014/04/02/first-ever-immervision-enables-2-0-compatibility-onboard-with-texas-instruments-davinci-dm8127-video-processor/
 


1.1 IP Camera의 기본구조





TI사의 IP Camera의 기본구조는 크게 변경되지 않으며, 진화되고 추가는 형식으로 가고 있다.


3. DM8127-IPNC 구조 


3.1 DM8127 Tool Chain 설치 및 설정

  http://ahyuo.blogspot.kr/2015/11/arm-tool-chain.html


3.2 RDK  기본구조 

APPRO사에서 DVD로 제공

  • Download File
  1. GA_Release_3.0.0.zip  ( RDK 전체구성)
  2. IPNC_RDK_Docs_Patch_v3.0.0.tar.gz  (추가 문서)

  • GA_3.0.0_release.zip
  1. GUI_VideoPlayer_SDK_Version2.0.30.zip
  2. ImageTuningTool_Version1.0.0.zip
  3. IPNC_RDK_DM812x_DM385_Version3.0.0.tar.gz 

* GUI_VideoPlayer_SDK_Version2.0.30  // 만약 Web이나, Player작업을 한다면 확인
* ImageTuningTool_Version1.0.0        // 이 TOOL이 2A기능과 관련있는지 확인
  • IPNC_RDK_DM812x_DM385_Version3.0.0.tar.gz 
  1. Appro_IPNC_RDK_DM812x_DM385_v3.0.0.tar.gz    // ti-tools->iss
  2. OpenSrc_IPNC_RDK_DM812x_DM385_v3.0.0.tar.gz // ipnc_rdk and ti-tools->ipncxxx
  3. PrivateTI_IPNC_RDK_DM812x_DM385_v3.0.0-Linux-x86-Install.bin  
위 세 파일을 설치하면 아래와 같은 RDK 전체 기본구조로 구성이 된다.

관련참고파일:
IPNC_RDK_InstallGuide_Version3.0.0.pdf   // 가장 중요한 문서 

밑에 빠져있지만, source/ti_tools/ipnc_psp_04_04_00_01 안에
kernel과 uboot가 포함되어있다.


  • RDK-전체기본구조 






  • SYSLINK

  http://processors.wiki.ti.com/index.php/SysLink_UserGuide
  http://processors.wiki.ti.com/index.php/SysLink_Overview


  • xDM(eXpress DSP Digital Media)
  • XDAIS(eXpressDSP Algorithm Interface Standard)
TI에서 제공하는 xDM의 확장판이며, 관련 알고리즘 Package를 제공해준다.
예를들면, Codec 및 관련 부분 다른 Interface

  https://en.wikipedia.org/wiki/XDAIS_algorithms
  http://software-dl.ti.com/dsps/dsps_public_sw/sdo_sb/targetcontent/xdais/index.html
  http://processors.wiki.ti.com/index.php/Category:XDAIS


  • XDCTOOLS

  http://processors.wiki.ti.com/index.php/How_is_SYS/BIOS_related_to_XDCtools_and_RTSC%3F

3.3 DM8127-IPNC 중요문서


  • RDK를 제외한 문서들 
  1. IPNC_RDK_InstallGuide_Version3.0.0.pdf
  2. IPNC_RDK_Release_Notes_Version3.0.0.pdf ( 반드시 확인)

  • IPNC_RDK_Docs_Patch_v3.0.0.tar.gz   (안에 포함된 문서) 
  1. IPNC_RDK_McFW_UserGuide.pdf  
  2. IPNC_RDK_MemoryMapAnalysis.pdf
McFW(Multi Channel Framework) 약어로 가 Interface와 Framework를 설명해준다.
DM8127의 ARM의 syslink로 연결되는 DSP ,VPSS , HDVICP2(version2)구조
전체 Memory Map 확인

  • 상위 Doc 안에 문서들 



  • 기타 주요 문서 및 확인사항 

TEST Program 작동방법 
    IPNC_RDK_Diagnostic_Program.pdf  ( TEST Program 제공, RAM 및 NAND (autotest)

설치된 TOOL 부분 확인
    IPNC_RDK_Software_Manifest
    TI_Tools_Software_Manifest

API GUIDE
    IPNC_RDK_ApiGuide.chm               ( API GUIDE)
     
기타로 Power Optimization 혹은 Test 결과 , BooT Time optimization 등 많은 문서제공



3.4 VPSS와 HDVICP Firmware

별도의 Cortex M3가 두개가 존재하며, 이는 비디오 입/출력 과 동영상 Encode/Decode를 담당한다.

./opt/ipnc/bin/fw_load.out  // 아래의 두 모듈을 올려준다.

./opt/ipnc/firmware/ipnc_rdk_fw_m3video.xem3
./opt/ipnc/firmware/ipnc_rdk_fw_m3vpss.xem3  




  • IVA : Image Video Accelerator

실제적으로 HDVICP2이라고 생각하며 되며,  IVA_HD 모듈이라고 도 한다.

spruhi7a
spruhl6a