|
本帖最后由 Jacktang 于 2018-8-27 10:29 编辑
第一步: IPNC 安装:
安装软件包,解压后包含以下组件:
1. IPNC_RDK_DM36x_Version3.1.0.tar.gz:
这是linux tar文件,需要解压在linux机器。这是主要tar文件IPNC RDK安装。这个包含在以下文件
预构建二进制文件Dm36x平台
配套文献
源代码构建IPNC的RDK所需
硬件包和BoM,图表和Gerber文件
实用程序文件像凝胶,Nand-programmer等等
2. ImageTuningTool_DM36x_Version2.1.0.zip:
这是一个图像优化工具软件包用于优化IPNC图像质量。需要解压缩和用于Windows电脑。它包含以下
图像优化工具安装程序(imagetunningtool - 2.1安装程序
MCR安装程序(MCRInstaller.exe)。这个需要安装安装图像优化工具
3. GUI_VideoPlayer_SDK_Version2.0.30.zip:
这个SDK工具集,需要开发web GUI屏幕和ActiveX的播放器。这需要解压缩和用于Windows电脑。
GUI文件夹包含所有源代码、文档和公用事业构建web GUI屏幕
播放器文件夹包含所有源代码,文档和msys依从者/公用事业需要构建ActiveX视频播放器
业务Model-v3.1 GUI。pdf包含详细的业务TI和GoDB科技之间的模型
4. UserGuide_IPNC_RDK_DM36x.pdf:
业务Model-v3.1 GUI。pdf包含详细的业务TI和GoDB科技之间的模型
5. Release_Notes_IPNC_RDK_DM36x.pdf:
细节特征补充说,已知问题,版本细节,bug修复等
IPNC_RDK_DM36x_Version3.1.0.tar.gz的安装流程:
1. 拷贝IPNC_RDK_DM36x_Version3.1.0.tar.gz 到你的linux系统安装目录
2. 使用下面的命令将文件解压
tar -zxvf IPNC_RDK_DM36x_Version3.1.0.tar.gz
成功将命令解压,文件将生成
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. 运行文件 “PrivateTI_IPNC_RDK_DM36x_v3.1.0-Linux-x86-Install.bin”
通过安装保护在一个特定的安装目录。
./PrivateTI_IPNC_RDK_DM36x_v3.1.0-Linux-x86-Install.bin
他将会安装 PrivateTI_IPNC_RDK_DM36x_v3.1.0.tar.gz 在选择的位置
用户需要接受许可成功安装
4. 提取/解压文件 “PrivateTI_IPNC_RDK_DM36x_v3.1.0.tar.gz” 在安装目录
tar -zxvf PrivateTI_IPNC_RDK_DM36x_v3.1.0.tar.gz
5. 提取/解压文件 “OpenSrc_IPNC_RDK_DM36x_v3.1.0.tar.gz” 上面的步骤安装目录的上面
tar -zxvf OpenSrc_IPNC_RDK_DM36x_v3.1.0.tar.gz
6. 提取/解压文件 “Appro_IPNC_RDK_DM36x_v3.1.0.tar.gz” 上面的步骤安装目录的上面
tar -zxvf Appro_IPNC_RDK_DM36x_v3.1.0.tar.gz
需要这个将三个文件放到一起解压,如此才能合并. 到此安装完成。
第二步: 修改下面位置的 Rules.make
/Source/ipnc_rdk
如:/Release/Source/ipnc_rdk
参考下面的设置
#SYSTEM := EVM
SYSTEM := IPNC
#这是用于选择硬件平台
#IPNC_PLATFORM := DM365
IPNC_PLATFORM := DM368
#这是用于选择芯片ID
#FILESYS_MODE := NFS
FILESYS_MODE := NAND
#这是用于选择模式运行的文件系统
IMGS_ID := IMGS_MICRON_MT9P031_5MP
#这是选择使用的传感器类型
13)如果你的登录并不是root模式,然后使用以下命令登录在安装过程中避免错误
(我的是root模式登录的不需要修改了)
chmod -R a+rwx < IPNC_INSTALL_DIR >
chown -R < IPNC_INSTALL_DIR >
where,
< useracct > 是你的宿主LINUX电脑上用户的登录ID。
< IPNC_INSTALL_DIR > 您设置的目录在 Rules.make.
14) 移动到Rules.make所在的安装目录
cd $(IPNC_INSTALL_DIR)/ipnc_rdk
例如: cd/Release/Source/ipnc_rdk
15) 使用下面的命令编译:
make sysall
他会拷贝到linux 内核 < TFTP_HOME > 目录下生成“uImage_ipnc_dm36x”.
此外,它使波形的的副本到 ti davinci/arch/arm/boot/ 目录下的文件 uImage.
同时,也会将所有IPNC文件可执行文件复制到文件系统,提到到输出目录位于(EXEC_DIR)设置
$(installDir)/Rules.make
说明:可以使用以下命令基于期望的功能:
IPNC增量构建的应用程序 -- “make”
清除IPNC应用程序构建 -- “make clean”
重建整个IPNC应用程序 -- “make all”
对于增量Linux构建 -- “make lsp”
清除Linux构建 -- “make lspclean”
重建整个Linux -- “make lspall”
对于增量DVSDK构建 -- “make dvsdk”
清除DVSDK构建 -- “make dvsdkclean”
重建整个DVSDK -- “make dvsdkall”
增量构建的系统 -- “make sys”
干净的系统构建 -- “make sysclean”
重建整个系统 -- “make sysall”
“make”命令将只包括构建IPNC应用程序。
“av_capture”和“ipnc_app”文件夹中。它还将复制所有IPNC文件可执行文件到文件系统
“sysall” ,”sysclean” and “sys” 构建选项将构建DVSDK,Linux和IPNC应用程序
17)可以使用以下命令生成的文件系统:
make squashfs
这将从< TFTP_HOME > 目录下复制的文件系统 “ipnc_dm36x_squashfs”
PS: 整个包是安装了ubuntu 10.04 LTS的构建和测试在主机电脑
我们建议用户检查之前,创建一个链接后安装Linux操作系统电脑方面避免编译时错误
执行make sysall 出现错误,显示交叉编译器没有安装
第三步:安装CCS交叉编译器 arm_v5t_le-
执行安装:(选择安装在 /opt/mv_pro_5.0.0目录下)
./mvl_5_0_demo_sys_setuplinux.bin
解压tar -xvf mvltools5_0_0801921_update.tar.gz
最后查看 ls /opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc
第四步: 设置交叉编译器环境变量:
cd /root
gedit .bashrc
在最后一行添加:
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"
保存
source .bashrc //命令立即生效
第五步: 修改配置文件Rules.make
进入/home/zslf/dm368/dvsdk_dm368_4_02_00_06/psp/Release/Source/ipnc_rdk#
执行 gedit Rules.make
更改第75行,将
BUILD_TOOL_DIR := /data/datalocal_videoapps01/ipnc_tools/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le
改为:BUILD_TOOL_DIR := /opt/mv_pro_5.0.0/montavista/pro/devkit/arm/v5t_le
自动编译uboot
切换到【解压目录】/Release/Source/ipnc_rdk下使用下列命令编译安装:
make uboot clean
make uboot
编译完成后,会自动将uboot_xxxx.bin文件复制到【解压目录】
/Release/Source/ipnc_rdk/Rules.make文件中
TFTP_HOME所标示的tftp目录下。
手动编译 uboot
切换到【解压路径】/Release/Source/dvsdk_ipnctools/ipnc_psp_03_21_00_04/u-boot目录下
使用下列命令编译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-
手动内核编译
切换到【解压路径】/Release/Source/dvsdk_ipnctools/ipnc_psp_03_21_00_04/ti-davinci目录,使用命令:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- distclean
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- clean
清空源配置文件和原编译文件;
使用下列命令之一复制默认的配置文件:
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
使用下列命令修改配置:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- menuconfig
使用下列命令进行内核编译:
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- uImage
编译时,如果提示无规则生成csl.o/ drv.o / edmak.o / irqk.o / dm365mmap.o / cmemk.o,请将编译好的csl.o& drv.o & edmak.o & irqk.o & dm365mmap.o &cmemk.o文件复制到【解压路径】Release/Source/dvsdk_ipnctools/ipnc_psp_03_21_00_04/ti-davinci/drivers/char/目录下,这些文件请到【解压路径】
/Release/Source/dvsdk_ipnctools/linuxutils_2_26_02_05/packages/ti/sdo/linuxutils/目录和【解压路径】/Release/Source/dvsdk_ipnctools/dm365mm-module_01_00_03/module/目录和【解压路径】/Release/Source/ipnc_rdk/av_capture/framework/目录去找。
编译完成后,内核文件uImage在【解压路径】
/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
然后编译的时候会出错
find . -name drv_audio.c
./av_capture/framework/drv/usermod/src/drv_audio.c
我将这个alsa/asoundlib.h 注释掉再试试
在ipnc_app/sys_server/src/av_server_ctrl.c
有两个参数pConfig -> nVideocodecmode 和pConfig -> nVideocodecres
其中,pConfig -> nVideocodecmode是设置编码方式的,
pConfig -> nVideocodecres 是设置分辨率信息的
例如: ./av_server.out DM368 NTSC 1080P H264 4000000 VBR AUTO MENUOFE & InitAV_Server begin
应用程序编译完生成文件在 /opt/ipnc_rdk/target/filesys/opt/ipnc
执行脚本
#! /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
就是系统本身的IP。可在没联网情况下用于网络测试。
比如我的电脑做为网页服务器,但我没联网,没有内网和外网IP。就可以在浏览器中输入127.0.0.1测试。
1. 内核添加MT9P031
make menuconfig
Prompt: mt9p031 support Location: -> Kernel configuration -> Device Drivers -> Multimedia support (MEDIA_SUPPORT [=y]) -> Video capture adapters (VIDEO_CAPTURE_DRIVERS [=y])
2. 在 /arch/arm/mach-davinci/board-dm368-leopard.c:下的 static struct vpfe_subdev_info vpfe_sub_devs
添加MT9P031
uboot启动信息
(11设置U.boot参数:
#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
注意,这里需要设置oper mode为0,表示IPIPE Resizer的模式为Continuous Mode,
同时设置device 为1,表示采集设备为.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表示使用TVP5146采集
davinci_capture.device_type=1表示使用MT9P031采集,
davinci_capture.device_type=2表示使用TVP7002采集
问题解决:
我是在内核中去除掉的,在board-dm368-ipnc.c文件中:
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,
};
|
|