This post was last edited by Jacktang on 2018-8-27 10:29 Step 1: IPNC Installation: Installation package, after unzipping contains the following components: 1. IPNC_RDK_DM36x_Version3.1.0.tar.gz: This is a linux tar file, which needs to be unzipped in a linux machine. This is the main tar file for IPNC RDK installation. This contains in the following files Pre-built binaries Dm36x platform supporting literature Source code Required hardware package and BoM, schematics and Gerber files to build IPNC RDK Utility files like gel, Nand-programmer etc. 2. ImageTuningTool_DM36x_Version2.1.0.zip: This is an image optimization tool package used to optimize IPNC image quality. Need to be unzipped and used in Windows computers. It contains the following Image Tuning Tool Installer (ImageTunningTool - 2.1 Installer MCR Installer (MCRInstaller.exe). This needs to be installed to install the Image Tuning Tool 3. GUI_VideoPlayer_SDK_Version2.0.30.zip: This SDK is a set of tools that are needed to develop web GUI screens and ActiveX players. This needs to be unzipped and used on a Windows computer. The GUI folder contains all source code, documentation and utilities to build web GUI screens The Player folder contains all source code, documentation and MSYS-compliant/utilities needed to build the ActiveX video player Business Model-v3.1 GUI.pdf contains details of the business model between TI and GoDB Technology 4. UserGuide_IPNC_RDK_DM36x.pdf: Business Model-v3.1 GUI.pdf contains details of the business model between TI and GoDB Technology 5. Release_Notes_IPNC_RDK_DM36x.pdf: Details feature added, known issues, version details, bug fixes, etc. Installation process of IPNC_RDK_DM36x_Version3.1.0.tar.gz: 1. Copy IPNC_RDK_DM36x_Version3.1.0.tar.gz to your Linux system installation directory 2. Use the following command to extract the file tar -zxvf IPNC_RDK_DM36x_Version3.1.0.tar.gz After successful command extraction, the file will be generated Appro_IPNC_RDK_DM36x_v3.1.0.tar.gz OpenSrc_IPNC_RDK_DM36x_v3.1.0.tar.gz PrivateTI_IPNC_RDK_DM36x_v3.1.0-Linux-x86-Install.bin 3. Run the file “PrivateTI_IPNC_RDK_DM36x_v3.1.0-Linux-x86-Install.bin” in a specific installation directory protected by the installation. ./PrivateTI_IPNC_RDK_DM36x_v3.1.0-Linux-x86-Install.bin It will install PrivateTI_IPNC_RDK_DM36x_v3.1.0.tar.gz in the selected location User needs to accept the license for successful installation 4. Extract/unzip the file “PrivateTI_IPNC_RDK_DM36x_v3.1.0.tar.gz” in the installation directory tar -zxvf PrivateTI_IPNC_RDK_DM36x_v3.1.0.tar.gz 5. Extract/unzip the file “OpenSrc_IPNC_RDK_DM36x_v3.1.0.tar.gz” in the installation directory tar -zxvf OpenSrc_IPNC_RDK_DM36x_v3.1.0.tar.gz 6. Extract/decompress the file "Appro_IPNC_RDK_DM36x_v3.1.0.tar.gz" from the installation directory in the above steps tar -zxvf Appro_IPNC_RDK_DM36x_v3.1.0.tar.gz This is needed to decompress the three files together so that they can be combined. The installation is now complete. Step 2: Modify Rules.make in the following location /Source/ipnc_rdk For example: /Release/Source/ipnc_rdk Refer to the following settings #SYSTEM := EVM SYSTEM := IPNC #This is used to select the hardware platform #IPNC_PLATFORM := DM365 IPNC_PLATFORM := DM368 #This is used to select the chip ID #FILESYS_MODE := NFS FILESYS_MODE := NAND #This is used to select the file system to run in mode IMGS_ID := IMGS_MICRON_MT9P031_5MP #This is to select the sensor type to use 13) If your login is not in root mode, then use the following command to log in to avoid errors during the installation process (I logged in in root mode and did not need to modify it) chmod -R a+rwx < IPNC_INSTALL_DIR > chown -R< IPNC_INSTALL_DIR > where < useracct > is the login ID of the user on your host LINUX computer. < IPNC_INSTALL_DIR > is the directory you set in Rules.make. 14) Move to the installation directory where Rules.make is located cd $(IPNC_INSTALL_DIR)/ipnc_rdk For example: cd/Release/Source/ipnc_rdk 15) Compile using the following command: make sysall It will copy the generated “uImage_ipnc_dm36x” to the linux kernel <TFTP_HOME> directory. In addition, it makes a copy of the waveform to the file uImage in the ti davinci/arch/arm/boot/ directory. It will also copy all IPNC executable files to the file system and mention them in the output directory located in (EXEC_DIR) set $(installDir)/Rules.make Note: The following commands can be used based on the desired functionality: For incremental builds of IPNC application -- “make” For clean IPNC application builds -- “make clean” For rebuilding the entire IPNC application -- “make all” For incremental Linux builds -- “make lsp” For clean Linux builds -- “make lspclean” Rebuild the whole Linux -- "make lspall" For incremental DVSDK build -- "make dvsdk" Clean DVSDK build -- "make dvsdkclean" Rebuild the whole DVSDK -- "make dvsdkall" Incremental build of system -- "make sys" Clean system build -- "make sysclean" Rebuild the whole system -- "make sysall" The "make" command will include building IPNC application only in "av_capture" and "ipnc_app" folders. It will also copy all IPNC executable files to the file system “sysall” ,”sysclean” and “sys” build options will build DVSDK, Linux and IPNC application 17) The file system can be generated using the following command: make squashfs This will copy the file system “ipnc_dm36x_squashfs” from the <TFTP_HOME> directory PS: The entire package is built and tested with Ubuntu 10.04 LTS installed on the host computer We recommend that users check before creating a link after installing the Linux operating system on the computer to avoid compile time errors Executing make sysall will result in an error showing that the cross compiler is not installed Step 3: Install CCS cross compiler arm_v5t_le- Execute installation: (Choose to install in /opt/mv_pro_5.0.0 directory) ./mvl_5_0_demo_sys_setuplinux.bin Unzip tar -xvf mvltools5_0_0801921_update.tar.gz Finally check ls /opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc Step 4: Set the cross-compiler environment variables: cd /root gedit .bashrc Add in the last line: PATH="/opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le/bin: /opt/mv_pro_5.0.0/montavista/pro/bin: /opt/mv_pro_5.0.0/montavista/common/bin:$PATH" Save source .bashrc //The command takes effect immediately Step 5: Modify the configuration file Rules.make Enter /home/zslf/dm368/dvsdk_dm368_4_02_00_06/psp/Release/Source/ipnc_rdk# Execute gedit Rules.make Change line 75, change BUILD_TOOL_DIR := /data/datalocal_videoapps01/ipnc_tools/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le to: BUILD_TOOL_DIR := /opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le Automatically compile uboot Switch to [decompression directory] /Release/Source/ipnc_rdk and use the following commands to compile and install: make uboot clean make uboot After the compilation is complete, the uboot_xxxx.bin file will be automatically copied to [decompression directory] /Release/Source/ipnc_rdk/Rules.In the tftp directory indicated by TFTP_HOME in the make file. Manually compile uboot Switch to the [decompression path] /Release/Source/dvsdk_ipnctools/ipnc_psp_03_21_00_04/u-boot directory and use the following commands to compile uboot: make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- davinci_dm368_ipnc_config make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- Manual kernel compilation Switch to the [decompression path] /Release/Source/dvsdk_ipnctools/ipnc_psp_03_21_00_04/ti-davinci directory and use the following commands: make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- clean Clear the source configuration file and the original compiled file; Use one of the following commands to copy the default configuration file: make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- davinci_dm368_ipnc_defconfig make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- davinci_dm368_ipnc_defconfig_nand make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- davinci_dm368_ipnc_defconfig_nfs Use the following commands to modify the configuration: make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig Use the following command to compile the kernel: make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage During compilation, if it is prompted that csl.o/ drv.o / edmak.o / irqk.o / dm365mmap.o / cmemk.o is generated without rules, please copy the compiled csl.o & drv.o & edmak.o & irqk.o & dm365mmap.o & cmemk.o files to the [Decompression Path] Release/Source/dvsdk_ipnctools/ipnc_psp_03_21_00_04/ti-davinci/drivers/char/ directory. Please go to [Decompression Path] /Release/Source/dvsdk_ipnctools/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/directory and [decompression path] /Release/Source/dvsdk_ipnctools/dm365mm-module_01_00_03/module/directory and [decompression path] /Release/Source/ipnc_rdk/av_capture/framework/directory to find it. After the compilation is complete, the kernel file uImage is in [decompression path] /Release/Source/dvsdk_ipnctools/ipnc_psp_03_21_00_04/ti-davinci/arch/arm/boot. /home/zslf/dm368/dvsdk_dm368_4_02_00_06/psp/IPNC/Source/ipnc_rdk# make sysall Then an error will occur during compilation: find . -name drv_audio.c ./av_capture/framework/drv/usermod/src/drv_audio.c I will comment out alsa/asoundlib.h and try again In ipnc_app/sys_server/src/av_server_ctrl.c There are two parameters pConfig -> nVideocodecmode and pConfig -> nVideocodecres Among them, pConfig -> nVideocodecmode is used to set the encoding mode, and pConfig -> nVideocodecres is used to set the resolution information For example: ./av_server.out DM368 NTSC 1080P H264 4000000 VBR AUTO MENUOFE & InitAV_Server begin After the application is compiled, the generated file is in /opt/ipnc_rdk/target/filesys/opt/ipnc Execute the script #! /bin/sh DVEVMDIR=/opt/ipnc cd $DVEVMDIR ./system_server & $DVEVMDIR/beforeloadkmodule.sh $DVEVMDIR/loadkmodules.sh $DVEVMDIR/loadmodules_ipnc.sh ifconfig lo 127.0.0.1 cd $DVEVMDIR ./boot_proc 1 $DVEVMDIR/autorum.sh mount devpts /dev/pts -t devpts ifconfig lo 127.0.0.1 is the IP of the system itself. It can be used for network testing when there is no Internet connection. For example, my computer is used as a web server, but I am not connected to the Internet and have no internal and external IP. You can enter 127.0.0.1 in the browser for testing. 1. Add MT9P031 to the kernel make menuconfig Prompt: mt9p031 support Location:-> Kernel configuration -> Device Drivers -> Multimedia support (MEDIA_SUPPORT [=y]) -> Video capture adapters (VIDEO_CAPTURE_DRIVERS [=y]) 2. Add MT9P031 uboot startup information to the static struct vpfe_subdev_info vpfe_sub_devs under /arch/arm/mach-davinci/board-dm368-leopard.c: (11 Set U.boot parameters: #setenv bootargs console=ttyS0.1 15200n8 rw mem254M vide02 davincifb:vidO= OFF:vidl=OFF:osd0=720x576x 1 6,4050K dm365_imp.opermode=O davinci— capture.device_type2l vpfe_capture.interfaee=l vpfe_capture.con_bufsize=6291456 root=/dev/nfsnfsroot=192.168.0.138:/root/targeffs ip=192.168.0.60:192.168.0.1: 255.255.255.0 Note: here, you need to set oper mode to 0, which means the mode of IPIPE Resizer is Continuous Mode, and set device to 1, which means the acquisition device is. type MT9P031 vpfe_capture.interface=2 for TVP7002 (default) vpfe_capture.interface=1 for Micron sensor - MT9T031 vpfe_capture.interface=0 for TVP5146 davinci_capture.device_type=0 means using TVP5146 for acquisition davinci_capture.device_type=1 means using MT9P031 for acquisition, davinci_capture.device_type=2 means using TVP7002 for acquisition Problem solution: I removed it in the kernel, in the board-dm368-ipnc.c file: static struct davinci_nand_pdata davinci_nand_data = { .parts = davinci_nand_partitions, .nr_parts = ARRAY_SIZE(davinci_nand_partitions), //.ecc_mode = NAND_ECC_HW, .ecc_mode = NAND_ECC_NONE, .options = NAND_USE_FLASH_BBT, .ecc_bits = 4, };ecc_mode = NAND_ECC_HW, .ecc_mode = NAND_ECC_NONE, .options = NAND_USE_FLASH_BBT, .ecc_bits = 4, };ecc_mode = NAND_ECC_HW, .ecc_mode = NAND_ECC_NONE, .options = NAND_USE_FLASH_BBT, .ecc_bits = 4, };