大家好,又见面了,我是你们的朋友全栈君。
参看:Appro DM36x IPNC 4.0 开发环境配置
第一步: 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
<installDir>/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 <useracct> < 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-
下载链接:http://pan.baidu.com/s/1hrwP5Uc 密码:ydpk
执行安装:(选择安装在 /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,
};
IPNC 设置
Hi Marko,
Thanks for your help. Late last night I tried the same thing, and deleting the .depend file worked. I only had one. For the benefit of those about to try SDK 5.0, here are the steps needed from a clean Linux install (I used Ubintu 12.04):
For the benefit of those seeking help later, the following are the steps needed in addition to the User’s Guide to build the SDK:
1) Install Ubuntu 12.04 LTS 32-bit (didn’t try the 64-bit version)
2) Install Bison (needed to build SDK)
3) Install Flex (needed to build SDK)
4) Install acl library (needed to build file system) (sudo apt-get install libacl1-dev)
5) Install zlib library (needed to build file system) (sudo apt-get install zlib1g-dev)
6) Install lzo library (needed to build file system) (sudo apt-get install liblzo2-dev)
7) Install uuid library (needed to build file system) (sudo apt-get install uuid-dev)
8) Enable “su” (sudo passwd root)
9) Install SDK per instructions in User’s Guide
10) Version 5.0 of the SDK includes a hidden file that will cause your build to fail. Using whatever file manager your choose (for example, Nautilus under Ubuntu 12.04), enable viewing of hidden files (View | Show Hidden Files), navigate to <whatever your IPNC install directory>/Source/ipnc_rdk/ipnc_app/network/boa-0.94.13/src. Locate the file .depend and delete ONLY this one file.
10) As “su”, move to your target directory, (cd <whatever your IPNC install directory>/Source/ipnc_rdk/target), and un-tar the filesystem (tar -zxvf filesys_ipnc_dm36x.tar.gz)
11) As “su”, run “make sysall” per the instructions in the User’s Guide.
11) If the make fails with uImage not being built, the mkimage file cannot be accessed. As “su”, cp <whatever your IPNC install directory>/dvsdk_ipnctools/ipnc_psp_03_21_00_04/u-boot/tools/mkimage /usr/bin/mkimage (note: the name of the ipnc_psp directory in this command may change based on version number, see Rules.make
12) re-run “make sysall” (if necessary)
13) After the “make sysall” completes, the file system needs to be built. The User’s Guide indicates this can be done with “make ubifs”, however the makefile for this is broken. “make ubifsall” was an option in Version 4.1 of the SDK, but this has been removed, as the binaries for creating the file system have been pre-built and no source is provided. These binaries are not true Linux executables and do not accept leading path names, which breaks the makefile. My workaround is to copy the binaries mkfs.ubifs and ubinize from <whatever your IPNC install directory>/Source/ipnc_rdk/target/mtd-utils/64bit to <whatever your IPNC install directory>/Source/ipnc_rdk, and edit the makefile located in <whatever your IPNC install directory>/Source/ipnc_rdk as follows:
Under the label ubifs:
Change this –
ubifs:
ifeq ($(HARDWARE_CFG), dm365)
(UBIFS_PATH)/mkfs.ubifs -r (TARGET_FS) -m 512 -e 15360 -c 1662 -o ubifs.img
(UBIFS_PATH)/ubinize -o (SYSTEM_CFG)_(HARDWARE_CFG)_ubifs -m 512 -p 16KiB (HARDWARE_CFG)_ubinize.cfg
else
(UBIFS_PATH)/mkfs.ubifs -r (TARGET_FS) -m 2048 -e 126976 -c 313 -o ubifs.img
(UBIFS_PATH)/ubinize -o (SYSTEM_CFG)_(HARDWARE_CFG)_ubifs -m 2048 -p 128KiB (HARDWARE_CFG)_ubinize.cfg
endif
To this –
ubifs:
ifeq ($(HARDWARE_CFG), dm365)
mkfs.ubifs -r $(TARGET_FS) -m 512 -e 15360 -c 1662 -o ubifs.img
ubinize -o (SYSTEM_CFG)_(HARDWARE_CFG)_ubifs -m 512 -p 16KiB
else
mkfs.ubifs -r $(TARGET_FS) -m 2048 -e 126976 -c 313 -o ubifs.img
ubinize -o (SYSTEM_CFG)_(HARDWARE_CFG)_ubifs -m 2048 -p 128KiB
endif
Saving the makefile and running “make ubifs” as “su” will now produce the file system, placing it in the proper directory based on your architecture.
I hope this helps…
tftpboot 0x80700000 ubl_432arm_340ddr_ipnc_dm368.bin
nand erase 0x080000 0x08000
nand write 0x80700000 0x080000 0x08000
tftpboot 0x80700000 u-boot-1.3.4-dm368_ipnc.bin
nand erase 0x160000 0x28000
nand write 0x80700000 0x160000 0x28000
tftpboot 0x80700000 diagnostic_ipnc_dm368.bin
nand erase 0x360000 0x30000
nand write 0x80700000 0x360000 0x30000
tftpboot 0x80700000 uImage_ipnc_dm368
tftpboot 0x82000000 ipnc_dm368_ubifs
nand erase 0x500000 0x400000
nand write 0x80700000 0x500000 0x400000
nand erase 0x900000 0x2800000
nand write 0x82000000 0x900000 0x2800000
setenv bootcmd ‘nboot 0x80700000 0 0x500000;bootm
0x80700000′
setenv bootargs ‘mem=48M console=ttyS0,115200n8
noinitrd rw ubi.mtd=3,2048 rootfstype=ubifs
root=ubi0:rootfs cmemk.phys_start=0x83000000
cmemk.phys_end=0x88000000 cmemk.phys_start_1=0x00001000
cmemk.phys_end_1=0x00008000 cmemk.pools_1=1×28672
cmemk.allowOverlap=1 cmemk.useHeapIfPoolUnavailable=1
nohz=off highres=off clocksource=acpi_pm lpj=1077248
eth=$(ethaddr)’
saveenv
reset
setenv bootargs mem=48M console=ttyS0,115200n8 root=/dev/nfs nfsroot=192.168.115.248:/opt/ipnc_rdk/target/filesys rw ip=192.168.115.140:192.168.115.255:192.168.115.1:255.255.255.0 cmemk.phys_start=0x83000000 cmemk.phys_end=0x88000000 cmemk.phys_start_1=0x00001000 cmemk.phys_end_1=0x00008000cmemk.pools_1=1×28672 cmemk.allowOverlap=1 cmemk.useHeapIfPoolUnavailable=1 eth=$(ethaddr)
setenv bootargs mem=48M console=ttyS0,115200n8 noinitrd ip=192.168.2.194:192.168.2.76:192.168.2.1:255.255.255.0 rw ubi.mtd=3,2048 rootfstype=ubifs root=ubi0:rootfs cmemk.phys_start=0x83000000 cmemk.phys_end=0x88000000 cmemk.phys_start_1=0x00001000 cmemk.phys_end_1=0x00008000 cmemk.pools_1=1×28672 cmemk.allowOverlap=1 cmemk.useHeapIfPoolUnavailable=1 nohz=off highres=off clocksource=acpi_pm lpj=1077248 eth=$(ethaddr)
setenv bootargs dm365_imp.oper_mode=0 mem=48M console=ttyS0,115200n8 noinitrd rw ubi.mtd=3 root=ubi0:rootfs rootfstype=ubifs vide0=davincifb:vid0=OFF:vidl=OFF:osd0=720x576x16,4050K dm365_imp.oper_mode=0 davinci_capture.device_type=l vpfe_capture.interface=l vpfe_capture.cont_bufsize=6291456 ;
./encode -zxl -v t.264 -I 4 -y 3 -b 1000 -f -w
./encode -v t.264 -I 1 -y 2
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/170236.html原文链接:https://javaforall.cn