Issue
Can you please give the steps to compile the linux 3.10 kernel with lp. I am porting the 3.10 kernel into the arndale board ie exynos with device tree. I created the defconfig by running
ARCH=arm scripts/kconfig/merge_config.sh arch/arm/configs/exynos_defconfig android/configs/android-base.cfg
and i tried to compile it.
But getting compilation errors like
In file included from include/linux/jbd.h:247:0,
from fs/ext3/ext3.h:23,
from fs/ext3/balloc.c:16:
include/linux/jbd_common.h: In function 'jbd_lock_bh_state':
include/linux/jbd_common.h:18:16: error: 'BH_State' undeclared (first use in this function)
bit_spin_lock(BH_State, &bh->b_state);
^
include/linux/jbd_common.h:18:16: note: each undeclared identifier is reported only once for each function it appears in
include/linux/jbd_common.h: In function 'jbd_trylock_bh_state':
include/linux/jbd_common.h:23:26: error: 'BH_State' undeclared (first use in this function)
return bit_spin_trylock(BH_State, &bh->b_state);
^
include/linux/jbd_common.h: In function 'jbd_is_locked_bh_state':
include/linux/jbd_common.h:28:28: error: 'BH_State' undeclared (first use in this function)
return bit_spin_is_locked(BH_State, &bh->b_state);
^
include/linux/jbd_common.h: In function 'jbd_unlock_bh_state':
include/linux/jbd_common.h:33:18: error: 'BH_State' undeclared (first use in this function)
bit_spin_unlock(BH_State, &bh->b_state);
^
include/linux/jbd_common.h: In function 'jbd_lock_bh_journal_head':
include/linux/jbd_common.h:38:16: error: 'BH_JournalHead' undeclared (first use in this function)
bit_spin_lock(BH_JournalHead, &bh->b_state);
^
include/linux/jbd_common.h: In function 'jbd_unlock_bh_journal_head':
include/linux/jbd_common.h:43:18: error: 'BH_JournalHead' undeclared (first use in this function)
bit_spin_unlock(BH_JournalHead, &bh->b_state);
^
make[2]: *** [fs/ext3/balloc.o] Error 1
make[1]: *** [fs/ext3] Error 2
make: *** [fs] Error 2
Can anyone say what are the steps that I need to follow to build the kernel?
And where I am going wrong while building the kernel?
Solution
1.Take a working opensource 3.10 android kernel from arm based chipset like vexpress from http://releases.linaro.org/15.01/android/vexpress-lcr
2.The above kernel already has support for exynos based chipset it also has exynos defconfig in arch/arm/configs/exynos_defconfig you can use this defconfig and flash it on arndale, the kernel should boot as arndale uses exynos based chipset only.
3.This kernel only has support for SoC used in arndale i.e exynos5250, you need to add support for arndale specific changes like GUI related changes, peripheral related changes etc, for that you have to take reference from working arndale android kernel from source like http://releases.linaro.org/14.08/android/arndale and look for changes done for adding support for arndale. Below is the first patch they added where they started adding support for arndale
From 6f50912b63088c098b9a0d14f7384567631df356 Mon Sep 17 00:00:00 2001
From: Girish K S <[email protected]>
Date: Mon, 8 Oct 2012 13:32:56 +0900
Subject: [PATCH 001/130] ARM: DTS: exynos5250-arndale: Add initial board
support file
and below is the last patch added
From 5a93c058f6bd377fc5edad3e07b1f4d9f18f0c32 Mon Sep 17 00:00:00 2001
From: Pranav Tipnis <[email protected]>
Date: Tue, 9 Jul 2013 18:20:41 +0530
Subject: [PATCH 085/130] media: vb2: Activate display as soon as mmap is
you have to study all the patches in between including the above two and port relevant changes to your 3.10 kernel. All the best!.
Thanks, Devarsh
Answered By - Devarsh Thakkar