4 Replies Latest reply on Feb 27, 2014 7:58 AM by ldvp

    Galileo RT_Preempt

    ldvp

      Hi all, I'm using the Galileo board with micro SD linux clanton, but I need to improve the real time performances of the operative system. So I'm looking to the RT_Preempt patch of the kernel (I used it before on a Ubuntu distro on ARM architecture and other distros on desktop PC).

      Is it possible to generate a rt-preempt image from the BSP of Intel Download center? If yes, how do that?

      Could it be enough to edit some recipes before calling setup.sh or bitbake image-full?

      Thanks a lot,

      Luca

        • 1. Re: Galileo RT_Preempt
          Intel_Jesus

          Hi ldvp,

           

          I don’t know if it’s possible to generate an rt-preempt image from the BSP. Take a look at Sergey’s blog it might help you http://www.malinov.com/Home/sergey-s-blog. He makes some changes before building the image in his Intel Galileo – Building Linux Image post.

           

          Regards,

          Intel_JEspinoza

          • 2. Re: Galileo RT_Preempt
            ldvp

            Thank you for the hint Intel_JEspinoza, but I have already read Sergey's post before, when searching information.

            Since I have not used Yocto Project tools before, then I give a fast look to its documentation and read there are three types of kernel types in BSP descriptions: KTYPE "tiny", "standard" and "rt-preempt".

             

            However I need to know if the Intel BSP v0.7.5.7 or v0.9.0.7 are configurable to easily switch to rt-preempt editing few lines of code or passing through big efforts and deep-knowledge of Yocto Project.

            I suppose a Yocto Project expert user could answer this question in a very short time. Thanks a lot.

            Regards,

            Luca

             

            Update: I tried to download a 3.12.6 kernel and patch it with its RT_PREEMPT using the BSP image-spi generated toolchain generated before. in brief: make menuconfig to set fully preemptible kernel and check high resolution timer support PATH=$PATH:[...]/sysroots/clanton/usr/bin make ARCH=x86 and CROSS-COMPILER=[...]/sysroots/clanton/usr/bin/i586-uclibc....- when the kernel "bzImage" file is produced, I substituted it on the "image-spi" micro SD, but the board freezes at boot after: #Clanton Microcode Version a0_1_00_23 [Linux-EFI, setup=0x1091, size=0x222d80] [Initrd, addr=0xd82f000, size=0x30fd89]

            • 3. Re: Galileo RT_Preempt
              Intel_Jesus

              Hi ldvp,

               

              Adding RT-Preempt should be possible but would require Yocto® knowledge. I recommend looking at the Yocto® Project Community for additional information.

              https://www.yoctoproject.org/tools-resources/community

               

              Regards,

              Intel_JEspinoza

              • 4. Re: Galileo RT_Preempt
                ldvp

                Finally I managed to build an RT_PREEMPT kernel.

                 

                in meta-clanton_v0.7.5/meta-clanton-bsp/recipes-kernel/linux/linux-yocto-clanton_3.8.bb

                1) replace standard kernel with rt-patched kernel source

                SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git;branch=linux-3.8.y"

                SRCREV = "531ec28f9f26f78797124b9efcf2138b89794a1e"

                with

                SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-stable-rt.git;branch=v3.8-rt"

                SRCREV = "1ceec8c6737b01eeebdf1b40c3da7e489b7f02d5"

                 

                2) adapt the clanton.patch to fit the new kernel, mainly code-adaptations and some asm-generic/ includes to change in asm/

                3) take the new kernel .config and add to it the clanton.cfg special CONFIG's (run a diff to find and check the differences)

                4) run bitbake linux-yocto-clanton

                5) go to yocto_build/tmp/work/clanton-poky-linux-uclibc/linux-yocto-clanton/3.8-r0/linux and run patch -p1 < ../clanton.patch

                6) replace the .config of yocto_build/tmp/work/clanton-poky-linux-uclibc/linux-yocto-clanton/3.8-r0/linux-clanton-standard-build with the clanton.cfg renamed .config

                7) run bitbake linux-yocto-clanton -c compile

                8) run bitbake image-full (or image-spi)

                 

                the result image has rt-patched kernel. This is not the most beautiful solution (e.g. the label "linux-yocto-standard" is no more correct) but it seems to work. Some tests should be done.