This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DM6446 problem with rebuilding software

Hi

I've been asked to get a DM6446 development board running to implement custom video processing algorithms.  For the past few weeks I've been battling though Linux setups (which I know virtually nothing about), and now I'm working my way through the GSG (v1.30).  I'm working on SUSE 10.3, as that was that another developer who worked on the system suggested (I really hope that is not going to be a problem...)  After a lot of problems (which included the little typo in the GSG and code that had hidden spaces, etc), I have been able to get everything done up until section 4.6. There is no way I would have gotten this far without this forum, so thanks a lot for that!

But I'm stuck once again:  I've finally managed to get to section 4.6 (Rebuilding the DVSDK software for the Target) but when I run the make command, I get the following error:

Making all in subdirectory /home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module...
make[1]: Entering directory `/home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module'
make -C /home/andre/workdir/lsp/ti-davinci M=`pwd` ARCH=arm CROSS_COMPILE=/opt/mv_pro_4.0/montavista.pro/devkit/arm/v5t_le/bin/arm_v5t_le- \
                EXTRA_CFLAGS="-DUSE_UDEV=1 -DMAX_POOLS=128" modules
make[2]: Entering directory `/home/andre/workdir/lsp/ti-davinci'
  CC [M]  /home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.o
/bin/sh: /opt/mv_pro_4.0/montavista.pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc: No such file or directory
make[3]: *** [/home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.o] Error 1
make[2]: *** [_module_/home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module] Error 2
make[2]: Leaving directory `/home/andre/workdir/lsp/ti-davinci'
make[1]: *** [release] Error 2
make[1]: Leaving directory `/home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module'
make: *** [/home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module] Error 2

In another thread on this forum (https://community.ti.com/forums/p/6538/25027.aspx#25027) Ron seems to have picked up the same error.  But I've had a look at all the paths in the Rules.make and I cannot find anything wrong.  Being a complete novice, I used the default and/or recommended install directories.  Here is my Rules.make:

PLATFORM=dm6446
ifndef PLATFORM
   $(error PLATFORM must be set in Rules.make to dm355 or dm6446 before building the demos)
endif

# The installation directory of the DVSDK  dvsdk_1_30_01_41.
DVSDK_INSTALL_DIR=$(HOME)/dvsdk_1_30_01_41

# For backwards compatibility
DVEVM_INSTALL_DIR=$(DVSDK_INSTALL_DIR)

# Where the Codec Engine package is installed.
CE_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/codec_engine_2_00_01

# Where the XDAIS package is installed.
XDAIS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/xdais_6_00_01

# Where the DSP Link package is installed.
LINK_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dsplink_140-05p1

# Where the CMEM (contiguous memory allocator) package is installed.
CMEM_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/cmem_2_00_01

# Where the codec servers are installed (dm6446) or codecs (dm355)
ifneq ($(PLATFORM),dm355)
   CODEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dm6446_dvsdk_combos_1_35
else
   CODEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dm355_codecs_1_12_003
endif

# Where the RTSC tools package is installed.
XDC_INSTALL_DIR=$(HOME)/xdc_3_00_02

# Where Framework Components product is installed
FC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/framework_components_2_00_01

# Where DSP/BIOS is installed
BIOS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/bios_5_31_08

# The directory that points to your kernel source directory.
LINUXKERNEL_INSTALL_DIR=$(HOME)/workdir/lsp/ti-davinci

# The prefix to be added before the GNU compiler tools (optionally including
# path), i.e. "arm_v5t_le-" or "/opt/bin/arm_v5t_le-".
#  MVTOOL_DIR=/opt/mv_pro_4.0/montavista.pro/devkit/arm/v5t_le  -> Ou waardes
#  MVTOOL_PREFIX=$(MVTOOL_DIR)/bin/arm_v5t_le-                        -> Ou Waardes
MVTOOL_DIR=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le
MVTOOL_PREFIX=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le

# Where to copy the resulting executables and data to (when executing 'make
# install') in a proper file structure. This EXEC_DIR should either be visible
# from the target, or you will have to copy this (whole) directory onto the
# target filesystem.

#EDITED ANDRE: EXEC_DIR=$(HOME)/workdir/filesys/opt/dvsdk/$(PLATFORM)
EXEC_DIR=$(HOME)/workdir/filesys/opt/dvsdk/dm6446

The other problem/question I've got is that the EXEC_DIR path points to a directory in : /home/andre/workdir/filesys/opt/dvsdk/dm6446, but my system only has a directory structure down to /home/andre/workdir/filesys/opt.  Is this a problem, or will it be fixed if I run the make install command once the make command is succesful?

Can someone please help me?

  • AndreC said:
    /bin/sh: /opt/mv_pro_4.0/montavista.pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc: No such file or directory

    This implies that you are either missing your cross compiler (i.e. the C compiler for the ARM) or that the path to get to it is wrong. Does the path and file "/opt/mv_pro_4.0/montavista.pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc" exist on your host machine? If it does not exist as exactly that path and file name than you may need to make an adjustment in the Rules.make file to point to where you do have the compiler installed, and if you do not have the compiler installed at all than you need to install it as discussed earlier on in the GSG (this comes from one of the MVL install binaries).

    AndreC said:
    The other problem/question I've got is that the EXEC_DIR path points to a directory in : /home/andre/workdir/filesys/opt/dvsdk/dm6446, but my system only has a directory structure down to /home/andre/workdir/filesys/opt.  Is this a problem, or will it be fixed if I run the make install command once the make command is succesful?

    I beileve the make install command will generate these directories for you. All this EXEC_DIR path is doing is telling the make install command where to copy the binaries you build, so it should not effect your current build error.

  • Thanks for the super quick reply!  The directory and file /opt/mv_pro_4.0/montavista.pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc does exist, together with a lot of other arm_v5t_le files in that directory.  Is there possibly another location where the compiler can be located?  I did manage to run the "hello world" example as described in the GSG, which means that the compiler works, doesn't it?

  • FYI, the difference between sucessfully running hello world program and building DVSDK is that hello world relies on your host's PATH evironment variable, whereas the DVSDK relies on Rules.mak (many more paths).  If you are able to build hello world program and run it on target EVM (just to ensure you built it with proper compiler), than I would say you have to right tool-chain installed; can you build Linux Kernel (should rely on PATH variable) per GSG instructions?

  • Yes, as far as I know  I can succesfully build the linux kernel (section 4.5 of the GSG).  It doesn't come up with any error messages after I run each of the make ARCH=arm CROSS_COMPILE=arm_v5t_le- ... commands.  How can I reinstall the compiler to see if that works?  Also, when running the make command, do I need to be logged in on the EVM? 

  • If you sre following the GSG, than make command are typically executed on Linux Host (not target EVM).  This does not mean that some programs (e.g. hello.c) cannot be built in target EVM but the build time is relatively much longer than it would be to build on Linux host; therefore it is very typical to use Linux host as the build platform.

    That said, the ARM tool chain for DVSDK 1.30 comes in a file named "mvl_4_0_1_demo_sys_setuplinux.bin", you could install this again if you think it would help, but if you are able to build and run hello.c, the tool-chain is likely ok.

  • I found the error, and as expected it was a typo.  Where I changed the path in the Rules.make, I accidentally left out the hyphen at the end eg. MVTOOL_PREFIX=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-.  Amazing how big an effect a "-" can have, and because it is right in the end of the path it took me a very long time to trace it!

    But the system still does not compile.  It gets a lot further than it did in the past, but now it complains about a different path.  It looks like the same error message, but pointing to a different path which makes me think it is another path error in Rules.make or in the PATH variable.  I did ask earlier whether the fact that my /home/andre/workdir/filesys/opt/dvsdk/dm6446 directory is empty is a problem, and now it seems like this is where the error lies?

    Here is the log. There seems to be irregularities and errors all over the place now:

    Making all in subdirectory /home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module...
    make[1]: Entering directory `/home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module'
    make -C /home/andre/workdir/lsp/ti-davinci M=`pwd` ARCH=arm CROSS_COMPILE=/opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le- \
                    EXTRA_CFLAGS="-DUSE_UDEV=1 -DMAX_POOLS=128" modules
    make[2]: Entering directory `/home/andre/workdir/lsp/ti-davinci'
      CC [M]  /home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.o
      Building modules, stage 2.
      MODPOST
      CC      /home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.mod.o
      LD [M]  /home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module/cmemk.ko
    make[2]: Leaving directory `/home/andre/workdir/lsp/ti-davinci'
    make[1]: Leaving directory `/home/andre/dvsdk_1_30_01_41/cmem_2_00_01/packages/ti/sdo/linuxutils/cmem/src/module'

    Making all in subdirectory demos/dm6446...
    make[1]: Entering directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446'

    Making all in subdirectory utils...
    make[2]: Entering directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils'

    Making all in subdirectory msp430lib...
    make[3]: Entering directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/msp430lib'
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall  -c -g -D__DEBUG -o debug/msp430lib.o msp430lib.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-ar rc ../lib/msp430libd.a debug/msp430lib.o
    Installing headers...
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall  -c -O2 -fno-strict-aliasing -o release/msp430lib.o msp430lib.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-ar rc ../lib/msp430lib.a release/msp430lib.o
    make[3]: Leaving directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/msp430lib'

    Making all in subdirectory simplewidget...
    make[3]: Entering directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/simplewidget'
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -g -D__DEBUG -o debug/font.o font.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -g -D__DEBUG -o debug/gfx.o gfx.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -g -D__DEBUG -o debug/jpeg.o jpeg.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -g -D__DEBUG -o debug/png.o png.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -g -D__DEBUG -o debug/simplewidget.o simplewidget.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-ar rc ../lib/simplewidgetd.a debug/font.o debug/gfx.o debug/jpeg.o debug/png.o debug/simplewidget.o
    Installing headers...
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -O2 -fno-strict-aliasing -o release/font.o font.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -O2 -fno-strict-aliasing -o release/gfx.o gfx.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -O2 -fno-strict-aliasing -o release/jpeg.o jpeg.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -O2 -fno-strict-aliasing -o release/png.o png.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -Ifreetype2 -c -O2 -fno-strict-aliasing -o release/simplewidget.o simplewidget.c
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-ar rc ../lib/simplewidget.a release/font.o release/gfx.o release/jpeg.o release/png.o release/simplewidget.o
    make[3]: Leaving directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/simplewidget'

    Making all in subdirectory fifoutil...
    make[3]: Entering directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/fifoutil'
    Installing headers...
    make[3]: Leaving directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/fifoutil'

    Making all in subdirectory rendezvous...
    make[3]: Entering directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/rendezvous'
    Installing headers...
    make[3]: Leaving directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/rendezvous'

    Making all in subdirectory timerutil...
    make[3]: Entering directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/timerutil'
    Installing headers...
    make[3]: Leaving directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/timerutil'

    Making all in subdirectory smooth...
    make[3]: Entering directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/smooth'
    /opt/mv_pro_4.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-gcc -Wall -I/home/andre/workdir/lsp/ti-davinci/include -c -I../include -g -D__DEBUG -o debug/smooth.o smooth.c
    smooth.c:10:38: asm/arch/davinci_resizer.h: No such file or directory
    smooth.c: In function `Smooth_create':
    smooth.c:121: error: `RSZ_S_EXP' undeclared (first use in this function)
    smooth.c:121: error: (Each undeclared identifier is reported only once
    smooth.c:121: error: for each function it appears in.)
    smooth.c: In function `Smooth_config':
    smooth.c:136: error: `rsz_params_t' undeclared (first use in this function)
    smooth.c:136: error: parse error before "params"
    smooth.c: At top level:
    smooth.c:186: error: parse error before string constant
    smooth.c:186: warning: type defaults to `int' in declaration of `fprintf'
    smooth.c:186: error: conflicting types for 'fprintf'
    smooth.c:186: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
    smooth.c:186: error: conflicting types for 'fprintf'
    smooth.c:186: note: a parameter list with an ellipsis can't match an empty parameter name list declaration
    smooth.c:186: warning: data definition has no type or storage class
    smooth.c:188: error: parse error before '.' token
    smooth.c: In function `Smooth_execute':
    smooth.c:212: error: `rsz_resize_t' undeclared (first use in this function)
    smooth.c:212: error: parse error before "rsz"
    smooth.c:215: error: `rsz' undeclared (first use in this function)
    smooth.c:216: error: `RSZ_BUF_IN' undeclared (first use in this function)
    smooth.c:221: error: `RSZ_BUF_OUT' undeclared (first use in this function)
    smooth.c:226: error: `RSZ_RESIZE' undeclared (first use in this function)
    smooth.c: At top level:
    smooth.c:39: warning: 'inHeightCalc' defined but not used
    smooth.c:70: warning: 'inWidthCalc' defined but not used
    make[3]: *** [debug/smooth.o] Error 1
    make[3]: Leaving directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils/smooth'
    make[2]: *** [smooth] Error 2
    make[2]: Leaving directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446/utils'
    make[1]: *** [utils] Error 2
    make[1]: Leaving directory `/home/andre/dvsdk_1_30_01_41/demos/dm6446'
    make: *** [demos/dm6446] Error 2

  • AndreC said:
    smooth.c:10:38: asm/arch/davinci_resizer.h: No such file or directory

    I think this is your problem, this implies that your path to your linux source tree is not set correctly somehow, you should have the header in something like /home/user/workdir/lsp/ti-davinci/linux-2.6.18_pro500/include/asm/arch. This being said I would check your LINUXKERNEL_INSTALL_DIR value in the Rules.make to make sure it is pointing to your kernel source tree, for example mine is $(HOME)/workdir/lsp/ti-davinci/linux-2.6.18_pro500, though it looks like you are running an older version so your pathing may be slightly different.

  • Yes I am running a slightly older version of the program, but from what I can tell the only difference in the paths is the linux-2.6.18_pro500 directory.  My include/asm/arch directory is in the ti-davinci directory.  But I had a look at it and I can't find the file davinci_resizer.h, nor could I find it in the opt/mv_pro_4.0/montavista/pro/devkit/lsp/ti-davinci/include/asm/arch directory.  Any ideas where I can go and search for missing header files, and why would that one be missing?   I did try a search for the file but couldn't find it on the computer (admittedly my experiences with linux find functions haven't been the greatest), but I really don't think that file is here!

  • AndreC said:
    My include/asm/arch directory is in the ti-davinci directory.  But I had a look at it and I can't find the file davinci_resizer.h, nor could I find it in the opt/mv_pro_4.0/montavista/pro/devkit/lsp/ti-davinci/include/asm/arch directory.  Any ideas where I can go and search for missing header files, and why would that one be missing? 

    This probably means that there is some versioning discrepancy here (i.e. your LSP install may be older than the rest of your DVSDK is expecting), are you sure everything you installed going through the getting started guide came from the same DVSDK release version (perhaps if you upgraded DVSDK versions)? For DVSDK 1.30.01.41 you should have an LSP installer of 1.20.00.014 (i.e. mvl_4_0_1_demo_lsp_setuplinux_01_20_00_014.bin) which can be found on the Davinci software updates site through www.ti.com/davinciregistration.

    If you have not done much development on the older version you are using and have no other dependencies to it I would recommend migrating to the latest DVSDK version (2.x) which can be found through here, and more specifically here as of today. Note the older version you are using is not available publicly through this site but only through the EVM registration site mentioned above.

  • Thanks for the reply... although I was hoping the problem would be easier to fix.   I have not done any development so it would then probably be best to start fresh now.  So am I correct in saying I will have to start completely from scratch, and use the following files that  can be downloaded from your site:

    DVSDK 2_00_00_22

    LSP 02_00_00_140

    Do I also need the following files or can I use the older files that I have at the moment?

    DM6446 CODECS FOR 2_00_00_22

    overlay.tar.gz

    DM6446 A/V Data

    MVL 5.0 Tools

    XDC Tools

    Codegen Tools

    DSP/BIOS Installer

  • I think the only file that you would be able to keep is the A/V data, I believe all the other software components have had revisions between the 1.30 and 2.00 DVSDK releases. The DVSDK and LSP are some of the most important though, however the MVL 5.0 tools will also be critical (1.30 -> 2.00 DVSDK marked the migration to Monta Vista 5.0, this is probably the biggest change). In general I would just download all of them to be on the safe side and be certain you have everything you will need to build and develop.

  • Ok.  I'll start from scratch then and download all the new files.  Is there going to be a problem with the new software on the old hardware DM6446 development board?

  • AndreC said:
    Is there going to be a problem with the new software on the old hardware DM6446 development board?

    There should not be, my understanding is that there are no hardware differences in the EVM that impact the software stack currently, the board I use is fairly old, a rev D, and the latest software still works. I believe it even runs on the pre beta boards, though I have not tried that myself.

  • So a couple of months later I'm apparently still stuck with exactly the same problems... I can't complete section 4.3.8 of the GSGv2, because the system comes up with the FATAL :Kernel too old (characters scrambled) error message.  So from what I understand I need a newer kernel.  I have tried booting from the uImage-dm6446 file found in /dvsdk_2_00_00_22/PSP_02_00_00_140/bin/dm6446 directory, but that did not seem to solve my problems either.  So now I'm skipping section 4.3 in an attempt to build a new kernel.  All goes  well with section 4.5 until I need to execute the following command:

    make ARCH=arm CROSS_COMPILE=arm_v5t_le- uImage.

    This returns the errors:

    ...

    make: arm_v5t_le-gcc: Command not found
      CHK     include/linux/version.h
      UPD     include/linux/version.h
      SYMLINK include/asm-arm/arch -> include/asm-arm/arch-davinci
      Generating include/asm-arm/mach-types.h
      CHK     include/linux/utsrelease.h
      UPD     include/linux/utsrelease.h
      SYMLINK include/asm -> include/asm-arm
      CC      arch/arm/kernel/asm-offsets.s
    /bin/sh: arm_v5t_le-gcc: not found
    make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 127

    make: *** [prepare0] Error 2

     

    To me it looks like it can't find the arm_v5t_le-gcc compiler, yet I have checked my Rules.make file and it looks alright:

     

    # This make variable must be set before the DVSDK components can be built.
    PLATFORM=dm6446
    ifndef PLATFORM
       $(error PLATFORM must be set in Rules.make to dm355, dm6467 or dm6446 before building)
    endif

    # The installation directory of the DVSDK
    DVSDK_INSTALL_DIR=/home/andre/dvsdk_2_00_00_22

    # For backwards compatibility
    DVEVM_INSTALL_DIR=$(DVSDK_INSTALL_DIR)

    # Where the DVSDK demos are installed
    DEMO_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dvsdk_demos_2_00_00_07

    # Where the Digital Video Test Bench is installed
    DVTB_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dvtb_4_00_08

    # Where the Davinci Multimedia Application Interface is installed
    DMAI_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dmai_1_20_00_06

    # Where the Codec Engine package is installed.
    CE_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/codec_engine_2_23_01

    # Where the XDAIS package is installed.
    XDAIS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/xdais_6_23

    # Where the DSP Link package is installed.
    LINK_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dsplink-1_61_03-prebuilt

    # Where the CMEM (contiguous memory allocator) package is installed.
    CMEM_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/linuxutils_2_23_01

    # Where the EDMA3 Low Level Driver is installed.
    EDMA3_LLD_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/edma3_lld_1_05_00

    ifeq ($(PLATFORM),dm6467)
       CODEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dm6467_dvsdk_combos_2_05
    endif
    ifeq ($(PLATFORM),dm6446)
       CODEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dm6446_dvsdk_combos_2_05
    endif
    ifeq ($(PLATFORM),dm355)
       CODEC_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/dm355_codecs_1_13_000
    endif

    # Where the RTSC tools package is installed.
    XDC_INSTALL_DIR=/home/andre/dvsdk_2_00_00_22/xdctools_3_10_03

    # Where Framework Components product is installed
    FC_INSTALL_DIR=/home/andre/dvsdk_2_00_00_22/framework_components_2_23_01

    # Where DSP/BIOS is installed
    BIOS_INSTALL_DIR=/home/andre/dvsdk_2_00_00_22/bios_5_33_03

    # BIOS Utilities
    BIOSUTILS_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/biosutils_1_01_00

    # Additional RTSC package repositories to be picked up by components.
    USER_XDC_PATH=$(CE_INSTALL_DIR)/examples
    #above works around DMAI path bug

    # Where the TI c6x code generation tools are installed
    #CODEGEN_INSTALL_DIR=$(HOME)/cg6x_6_0_21
    CODEGEN_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/cg6x_6_0_21

    # Platform Support Package installation directory.
    PSP_INSTALL_DIR=$(DVSDK_INSTALL_DIR)/PSP_02_00_00_140

    # The directory that points to your kernel source directory.
    LINUXKERNEL_INSTALL_DIR=/home/andre/workdir/lsp/ti-davinci/linux-2.6.18_pro500

    # The prefix to be added before the GNU compiler tools (optionally including
    # path), i.e. "arm_v5t_le-" or "/opt/bin/arm_v5t_le-".
    #MVTOOL_DIR=/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le
    #MVTOOL_PREFIX=$(MVTOOL_DIR)/bin/arm_v5t_le-
    MVTOOL_DIR=/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le
    MVTOOL_PREFIX=/opt/mv_pro_5.0/montavista/pro/devkit/arm/v5t_le/bin/arm_v5t_le-

    # Where to copy the resulting executables and data to (when executing 'make
    # install') in a proper file structure. This EXEC_DIR should either be visible
    # from the target, or you will have to copy this (whole) directory onto the
    # target filesystem.
    #EXEC_DIR=$(DVSDK_INSTALL_DIR)/install/$(PLATFORM)
    EXEC_DIR=/home/andre/workdir/filesys/opt/dvsdk/$(PLATFORM)

    What can be the problem?  The arm_v5t_le-gcc file is located in the directory that the MVTOOL_PREFIX is pointing to.   Last time the suggestion was to get all the new software from the TI website as there may have been version incompatibility problems, but apparently it didn't help me.  How can I check that the arm_v5t_le-gcc file is ok and that the paths are correct?  Are there other paths that I have to set up apart from the Rules.make file or what else can be the problem? 

    Also, how do I update the kernel?  Do I simply load the uImage or uImage-dm6446 file into the /ftpboot directory and follow section A.4.4 ?  Is there another uImage file that I can try?

    Thanks in advance

    Andre

     

  • AndreC said:
    So from what I understand I need a newer kernel.  I have tried booting from the uImage-dm6446 file found in /dvsdk_2_00_00_22/PSP_02_00_00_140/bin/dm6446 directory, but that did not seem to solve my problems either.

    This should work, if it does not than you may not actually be booting the kernel (look for the version number when it boots), or you are inadvertently booting the wrong file system (check that the file system you are booting came from the same DVSDK).

    AndreC said:
    What can be the problem?  The arm_v5t_le-gcc file is located in the directory that the MVTOOL_PREFIX is pointing to.   Last time the suggestion was to get all the new software from the TI website as there may have been version incompatibility problems, but apparently it didn't help me.  How can I check that the arm_v5t_le-gcc file is ok and that the paths are correct?  Are there other paths that I have to set up apart from the Rules.make file or what else can be the problem? 

    This likely stems from a problem in your PATH environment variable on your host PC that you are building with. Similar to U-Boot you can run printenv to see your current environment variables on your Linux host, however since there are probably a lot of them and we only care about PATH for this you can run echo $PATH to see where Linux will search to find your various applications. In here you need to have the path to the MVL tools much like in your rules.make, if it is set correctly you should be able to run arm_v5t_le-gcc -v from any directory and not get a command not found error. This should have been set up during the GSG process, in particular the setting up the build environment step, though this is a common source of confusion for beginners because you have to edit your .bashrc file to make the change to PATH stay around for new terminal sessions.

    AndreC said:
    Also, how do I update the kernel?  Do I simply load the uImage or uImage-dm6446 file into the /ftpboot directory and follow section A.4.4 ?  Is there another uImage file that I can try?

    The easiest way is to TFTP boot and copy the new uImage file into the /tftpboot directory as you suggest, the uImage you get out of the DVSDK install should work, the only other one would be one you build. Make sure you are booting the kernel you think you are by checking the version that is printed just after the kernel is booted (it should show Linux 2.6.18 for the DVSDK 2.00 install).

  • Hi Andre,

    I have perhaps one of the oldest DM6446 EVMs and can run DVSDK 2.00.00.22 on it without any issues, so this should give you some confidence the software works.

    A few things worth mentioning

    1) When you upgrade to a new DVSDK software, you need to upgrade all components (u-boot, uImage, and file-system), keeping in mind that some of these components may be in multiple places (e.g. uImage can be in NAND flash, NOR flash or TFTP).  Failing to upgarde all components often results in software incompatibilities which lead to errors such as "incompatible version" or "version to old" and similar messaging.  Sometimes users get everything updates in one place, say NOR flas, and when they switch over to NAND flash things break and it is hard to detect why... again, keep in mind all components need to be updated and some may be in multiple places.

    2) The reason you cannot find arm_v5t_le-gcc compiler is likely becuase it is not in yout Linux PATH variable (echo $PATH should show how your PATH variable is defined).  In the GSG, you are asked to add the path to the ARM tool chain to your .bashrc file; your .bashrc file runs everytime you open up a new window, so your PATH is updated and you are all good to go.  The Rules.make file is not used to build the Linux Kernel (only components under DVSDK directory).

    The quickest way to get things working in my opinion is to flash new u-boot to NOR or NAND flash, load uImage via TFTP (avoids additional step to copy to flash), and load file-system via NFS (again avoids step to copy file-system to HDD).  These steps are descrinbed in GSG and should get you up and running quickly.  Let us know if you have any additional questions.

     

  • Thanks a lot.  Yes the problem was in my PATH variable.  Because I expected the problem to be the kernel, I jumped straight to trying to compile a new one and in doing so completely missed section 4.4. (setting up the build/development environment).  So after I added the PATH to the .bashrc file, I was able to compile the uImage file.  Unfortunately it didn't seem to solve all my problems.  The system seems to work but returns a message of:

    "mkimage" command not found - U-Boot Images will not be built

    and consequently there is no uImage file in the /home/andre/workdir/lsp/ti-davinci/linux-2.6.18_pro500/arch/arm/boot/ directory after I ran the make command.  How do I correct the problem? 

    At last I was able to boot one of the DaVinci cards (custom built cards but they were working before) we have by booting the uImage-dm6446 file over tftp using NFS.  So I am progressing (slowly... ).  I cannot boot the dm6446 development board yet, but I suspect that I'll be able to do that after playing around with the environment settings.  My last question for now is which uImage file I should aim to use for a boot.  Is the uImage-dm6446 file  from the PSP_2_00_00_140 directory good enough, should I be able to compile my own and where is the default uImage file located should I wish to boot from that one over tftp?

  • AndreC said:

    Thanks a lot.  Yes the problem was in my PATH variable.  Because I expected the problem to be the kernel, I jumped straight to trying to compile a new one and in doing so completely missed section 4.4. (setting up the build/development environment).  So after I added the PATH to the .bashrc file, I was able to compile the uImage file.  Unfortunately it didn't seem to solve all my problems.  The system seems to work but returns a message of:

    "mkimage" command not found - U-Boot Images will not be built

    and consequently there is no uImage file in the /home/andre/workdir/lsp/ti-davinci/linux-2.6.18_pro500/arch/arm/boot/ directory after I ran the make command.  How do I correct the problem? 

    I think this is still a problem with your PATH variable, verify you have a path in PATH to /opt/mv_pro_5.0/montavista/pro/bin, there should be a mkimage file in there.

    As a side note for future users, the mkimage command comes from a U-Boot build, though in the case of a MontaVista install like this it already exists for you in the path above.

    AndreC said:
    Is the uImage-dm6446 file  from the PSP_2_00_00_140 directory good enough, should I be able to compile my own and where is the default uImage file located should I wish to boot from that one over tftp?

    For starters it is good enough, it is a fine default kernel to start with on the EVM. In the long run you will probably want to be able to compile your own kernel however, since it gives you more control over the various kernel options as well as the capability to modify it with your own code for custom hardware.