I want to integrate libzmq to RDK ,while i wrote recipe to download and that was as below, while processing that i got a error as mentioned below ,can u suggest me how to solve this and what was the issue.

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 

SUMMARY = "libzmq"
LICENSE = "GPLv2"

SRC_URI = "git://github.com/zeromq/libzmq.git;protocol=https;branch=master"

S = "${WORKDIR}/git/libzmq"

do_compile() {
${S}/autogen.sh
${S}/configure
${S]/make
${S}/make install
}

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ERROR: ExpansionError during parsing /home/google/NET_SDK_TEAM/eresh/meta-prplmesh/recipes-connectivity/libzmq/libzmq_1.bb: Failure expanding variable do_compile: ShellSyntaxError: Unexpected EOF

  • No labels

14 Comments

  1. HI SharanyaBakkanagari,

    Please find the below steps and recipe file contents for successful compilation of the package libzmq.

    • The SRC_URI path is expecting the SRCREV version, so we added  ${AUTOREV} (When SRCREV is set to the value of ${AUTOREV} variable, it specifies to use the latest source revision in the repository.)
    • The SRC_URI is expecting the checksums for the git repository so we updated the recipe with the checksums. 
    • ${S} : The source directory for the recipe build, it is used set to "${WORKDIR}/git" which is the default location to which the retrieved git repository will be checked out and unpacked.
    • inherit autotools pkgconfig cmake   // predefined tools for compilation
    • if you want to override the pre_defined tools then you can use do_compile, do_configure commands.


      Actual Recipe file content  for successful compilation:

      SUMMARY = "libzmq"
      LICENSE = "GPLv2"
      SRC_URI[md5sum] = "32af7463267dae27fa669b69422995d4"
      SRC_URI[sha256sum] = "b74b6b3dcdac70d14ef58b3f33327e9a8fa0c3784370756bc86538babefee88a"

      SRC_URI = "git://github.com/zeromq/libzmq.git;branch=master"
      SRCREV = "${AUTOREV}"

      S = "${WORKDIR}/git"

      inherit autotools pkgconfig cmake

      #do_compile() {
      #${S}/autogen.sh
      #${S}/configure
      #${S]/make
      #${S}/make install
      #}



      Thanks and Regards
      Srinivas
        
    1. Hi Z-srinivas kota ramaiah

      I already did necessary changes for the above mentioned recipe by providing md5sum and SRC_REV and the error which i mentioned was resolved, when I added inherit autotools pkgconfig cmake I encountered with the fallowing error. 

      ERROR :

      ParseError at /home/google/NET_SDK_TEAM/eresh/meta-prplmesh/recipes-connectivity/zeromq/zeromq_1.bb:14: Could not inherit file classes/cmakei.bbclass-:--:--

      for my knowledge can I know why this was happened.

      Thanks and Regards

      Sharanya

  2. HI SharanayaBakkanagari,

    We are not facing any compilation issues with the above recipe file content. Could you please share us the below details.

    1. Recipe file content.
    2. Full error log.
    3. build steps used to compile the libzmq package.
    4. version of RDKB code release used for adding the libzmq package. 

    Thanks and Regards
    Srinivas

  3. Hi Z-srinivas kota ramaiah

    After successful build we got an image of format zImage--3.14.4+git0+183622e809_9882294294-r0-qemuarmbroadband-20200618091904.bin,  can you let us know do this zImage consists both rootfs and kernal or what it actually consists of ?

  4. zImage is a  compressed version of the Linux kernel image.

    sdcard image contains both roots and kernel, after copy you will see FAT partition with Kernel and device tree and EXT partition with rootfs.

    1. Hi Z-srinivas kota ramaiah

      what do you mean by sdcard image ?

      and also we had got fallowing images formats, when we want to flash image on to any arm architecture boards do we need to prepare any other image formats by merging zImage and rootfs or ext4 image. can you please suggest the 

      1) ARMEMLTRBB_default_20200624085015-dbg.rootfs.tar.gz

      2) rdk-generic-broadband-image-qemuarmbroadband.ext4

      3) zImage--3.14.4+git0+183622e809_9882294294-r0-qemuarmbroadband-20200618091904.bin

      4) ARMEMLTRBB_default_20200624085015.rootfs.tar.gz

  5. HI Z-SharanyaBakkanagari


    Please share the below details.

    1.  device name in which the emulator image needs to be flashed, 
    2. version of RDKB code release used for building the image
    3.  build procedure followed to build the image and any references for building the image.


    sdcard image is a  file system type for Raspberrypi,  which will have both kernel and rootfs.

    similarly, for  "qemux86" Machine , it supports IMAGE_FSTYPES = "vmdk"  to run in pc using virtual machine and for "qemuarm" Machine, it only supports, IMAGE_FSTYPES = "ext4" .


    it depends on what the platform supports. usually a flashing tool is provided by OEMs which decide what format they're going to support it can be a .img or .iso or any other format

    it may also be a tar file containing the rootfs tar and zimage.bin files . and the flashing tool should unpack the files to temporary location and install each of the file to their corresponding partitions

    if you are looking for how to generate a monolithic image and flash on device then you can generate a "iso"  from zimage and the ext4 rootfs in build machine side and write a program/script in device end that can handle iso mounting and installation.


    Thanks and Regards

    Srinivas

     



  6. Hi Z-srinivas kota ramaiah

    1.  device name in which the emulator image needs to be flashed - qualcomm arm based board
    2. version of RDKB code release used for building the image - RDK-B-2018Q1
    3.  build procedure followed to build the image and any references for building the image - (first executed source meta-cmf-bsp-emulator/setup-environment and list of profiles will be displayed are as fallows and we selected 19th option  then bitbake rdk-generic-broadband-image)
    4. source meta-cmf-bsp-emulator/setup-environment
      1) meta-cmf-bsp-emulator/conf/machine/qemux86broadbanddev.conf
      2) meta-cmf-bsp-emulator/conf/machine/qemux86hybdev.conf
      3) meta-cmf-bsp-emulator/conf/machine/qemux86mcdev.conf
      4) meta-cmf-raspberrypi/conf/machine/raspberrypi3-64-rdk-broadband.conf
      5) meta-cmf-raspberrypi/conf/machine/raspberrypi3-64-rdk-broadband-musl.conf
      6) meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-broadband.conf
      7) meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-broadband-musl.conf
      8) meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-hybrid.conf
      9) meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-hybrid-westeros.conf
      10) meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-mc.conf
      11) meta-cmf-raspberrypi/conf/machine/raspberrypi-rdk-mc-westeros.conf
      12) meta-raspberrypi/conf/machine/raspberrypi0.conf
      13) meta-raspberrypi/conf/machine/raspberrypi2.conf
      14) meta-raspberrypi/conf/machine/raspberrypi3.conf
      15) meta-raspberrypi/conf/machine/raspberrypi-cm3.conf
      16) meta-raspberrypi/conf/machine/raspberrypi-cm.conf
      17) meta-raspberrypi/conf/machine/raspberrypi.conf
      18) meta-raspberrypi/conf/machine/raspberrypi-rdk-mc.conf
      19) meta-rdk-bsp-emulator/conf/machine/qemuarmbroadband.conf
      20) meta-rdk-bsp-emulator/conf/machine/qemux86broadband.conf
      21) meta-rdk-bsp-emulator/conf/machine/qemux86broadband-dev.conf
      22) meta-rdk-bsp-emulator/conf/machine/qemux86broadband-morty.conf
      23) meta-rdk-bsp-emulator/conf/machine/qemux86broadband-musl.conf
      24) meta-rdk-bsp-emulator/conf/machine/qemux86hyb.conf
      25) meta-rdk-bsp-emulator/conf/machine/qemux86hyb-dev.conf
      26) meta-rdk-bsp-emulator/conf/machine/qemux86hyb-morty.conf
      27) meta-rdk-bsp-emulator/conf/machine/qemux86mc.conf
      28) meta-rdk-bsp-emulator/conf/machine/qemux86mc-dev.conf
      29) meta-rdk-bsp-emulator/conf/machine/qemux86mc-morty.conf
      30) openembedded-core/meta/conf/machine/qemuarm.conf
      31) openembedded-core/meta/conf/machine/qemux86-64.conf
      32) openembedded-core/meta/conf/machine/qemux86.conf
    5. After successfull execution of bitbake command fallowing images are created.
      1. ARMEMLTRBB_default_20200630054711-dbg.rootfs.tar.gz 
      2. ARMEMLTRBB_default_20200630054711.rootfs.ext4 
      3. ARMEMLTRBB_default_20200630054711.rootfs.manifest
      4. ARMEMLTRBB_default_20200630054711.rootfs.tar.gz
      5. ARMEMLTRBB_default_20200630055100-dbg.rootfs.tar.gzx
      6. ARMEMLTRBB_default_20200630055100.rootfs.ext4
      7. ARMEMLTRBB_default_20200630055100.rootfs.manifest
      8. ARMEMLTRBB_default_20200630055100.rootfs.tar.gz
      9. ARMEMLTRBB_default_20200706135835-dbg.rootfs.tar.gz
      10. ARMEMLTRBB_default_20200706135835.rootfs.ext4
      11. ARMEMLTRBB_default_20200706135835.rootfs.manifest zImage
      12. ARMEMLTRBB_default_20200706135835.rootfs.tar.gz
      13. ARMEMLTRBB_default_20200714113246.rootfs.ext4
      14. ARMEMLTRBB_default_20200714113246.rootfs.manifest
      15. ARMEMLTRBB_default_20200714113246.rootfs.tar.gz
      16. rdk-generic-broadband-image-qemuarmbroadband-dbg.tar.gz
      17. rdk-generic-broadband-image-qemuarmbroadband.ext4
      18. rdk-generic-broadband-image-qemuarmbroadband.manifest
      19. rdk-generic-broadband-image-qemuarmbroadband.tar.gz
      20. modules--3.14.4+git0+183622e809_9882294294-r0-qemuarmbroadband-20200625064651.tgz
      21. zImage--3.14.4+git0+183622e809_9882294294-r0-qemuarmbroadband-20200625064651.bin
      22. ARMEMLTRBB_default_20200714113246-dbg.rootfs.tar.gz 
      23. README_-_DO_NOT_DELETE_FILES_IN_THIS_DIRECTORY.txt
      24. zImage-qemuarmbroadband.bin
    6. so now which image can we flash on to the board, as well we had selected emulator profile and trying to flash on to arm based board do it was correct or need to select any other BSP layer ? 
  7. HI SharanyaBakkanagari,

    Please check with the OEM (qualcomm) on the type to image the device supports. if device supports standalone upgrade( Flashing kernel alone and roots alone )then no need to make monolithic image which has both kernel and rootfs. it depends on the software upgrade utility running in the device.

    As an example:

    Raspberrypi is also a ARM based (quad-core ARM Cortex-A53 processor) , since it has memory card slot in the device and based on the device specifications we are building sdimg for RPI (meta-raspberrypi/conf/machine/raspberrypi.conf)


    similarly check the device specifications of the device you are using and which image the device supports based on the discussion with OEM.


    When you are trying to build qemuarm (meta-rdk-bsp-emulator/conf/machine/qemuarmbroadband.conf) it is building the .ext4 as file system.

    Please refer the below files.

    meta-rdk-bsp-emulator/conf/machine/include/qemuarm-soc.inc    // FS is ext4

    openembedded-core/meta/conf/machine/qemuarm.conf      // kernel  is Zimage

    Thanks and Regards

    Srinivas

    1. hi Z-srinivas kota ramaiah

      Thank you very much, we will check with our OEM,

      we want small clarification we setted up environment by executing script under meta-cmf-bsp-emulator/setup-environment and selected profile of emulator if our oem also supports .ext4 can we flash the same image onto the arm soc or need to do some different things.

  8. HI SharanyaBakkanagari,

    if the OEM specifies that the device you are using supports .ext4 file system, then you can flash .ext4 to rootfs partition, flash zImage to kernel partition.  OEMs also use their proprietary image formats and you should contact the OEM to get more detail on that aspect.


    Thanks and Regards

    Srinivas

    1. Hi Z-srinivas kota ramaiah

      I am able to create a image as directed by the OEM. During flashing, board hangs after displaying the message "Starting kernel..."

      I am suspecting we need to change some parameters in kernel so that u-boot picks the image and boots up, could you please suggest us if we are missing something?

  9. Hi Z-srinivas kota ramaiah

    Thank for your valuable assistance. 

  10. Hi SharanyaBakkanagari

    Both the kernel and rootfs partition locations should be given from uboot START parameters and 
    if uboot has incorrect kernel partition name then it will hang trying to read zImage from that partition.


    Thanks and Regards

    Srinivas