All of lore.kernel.org
 help / color / mirror / Atom feed
* How to enable preempt-rt in Yocto Zeus or Warrior?
@ 2020-07-27 19:51 Scott Whitney
  2020-07-28  2:04 ` [yocto] " Bruce Ashfield
  2020-07-30  5:45 ` Khem Raj
  0 siblings, 2 replies; 10+ messages in thread
From: Scott Whitney @ 2020-07-27 19:51 UTC (permalink / raw)
  To: yocto


[-- Attachment #1.1: Type: text/plain, Size: 908 bytes --]

Hi Yocto group,

I'm working with a newly-released copy of Yocto Zeus from Variscite for the i.MX8MM Mini, although the same option seems to apply to the previous Yocto Warrior.

I understand that a Linux real-time kernel can be enabled by setting LINUX_KERNEL_TYPE = "preempt-rt".  Where does this option need to be set so that when I bitbake fsl-image-qt5, I get the Linux "preempt-rt" kernel instead of the "standard" kernel?

Is there a specific configuration file that needs to be modified, or a new recipe in a layer?  I am confused and hoping that you can help.

Best regards,

Scott D. Whitney
Principal Software Engineer
[cid:image001.png@01D6642D.AAEAAA60]
Intertech Engineering Associates, Inc.
100 Lowder Brook Drive, Suite 2500
Westwood, MA  02090
sdw@inea.com<mailto:sdw@inea.com>    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com<http://www.inea.com/>


[-- Attachment #1.2: Type: text/html, Size: 3884 bytes --]

[-- Attachment #2: image001.png --]
[-- Type: image/png, Size: 3837 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
  2020-07-27 19:51 How to enable preempt-rt in Yocto Zeus or Warrior? Scott Whitney
@ 2020-07-28  2:04 ` Bruce Ashfield
  2020-07-28 12:45   ` Scott Whitney
  2020-07-30  5:45 ` Khem Raj
  1 sibling, 1 reply; 10+ messages in thread
From: Bruce Ashfield @ 2020-07-28  2:04 UTC (permalink / raw)
  To: Scott Whitney; +Cc: yocto


[-- Attachment #1.1: Type: text/plain, Size: 1629 bytes --]

On Mon, Jul 27, 2020 at 3:51 PM Scott Whitney <sdw@inea.com> wrote:

> Hi Yocto group,
>
>
>
> I’m working with a newly-released copy of Yocto Zeus from Variscite for
> the i.MX8MM Mini, although the same option seems to apply to the previous
> Yocto Warrior.
>
>
>
> I understand that a Linux real-time kernel can be enabled by setting
> LINUX_KERNEL_TYPE = “preempt-rt”.  Where does this option need to be set so
> that when I bitbake fsl-image-qt5, I get the Linux “preempt-rt” kernel
> instead of the “standard” kernel?
>
>
>
> Is there a specific configuration file that needs to be modified, or a new
> recipe in a layer?  I am confused and hoping that you can help.
>
>
If you aren't using linux-yocto, you'll need to arrange for the preempt-rt
patch(es) to be applied to whatever kernel you are using. Which means you
are creating a new recipe, bbappending an existing one, or if you are lucky
the kernel provider already has a -rt recipe available.

If you are using linux-yocto, it's as simple as setting the preferred
provider of the kernel as linux-yocto-rt  and building.

Bruce



>
>
> Best regards,
>
>
>
> *Scott D. Whitney*
>
> Principal Software Engineer
>
>
> Intertech Engineering Associates, Inc.
> 100 Lowder Brook Drive, Suite 2500
> Westwood, MA  02090
> *sdw@inea.com <sdw@inea.com>*    |     T: 781-801-1152    |
> F: 781-801-1108    |     *www.inea.com <http://www.inea.com/>*
>
>
> 
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end
- "Use the force Harry" - Gandalf, Star Trek II

[-- Attachment #1.2: Type: text/html, Size: 3753 bytes --]

[-- Attachment #2: image001.png --]
[-- Type: image/png, Size: 3837 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
  2020-07-28  2:04 ` [yocto] " Bruce Ashfield
@ 2020-07-28 12:45   ` Scott Whitney
  2020-07-28 14:04     ` Zoran
  2020-07-28 14:17     ` Bruce Ashfield
  0 siblings, 2 replies; 10+ messages in thread
From: Scott Whitney @ 2020-07-28 12:45 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: yocto


[-- Attachment #1.1: Type: text/plain, Size: 2153 bytes --]

Hi Bruce,

Yes, we are using Linux built by Yocto, but where is the preferred provider for the kernel set to linux-yocto-rt?

Thanks for your help

Scott D. Whitney
[cid:image003.png@01D664BB.52107300]
sdw@inea.com<mailto:sdw@inea.com>    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com<http://www.inea.com/>

From: Bruce Ashfield <bruce.ashfield@gmail.com>
Sent: Monday, July 27, 2020 10:04 PM
To: Scott Whitney <sdw@inea.com>
Cc: yocto@yoctoproject.org
Subject: Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?



On Mon, Jul 27, 2020 at 3:51 PM Scott Whitney <sdw@inea.com<mailto:sdw@inea.com>> wrote:
Hi Yocto group,

I’m working with a newly-released copy of Yocto Zeus from Variscite for the i.MX8MM Mini, although the same option seems to apply to the previous Yocto Warrior.

I understand that a Linux real-time kernel can be enabled by setting LINUX_KERNEL_TYPE = “preempt-rt”.  Where does this option need to be set so that when I bitbake fsl-image-qt5, I get the Linux “preempt-rt” kernel instead of the “standard” kernel?

Is there a specific configuration file that needs to be modified, or a new recipe in a layer?  I am confused and hoping that you can help.

If you aren't using linux-yocto, you'll need to arrange for the preempt-rt patch(es) to be applied to whatever kernel you are using. Which means you are creating a new recipe, bbappending an existing one, or if you are lucky the kernel provider already has a -rt recipe available.

If you are using linux-yocto, it's as simple as setting the preferred provider of the kernel as linux-yocto-rt  and building.

Bruce



Best regards,

Scott D. Whitney
Principal Software Engineer
[cid:image002.png@01D664BB.520ACDB0]
Intertech Engineering Associates, Inc.
100 Lowder Brook Drive, Suite 2500
Westwood, MA  02090
sdw@inea.com<mailto:sdw@inea.com>    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com<http://www.inea.com/>




--
- Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end
- "Use the force Harry" - Gandalf, Star Trek II

[-- Attachment #1.2: Type: text/html, Size: 8781 bytes --]

[-- Attachment #2: image002.png --]
[-- Type: image/png, Size: 3837 bytes --]

[-- Attachment #3: image003.png --]
[-- Type: image/png, Size: 3837 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
  2020-07-28 12:45   ` Scott Whitney
@ 2020-07-28 14:04     ` Zoran
  2020-07-28 14:18       ` Scott Whitney
  2020-07-28 14:17     ` Bruce Ashfield
  1 sibling, 1 reply; 10+ messages in thread
From: Zoran @ 2020-07-28 14:04 UTC (permalink / raw)
  To: Scott Whitney; +Cc: Bruce Ashfield, yocto

Hello Scott,

I have a bit of a different idea about the whole YOCTO process.

Let me suggest something else, actually a hybrid combination of the
YOCTO build system.

You can do the whole process of YOCTO, but why do you not use
components out of the YOCTO building process?

For example, you can use rootfs built by YOCTO, and U-Boot and
rt-kernel built out of the YOCTO, for the beginning?

Then, as an option, if you are satisfied with the reached
architecture, you can write your own recipe for the rt-kernel (you
need to incorporate a bunch of patches into the rt-kernel proprietary
recipe).

Zoran
_______


On Tue, Jul 28, 2020 at 2:45 PM Scott Whitney <sdw@inea.com> wrote:
>
> Hi Bruce,
>
>
>
> Yes, we are using Linux built by Yocto, but where is the preferred provider for the kernel set to linux-yocto-rt?
>
>
>
> Thanks for your help
>
>
>
> Scott D. Whitney
>
> sdw@inea.com    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com
>
>
>
> From: Bruce Ashfield <bruce.ashfield@gmail.com>
> Sent: Monday, July 27, 2020 10:04 PM
> To: Scott Whitney <sdw@inea.com>
> Cc: yocto@yoctoproject.org
> Subject: Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
>
>
>
>
>
>
>
> On Mon, Jul 27, 2020 at 3:51 PM Scott Whitney <sdw@inea.com> wrote:
>
> Hi Yocto group,
>
>
>
> I’m working with a newly-released copy of Yocto Zeus from Variscite for the i.MX8MM Mini, although the same option seems to apply to the previous Yocto Warrior.
>
>
>
> I understand that a Linux real-time kernel can be enabled by setting LINUX_KERNEL_TYPE = “preempt-rt”.  Where does this option need to be set so that when I bitbake fsl-image-qt5, I get the Linux “preempt-rt” kernel instead of the “standard” kernel?
>
>
>
> Is there a specific configuration file that needs to be modified, or a new recipe in a layer?  I am confused and hoping that you can help.
>
>
>
> If you aren't using linux-yocto, you'll need to arrange for the preempt-rt patch(es) to be applied to whatever kernel you are using. Which means you are creating a new recipe, bbappending an existing one, or if you are lucky the kernel provider already has a -rt recipe available.
>
>
>
> If you are using linux-yocto, it's as simple as setting the preferred provider of the kernel as linux-yocto-rt  and building.
>
>
>
> Bruce
>
>
>
>
>
>
>
> Best regards,
>
>
>
> Scott D. Whitney
>
> Principal Software Engineer
>
>
> Intertech Engineering Associates, Inc.
> 100 Lowder Brook Drive, Suite 2500
> Westwood, MA  02090
> sdw@inea.com    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com
>
>
>
>
>
>
> --
>
> - Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II
>
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
  2020-07-28 12:45   ` Scott Whitney
  2020-07-28 14:04     ` Zoran
@ 2020-07-28 14:17     ` Bruce Ashfield
  2020-07-28 14:26       ` Scott Whitney
  1 sibling, 1 reply; 10+ messages in thread
From: Bruce Ashfield @ 2020-07-28 14:17 UTC (permalink / raw)
  To: Scott Whitney; +Cc: yocto


[-- Attachment #1.1: Type: text/plain, Size: 3161 bytes --]

On Tue, Jul 28, 2020 at 8:45 AM Scott Whitney <sdw@inea.com> wrote:

> Hi Bruce,
>
>
>
> Yes, we are using Linux built by Yocto, but where is the preferred
> provider for the kernel set to linux-yocto-rt?
>
>
>

This is one of the nuances about OE/Yocto, it isn't about building the
kernel with yocto, I was wondering about the kernel recipe you are using.

If you have a booting kernel built from linux-yocto (the recipe), then the
switch to -rt is easy. If it isn't using linux-yocto, then using -rt is
specific to the kernel provider that you have (and it may be just as easy
as the linux-yocto switch ... just without the details of that
recipe/provider, I can't say).

The preferred provider is likely set in the vendor's BSP layer, and it
likely points at whatever vendor kernel they are currently shipping.

Cheers,

Bruce



> Thanks for your help
>
>
>
> *Scott D. Whitney*
>
> *sdw@inea.com <sdw@inea.com>*    |     T: 781-801-1152    |
> F: 781-801-1108    |     *www.inea.com <http://www.inea.com/>*
>
>
>
> *From:* Bruce Ashfield <bruce.ashfield@gmail.com>
> *Sent:* Monday, July 27, 2020 10:04 PM
> *To:* Scott Whitney <sdw@inea.com>
> *Cc:* yocto@yoctoproject.org
> *Subject:* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
>
>
>
>
>
>
>
> On Mon, Jul 27, 2020 at 3:51 PM Scott Whitney <sdw@inea.com> wrote:
>
> Hi Yocto group,
>
>
>
> I’m working with a newly-released copy of Yocto Zeus from Variscite for
> the i.MX8MM Mini, although the same option seems to apply to the previous
> Yocto Warrior.
>
>
>
> I understand that a Linux real-time kernel can be enabled by setting
> LINUX_KERNEL_TYPE = “preempt-rt”.  Where does this option need to be set so
> that when I bitbake fsl-image-qt5, I get the Linux “preempt-rt” kernel
> instead of the “standard” kernel?
>
>
>
> Is there a specific configuration file that needs to be modified, or a new
> recipe in a layer?  I am confused and hoping that you can help.
>
>
>
> If you aren't using linux-yocto, you'll need to arrange for the preempt-rt
> patch(es) to be applied to whatever kernel you are using. Which means you
> are creating a new recipe, bbappending an existing one, or if you are lucky
> the kernel provider already has a -rt recipe available.
>
>
>
> If you are using linux-yocto, it's as simple as setting the preferred
> provider of the kernel as linux-yocto-rt  and building.
>
>
>
> Bruce
>
>
>
>
>
>
>
> Best regards,
>
>
>
> *Scott D. Whitney*
>
> Principal Software Engineer
>
>
> Intertech Engineering Associates, Inc.
> 100 Lowder Brook Drive, Suite 2500
> Westwood, MA  02090
> *sdw@inea.com <sdw@inea.com>*    |     T: 781-801-1152    |
> F: 781-801-1108    |     *www.inea.com <http://www.inea.com/>*
>
>
>
> 
>
>
>
>
> --
>
> - Thou shalt not follow the NULL pointer, for chaos and madness await thee
> at its end
> - "Use the force Harry" - Gandalf, Star Trek II
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end
- "Use the force Harry" - Gandalf, Star Trek II

[-- Attachment #1.2: Type: text/html, Size: 8290 bytes --]

[-- Attachment #2: image002.png --]
[-- Type: image/png, Size: 3837 bytes --]

[-- Attachment #3: image003.png --]
[-- Type: image/png, Size: 3837 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
  2020-07-28 14:04     ` Zoran
@ 2020-07-28 14:18       ` Scott Whitney
  2020-07-28 16:04         ` Zoran
  0 siblings, 1 reply; 10+ messages in thread
From: Scott Whitney @ 2020-07-28 14:18 UTC (permalink / raw)
  To: Zoran Stojsavljevic; +Cc: Bruce Ashfield, yocto

Hi Zoran,

Thank you for responding.  I confess I am still new to building Linux with Yocto, so some of your steps may seem obvious, but are a bit confusing to a 'newbie'.

I am using normal Yocto instruction provided by Variscite to build our rootfs, U-Boot, and kernel.  However, I am not doing anything special to build an rt-kernel, and that is what I am trying to find out how to do.

For example, after downloading and installing prerequisite executables, I initialize our repo (example is for Yocto Warrior, but similar for Yocto Zeus):

$ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b fsl-warrior -m imx-4.19.35-1.1.0-var01.xml
$ repo sync -j4

Then I configure our machine, distro, and build directory:

$ cd ~/var-fsl-yocto
$ MACHINE=imx8mm-var-dart DISTRO=fsl-imx-xwayland . var-setup-release.sh -b build_xwayland

Then I am in the build_xwayland directory, and create our SD card image using:

$ bitbake fsl-image-qt5

The SD card image ends up in the build_xwayland/tmp/deploy/images directory, and I use the following to flash the SD card:

# For fsl-image-qt5 image (Qt5-XWAYLAND & Qt5-WAYLAND)
$ zcat tmp/deploy/images/imx8mm-var-dart/fsl-image-qt5-imx8mm-var-dart.sdcard.gz | sudo dd of=/dev/sdX bs=1M conv=fsync

What steps are you suggesting to configure rt-linux?  I would appreciate it if you could be specific, since some of the steps involved are new to me.

I have already added a .bbappend file to modify the device tree for our application, and have run bitbake -c menuconfig virtual/kernel to update the kernel configuration.

Thanks for your assistance and tolerance for my inexperienced questions.

Scott D. Whitney

sdw@inea.com    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com

-----Original Message-----
From: Zoran Stojsavljevic <zoran.stojsavljevic@gmail.com> 
Sent: Tuesday, July 28, 2020 10:05 AM
To: Scott Whitney <sdw@inea.com>
Cc: Bruce Ashfield <bruce.ashfield@gmail.com>; yocto@yoctoproject.org
Subject: Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?

Hello Scott,

I have a bit of a different idea about the whole YOCTO process.

Let me suggest something else, actually a hybrid combination of the YOCTO build system.

You can do the whole process of YOCTO, but why do you not use components out of the YOCTO building process?

For example, you can use rootfs built by YOCTO, and U-Boot and rt-kernel built out of the YOCTO, for the beginning?

Then, as an option, if you are satisfied with the reached architecture, you can write your own recipe for the rt-kernel (you need to incorporate a bunch of patches into the rt-kernel proprietary recipe).

Zoran
_______


On Tue, Jul 28, 2020 at 2:45 PM Scott Whitney <sdw@inea.com> wrote:
>
> Hi Bruce,
>
>
>
> Yes, we are using Linux built by Yocto, but where is the preferred provider for the kernel set to linux-yocto-rt?
>
>
>
> Thanks for your help
>
>
>
> Scott D. Whitney
>
> sdw@inea.com    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com
>
>
>
> From: Bruce Ashfield <bruce.ashfield@gmail.com>
> Sent: Monday, July 27, 2020 10:04 PM
> To: Scott Whitney <sdw@inea.com>
> Cc: yocto@yoctoproject.org
> Subject: Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
>
>
>
>
>
>
>
> On Mon, Jul 27, 2020 at 3:51 PM Scott Whitney <sdw@inea.com> wrote:
>
> Hi Yocto group,
>
>
>
> I’m working with a newly-released copy of Yocto Zeus from Variscite for the i.MX8MM Mini, although the same option seems to apply to the previous Yocto Warrior.
>
>
>
> I understand that a Linux real-time kernel can be enabled by setting LINUX_KERNEL_TYPE = “preempt-rt”.  Where does this option need to be set so that when I bitbake fsl-image-qt5, I get the Linux “preempt-rt” kernel instead of the “standard” kernel?
>
>
>
> Is there a specific configuration file that needs to be modified, or a new recipe in a layer?  I am confused and hoping that you can help.
>
>
>
> If you aren't using linux-yocto, you'll need to arrange for the preempt-rt patch(es) to be applied to whatever kernel you are using. Which means you are creating a new recipe, bbappending an existing one, or if you are lucky the kernel provider already has a -rt recipe available.
>
>
>
> If you are using linux-yocto, it's as simple as setting the preferred provider of the kernel as linux-yocto-rt  and building.
>
>
>
> Bruce
>
>
>
>
>
>
>
> Best regards,
>
>
>
> Scott D. Whitney
>
> Principal Software Engineer
>
>
> Intertech Engineering Associates, Inc.
> 100 Lowder Brook Drive, Suite 2500
> Westwood, MA  02090
> sdw@inea.com    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com
>
>
>
>
>
>
> --
>
> - Thou shalt not follow the NULL pointer, for chaos and madness await 
> thee at its end
> - "Use the force Harry" - Gandalf, Star Trek II
>
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
  2020-07-28 14:17     ` Bruce Ashfield
@ 2020-07-28 14:26       ` Scott Whitney
  2020-07-28 14:32         ` Bruce Ashfield
  0 siblings, 1 reply; 10+ messages in thread
From: Scott Whitney @ 2020-07-28 14:26 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: yocto


[-- Attachment #1.1: Type: text/plain, Size: 6192 bytes --]

Hi Bruce,

I believe the recipe for building Variscite’s kernel is in meta-variscite-imx/recipes-kernel/linux/linux-variscite_4.19.35.bb, which does produce a booting U-Boot and Linux image.  What would need to be modified to enable the rt-linux kernel?  The recipe is provided below.

# Copyright (C) 2013-2016 Freescale Semiconductor
# Copyright 2017 NXP
# Copyright 2018-2019 Variscite Ltd.
# Released under the MIT license (see COPYING.MIT for the terms)

SUMMARY = "Linux kernel provided and supported by Variscite"
DESCRIPTION = "Linux kernel provided and supported by Variscite (based on the kernel provided by NXP) \
with focus on i.MX Family SOMs. It includes support for many IPs such as GPU, VPU and IPU."

require recipes-kernel/linux/linux-imx.inc
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"

DEPENDS += "lzop-native bc-native"

DEFAULT_PREFERENCE = "1"

SRCBRANCH = "imx_4.19.35_1.1.0_var01"

LOCALVERSION_imx8mq-var-dart = "-imx8mq"
LOCALVERSION_imx8mm-var-dart = "-imx8mm"
LOCALVERSION_imx8mn-var-som = "-imx8mn"
LOCALVERSION_imx8qxp-var-som = "-imx8x"
LOCALVERSION_imx8qm-var-som = "-imx8qm"

KERNEL_DEFCONFIG = "${S}/arch/arm64/configs/imx8_var_defconfig"
DEFAULT_DTB_imx8mq-var-dart = "sd-lvds"
DEFAULT_DTB_imx8qxp-var-som = "sd"
DEFAULT_DTB_imx8qm-var-som = "lvds"
DEFAULT_DTB_PREFIX_imx8mq-var-dart = "fsl-imx8mq-var-dart"
DEFAULT_DTB_PREFIX_imx8qxp-var-som = "fsl-imx8qxp-var-som"
DEFAULT_DTB_PREFIX_imx8qm-var-som = "fsl-imx8qm-var-som"

KERNEL_SRC ?= "git://github.com/varigit/linux-imx;protocol=git"
SRC_URI = "${KERNEL_SRC};branch=${SRCBRANCH}"
SRCREV = "e6d3e3fefe4e85b5ee45beb7609b3c02bfe23efb"

S = "${WORKDIR}/git"

addtask copy_defconfig after do_patch before do_preconfigure
do_copy_defconfig () {
    cp ${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig
}

pkg_postinst_kernel-devicetree_append () {
   rm -f $D/boot/devicetree-*
}

pkg_postinst_kernel-devicetree_append_imx8mq-var-dart () {
    cd $D/boot
    ln -s ${DEFAULT_DTB_PREFIX}-${DEFAULT_DTB}.dtb ${DEFAULT_DTB_PREFIX}.dtb
    ln -s ${DEFAULT_DTB_PREFIX}-${DEFAULT_DTB}-cb12.dtb ${DEFAULT_DTB_PREFIX}-cb12.dtb
}

pkg_postinst_kernel-devicetree_append_imx8qxp-var-som () {
    cd $D/boot
    ln -s ${DEFAULT_DTB_PREFIX}-${DEFAULT_DTB}.dtb ${DEFAULT_DTB_PREFIX}.dtb
}

pkg_postinst_kernel-devicetree_append_imx8qm-var-som () {
    cd $D/boot
    ln -s ${DEFAULT_DTB_PREFIX}-${DEFAULT_DTB}.dtb ${DEFAULT_DTB_PREFIX}.dtb
    ln -s fsl-imx8qm-var-spear-${DEFAULT_DTB}.dtb fsl-imx8qm-var-spear.dtb
}

COMPATIBLE_MACHINE = "(mx8)"
EXTRA_OEMAKE_append_mx8 = " ARCH=arm64"

Scott D. Whitney
[cid:image003.png@01D664C9.78C615A0]
sdw@inea.com<mailto:sdw@inea.com>    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com<http://www.inea.com/>

From: Bruce Ashfield <bruce.ashfield@gmail.com>
Sent: Tuesday, July 28, 2020 10:18 AM
To: Scott Whitney <sdw@inea.com>
Cc: yocto@yoctoproject.org
Subject: Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?



On Tue, Jul 28, 2020 at 8:45 AM Scott Whitney <sdw@inea.com<mailto:sdw@inea.com>> wrote:
Hi Bruce,

Yes, we are using Linux built by Yocto, but where is the preferred provider for the kernel set to linux-yocto-rt?


This is one of the nuances about OE/Yocto, it isn't about building the kernel with yocto, I was wondering about the kernel recipe you are using.

If you have a booting kernel built from linux-yocto (the recipe), then the switch to -rt is easy. If it isn't using linux-yocto, then using -rt is specific to the kernel provider that you have (and it may be just as easy as the linux-yocto switch ... just without the details of that recipe/provider, I can't say).

The preferred provider is likely set in the vendor's BSP layer, and it likely points at whatever vendor kernel they are currently shipping.

Cheers,

Bruce


Thanks for your help

Scott D. Whitney
[cid:image002.png@01D664C9.78BEC2A0]
sdw@inea.com<mailto:sdw@inea.com>    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com<http://www.inea.com/>

From: Bruce Ashfield <bruce.ashfield@gmail.com<mailto:bruce.ashfield@gmail.com>>
Sent: Monday, July 27, 2020 10:04 PM
To: Scott Whitney <sdw@inea.com<mailto:sdw@inea.com>>
Cc: yocto@yoctoproject.org<mailto:yocto@yoctoproject.org>
Subject: Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?



On Mon, Jul 27, 2020 at 3:51 PM Scott Whitney <sdw@inea.com<mailto:sdw@inea.com>> wrote:
Hi Yocto group,

I’m working with a newly-released copy of Yocto Zeus from Variscite for the i.MX8MM Mini, although the same option seems to apply to the previous Yocto Warrior.

I understand that a Linux real-time kernel can be enabled by setting LINUX_KERNEL_TYPE = “preempt-rt”.  Where does this option need to be set so that when I bitbake fsl-image-qt5, I get the Linux “preempt-rt” kernel instead of the “standard” kernel?

Is there a specific configuration file that needs to be modified, or a new recipe in a layer?  I am confused and hoping that you can help.

If you aren't using linux-yocto, you'll need to arrange for the preempt-rt patch(es) to be applied to whatever kernel you are using. Which means you are creating a new recipe, bbappending an existing one, or if you are lucky the kernel provider already has a -rt recipe available.

If you are using linux-yocto, it's as simple as setting the preferred provider of the kernel as linux-yocto-rt  and building.

Bruce



Best regards,

Scott D. Whitney
Principal Software Engineer
[cid:image002.png@01D664C9.78BEC2A0]
Intertech Engineering Associates, Inc.
100 Lowder Brook Drive, Suite 2500
Westwood, MA  02090
sdw@inea.com<mailto:sdw@inea.com>    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com<http://www.inea.com/>




--
- Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end
- "Use the force Harry" - Gandalf, Star Trek II


--
- Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end
- "Use the force Harry" - Gandalf, Star Trek II

[-- Attachment #1.2: Type: text/html, Size: 20814 bytes --]

[-- Attachment #2: image002.png --]
[-- Type: image/png, Size: 3837 bytes --]

[-- Attachment #3: image003.png --]
[-- Type: image/png, Size: 3837 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
  2020-07-28 14:26       ` Scott Whitney
@ 2020-07-28 14:32         ` Bruce Ashfield
  0 siblings, 0 replies; 10+ messages in thread
From: Bruce Ashfield @ 2020-07-28 14:32 UTC (permalink / raw)
  To: Scott Whitney; +Cc: yocto


[-- Attachment #1.1: Type: text/plain, Size: 7522 bytes --]

On Tue, Jul 28, 2020 at 10:26 AM Scott Whitney <sdw@inea.com> wrote:

> Hi Bruce,
>
>
>
> I believe the recipe for building Variscite’s kernel is in
> meta-variscite-imx/recipes-kernel/linux/linux-variscite_4.19.35.bb, which
> does produce a booting U-Boot and Linux image.  What would need to be
> modified to enable the rt-linux kernel?  The recipe is provided below.
>

At a high level, you need to get the appropriate preempt-rt patch from the
-rt project, add it to the SRC_URI (via bbappend), fix the patch so that it
applies to that kernel, build, and then debug and boot failures.

That's the trivialized version of the steps.

As for how to get the patch and apply it, it is just like any other package
for patching, so you can lookup the details in the reference manuals and/or
find other kernel recipe examples that are doing something similar. They
will do a better job than I ever would explaining the steps here.

Cheers,

Bruce



>
>
> # Copyright (C) 2013-2016 Freescale Semiconductor
>
> # Copyright 2017 NXP
>
> # Copyright 2018-2019 Variscite Ltd.
>
> # Released under the MIT license (see COPYING.MIT for the terms)
>
>
>
> SUMMARY = "Linux kernel provided and supported by Variscite"
>
> DESCRIPTION = "Linux kernel provided and supported by Variscite (based on
> the kernel provided by NXP) \
>
> with focus on i.MX Family SOMs. It includes support for many IPs such as
> GPU, VPU and IPU."
>
>
>
> require recipes-kernel/linux/linux-imx.inc
>
> LICENSE = "GPLv2"
>
> LIC_FILES_CHKSUM = "file://COPYING;md5=bbea815ee2795b2f4230826c0c6b8814"
>
>
>
> DEPENDS += "lzop-native bc-native"
>
>
>
> DEFAULT_PREFERENCE = "1"
>
>
>
> SRCBRANCH = "imx_4.19.35_1.1.0_var01"
>
>
>
> LOCALVERSION_imx8mq-var-dart = "-imx8mq"
>
> LOCALVERSION_imx8mm-var-dart = "-imx8mm"
>
> LOCALVERSION_imx8mn-var-som = "-imx8mn"
>
> LOCALVERSION_imx8qxp-var-som = "-imx8x"
>
> LOCALVERSION_imx8qm-var-som = "-imx8qm"
>
>
>
> KERNEL_DEFCONFIG = "${S}/arch/arm64/configs/imx8_var_defconfig"
>
> DEFAULT_DTB_imx8mq-var-dart = "sd-lvds"
>
> DEFAULT_DTB_imx8qxp-var-som = "sd"
>
> DEFAULT_DTB_imx8qm-var-som = "lvds"
>
> DEFAULT_DTB_PREFIX_imx8mq-var-dart = "fsl-imx8mq-var-dart"
>
> DEFAULT_DTB_PREFIX_imx8qxp-var-som = "fsl-imx8qxp-var-som"
>
> DEFAULT_DTB_PREFIX_imx8qm-var-som = "fsl-imx8qm-var-som"
>
>
>
> KERNEL_SRC ?= "git://github.com/varigit/linux-imx;protocol=git"
>
> SRC_URI = "${KERNEL_SRC};branch=${SRCBRANCH}"
>
> SRCREV = "e6d3e3fefe4e85b5ee45beb7609b3c02bfe23efb"
>
>
>
> S = "${WORKDIR}/git"
>
>
>
> addtask copy_defconfig after do_patch before do_preconfigure
>
> do_copy_defconfig () {
>
>     cp ${KERNEL_DEFCONFIG} ${WORKDIR}/defconfig
>
> }
>
>
>
> pkg_postinst_kernel-devicetree_append () {
>
>    rm -f $D/boot/devicetree-*
>
> }
>
>
>
> pkg_postinst_kernel-devicetree_append_imx8mq-var-dart () {
>
>     cd $D/boot
>
>     ln -s ${DEFAULT_DTB_PREFIX}-${DEFAULT_DTB}.dtb
> ${DEFAULT_DTB_PREFIX}.dtb
>
>     ln -s ${DEFAULT_DTB_PREFIX}-${DEFAULT_DTB}-cb12.dtb
> ${DEFAULT_DTB_PREFIX}-cb12.dtb
>
> }
>
>
>
> pkg_postinst_kernel-devicetree_append_imx8qxp-var-som () {
>
>     cd $D/boot
>
>     ln -s ${DEFAULT_DTB_PREFIX}-${DEFAULT_DTB}.dtb
> ${DEFAULT_DTB_PREFIX}.dtb
>
> }
>
>
>
> pkg_postinst_kernel-devicetree_append_imx8qm-var-som () {
>
>     cd $D/boot
>
>     ln -s ${DEFAULT_DTB_PREFIX}-${DEFAULT_DTB}.dtb
> ${DEFAULT_DTB_PREFIX}.dtb
>
>     ln -s fsl-imx8qm-var-spear-${DEFAULT_DTB}.dtb fsl-imx8qm-var-spear.dtb
>
> }
>
>
>
> COMPATIBLE_MACHINE = "(mx8)"
>
> EXTRA_OEMAKE_append_mx8 = " ARCH=arm64"
>
>
>
> *Scott D. Whitney*
>
> *sdw@inea.com <sdw@inea.com>*    |     T: 781-801-1152    |
> F: 781-801-1108    |     *www.inea.com <http://www.inea.com/>*
>
>
>
> *From:* Bruce Ashfield <bruce.ashfield@gmail.com>
> *Sent:* Tuesday, July 28, 2020 10:18 AM
> *To:* Scott Whitney <sdw@inea.com>
> *Cc:* yocto@yoctoproject.org
> *Subject:* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
>
>
>
>
>
>
>
> On Tue, Jul 28, 2020 at 8:45 AM Scott Whitney <sdw@inea.com> wrote:
>
> Hi Bruce,
>
>
>
> Yes, we are using Linux built by Yocto, but where is the preferred
> provider for the kernel set to linux-yocto-rt?
>
>
>
>
>
> This is one of the nuances about OE/Yocto, it isn't about building the
> kernel with yocto, I was wondering about the kernel recipe you are using.
>
>
>
> If you have a booting kernel built from linux-yocto (the recipe), then the
> switch to -rt is easy. If it isn't using linux-yocto, then using -rt is
> specific to the kernel provider that you have (and it may be just as easy
> as the linux-yocto switch ... just without the details of that
> recipe/provider, I can't say).
>
>
>
> The preferred provider is likely set in the vendor's BSP layer, and it
> likely points at whatever vendor kernel they are currently shipping.
>
>
>
> Cheers,
>
>
>
> Bruce
>
>
>
>
>
> Thanks for your help
>
>
>
> *Scott D. Whitney*
>
> *sdw@inea.com <sdw@inea.com>*    |     T: 781-801-1152    |
> F: 781-801-1108    |     *www.inea.com <http://www.inea.com/>*
>
>
>
> *From:* Bruce Ashfield <bruce.ashfield@gmail.com>
> *Sent:* Monday, July 27, 2020 10:04 PM
> *To:* Scott Whitney <sdw@inea.com>
> *Cc:* yocto@yoctoproject.org
> *Subject:* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
>
>
>
>
>
>
>
> On Mon, Jul 27, 2020 at 3:51 PM Scott Whitney <sdw@inea.com> wrote:
>
> Hi Yocto group,
>
>
>
> I’m working with a newly-released copy of Yocto Zeus from Variscite for
> the i.MX8MM Mini, although the same option seems to apply to the previous
> Yocto Warrior.
>
>
>
> I understand that a Linux real-time kernel can be enabled by setting
> LINUX_KERNEL_TYPE = “preempt-rt”.  Where does this option need to be set so
> that when I bitbake fsl-image-qt5, I get the Linux “preempt-rt” kernel
> instead of the “standard” kernel?
>
>
>
> Is there a specific configuration file that needs to be modified, or a new
> recipe in a layer?  I am confused and hoping that you can help.
>
>
>
> If you aren't using linux-yocto, you'll need to arrange for the preempt-rt
> patch(es) to be applied to whatever kernel you are using. Which means you
> are creating a new recipe, bbappending an existing one, or if you are lucky
> the kernel provider already has a -rt recipe available.
>
>
>
> If you are using linux-yocto, it's as simple as setting the preferred
> provider of the kernel as linux-yocto-rt  and building.
>
>
>
> Bruce
>
>
>
>
>
>
>
> Best regards,
>
>
>
> *Scott D. Whitney*
>
> Principal Software Engineer
>
>
> Intertech Engineering Associates, Inc.
> 100 Lowder Brook Drive, Suite 2500
> Westwood, MA  02090
> *sdw@inea.com <sdw@inea.com>*    |     T: 781-801-1152    |
> F: 781-801-1108    |     *www.inea.com <http://www.inea.com/>*
>
>
>
> 
>
>
>
>
> --
>
> - Thou shalt not follow the NULL pointer, for chaos and madness await thee
> at its end
> - "Use the force Harry" - Gandalf, Star Trek II
>
>
>
>
> --
>
> - Thou shalt not follow the NULL pointer, for chaos and madness await thee
> at its end
> - "Use the force Harry" - Gandalf, Star Trek II
>


-- 
- Thou shalt not follow the NULL pointer, for chaos and madness await thee
at its end
- "Use the force Harry" - Gandalf, Star Trek II

[-- Attachment #1.2: Type: text/html, Size: 18751 bytes --]

[-- Attachment #2: image002.png --]
[-- Type: image/png, Size: 3837 bytes --]

[-- Attachment #3: image003.png --]
[-- Type: image/png, Size: 3837 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
  2020-07-28 14:18       ` Scott Whitney
@ 2020-07-28 16:04         ` Zoran
  0 siblings, 0 replies; 10+ messages in thread
From: Zoran @ 2020-07-28 16:04 UTC (permalink / raw)
  To: Scott Whitney; +Cc: Bruce Ashfield, yocto

Hello Scott,

What I wanted to say here is that you do not change anything while
building a YOCTO load. You'll get all the components in:
.../tmp/deploy/images/$(PLATFORM) , namely:
XYZ,rootfs.cpio.zx
U-Boot
zImage
modules

But you can build a rt-kernel very conventionally, using out of YOCTO
classical kernel build.
[1] Download from the provider the normal kernel;
[2] Apply rt-patches to it (usually there is a script for it);
[3] make imx8_defconfig or whatever *_defconfig which suits to your platform;
[4] make menuconfig (for checking which CONFIG_ options are included,
and if you need something more/less, to adjust it;
[5] make
[6] sudo make modules_install

This is in nutshell, you might need to use cross compiling options,
like I do for BBB:
https://github.com/ZoranStojsavljevic/MikroE_BeagleBone-Black_BSP-Integration/blob/master/README.md

(please, find U-Boot and kernel classical building procedures in there)

The same for U-Boot, or even you can use YOCTO's U-Boot.

Then, if the whole system suits your requirements, you might go by
Bruce's advices (from his very last email).

Just an idea how to ease your initial pain...

Zoran
_______


On Tue, Jul 28, 2020 at 4:18 PM Scott Whitney <sdw@inea.com> wrote:
>
> Hi Zoran,
>
> Thank you for responding.  I confess I am still new to building Linux with Yocto, so some of your steps may seem obvious, but are a bit confusing to a 'newbie'.
>
> I am using normal Yocto instruction provided by Variscite to build our rootfs, U-Boot, and kernel.  However, I am not doing anything special to build an rt-kernel, and that is what I am trying to find out how to do.
>
> For example, after downloading and installing prerequisite executables, I initialize our repo (example is for Yocto Warrior, but similar for Yocto Zeus):
>
> $ repo init -u https://github.com/varigit/variscite-bsp-platform.git -b fsl-warrior -m imx-4.19.35-1.1.0-var01.xml
> $ repo sync -j4
>
> Then I configure our machine, distro, and build directory:
>
> $ cd ~/var-fsl-yocto
> $ MACHINE=imx8mm-var-dart DISTRO=fsl-imx-xwayland . var-setup-release.sh -b build_xwayland
>
> Then I am in the build_xwayland directory, and create our SD card image using:
>
> $ bitbake fsl-image-qt5
>
> The SD card image ends up in the build_xwayland/tmp/deploy/images directory, and I use the following to flash the SD card:
>
> # For fsl-image-qt5 image (Qt5-XWAYLAND & Qt5-WAYLAND)
> $ zcat tmp/deploy/images/imx8mm-var-dart/fsl-image-qt5-imx8mm-var-dart.sdcard.gz | sudo dd of=/dev/sdX bs=1M conv=fsync
>
> What steps are you suggesting to configure rt-linux?  I would appreciate it if you could be specific, since some of the steps involved are new to me.
>
> I have already added a .bbappend file to modify the device tree for our application, and have run bitbake -c menuconfig virtual/kernel to update the kernel configuration.
>
> Thanks for your assistance and tolerance for my inexperienced questions.
>
> Scott D. Whitney
>
> sdw@inea.com    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com
>
> -----Original Message-----
> From: Zoran Stojsavljevic <zoran.stojsavljevic@gmail.com>
> Sent: Tuesday, July 28, 2020 10:05 AM
> To: Scott Whitney <sdw@inea.com>
> Cc: Bruce Ashfield <bruce.ashfield@gmail.com>; yocto@yoctoproject.org
> Subject: Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
>
> Hello Scott,
>
> I have a bit of a different idea about the whole YOCTO process.
>
> Let me suggest something else, actually a hybrid combination of the YOCTO build system.
>
> You can do the whole process of YOCTO, but why do you not use components out of the YOCTO building process?
>
> For example, you can use rootfs built by YOCTO, and U-Boot and rt-kernel built out of the YOCTO, for the beginning?
>
> Then, as an option, if you are satisfied with the reached architecture, you can write your own recipe for the rt-kernel (you need to incorporate a bunch of patches into the rt-kernel proprietary recipe).
>
> Zoran
> _______
>
>
> On Tue, Jul 28, 2020 at 2:45 PM Scott Whitney <sdw@inea.com> wrote:
> >
> > Hi Bruce,
> >
> >
> >
> > Yes, we are using Linux built by Yocto, but where is the preferred provider for the kernel set to linux-yocto-rt?
> >
> >
> >
> > Thanks for your help
> >
> >
> >
> > Scott D. Whitney
> >
> > sdw@inea.com    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com
> >
> >
> >
> > From: Bruce Ashfield <bruce.ashfield@gmail.com>
> > Sent: Monday, July 27, 2020 10:04 PM
> > To: Scott Whitney <sdw@inea.com>
> > Cc: yocto@yoctoproject.org
> > Subject: Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
> >
> >
> >
> >
> >
> >
> >
> > On Mon, Jul 27, 2020 at 3:51 PM Scott Whitney <sdw@inea.com> wrote:
> >
> > Hi Yocto group,
> >
> >
> >
> > I’m working with a newly-released copy of Yocto Zeus from Variscite for the i.MX8MM Mini, although the same option seems to apply to the previous Yocto Warrior.
> >
> >
> >
> > I understand that a Linux real-time kernel can be enabled by setting LINUX_KERNEL_TYPE = “preempt-rt”.  Where does this option need to be set so that when I bitbake fsl-image-qt5, I get the Linux “preempt-rt” kernel instead of the “standard” kernel?
> >
> >
> >
> > Is there a specific configuration file that needs to be modified, or a new recipe in a layer?  I am confused and hoping that you can help.
> >
> >
> >
> > If you aren't using linux-yocto, you'll need to arrange for the preempt-rt patch(es) to be applied to whatever kernel you are using. Which means you are creating a new recipe, bbappending an existing one, or if you are lucky the kernel provider already has a -rt recipe available.
> >
> >
> >
> > If you are using linux-yocto, it's as simple as setting the preferred provider of the kernel as linux-yocto-rt  and building.
> >
> >
> >
> > Bruce
> >
> >
> >
> >
> >
> >
> >
> > Best regards,
> >
> >
> >
> > Scott D. Whitney
> >
> > Principal Software Engineer
> >
> >
> > Intertech Engineering Associates, Inc.
> > 100 Lowder Brook Drive, Suite 2500
> > Westwood, MA  02090
> > sdw@inea.com    |     T: 781-801-1152    |     F: 781-801-1108    |     www.inea.com
> >
> >
> >
> >
> >
> >
> > --
> >
> > - Thou shalt not follow the NULL pointer, for chaos and madness await
> > thee at its end
> > - "Use the force Harry" - Gandalf, Star Trek II
> >
> > 

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [yocto] How to enable preempt-rt in Yocto Zeus or Warrior?
  2020-07-27 19:51 How to enable preempt-rt in Yocto Zeus or Warrior? Scott Whitney
  2020-07-28  2:04 ` [yocto] " Bruce Ashfield
@ 2020-07-30  5:45 ` Khem Raj
  1 sibling, 0 replies; 10+ messages in thread
From: Khem Raj @ 2020-07-30  5:45 UTC (permalink / raw)
  To: Scott Whitney, yocto



On 7/27/20 12:51 PM, Scott Whitney wrote:
> Hi Yocto group,
> 
> I’m working with a newly-released copy of Yocto Zeus from Variscite for 
> the i.MX8MM Mini, although the same option seems to apply to the 
> previous Yocto Warrior.
> 
> I understand that a Linux real-time kernel can be enabled by setting 
> LINUX_KERNEL_TYPE = “preempt-rt”.  Where does this option need to be set 
> so that when I bitbake fsl-image-qt5, I get the Linux “preempt-rt” 
> kernel instead of the “standard” kernel?
> 
> Is there a specific configuration file that needs to be modified, or a 
> new recipe in a layer?  I am confused and hoping that you can help.
> 

These are custom options perhaps you have from your SDK provider, since 
variscite SOMs are based on IMX perhaps you also need to see if they are 
using linux-imx kernel and ensure that they have preempt-rt patches 
integrated into which ever kernel you are using. Thereafter you could 
use right kconfig options to enable it. So first find out who is 
providing your kernel and does it have above

> Best regards,
> 
> *Scott D. Whitney*
> 
> Principal Software Engineer
> 
> 
> Intertech Engineering Associates, Inc.
> 100 Lowder Brook Drive, Suite 2500
> Westwood, MA  02090
> _sdw@inea.com <mailto:sdw@inea.com>_    |     T: 781-801-1152    |     
> F: 781-801-1108    | _www.inea.com <http://www.inea.com/>___
> 
> 
> 
> 

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-07-30  5:45 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-07-27 19:51 How to enable preempt-rt in Yocto Zeus or Warrior? Scott Whitney
2020-07-28  2:04 ` [yocto] " Bruce Ashfield
2020-07-28 12:45   ` Scott Whitney
2020-07-28 14:04     ` Zoran
2020-07-28 14:18       ` Scott Whitney
2020-07-28 16:04         ` Zoran
2020-07-28 14:17     ` Bruce Ashfield
2020-07-28 14:26       ` Scott Whitney
2020-07-28 14:32         ` Bruce Ashfield
2020-07-30  5:45 ` Khem Raj

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.