0
所以我克隆了我的摩托羅拉手機的android內核源碼,並且正在構建它。android內核錯誤:'struct dentry'沒有名爲'd_alias'的成員
Android的內核信息:
名稱:Android內核摩托羅拉MSM8610
設備(意):摩托è
硬件:MSM8610
Github上:Kernel Source Link
程序:
首先,我做了使用
make ARCH=arm msm8610_defconfig
然後我試圖創建一個文件名startBuild
startBuild生成內核映像的config文件:
make ARCH=arm SUBARCH=arm CROSS_COMPILE=/media/mohit/776b997b-f9a1-46c2-92a0-7f438c7b78e3/code/toolchain/arm-eabi-4.6/bin/arm-eabi- -j4
給它必要的權限
chmod +x startBuild
並執行
./startBuild
但我收到以下錯誤消息:
CHK include/linux/version.h
make[1]: Nothing to be done for 'arch/arm/boot/dtbs'.
CHK include/generated/utsrelease.h
make[1]: 'include/generated/mach-types.h' is up to date.
CALL scripts/checksyscalls.sh
CHK include/generated/compile.h
CHK kernel/config_data.h
CC fs/overlayfs/inode.o
fs/overlayfs/inode.c: In function 'ovl_permission':
fs/overlayfs/inode.c:71:11: error: 'struct dentry' has no member named 'd_alias'
fs/overlayfs/inode.c:71:11: warning: initialization from incompatible pointer type [enabled by default]
error, forbidden warning: inode.c:71
scripts/Makefile.build:307: recipe for target 'fs/overlayfs/inode.o' failed
make[2]: *** [fs/overlayfs/inode.o] Error 1
scripts/Makefile.build:443: recipe for target 'fs/overlayfs' failed
make[1]: *** [fs/overlayfs] Error 2
Makefile:957: recipe for target 'fs' failed
make: *** [fs] Error 2
make: *** Waiting for unfinished jobs..
那麼如何解決這個問題?
謝謝。
谷歌搜索錯誤信息找到[本文](https://github.com/rasa/vmware-tools-patches/issues/29#issuecomment-76707190),它描述了另一個linux組件的解決方案:用'd_alias'替換'd_u.d_alias'。它也應該有助於你的情況。 – Tsyvarev
@Tsyvarev Yean我也試過,沒有工作。至於我的inode.c文件'd_u'和'd_alias'沒有定義,那可能就是這種情況。 – Mohit
那麼,你試圖編譯哪個分支?引用的默認值是* cm-12.0 *,這肯定不會遇到這個問題('struct dentry' [has member](https://github.com/CyanogenMod/android_kernel_motorola_msm8610/blob/cm-12.0/include/linux) /dcache.h#L116)'d_alias')。在分支* cm-13.0 *給定struct [has member](https://github.com/CyanogenMod/android_kernel_motorola_msm8610/blob/cm-13.0/include/linux/dcache.h#L116)'d_u'。 – Tsyvarev