2017-06-20 3 views
1

Ich kompiliere einen Android-Kernel aus der Quelle. Aber mit einem Fehler bei der Herstellung des Objekts tspdrv.o stecken bleiben und kann nicht erkennen, wo es erzeugt wird. Folgendes ist der Fehler:Kompilieren des Kernels aus der Quelle. Fehler Erklärung.

CC  drivers/tspdrv/tspdrv.o 
In file included from include/linux/kernel.h:23:0, 
      from include/linux/cache.h:4, 
      from include/linux/time.h:7, 
      from include/linux/stat.h:60, 
      from include/linux/module.h:10, 
      from drivers/tspdrv/tspdrv.c:34: 
drivers/tspdrv/ImmVibeSPI.c: In function 'drv2604_write_reg_val': 
include/linux/dynamic_debug.h:61:16: error: implicit declaration of function 'KBUILD_STR' [-Werror=implicit-function-declaration] 
    static struct _ddebug __aligned(8)   \ 
     ^
include/linux/dynamic_debug.h:73:2: note: in expansion of macro 
'DEFINE_DYNAMIC_DEBUG_METADATA' 
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ 
^
include/linux/printk.h:196:2: note: in expansion of macro 'dynamic_pr_debug' 
    dynamic_pr_debug(fmt, ##__VA_ARGS__) 
^
drivers/tspdrv/ImmVibeSPI.c:681:4: note: in expansion of macro 'pr_debug' 
pr_debug("drv2604 x5 write 0x%02x, 0x%02x", data[i], data[i + 1]); 
^ 
<command-line>:0:27: error: 'tspdrv' undeclared (first use in this function) 
include/linux/dynamic_debug.h:63:14: note: in expansion of macro 'KBUILD_MODNAME' 
    .modname = KBUILD_MODNAME, \ 
      ^
include/linux/dynamic_debug.h:73:2: note: in expansion of macro 'DEFINE_DYNAMIC_DEBUG_METADATA' 
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ 
^
include/linux/printk.h:196:2: note: in expansion of macro 'dynamic_pr_debug' 
    dynamic_pr_debug(fmt, ##__VA_ARGS__) 
^
drivers/tspdrv/ImmVibeSPI.c:681:4: note: in expansion of macro 'pr_debug' 
    pr_debug("drv2604 x5 write 0x%02x, 0x%02x", data[i], data[i + 1]); 
    ^
<command-line>:0:27: note: each undeclared identifier is reported only once for each function it appears in 
include/linux/dynamic_debug.h:63:14: note: in expansion of macro 'KBUILD_MODNAME' 
    .modname = KBUILD_MODNAME, \ 
      ^
include/linux/dynamic_debug.h:73:2: note: in expansion of macro 'DEFINE_DYNAMIC_DEBUG_METADATA' 
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ 
^
include/linux/printk.h:196:2: note: in expansion of macro 'dynamic_pr_debug' 
    dynamic_pr_debug(fmt, ##__VA_ARGS__) 
^
drivers/tspdrv/ImmVibeSPI.c:681:4: note: in expansion of macro 'pr_debug' 
    pr_debug("drv2604 x5 write 0x%02x, 0x%02x", data[i], data[i + 1]); 
    ^
drivers/tspdrv/ImmVibeSPI.c: In function 'drv2604_read_reg': 
<command-line>:0:27: error: 'tspdrv' undeclared (first use in this function) 
include/linux/dynamic_debug.h:63:14: note: in expansion of macro 'KBUILD_MODNAME' 
    .modname = KBUILD_MODNAME, \ 
      ^
include/linux/dynamic_debug.h:73:2: note: in expansion of macro 'DEFINE_DYNAMIC_DEBUG_METADATA' 
    DEFINE_DYNAMIC_DEBUG_METADATA(descriptor, fmt); \ 
^
include/linux/printk.h:196:2: note: in expansion of macro 'dynamic_pr_debug' 
    dynamic_pr_debug(fmt, ##__VA_ARGS__) 
^
drivers/tspdrv/ImmVibeSPI.c:732:2: note: in expansion of macro 'pr_debug' 
    pr_debug("drv2604 read addr:0x%x reg:0x%x data:0x%x res:%d", 
^
cc1: some warnings being treated as errors 
scripts/Makefile.build:306: *** [drivers/tspdrv/tspdrv.o] Error 1 

#0 drivers/tspdrv/tspdrv.o at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/scripts/Makefile.build:306 
#1 drivers/tspdrv/built-in.o at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/scripts/Makefile.build:374 
#2 __build at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/scripts/Makefile.build:8 
Command-line invocation: 
    "remake -f scripts/Makefile.build obj=drivers/tspdrv" 
scripts/Makefile.build:442: *** [drivers/tspdrv] Error 2 

#0 drivers/tspdrv at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/scripts/Makefile.build:442 
#1 drivers/pinctrl/built-in.o at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/scripts/Makefile.build:361 
#2 drivers/built-in.o at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/scripts/Makefile.build:374 
#3 __build at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/scripts/Makefile.build:8 
Command-line invocation: 
    "remake -f scripts/Makefile.build obj=drivers" 
Makefile:949: *** [drivers] Error 2 

#0 drivers at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/Makefile:949 
#1 arch/arm/kernel/vmlinux.lds at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/Makefile:940 
#2 vmlinux at 
/home/ozair/nougat_mi3/kernel/xiaomi/cancro/Makefile:915 
#3 all at /home/ozair/nougat_mi3/kernel/xiaomi/cancro/Makefile:563 
#4 _all at /home/ozair/nougat_mi3/kernel/xiaomi/cancro/Makefile:111 
Command-line invocation: 
    " none 

Ich muss die Wurzel dieses Fehlers verstehen, da es mich nirgends führt. Zum Beispiel können

drivers/tspdrv/ImmVibeSPI.c: In function 'drv2604_write_reg_val': 
include/linux/dynamic_debug.h:61:16: error: implicit declaration of 
function 'KBUILD_STR' [-Werror=implicit-function-declaration] 
    static struct _ddebug __aligned(8)   \ 
     ^

Es diesen Teil des Fehlers übernehmen keine Funktion KBUILD_STR in include/linux/dynamic_debug.h:61:16

oder lese ich es falsch genannt ist?

+0

Ich denke, der Quellcode ist nicht vollständig. Bitte lade die Android-Kernel-Quelle erneut herunter und versuche sie zu kompilieren. – Gaurav

+0

@GauravPathak Leider kann ich nichts über unvollständigen Quellcode tun, ich habe gerade heruntergeladen, was sie zur Verfügung gestellt haben. : (Und habe viele Male versucht, aber ohne Erfolg. Können wechselnde Werkzeugketten funktionieren? –

Antwort

0

Sieht aus, als ob KBUILD_STR irgendwo zwischen 4.2 und 4.10 aus den Kernel-Build-Skripten entfernt wurde.

Es sieht so aus, als ob der Treiber nicht aktualisiert wurde.

Verwandte Themen