cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
251 Views
Registered: ‎10-24-2018

petalinux user-packages build/install scripts

Jump to solution

Hi all,

user-packages stand for packages that can be added to the project via:
petalinux-config -c rootfs
user packages --->

My actual case is the user-package linuxptp but my question is not link to this particular package. I followed this forum solution:
https://forums.xilinx.com/t5/Embedded-Linux/How-to-compile-ptp4l-for-microblaze/td-p/977354

This works fine, but the phc_ctl tool from linuxptp is missing.
From the logs, phc_ctl is compilled but is not installed (in the sens of make).
So off course it is not packaged and included into the image.

It seems that the build/install/package process is managed by some scripts:
Where are those scripts from?
How to modify them?

At the end it could be a Yocto related question. But petalinux-config is definitlly part of petalinux and I miss the documentation in between.

0 Kudos
Reply
1 Solution

Accepted Solutions
175 Views
Registered: ‎10-24-2018

Hi again,

I managed to go ahead on this one:

The documentation between petalinux -c rootfs -> user packages and Yocto is in PetaLinux Tools Documentation Reference Guide (UG1144) p.83
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2020_1/ug1144-petalinux-tools-reference-guide.pdf
This is for petalinux 2020.1 and my previous post was assuming 2019.1

So now we have the location of the starting script for the iperf3 example:
<petalinux install dir>/components/yocto/source/aarch64/layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb

The one I'm interested in is there:
<petalinux install dir>/components/yocto/source/aarch64/layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb

 

DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"

SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \
           file://build-Allow-CC-and-prefix-to-be-overriden.patch \
           file://no-incdefs-using-host-headers.patch \
           file://0003-include-missing-time.h-for-time_t.patch \
           file://0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch \
           "

SRC_URI[md5sum] = "5688cdfe57932273e1dbf35b3b97b9a0"
SRC_URI[sha256sum] = "fa8e00f6ec73cefa7bb313dce7f60dfe5eb9e2bde3353594e9ac18edc93e5165"

EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \
    EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_POSIX_SPAWN -DHAVE_ONESTEP_SYNC ${CFLAGS}'"

do_install () {
    install -d ${D}/${bindir}
    install -p ${S}/ptp4l  ${D}/${bindir}
    install -p ${S}/pmc  ${D}/${bindir}
    install -p ${S}/phc2sys  ${D}/${bindir}
    install -p ${S}/hwstamp_ctl  ${D}/${bindir}
}

 

And clearly, phc_ctl is missing in the do_install function.

Next is more Yocto related.
Based on what is done for busybox, I added the file:
<petalinux project dir>/project-spec/meta-plnx-generated/recipes-core/linuxptp/linuxptp_%.bbappend
It was not difficult to find some help to now what to put inside this file:

 

do_install_append () {
    install -p ${S}/phc_ctl  ${D}/${bindir}
}

 

Now I have phc_ctl packaged into my image.

I hope it will help someone.

View solution in original post

0 Kudos
Reply
1 Reply
176 Views
Registered: ‎10-24-2018

Hi again,

I managed to go ahead on this one:

The documentation between petalinux -c rootfs -> user packages and Yocto is in PetaLinux Tools Documentation Reference Guide (UG1144) p.83
https://www.xilinx.com/support/documentation/sw_manuals/xilinx2020_1/ug1144-petalinux-tools-reference-guide.pdf
This is for petalinux 2020.1 and my previous post was assuming 2019.1

So now we have the location of the starting script for the iperf3 example:
<petalinux install dir>/components/yocto/source/aarch64/layers/meta-openembedded/meta-oe/recipes-benchmark/iperf3/iperf3_3.2.bb

The one I'm interested in is there:
<petalinux install dir>/components/yocto/source/aarch64/layers/meta-openembedded/meta-oe/recipes-connectivity/linuxptp/linuxptp_1.8.bb

 

DESCRIPTION = "Precision Time Protocol (PTP) according to IEEE standard 1588 for Linux"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263"

SRC_URI = "http://sourceforge.net/projects/linuxptp/files/v${PV}/linuxptp-${PV}.tgz \
           file://build-Allow-CC-and-prefix-to-be-overriden.patch \
           file://no-incdefs-using-host-headers.patch \
           file://0003-include-missing-time.h-for-time_t.patch \
           file://0004-Adjust-include-header-sequence-to-avoid-duplicate-de.patch \
           "

SRC_URI[md5sum] = "5688cdfe57932273e1dbf35b3b97b9a0"
SRC_URI[sha256sum] = "fa8e00f6ec73cefa7bb313dce7f60dfe5eb9e2bde3353594e9ac18edc93e5165"

EXTRA_OEMAKE = "ARCH=${TARGET_ARCH} \
    EXTRA_CFLAGS='-D_GNU_SOURCE -DHAVE_CLOCK_ADJTIME -DHAVE_POSIX_SPAWN -DHAVE_ONESTEP_SYNC ${CFLAGS}'"

do_install () {
    install -d ${D}/${bindir}
    install -p ${S}/ptp4l  ${D}/${bindir}
    install -p ${S}/pmc  ${D}/${bindir}
    install -p ${S}/phc2sys  ${D}/${bindir}
    install -p ${S}/hwstamp_ctl  ${D}/${bindir}
}

 

And clearly, phc_ctl is missing in the do_install function.

Next is more Yocto related.
Based on what is done for busybox, I added the file:
<petalinux project dir>/project-spec/meta-plnx-generated/recipes-core/linuxptp/linuxptp_%.bbappend
It was not difficult to find some help to now what to put inside this file:

 

do_install_append () {
    install -p ${S}/phc_ctl  ${D}/${bindir}
}

 

Now I have phc_ctl packaged into my image.

I hope it will help someone.

View solution in original post

0 Kudos
Reply