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.

Building GStreamer, where should ZLIB be?

Well, I followed the instructions in GSG: DVEVM Software Setup for DM3ss Platforms thant told me to download linuxlibs-####.##-armv5te.tar.gz and then said:

  1. Unpack the PSP pre-compiled Linux libraries package as follows. It puts the library headers in linuxlibs-####.##-armv5te/include directory and pre-compiled libraries in linuxlibs-####.##-armv5te/lib directory.
host $ tar -xzf linuxlibs-####.##-armv5te.tar.gz -C /home/user/dvsdk

And sure enough, there is a
linuxlibs-####.##-armv5te (linuxlibs-2009.11-armv5te) under my $HOME/dvsdk firectory.  

And then I did:

  1.  
    • Make sure LINUXLIBS_INSTALL_DIR points to the extracted PSP pre-compiled Libraries.

LINUXLIBS_INSTALL_DIR=/home/user/dvsdk/linuxlibs-####.##-armv5te


All well and good.

Then I stumbled across
Community Linux DVEVM Software Setup that has different build instructions
including downloading
arago-2009.09-armv5te-linux-gnueabi-sdk.tar.gz,
and these instructions:

4) Unpack the Linux SDK

host $ tar -xzf arago-2009.09-armv5te-linux-gnueabi-sdk.tar.gz -C /home/user/dvsdk

It creates SDK in /home/user/dvsdk/opt/arago-2009.09 directory. The path to the Linux libraries is /home/user/dvsdk/opt/arago-2009.09/arago-armv5te-linux-gnueabi-sdk/arm-none-linux-gnueabi/usr.


OK.  It also says:

And LINUXLIBS_INSTALL_DIR points to the extracted SDK

LINUXLIBS_INSTALL_DIR=/home/user/dvsdk/opt/arago-2009.09/arm-none-linux-gnueabi/usr


Well, which do I use?  I went with LINUXLIBS_INSTALL_DIR=/home/user/dvsdk/linuxlibs-####.##-armv5te

Now, I go to add Gstreamer to my build (DVSDK 3.10).  Following the instructions in
https://gstreamer.ti.com/gf/project/gstreamer_ti/scmsvn/?action=browse&path=/trunk/gstreamer_ti/README.TXT&view=markup

I got down to:
make all install VERBOSE=true and it failedI changed to
LINUXLIBS_INSTALL_DIR=/home/user/dvsdk/opt/arago-2009.09/arm-none-linux-gnueabi/usr
and got the same error:

*** You must first install zlib (libz) before you can build this package.
*** If zlib is already installed, you may need to use the CPPFLAGS
*** environment variable to specify its installed location, e.g. -I<dir>.

I found a forum posting at http://e2e.ti.com/support/embedded/f/354/p/36411/170102.aspx
that suggests I need the second setting for LINUXLIBS. 

When I do a locate libz I get this (and a lot more):

/home/wmiller/dvsdk/dvsdk_3_10_00_19/xdctools_3_16_01_27/jre/lib/i386/libzip.so
/home/wmiller/dvsdk/linuxlibs-2009.11-armv5te/lib/libz.la
/home/wmiller/dvsdk/linuxlibs-2009.11-armv5te/lib/libz.so
/home/wmiller/dvsdk/linuxlibs-2009.11-armv5te/lib/libz.so.1
/home/wmiller/dvsdk/linuxlibs-2009.11-armv5te/lib/libz.so.1.2.3
/home/wmiller/workdir/filesys/usr/lib/libz.so.1
/home/wmiller/workdir/filesys/usr/lib/libz.so.1.2.3

So, what is the right thing to do?  Which INUXLIBS should I be using?  Is the idea to
overlay the two PSPs?

Thanks for any help!

Wes









)



  • Wes,

    To use GStreamer with DVSDK 3.10, you need to:

    1)  Install DVSDK 3.10 and follow the GSG.  For DVSDK 3.10 I would not follow the Community Linux DVEVM page you stumbled across -- the first GSG that you followed was linked from the DVSDK 3.10 page, so you should follow that one.  Did you try building GStreamer with the first way you had it set up before you changed it?

    2)  Get the latest trunk code from gstreamer.ti.com.  The 1.01 release doesn't support DVSDK 3.10 -- you need the latest from the trunk.

    3)  Before building GStreamer, make sure you go through the README.TXT that get's checked-out with the source code, and pay special attention to the section titled "Special Notes:  DVSDK 3.10".

    Does that work better?  I think the main problem you're having is that you came across a wiki page by accident that was not intended for DVSDK 3.10, and this made you set your LINUXLIBS_INSTALL_DIR incorrectly, causing the zlib issue.

    Let me know how this goes, and if you still have problems you may also want to try the forums on gstreamer.ti.com.

    Thanks and regards,
    Don

     

  • Thanks Don, I'll go try it again.


    While I was struggling with  this, I got pointed to the git for the latest arago kernel (http://arago-project.org/git/projects/?p=linux-davinci.git).  I downloaded the latest snapshot and unpacked into a linux-davinci director under which the structure looks just like the $HOME/dvsdk/git directory.  I saved the old git directory to $HOME/dvsdk/old-git and just copied in the linux-davinci as $HOME/dvsdk/git. 

     

    Is that the correct way to use a new kernel snapshot image?  When I build/boot with it, It runs ok but /opt/gstreamer-demo/dm365/loadmodules.sh spits up a lot of mod mismatches and format errors.

     

    Thanks,  I've never done much kernel stuff and certainly not cross-architecture stuff so I really appreciate the hand-holding!

     

    Wes

     

  • Wes,

    If you're using a new kernel source tree and the modules won't load, typically you would:

    1)  Make sure LINUXKERNEL_INSTALL_DIR is updated to point at the new kernel tree.  It should point to the directory where you see all the top-level kernel files like "COPYING", "CREDITS", "MAINTAINERS", etc.

    2)  Re-build the kernel by going to the DVSDK directory and typing "make linux"

    3) Re-build the kernel modules.  The easiest way to do this is by going to the DVSDK directory and typing "make clean; make all".  It might re-build a couple of things you don't need to rebuild as well, but it's easier than building each one individually.  You can always inspect the Makefile to see how to build them one at a time if you want to.  The re-built binaries will be placed in "kernel_binaries/dm365" in the DVSDK directory.

    The next time you build GStreamer, it will copy the new modules to /opt/gstreamer_demo/dm365.  If you wan't to just copy-over the new kernel modules without re-building the whole GStreamer stack, you can change to the main "gstreamer_ti" directory and type "make gstreamer_demo install".

    Best regards,
    Don

     

  • Sorry to be an idiot.  I can find 30 different paths to the  discussion of the changes in the latest trunk, but absolutely no place to download the latest tarball, source tree, whatever.  Where is it?  What is it's version number? (sorry, I learned CMVC not SVN).


    Feeling stupid,


    Wes

  • Sorry to be an idiot.  I can find 30 different paths to the  discussion of the changes in the latest trunk, but absolutely no place to download the latest tarball, source tree, whatever.  Where is it?  What is it's version number? (sorry, I learned CMVC not SVN).


    Feeling stupid,


    Wes

  • Wes,

    RidgeRun is currently working on a tarball for the 1.02 release, which I expect will be available in a week or two (watch the gstreamer.ti.com site for news updates -- there will be a post when it is available).

    Until then, instructions for downloading the latest trunk with SVN are available here:

    https://gstreamer.ti.com/gf/project/gstreamer_ti/scmsvn/?action=AccessInfo

    Best regards,
    Don

     

  • Ahh, helps if you log in.  Found the Access Info and got to

    https://gstreamer.ti.com/gf/project/gstreamer_ti/scmsvn/?action=AccessInfo

    and did a cut---n-paste to a command window.

     

    Do I know this is the latest, i/e/ works with dm365, trunk?

     

    Wes

  • Yep -- that's it.  Latest trunk support for DM365 is targeted at DVSDK 3.10.

    Best regards,
    Don

     

  • Thanks Don.  ONe more question to get me back where I thought I was...

     

    The Special Notes for DVDSK 3.10 in the README.TXT for gstreamer says:

     

    2) Kernel Patches for MMAP Driver Buffers

    ...  For DVSDK 3.10, you need to use seven additional patches available ... (from):

    http://arago-project.org/git/projects/?p=linux-davinci.git;a=shortlog;h=refs/heads/video-boot-time-mem-alloc

    ... you can either click on the "snapshot" link to ... download a full version of the kernel source ...

     

    This does constitute a complete replacement kernel that would replace the previous .../dvdsk/git/ directory, right?  Recompile per your instructions several notes ago?

     

    Knew I'd encountered something about replacing the kernel.

     

    Wes

     

     

     

    s

  • Yes, apparently it is a complete kernel replacement.  I got the newly downloaded kernel image to compile and the modules to build.   Gstreamer built and everything loaded into the target filetree.  My board booted and the modules run just fine.

     

    I now have two related questions:

    1. Which loadmodules.sh should I use? 

    1. /opt/gstreamer_demo/dm365/loadmodules.sh,
    2. /opt/dvdsk/dm365/loadmodules.sh, or
    3. /opt/dvdsk/dm365/loadmodules_hd.sh

     

    2.  What should I set target (unix) env vars to so that gstreamer works?

    I had to add /opt/gstreamer/bin to PATH, that gets gst-launch, etc. visible.  But gst-??? still can't find the libgst...'s.

     

    Wes

  • Well, never mind.  I found my answers at:  http://processors.wiki.ti.com/index.php/Example_GStreamer_Pipelines#Environment_Requirements


    cd /opt/gstreamer_demo/dm355/
    ./loadmodules.sh
    export GST_REGISTRY=/tmp/gst_registry.bin
    export LD_LIBRARY_PATH=/opt/gstreamer/lib
    export GST_PLUGIN_PATH=/opt/gstreamer/lib/gstreamer-0.10
    export PATH=/opt/gstreamer/bin:$PATH
    cat /dev/zero > /dev/fb2 2> /dev/null

     

    Many, many thanks to Don for all your help.


    Warmly,


    Wes