DM368开发 --IPNC 设置过程
參看: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??$(HARDWARE_CFG)_ubinize.cfg?
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??$(HARDWARE_CFG)_ubinize.cfg?
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=1x28672
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=1x28672?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=1x28672?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
總結
以上是生活随笔為你收集整理的DM368开发 --IPNC 设置过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (二)注册服务提供者
- 下一篇: 产品经理如何利用ER图,指导原型设计?