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]):
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.
[2]: Flashing Edison (wired) - Linux
[3]: Intel® Edison BSP User Guide
[4]: