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.

Jacinto 6 GLSDK source code

HI 

for a company related project purpose we need the entire source for ALL GLSDK for Jacinto 6. (Kernel, HAL and Middlware), not only binary but a proper source (Compilable and loadable)

our assumption is, it is maintained in a GIT repo. we would like the GLSDK source and want to customize some components as per our requirement.

If not, do let me know

thanks

Annamalai

  • Hi Annamalai,

    Refer to the below locations:

    http://processors.wiki.ti.com/index.php/Quick_start_with_3.14_linux

    processors.wiki.ti.com/.../DRA7xx_GLSDK_7.04.00.03_Post-release_Updates

    downloads.ti.com/.../GLSDK_7.04.00.03_manifest.html

    kernel-3.14.63 - git://git.omapzoom.org/kernel/omap.git;protocol=git;branch=p-ti-linux-3.14.y-common

    git.omapzoom.org/

    u-boot - git.omapzoom.org/

    Regards,
    Pavel

  • Hi Pavel

    Thanks for your answer, So I can see that you have the Source Code open for following,

    UBoot - yes

    Kernel-Yes

    Middleware (Most Components like GStreamer, ALSA, HAL, Driver Interaction Layer) - Yes

    Are there any BLOB also (eg: 3rd Graphics Library or any other) being maintained for certain Library components.?

    if we want to modify the HAL layer for Video (May be in GStreamer Stack) would it be possible with the above setup (GIT Repo).

     

    Awaiting your answer

     

    thanks

    Annamalai

     

  • HI Pavel
    thanks for replying so quickly, so it looks there is a source code availabe open for Uboot, Kernel and Middleware layers.
    So, Just want further understanding.
    Do all the Middleware layers have the source code (HAL, GStreamer, Driver Interaction layer), or are there any libraries (Only Binaries) Maintained for certain components.?
    If we like to modify the HAL (Driver Interaction layer), the compile, would it be possible? example Video Codec HAL needs to be modified from above GIT Setup would it be possible?
    Per my understanding some are only binary objects (like Graphics)
    So looking for your answer on this also,!!thanksAnnamalai
  • Annamalai,

    You should execute the {GLSDK}/setup.sh script

    Note: Please make sure that the proxy settings are done for http, https, git, ftp and wget before proceeding further.

    Execute the script in the GLSDK release directory using:

    host $ cd ${GLSDK}
    host $ ./setup.sh

    The setup script would perform the following operations:

    1. Installs all the necessary package on the host for the SDK.
    2. Prepares the UART terminal to communicate with the target over Debug USB on Minicom. If you want to use a windows host for connecting to the target instead, see the #Setting_up_Tera_Term section
    3. Setups the linaro cross compiler
    4. Installs the dependencies for the repo tool.
    5. Initialize the repo by pointing it to GLSDK release manifest location.

    See also the below pointers:

    processors.wiki.ti.com/.../DRA7xx_GLSDK_Software_Developers_Guide
    processors.wiki.ti.com/.../DRA7xx_GLSDK_Software_Developers_Guide
    processors.wiki.ti.com/.../DRA7xx_GLSDK_Software_Developers_Guide

    processors.wiki.ti.com/.../GLSDK_FAQs

    Check also the scripts available in {GLSDK}/bin/ folder.

    Regards,
    Pavel
  • HI Pavel
    Thanks for pointing out, I will try this shortly. I went thorugh this document and figured that there are some components of middle ware stack developed by TI and some are Open Source. Does the Repo contain Source for all of them, or we get only binraies for components owned by TI
    The document does not clearly mention the above, if we can modify any part of the stack (we cant if we get only binaries for some components)
    Kindly help clarify this also, looking forwardthanksAnnamalai
  • HI PavelI have followed this Link:
    processors.wiki.ti.com/.../DRA7xx_GLSDK_Software_Developers_Guide
    was able to fetch every thing. i could see the kernel source code and source code for few middlware components.
    but still unable to figure out the entire picture of middleware. There are some SO files, so need to know for which components source is available and which components it is not. this information is not clear in the web site
    thanksAnnamalai
  • Annamalai,

    Do you need the source code for (in example) GST-Ducati plugin TI software? If this is not what you need, can you be more specific which source code you need exactly?

    Regards,
    Pavel
  • HI Pavel
    I would need the source code for the HAL (the user space middleware layer that talks to the Kernel driver) to start with. then, middlware gstreamer interface to the HAL. especially on video codec side. I am not sure if HAL and middlware layer source code is available or may be only some part. if so please point out to me.
    Hope this clarifies.May be they are packaged only as SO or libraries.
    I am more familiar with the Android Environment, where we have driver the interaction (Kernel interaction ) layer termed as HAL and the layer above is the middlware component
    thanksAnnamalai
  • Annamalai,

    In Jacinto6 GLSDK, besides u-boot and linux kernel, we have also the below TI software:

    GST Ducati
    libdce
    RPMSG
    libdrm


    These components are between Linux user space application and Linux kernel. Do you need the source code for these components? See also if the below wiki pages will be in help:

    processors.wiki.ti.com/.../Processor_Training:_Multimedia
    processors.wiki.ti.com/.../DRA7xx_GLSDK_7.04.00.03_Data_Sheet
    processors.wiki.ti.com/.../DRA7xx_GLSDK_7.04.00.03_Data_Sheet

    Regards,
    Pavel
  • HI Pavel

    Thanks for your reply, I am new to OMAP Architecture,is it the same flow for Jacinto 6?.
    The Multimedia document gives a good picture and a better understanding now.


    Here is my understanding of Video Playback subsystem.
    Decode Flow: Application->Gstreamer->GStremer Ducati Plugin->libdce. , libdce sends RPC message to M4 Core for decoding the frame.

    The post processing (Hardware accelerated?) and display of the frame is handled by libdce->libdrm->OMAP DRM?

    or does IPU (M4) handle Post processing as well and Audio Offload as well via RPC messages from libdce?

    which of above is hardware accelerated (if any)

    The document talks about VPE, so I was checking how middleware interacts with VPE for displaying the decoded frame

    from wiki here are following modules needed
    Graphics
    1)Wayland - Open Source - are there any TI recommended download site/version?
    2)libdrm - Is the source part of GLSDK?
    3)omapdrm - Is the source part of GLSDK?
    4)omapdss - Is the source part of GLSDK?

    Video
    1)Gstreamer - Open Source - are there any TI recommended download site/version? or is it maintained in GLSDK also.?
    2)Ducati Plugin - Is the source part of GLSDK?
    3)libdce - Is the source part of GLSDK?
    4)RPC message - Is the source part of GLSDK?

    Let me know if any of understanding is wrong/provide your inputs.

    Thanks
    Annamalai
  • HI Pavel,
    In addition to my previous post.
    would also like to the path of source code for following after the repo is completed as per wiki:
    GStreamer Ducati,Lidce, libdrm, RPMSG

    Also, per the understanding gstreamer open source library interacts with gst-ducati plugin, so a part of gstreamer needs to be modified by TI for routing the calls to gst-ducati plugin?or, how would the gst-plugin work with gstreamer without any source modification at gstreamer (by any infrastructure give by gstreamer, to add plugins?) sorry, I am new to gstreamer so asking.:)

    also, are there any recommended gstreamer download version (of source). or it is maintained only as a SO file in GLSDK. so essentially gstreamer wont be compiled during GLSDK compilation process.?

    thanks
    Annamalai
  • HI

    Some More queries:

    After following Wiki Guide "processors.wiki.ti.com/.../DRA7xx_GLSDK_Software_Developers_Guide"

    Followed till these steps:

    "
    host $ cd ${GLSDK}
    host $ ./bin/fetch-sources.sh

    The script does the following:
    Check for the repo tool.
    Perform repo sync
    Create a branch called glsdk_dev
    Checkout the branch glsdk_dev
    It is expected that the development is done on the glsdk_dev branch.
    "

    Also these (for Yocto):
    "
    ...........
    ./build-core-sdk.sh dra7xx-evm
    "
    but unable to locate the source code of these libraries after following the wiki guide. Not sure if all the GIT's are getting added in the release-manifest file or how to get these libraries for development purpose in the GLSDK....

    But, from following GIT repo: https://git.ti.com/glsdk/ ,
    was able to locate the source code for modules: libdrm, gst-ducati etc by browing.
    all these modules seem to have a GIT repo.


    This command: ./build-core-sdk.sh dra7xx-evm, also

    had some problems at last phase(Below is full Log), Please do the needful:
    "
    root@D1292-VM:/opt/ti-glsdk_dra7xx-evm_7_04_00_03/yocto-layers# ./build-core-sdk.sh dra7xx-evm > /root/compile.txt
    [ /yocto-layers/downloads ]
    Switched to branch '1.24'
    Note: checking out '370a19bf956a2fba5bf4db3d72806e17d7f9e000'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b new_branch_name

    HEAD is now at 370a19b... cooker: Ensure bbappend files are processed in a determistic order
    Switched to branch 'master'
    Note: checking out 'd891c32a29ea459555c8246a3bbfb002232c3826'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b new_branch_name

    HEAD is now at d891c32... weston: Update patch for soc-performance visualization tools
    Previous HEAD position was dc89e06... libdce: update to 3.00.08.02
    Switched to branch 'master'
    Note: checking out 'dc89e06d2a64f33d9e9662e6f7fe1f8466ff167c'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b new_branch_name

    HEAD is now at dc89e06... libdce: update to 3.00.08.02
    Switched to branch 'daisy'
    Note: checking out '23405d3a66c308e0b2ea64308b834285850c5c9f'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b new_branch_name

    HEAD is now at 23405d3... qt5-git: Fetch from code.qt.io
    Switched to branch 'daisy'
    Note: checking out 'd3d14d3fcca7fcde362cf0b31411dc4eea6d20aa'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b new_branch_name

    HEAD is now at d3d14d3... gdal: fix sqlite, expat and libtiff detection
    Switched to branch 'daisy'
    Note: checking out '090b02a104924886afd0fa79be7b5d08eebf071f'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b new_branch_name

    HEAD is now at 090b02a... uio-module-drv: Update to new version 1.0.2.3
    Switched to branch 'daisy'
    Note: checking out 'dbe0db0a1a5c015feb84ef689f48421594cb0b51'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b new_branch_name

    HEAD is now at dbe0db0... binutils: Build -native without -Werror
    Previous HEAD position was d0326ff... package_manager: Fix BAD_RECOMMENDATIONS for opkg
    Switched to branch 'daisy'
    Note: checking out 'd0326ff5abde814da8647debfd559fcb9aede3a4'.

    You are in 'detached HEAD' state. You can look around, make experimental
    changes and commit them, and you can discard any commits you make in this
    state without impacting any branches by performing another checkout.

    If you want to create a new branch to retain commits you create, you may
    do so (now or later) by using -b with the checkout command again. Example:

    git checkout -b new_branch_name

    HEAD is now at d0326ff... package_manager: Fix BAD_RECOMMENDATIONS for opkg
    ./build-core-sdk.sh: 24: cd: can't cd to /yocto-layers
    ./build-core-sdk.sh: 27: cd: can't cd to /yocto-layers/build
    ./build-core-sdk.sh: 30: .: Can't open conf/setenv
    "
  • HiCould you please answer the above queries.
    Do let know if any clarity is needed in above questions...(if not very clear)
    Looking ForwardthanksAnnamalai
  • Annamalai,

    On successful run of the setup.sh script, you should have the below sources in GLSDK:

    {GLSDK}/board-support/:
    prebuilt-images/
    linux/
    u-boot/
    external-linux-kernel-modules/omap5-sgx-ddk-linux/

    {GLSDK}/component-sources/:
    bios_6_45_01_29/
    codec_engine_3_24_00_08/
    framework_components_3_40_01_04/
    linuxutils_4_10_01_02/
    xdais_7_24_00_04/
    xdctools_3_32_00_06_core/
    dspdce_1_00_00_06/
    ipc_3_40_00_06/
    ipumm_3_00_09_00/

    Do you have these?

    Regards,
    Pavel
  • HI Pavel,Yes True, they are present.
    But I was unable to locate gst-plugin-ducati source code inside any of them.
    Do let know if I overlooked this itemthanksAnnamalai
  • Thanks, had seen this earlier.

    I believe the modules like gst-ducati-plugin, libdrm should be a part of GLSDK repo infrastructure (to be able to compile and flash easily) . They should be a part of Manifest file provided in the WiKi.

    Currently I believe this is not the case, correct me If I am wrong.

    So, we must fetch these GIT repo Manually for every module and compile them seperately? Is there any better option? for example, to put them all in a single Manifest so fetch and compile would be easier?

    Would Compiling these modules(Gst-Ducati, Libdrm) independently would be any problem? due to dependencies with other modules 

  • HI

    Pavel, let know if you have any suggestion on above requirement.
    thanks and Happy Weekend

    Regards
    Annamalai
  • Annamalai,

    From what I was able to find, gst-ducati comes as a binary/image in GLSDK/filesystem/arago-glsdk-multimedia-image-dra7xx-evm.tar.gz. Then with the setup-yocto.sh and build-core-sdk.sh scripts, you can get the latest version of the binary/image in the new arago-glsdk-multimedia-image-<MACHINE-NAME>-<DATE>.rootfs.tar.gz that will be generated by these scripts.

    But for the source code, you should download it manually.

    I will also double check with the GLSDK team, and come back to you if they share something more.

    Regards,
    Pavel
  • HI Pavel,

    OK, do let know build instruction once we manually down load the code after
    1) git clone git.ti.com/.../gst-plugin-ducati
    2) git clone git.ti.com/.../libdce
    3).. libdrm
    etc..

    The build doesnt seem to work, build instructions not very clear

    thanks
    Annamalai
  • Annamalai,

    libdce source should be taken from omapzoom:

    git clone git://git.omapzoom.org/repo/libdce.git

    Then you should follow the libdce/README file.

    Regards,
    Pavel
  • Annamalai,

    Regarding libdce building, see also the below e2e threads:

    e2e.ti.com/.../1498363
    e2e.ti.com/.../1486668

    Regards,
    Pavel
  • HI Pavel

    1) The README inside libdce provides standalone Compile Instructions, which I find difficult to follow

    2) This TI thread however talks of compile instructions with GLSDK environment-> https://e2e.ti.com/support/embedded/multimedia_software_codecs/f/356/p/420126/1498363#1498363

    I am Unable to locate $GLSDK/usr directory after Installing GLSDK

    So, It would be great if with latest GLSDK the compile instructions are provided (After manual download of GIT Projects).

    "

    host $ export GLSDK = <Path to the extracted filesystem>
    host $ export PATH=<Path to cross-compile toolchain>:$PATH
    host $ export PKG_CONFIG_PATH=$GLSDK/usr/lib/pkgconfig
    host $ export INSTALL_PATH = <Install location>

    host $ export DRM_CFLAGS="-I$GLSDK/usr/include -I$GLSDK/usr/include/libdrm/ -I$GLSDK/usr/include/omap -I$GLSDK/usr/include/libkms"
    host $ export DRM_LIBS="-L$GLSDK/usr/lib -ldrm -ldrm_omap"
    host $ export GBM_CFLAGS=-I$GLSDK/usr/include/gbm
    host $ export GBM_LIBS="-L$GLSDK/usr/lib -lgbm"
    host $ export LIBUDEV_CFLAGS=-I$GLSDK/usr/include
    host $ export LIBUDEV_LIBS="-L$GLSDK/usr/lib -ludev"
    host $ export DCE_CFLAGS="-I$GLSDK/usr/include/dce"
    host $ export DCE_LIBS="-L$GLSDK/usr/lib -ldce -lavutil -lavformat"

    host $ cd libdce
    host $ ./autogen.sh --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf --prefix=$INSTALL_PATH --with-sysroot=$GLSDK
    host $ make

    "

  • Annamalai Lakshmanan88 said:
    I am Unable to locate $GLSDK/usr directory after Installing GLSDK

    host $ export GLSDK = <Path to the extracted filesystem>

    Note that this is rootfs main directory, not GLSDK install directory. In my case rootfs main dir is:

    /home/users/pbotev/workdir/Jacinto6/targetfs_j6

    While GLSDK install dir is:

    /home/users/pbotev/workdir/Jacinto6/ti-glsdk_dra7xx-evm_7_04_00_03

    You should pass to GLSDK the path to the root filesystem.

    BR
    Pavel

  • Ok, So the GLSDK comes with a Default Packaged File System.
    So we can just extract it and try this?
    if so, I shall try this and get back in case of any queries. I think same can be followed for other modules like gst-plugin-ducati and libdrm?
    But, Would this be a right procedure to (Build from a extracted file system) or I think it would be better to have an entire compile infrastructure packaged...
  • Annamalai,

    GLSDK comes with filesystem tar file.
    /home/users/pbotev/workdir/Jacinto6/ti-glsdk_dra7xx-evm_7_04_00_03/filesystem/arago-glsdk-multimedia-image-dra7xx-evm.tar.gz

    Then the setup.sh script extract it in your host machine:
    /home/users/pbotev/workdir/Jacinto6/targetfs_j6

    You can also create your own arago-glsdk-multimedia-image-dra7xx-evm.tar.gz following the GLSDK guide:

    processors.wiki.ti.com/.../DRA7xx_GLSDK_Software_Developers_Guide

    BR
    Pavel
  • Thanks was able to compile Libdce
  • Annamalai,

    Do you have other questions in this e2e thread? If no, please mark this thread as resolved.

    Regards,
    Pavel
  • Pavel

    Could not verify or mark as resolved, (as no option available)

    Let know how todo

    thanks

    Annamalai

  • Annamalai,

    Somehow this e2e thread lost the "Verify Answer" button. I will consider this thread as closed. Not further actions required from you.

    Regards,
    Pavel
  • We have source code for everything including Ducati software in the public, the only exception is the Graphics Acceleration user space libraries. They are provided as binary. The Graphics kernel module is given as source.

    Almost all the source code that is part of the GLSDK (with the exception of the kernel and the u-boot and SGX kernel driver) is fetched as part of the Yocto.

    So, after you do the setup.sh (Answer all questions as yes) You should proceed to build the Yocto.

    As part of the Yocto build all the sources will get downloaded, compiled, installed, packaged and the overall rootfs will be created.

    Doing these steps will give you the same image as the prebuilt image that is present in the installer.

    After this, if the user wants to modify something and then prepare his/her own image then the Yocto build is useful.