I downloaded PrimeOS' kernel from https://github.com/primebook/android_kernel_common. I just need to replace a single .c
file in /drivers/platform/x86
. Here's what I tried doing:-
- Replaced
.c
- make clean && make mrproper
- Copied
arch//configs/android-x86_deconfig
to linux source root folder as.config
- fakeroot make kernel -j4
The command runs but stops abruptly and the terminal shows the $
localhost as if the task is finished. Can you tell me where I went wrong.
Update Here's the place where the issue comes:-
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
YACC scripts/kconfig/zconf.tab.c
LEX scripts/kconfig/zconf.lex.c
..............................................................
CC kernel/time/timeconv.o
In file included from ./arch/x86/include/asm/string.h:3,
from ./include/linux/string.h:20,
from ./arch/x86/include/asm/page_32.h:35,
from ./arch/x86/include/asm/page.h:14,
from ./arch/x86/include/asm/thread_info.h:12,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/spinlock.h:51,
from ./include/linux/mmzone.h:8,
from ./include/linux/gfp.h:6,
from ./include/linux/mm.h:10,
from ./include/linux/ring_buffer.h:5,
from kernel/trace/trace.c:15:
In function ‘ftrace_dump’,
inlined from ‘ftrace_dump’ at kernel/trace/trace.c:8269:6:
./arch/x86/include/asm/string_32.h:325:29: warning: ‘__builtin_memset’ offset [8297, 8336] from the object at ‘iter’ is out of the bounds of referenced subobject ‘seq’ with type ‘struct trace_seq’ at offset 4176 [-Warray-bounds]
325 | #define memset(s, c, count) __builtin_memset(s, c, count)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/trace.c:8347:3: note: in expansion of macro ‘memset’
8347 | memset(&iter.seq, 0,
| ^~~~~~
CC kernel/time/timecounter.o
..............................................................
AR kernel/built-in.a
$
Full Log: https://pastebin.com/8T3G3Uyc
So, it just comes back to $ as if the process completed at kernel/built-in.a. This is the file where every time it stops. Even if I compile the kernel without any changes, it still stops at kernel/built-in.a BTW, I am just using the source I downloaded from primebook and installed the necessary packages for recompiling the kernel. Should I be doing something else too.
UPDATE 1 I tried running make -j4 bzImage modules but this again stops at
AR drivers/video/built-in.a
AR drivers/built-in.a
Even this doesn't compile a bzImage
UPDATE 2
I tried running make kernel
on a Linux source (5.4.0) and even that stops at built-in.a
UPDATE 3
I tried running make bzImage modules
without -j4
and I get a new error now
sound/soc/codecs/es8316.c:766:1: note: in expansion of macro ‘module_i2c_driver’
766 | module_i2c_driver(es8316_i2c_driver);
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:304: sound/soc/codecs/es8316.o] Error 1
make[2]: *** [scripts/Makefile.build:544: sound/soc/codecs] Error 2
make[1]: *** [scripts/Makefile.build:544: sound/soc] Error 2
make: *** [Makefile:1050: sound] Error 2
Full log: https://pastebin.com/JJeh4QTk
UPDATE 4
make bzImage
works and outputs the bzImage as expected.