Also habe ich die Android-Kernel-Quelle für mein Motorola-Handy geklont und war dabei, es zu bauen.android kernel error: 'struct dentry' hat kein Mitglied namens 'd_alias'
Android Kernel Info:
Name: Android Kernel Motorola MSM8610
Gerät (beabsichtigte): Moto E
Hardware: MSM8610
Github: Kernel Source Link
Verfahren:
Zuerst habe ich die CONFIG-Datei
make ARCH=arm msm8610_defconfig
mit
dann habe ich versucht, indem Sie einen Dateinamen startBuild
startBuild das Kernel-Image zu bauen:
make ARCH=arm SUBARCH=arm CROSS_COMPILE=/media/mohit/776b997b-f9a1-46c2-92a0-7f438c7b78e3/code/toolchain/arm-eabi-4.6/bin/arm-eabi- -j4
Erteilen der erforderlichen Berechtigungen
chmod +x startBuild
und es
./startBuild
Aber ich erhalte die folgende Fehlermeldung ausführen:
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..
So wie man diesen Fehler zu beheben?
Vielen Dank.
Googeln für Fehlermeldung gefunden [dieser Beitrag] (https://github.com/rasa/vmware-tools-patches/issues/29#issuecomment-76707190), die Lösung für eine andere Linux-Komponente beschreibt: Ersetzen von 'd_alias' mit 'd_u.d_alias'. Es sollte auch in Ihrem Fall helfen. – Tsyvarev
@Tsyvarev Yean Ich habe das auch versucht, hat nicht funktioniert. Wie im Falle meiner inode.c-Datei 'd_u' und' d_alias' ist nicht definiert, vielleicht ist das der Fall. – Mohit
Also, welchen Zweig möchten Sie kompilieren? Voreingestellt auf der Cite ist * cm-12.0 *, die definitiv nicht von diesem Problem betroffen ist ("struct denture" [hat Mitglied] (https://github.com/CyanogenMod/android_kernel_motorola_msm8610/blob/cm-12.0/include/linux /dcache.h#L116) 'd_alias'). In Zweig * cm-13.0 * gegebener Struktur [hat Member] (https://github.com/CyanogenMod/android_kernel_motorola_msm8610/blob/cm-13.0/include/linux/dcache.h#L116) 'd_u'. – Tsyvarev