【发布时间】:2015-10-05 09:18:48
【问题描述】:
你能给出用lp编译linux 3.10内核的步骤吗? 我正在将 3.10 内核移植到 arndale 板,即带有设备树的 exynos。 我通过运行
创建了 defconfigARCH=arm scripts/kconfig/merge_config.sh arch/arm/configs/exynos_defconfig android/configs/android-base.cfg
我尝试编译它。
但是会出现类似的编译错误
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
谁能告诉我构建内核需要遵循哪些步骤?
在构建内核时我哪里出错了?
【问题讨论】:
-
根据行号,你有来自不同内核版本的
include/linux/jbd.h和include/linux/jbd_common.h:第一个是3.10版本,但第二个是3.11(使用,例如lxr.free-electrons.com用于查看不同版本文件的内容)。所以BH_*值的定义丢失了。可能是内核移植不正确。 -
如何将内核移植到安卓。我有工作 3.10 linaro 内核,以及如何将其移植到 android
-
如果您想要特定的驱动程序,这在某些 android 内核中不存在,将这个驱动程序从 vanilla 内核移植到 android 内核更容易。移植整个内核意味着重新访问其每个组件以适应 android,并在需要时重写。
标签: android linux linux-kernel porting