1 2 Previous Next 22 Replies Latest reply on Jul 29, 2016 11:36 AM by FerryT

    PREEMPT_RT-enabled Linux Kernel 3.10.17 on Intel Edison

    fj.rojas

      Greetings!

       

      I've been trying to cross-compile a PREEMPT_RT-enabled kernel for Intel Edison (without success) basing in [1].

       

      The host machine has an Intel Core I7 processor and is running under Zorin 9 (which is based on Ubuntu 14.04).

       

      So far, compiling the default kernel for the Edison has been accomplished by first following the steps in [2], and then by entering the commands in the next listing (which are based in [3] and [4]):

       

      sudo apt-get update
      sudo apt-get install build-essential git diffstat gawk chrpath texinfo libtool gcc-multilib dfu-util screen
      cd ~
      wget downloadmirror.intel.com/24389/eng/edison-src-rel1-maint-rel1-ww42-14.tgz
      rm -rf intel-edison-system-setup-files/
      tar -xzf edison-src-rel1-maint-rel1-ww42-14.tgz
      mv edison-src intel-edison-system-setup-files
      cd intel-edison-system-setup-files
      ./device-software/setup.sh
      nproc # Checking the number of cores present on the system
      gedit ./build/conf/local.conf # Modifying 'BB_NUMBER_THREADS = "16"' and 'PARALLEL_MAKE = "-j 12"' (lines 1 and 2)
      source poky/oe-init-build-env
      bitbake edison-image
      ../device-software/utils/flash/postBuild.sh
      
      
      sudo ./toFlash/flashall.sh

       

      In line 9, the numbers to place are cores*2 and cores*1.5. Since the processor on the PC has 8 cores, these values turn into 16 and 12, respectively.

       

      On an alternate terminal window, the following command is entered:

       

      sudo screen /dev/ttyUSB0 115200
      
      
      
      

       

      This opens the screen program, which aids in the visualization of the current processes the board is executing.

       

      After the last steps, the kernel boots fine and login is accomplished with root:<no password> on the alternate terminal. Typing uname -a gives the  output in the screenshot.

       

       

      On the first terminal, the commands in the following listing are entered:

       

      cd ../device-software/meta-edison/recipes-kernel/linux/files
      wget http://yoneken.sakura.ne.jp/share/rt_edison.tar.bz2
      tar -xaf rt_edison.tar.bz2
      rm rt_edison.tar.bz2
      cd ..
      gedit linux-yocto_3.10.bbappend
      
      
      

       

      Replace the file contents with the following listing:

       

      FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
      COMPATIBLE_MACHINE = "edison"
      LINUX_VERSION = "3.10.17"
      SRCREV_machine = "c03195ed6e3066494e3fb4be69154a57066e845b"
      SRCREV_meta = "6ad20f049abd52b515a8e0a4664861cfd331f684"
      
      SRC_URI += "file://defconfig"
      SRC_URI += "file://upstream_to_edison.patch"
      SRC_URI += "file://patch-3.10.17-rt12_edison.patch"
      SRC_URI += "file://intel_mid_rpmsg.c.patch"
      do_configure() {
        cp "${WORKDIR}/defconfig" "${B}/.config"
      }
      do_kernel_configme() {
        cp "${WORKDIR}/defconfig" "${B}/.config"
      }
      do_patch() {
        cd ${S}
        git am "${WORKDIR}/upstream_to_edison.patch"
        git apply "${WORKDIR}/patch-3.10.17-rt12_edison.patch"
        git apply "${WORKDIR}/intel_mid_rpmsg.c.patch"
      }
      
      
      
      

       

      Continue entering the following commands in the main terminal:

       

      cd ~/intel-edison-system-setup-files/
      source poky/oe-init-build-env
      bitbake virtual/kernel -c menuconfig
      
      
      

       

      Make sure the highlighted options in the following images are enabled/disabled.

       

       

       

       

       

       

       

      Save the configuration and the exit. Continue entering the following commands:

       

      cd tmp/work/edison-poky-linux/linux-yocto/3.10.17+gitAUTOINC+6ad20f049a_c03195ed6e-r0/linux-edison-standard-build/
      cp .config ~/intel-edison-system-setup-files/device-software/meta-edison/recipes-kernel/linux/files/defconfig
      cp .config ../linux/arch/x86/configs/i386_edison_defconfig
      cd ~/intel-edison-system-setup-files/
      source poky/oe-init-build-env
      bitbake virtual/kernel -c configure -f -v
      bitbake edison-image
      
      
      

       

      From the last listings, the patches described in [1] are downloaded and the file that will apply them during the kernel build is updated. Then, the kernel is configured. Finally, the whole Edison image is rebuilt with the modified kernel.

       

      After flashing the Edison, the following problems appear and logon screen is never displayed.

       

       

      So please, how can I do this in the correct way?

       

      Thanks a lot for your time.

       

      [1]: https://translate.google.com/translate?hl=en&sl=ja&tl=en&u=http%3A%2F%2Fqiita.com%2Fyoneken%2Fitems%2F2f6fd50bf9837cf50f…

      [2]: Flashing Edison (wired) - Linux

      [3]: Intel® Edison BSP User Guide

      [4]: Re: Sharing information about compiling Edison OS with Yocto.

        1 2 Previous Next