[request] [kernel] Hacking on bcm4329 source to correct array errors - Galaxy S I9000 General

Hi guys,
I'm getting the following errors when trying to compile the kernel with highly optimized thumb compiler options (and deactivating optimization for size):
cc1: warnings being treated as errors
drivers/net/wireless/bcm4329/linux_osl.c: In function 'osl_pktfree_static':
drivers/net/wireless/bcm4329/linux_osl.c:363:34: error: array subscript is above array bounds
drivers/net/wireless/bcm4329/linux_osl.c:363:34: error: array subscript is above array bounds
drivers/net/wireless/bcm4329/linux_osl.c:363:34: error: array subscript is above array bounds
drivers/net/wireless/bcm4329/linux_osl.c:363:34: error: array subscript is above array bounds
drivers/net/wireless/bcm4329/linux_osl.c:363:34: error: array subscript is above array bounds
drivers/net/wireless/bcm4329/linux_osl.c:363:34: error: array subscript is above array bounds
drivers/net/wireless/bcm4329/linux_osl.c:363:34: error: array subscript is above array bounds
drivers/net/wireless/bcm4329/linux_osl.c:363:34: error: array subscript is above array bounds
make[4]: *** [drivers/net/wireless/bcm4329/linux_osl.o] Error 1
make[4]: *** Waiting for unfinished jobs....
CC drivers/rtc/rtc-lib.o
LD drivers/power/power_supply.o
LD drivers/power/built-in.o
CC net/ipv4/netfilter/nf_defrag_ipv4.o
cc1: warnings being treated as errors
drivers/net/wireless/bcm4329/dhd_linux.c: In function 'dhd_open':
drivers/net/wireless/bcm4329/dhd_linux.c:1907:18: error: array subscript is below array bounds
CC net/xfrm/xfrm_hash.o
make[4]: *** [drivers/net/wireless/bcm4329/dhd_linux.o] Error 1
make[3]: *** [drivers/net/wireless/bcm4329] Error 2
make[2]: *** [drivers/net/wireless] Error 2
make[1]: *** [drivers/net] Error 2
make[1]: *** Waiting for unfinished jobs....
Click to expand...
Click to collapse
I tried to fix it but my kernel foo (or coding foo in general) is pretty weak
the source of the kernel is available at github
the driver resides in drivers/net/wireless/bcm4329
could anyone please take a look at it ?
the kernel-source is from CM7 and 2.6.35.7 based
Many many thanks in advance !

why got this moved into "General" section ?
this is clearly development material

I came across your post because I was seeing a similar compiling error for a Xoom with bcm4329/dhd_linux.c, specifically the "array subscript is below array bounds" in dhd_open().
That specific error is caused by a failure to check the return value from dhd_net2idx for the flag value DHD_BAD_IF before the variable is used as an array subscript. DHD_BAD_IF is -1, and this compilation error exists to ensure that the return code from dhd_net2idx is checked.
I'm not sure what the ideal solution is, but looking through the rest of that file there are other checks for that value that I used as a template to fix the dhd_open() function as well.

Came across your post when searching for similar errors, though I would keep it open to give you the solution...
https://github.com/LeeDroid-/Ace-2.6.35/commit/bae5569103406c74fe0b35aa906a243ed56eb853

GadgetSam said:
I came across your post because I was seeing a similar compiling error for a Xoom with bcm4329/dhd_linux.c, specifically the "array subscript is below array bounds" in dhd_open().
That specific error is caused by a failure to check the return value from dhd_net2idx for the flag value DHD_BAD_IF before the variable is used as an array subscript. DHD_BAD_IF is -1, and this compilation error exists to ensure that the return code from dhd_net2idx is checked.
I'm not sure what the ideal solution is, but looking through the rest of that file there are other checks for that value that I used as a template to fix the dhd_open() function as well.
Click to expand...
Click to collapse
LeeDroid said:
Came across your post when searching for similar errors, though I would keep it open to give you the solution...
https://github.com/LeeDroid-/Ace-2.6.35/commit/bae5569103406c74fe0b35aa906a243ed56eb853
Click to expand...
Click to collapse
(unfortunately I've already used up all 'thanks' for today)
thanks a lot GadgetSam and LeeDroid !
seems like I now can remove my workaround (hardcoding to optimize the wifi-driver with -Os only)
I'll have a look at that later if
drivers/net/wireless/bcm4329/dhd_linux.c: In function 'dhd_open':
drivers/net/wireless/bcm4329/dhd_linux.c:1907:18: error: array subscript is below array bounds
still happens with latest wifi code
thanks again !
edit:
lol - wrong file
I meant dhd_linux.c

ok, since I got several PMs already on this issue I'm posting the possible ways to solve this:
there are 2 solutions to tackle this issue:
- you fix the array errors in the code
- you force the wifi driver to compile in -Os (optimize for size) mode
the latter one is mainly used in several SGS kernels right now since e.g. fixing the array failures with some drivers strangely leads to non-functioning or broken wifi behavior (not connecting, etc.) [at least for me it did]
e.g.
in drivers/net/wireless/bcm4329/Makefile
replace:
# bcm4329
DHDCFLAGS = -DLINUX -DBCMDRIVER -DBCMDONGLEHOST -DDHDTHREAD -DBCMWPA2 \
-DUNRELEASEDCHIP -Dlinux -DDHD_SDALIGN=64 -DMAX_HDR_READ=64 \
-DDHD_FIRSTREAD=64 -DDHD_GPL -DDHD_SCHED -DBDC -DTOE -DDHD_BCMEVENTS \
-DSHOW_EVENTS -DBCMSDIO -DDHD_GPL -DBCMLXSDMMC -DBCMPLATFORM_BUS \
-Wall -Wstrict-prototypes -Werror -DOOB_INTR_ONLY -DCUSTOMER_HW2 \
-DDHD_USE_STATIC_BUF -DMMC_SDIO_ABORT -DDHD_DEBUG_TRAP -DSOFTAP \
-DEMBEDDED_PLATFORM -DARP_OFFLOAD_SUPPORT -DPKT_FILTER_SUPPORT \
-DGET_CUSTOM_MAC_ENABLE -DSET_RANDOM_MAC_SOFTAP -DCSCAN -DHW_OOB \
-DKEEP_ALIVE -DCONFIG_US_NON_DFS_CHANNELS_ONLY \
-DPNO_SUPPORT
Click to expand...
Click to collapse
with
# bcm4329
DHDCFLAGS = -DLINUX -DBCMDRIVER -DBCMDONGLEHOST -DDHDTHREAD -DBCMWPA2 \
-DUNRELEASEDCHIP -Dlinux -DDHD_SDALIGN=64 -DMAX_HDR_READ=64 \
-DDHD_FIRSTREAD=64 -DDHD_GPL -DDHD_SCHED -DBDC -DTOE -DDHD_BCMEVENTS \
-DSHOW_EVENTS -DBCMSDIO -DDHD_GPL -DBCMLXSDMMC -DBCMPLATFORM_BUS \
-Wall -Wstrict-prototypes -Werror -DOOB_INTR_ONLY -DCUSTOMER_HW2 \
-DDHD_USE_STATIC_BUF -DMMC_SDIO_ABORT -DDHD_DEBUG_TRAP -DSOFTAP \
-DEMBEDDED_PLATFORM -DARP_OFFLOAD_SUPPORT -DPKT_FILTER_SUPPORT \
-DGET_CUSTOM_MAC_ENABLE -DSET_RANDOM_MAC_SOFTAP -DCSCAN -DHW_OOB \
-DKEEP_ALIVE -DCONFIG_US_NON_DFS_CHANNELS_ONLY \
-DPNO_SUPPORT -Os
Click to expand...
Click to collapse
hope that helps [/QUOTE]

Related

Trying to build the stock kernel from source [SOLVED]

edit: The stock kernel can be built following this thread.
I'm trying to build the stock kernel from source (the one from huaweidevice). I'm running Ubuntu 10.10 64-bit.
I've gotten this far:
- I've extracted config from phone /proc/config.gz and copied it to kernel/.config
- I went through this guide: source.android.com source initializing.html
- I created some symbolic links to get rid of file not found errors when compiling:
kernel-2.6.32-U8800-Froyo/kernel/net/netfilter$ ln -s xt_connmark.c xt_CONNMARK.c
kernel-2.6.32-U8800-Froyo/kernel/net/netfilter$ ln -s xt_HL.c xt_hl.c
kernel-2.6.32-U8800-Froyo/kernel/net/netfilter$ ln -s xt_MARK.c xt_mark.c
kernel-2.6.32-U8800-Froyo/kernel/net/ipv4/netfilter$ ln -s ipt_ECN.c ipt_ecn.c
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter$ ln -s xt_mark.h xt_MARK.h
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter_ipv4$ ln -s ipt_ecn.h ipt_ECN.h
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter$ ln -s xt_DSCP.h xt_dscp.h
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter_ipv4$ ln -s ipt_ttl.h ipt_TTL.h
kernel-2.6.32-U8800-Froyo/kernel/include/linux/netfilter_ipv6$ ln -s ip6t_hl.h ip6t_HL.h
Now for the cross compilation I've tried 3 different toolchains:
- The ones from developer.android.com sdk ndk index.html
- and codesourcery.com sgpp lite arm portal package8734/public/arm-none-eabi/arm-2011.03-42-arm-none-eabi-i686-pc-linux-gnu.tar.bz2
then I've tried compiling with:
make -j8 ARCH=arm CROSS_COMPILE=.../android-ndk-r5b/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-
and
make -j8 ARCH=arm CROSS_COMPILE=.../android-ndk-r5b/toolchains/arm-eabi-4.4.0/prebuilt/linux-x86/bin/arm-eabi-
and
make -j8 ARCH=arm CROSS_COMPILE=.../arm-2011.03/bin/arm-none-eabi-
they all give me output similar to this (this is with the 4.4.0 toolchain):
Code:
CHK include/linux/version.h
SYMLINK include/asm -> include/asm-arm
make[1]: `include/asm-arm/mach-types.h' is up to date.
CHK include/linux/utsrelease.h
CALL scripts/checksyscalls.sh
CHK include/linux/compile.h
CC net/netfilter/xt_MARK.o
CC net/ipv4/netfilter/ipt_ecn.o
CC net/netfilter/xt_NFQUEUE.o
CC net/ipv4/netfilter/ipt_NETMAP.o
CC net/netfilter/xt_comment.o
CC net/netfilter/xt_connlimit.o
net/netfilter/xt_MARK.c: In function 'mark_tg':
net/netfilter/xt_MARK.c:32: error: dereferencing pointer to incomplete type
net/netfilter/xt_MARK.c:32: error: dereferencing pointer to incomplete type
net/netfilter/xt_MARK.c: At top level:
net/netfilter/xt_MARK.c:41: error: invalid application of 'sizeof' to incomplete type 'struct xt_mark_tginfo2'
make[2]: *** [net/netfilter/xt_MARK.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CC net/ipv4/netfilter/ipt_REDIRECT.o
CC net/ipv4/netfilter/ipt_REJECT.o
cc1: warnings being treated as errors
net/ipv4/netfilter/ipt_ecn.c:29: error: 'struct ipt_ECN_info' declared inside parameter list
net/ipv4/netfilter/ipt_ecn.c:29: error: its scope is only this definition or declaration, which is probably not what you want
net/ipv4/netfilter/ipt_ecn.c: In function 'set_ect_ip':
net/ipv4/netfilter/ipt_ecn.c:33: error: 'XT_DSCP_MASK' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:33: error: (Each undeclared identifier is reported only once
net/ipv4/netfilter/ipt_ecn.c:33: error: for each function it appears in.)
net/ipv4/netfilter/ipt_ecn.c:33: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:40: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c: At top level:
net/ipv4/netfilter/ipt_ecn.c:48: error: 'struct ipt_ECN_info' declared inside parameter list
net/ipv4/netfilter/ipt_ecn.c: In function 'set_ect_tcp':
net/ipv4/netfilter/ipt_ecn.c:58: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:58: error: 'IPT_ECN_OP_SET_ECE' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:59: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:60: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:60: error: 'IPT_ECN_OP_SET_CWR' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:61: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:69: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:70: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:71: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:72: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c: In function 'ecn_tg':
net/ipv4/netfilter/ipt_ecn.c:84: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:84: error: 'IPT_ECN_OP_SET_IP' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:85: error: passing argument 2 of 'set_ect_ip' from incompatible pointer type
net/ipv4/netfilter/ipt_ecn.c:29: note: expected 'const struct ipt_ECN_info *' but argument is of type 'const struct ipt_ECN_info *'
net/ipv4/netfilter/ipt_ecn.c:88: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:88: error: 'IPT_ECN_OP_SET_ECE' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:88: error: 'IPT_ECN_OP_SET_CWR' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:90: error: passing argument 2 of 'set_ect_tcp' from incompatible pointer type
net/ipv4/netfilter/ipt_ecn.c:48: note: expected 'const struct ipt_ECN_info *' but argument is of type 'const struct ipt_ECN_info *'
net/ipv4/netfilter/ipt_ecn.c: In function 'ecn_tg_check':
net/ipv4/netfilter/ipt_ecn.c:101: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:101: error: 'IPT_ECN_OP_MASK' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:103: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:106: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:106: error: 'XT_DSCP_MASK' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:108: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:111: error: dereferencing pointer to incomplete type
net/ipv4/netfilter/ipt_ecn.c:111: error: 'IPT_ECN_OP_SET_ECE' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c:111: error: 'IPT_ECN_OP_SET_CWR' undeclared (first use in this function)
net/ipv4/netfilter/ipt_ecn.c: At top level:
net/ipv4/netfilter/ipt_ecn.c:124: error: invalid application of 'sizeof' to incomplete type 'struct ipt_ECN_info'
make[3]: *** [net/ipv4/netfilter/ipt_ecn.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[1]: *** [net/netfilter] Error 2
make[1]: *** Waiting for unfinished jobs....
make[2]: *** [net/ipv4/netfilter] Error 2
make[1]: *** [net/ipv4] Error 2
make: *** [net] Error 2
sorry for the messed up links, I'm not allowed to post links (yet).
Any ideas how to get forward?
The reason I'm doing this is that I want to fix the bug that the internal mic is disabled when a stereo headphone / or a 3.5mm jack - 2xrca cable is plugged in. I think I can fix it from kernel-2.6.32-U8800-Froyo/kernel/arch/arm/mach-msm/rpc_server_handset.c, but first I have to get my build environment working
copy missing files instead of link
xt_MARK.c and xt_mark.c are not the same, at least in my source
try copy the missing file from android source
http://android.git.kernel.org/?p=kernel/msm.git;a=tree
wmi543 said:
xt_MARK.c and xt_mark.c are not the same, at least in my source
try copy the missing file from android source
Click to expand...
Click to collapse
It worked I copied all the files from the git instead of ln -s.
"Kernel: arch/arm/boot/zImage is ready"
Thanks for the quick reply.
Then I had to remove comment out CONFIG_FB_MSM_MDDI_NT35582_WVGA=y line from .config and answer no to two questions when running make.
I used the 4.4.0 toolchain
Now I have the zImage but don't know how it'll work because the CONFIG_FB_MSM_MDDI_NT35582_WVGA probably has something to do with the display type.
BTW I've taken a backup with genokolar's recovery img. When I try this new kernel and if I can't boot, I should be able to get it to boot again by doing a restore from the earlier backup?
Now I'll start looking into packing the kernel to an .img (android-dls.com wiki/index.php?title=HOWTO:_Unpack,_Edit,_and_Re-Pack_Boot_Images#Structure_of_boot_and_recovery_images)..
OK. I copied the boot.img from the phone in bootloader mode, unpacked it with unpack-bootimg.pl. Then I bsdiffed (binary diff) the resulting boot.img-kernel.gz with the Image file I built, the patch file is only 389K so looks like they are quite similar. The only differences may be because of the display thing I changed in the Makefile.
Might try tomorrow to replace the unpacked kernel with the Image file and see if it works. What is the worst case scenario? I should always be able to restore from the old backup if it doesn't boot?
Maybe I'll also try to get the display thing to build right before trying it on the phone
edit: I read somewhere the .gz extension in the unpacked kernel file is a bug with the unpacking script, so "boot.img-kernel.gz" is actually the unpacked kernel file (so it should be the same as compiled Image) ?
Looks like the unpack-bootimg.pl and repack-bootimg.pl are not working right for the U8800 boot.img. I just tried to unpack the original boot.img and repack it, I got a blue screen when trying to boot. I could restore the original just by going to bootloader mode and copying back the original.
Any ideas how to unpack and repack the boot.img of the U8800?
You can repack the boot/recovery images with the following:
Code:
./mkbootfs RAMDISK DIRECTORY | ./minigzip > ramdisk-boot.img
./mkbootimg --kernel KERNEL --ramdisk ramdisk-boot.img --base 0x00200000 --pagesize 4096 --cmdline 'console=ttyDCC0 androidboot.hardware=huawei' -o boot.img
I just modified the repack perl script accordingly and added lines so that it will mount cust_backup and transfer the image across for me. Saves heaps of time.
stockwell said:
You can repack the boot/recovery images with the following:
Code:
./mkbootfs RAMDISK DIRECTORY | ./minigzip > ramdisk-boot.img
./mkbootimg --kernel KERNEL --ramdisk ramdisk-boot.img --base 0x00200000 --pagesize 4096 --cmdline 'console=ttyDCC0 androidboot.hardware=huawei' -o boot.img
I just modified the repack perl script accordingly and added lines so that it will mount cust_backup and transfer the image across for me. Saves heaps of time.
Click to expand...
Click to collapse
I used the unpack script from http://forum.xda-developers.com/showthread.php?t=891333 then modified the line "#$bootimg = substr($bootimg,2048);" to "$bootimg = substr($bootimg,4096);". There's still a difference of 215 bytes with the repacked img, but it works.
Now I can test the kernel I built myself. Thank you for the help.
edit: Looks like the built kernel doesn't work, now I can start tackling that
CONFIG_FB_MSM_MDDI_NT35582_WVGA=y
if you see only blue screen when you boot your own kernel, refer to my experience, edit .config, change 2 lines as below instead of comment out CONFIG_FB_MSM_MDDI_NT35582_WVGA=y should fix it
CONFIG_FB_MSM_MDDI_AUTO_DETECT=y
CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM=y
BTW, there is a tool "abootimg" which is quite handy for packing the kernel
http://gitorious.org/ac100/abootimg
wmi543 said:
if you see only blue screen when you boot your own kernel, refer to my experience, edit .config, change 2 lines as below instead of comment out CONFIG_FB_MSM_MDDI_NT35582_WVGA=y should fix it
CONFIG_FB_MSM_MDDI_AUTO_DETECT=y
CONFIG_FB_MSM_TRY_MDDI_CATCH_LCDC_PRISM=y
BTW, there is a tool "abootimg" which is quite handy for packing the kernel
http://gitorious.org/ac100/abootimg
Click to expand...
Click to collapse
Works! great! Thanks for the help. Hopefully soon I can release my fixed kernel
Sorry, I'm new to Android. What advantages are there if you get the stock kernel or whatever?
"Stock" means the kernel that comes with the phone when you buy it. I just wanted to build it so I could modify it. I created a modified kernel that allows you to use the internal mic with headphones or for example when you connect the phone to your car stereo. The modified kernel is in the other thread.
Sent from my u8800 using XDA App
So with custom kernel you can achieve more functionality just like normal linux? Good. Would be awesome.

[Q] Get kernel framebuffer console

Hello XDA users!
I'm so confused with this thing. I've been trying to do that nearly a month. After a billion google queries and phone reboots (if my N4 could throw up, it would) I got nothing.
First of all, I can't compile the kernel.
Sys info: I'm on Arch Linux 3.12.1-3-ARCH 64 bit.
I have all the three google toolchains (arm-linux-androideabi-4.{6,7,8}) and currently I'm trying with 4.8.
With default config (I stress that) I get this: http://showterm.io/1a41b9af919653f53a890
I use google's repo (https://android.googlesource.com/kernel/msm.git) on the android-msm-mako-3.4-kitkat-mr0 branch (I use occam-krt16o build on my N4).
I know this must be noobish problem, but I have no idea what's the problem...
Thanks in advance!
I've got some news!
First of all, you need to edit scripts/gcc-wrapper.py to use python2.7 and not 3.
However, 4.8 toolchain spits some errors and I'm not really into casting spells just to compile with 4.8 instead of 4.7. If there is a major difference between them (performance improvements etc.) I'll look into it.
Now it's time to implement the framebuffer changes to the .config
for more info:
http://forum.xda-developers.com/showpost.php?p=10075806&postcount=3
http://forum.xda-developers.com/showpost.php?p=18256605&postcount=1
UPDATE: Well, I applied this patch (https://github.com/Tasssadar/kernel...a9d#diff-94babbe85a910bf17f882465a760c431R608), I can only get blank screen. Any ideas?
Bump.
Hi does anyone know how to get this to work.
I have an Alcatel OT918D ANDROID 2.3.5.
I have managed to compile my own kernel and boot it. But for adding the frame buffer option in the makefile I get this error during compilation:
**************************************************************************************************************
drivers/video/console/fbcon.c:638: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:638: error: too few arguments to function 'info->fbops->fb_open'
drivers/video/console/fbcon.c: In function 'con2fb_release_oldinfo':
drivers/video/console/fbcon.c:670: warning: passing argument 1 of 'oldinfo->fbops->fb_release' from incompatible pointer type
drivers/video/console/fbcon.c:670: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:670: error: too few arguments to function 'oldinfo->fbops->fb_release'
drivers/video/console/fbcon.c:673: warning: passing argument 1 of 'newinfo->fbops->fb_release' from incompatible pointer type
drivers/video/console/fbcon.c:673: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:673: error: too few arguments to function 'newinfo->fbops->fb_release'
drivers/video/console/fbcon.c: In function 'fbcon_startup':
drivers/video/console/fbcon.c:868: warning: passing argument 1 of 'info->fbops->fb_open' from incompatible pointer type
drivers/video/console/fbcon.c:868: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:868: error: too few arguments to function 'info->fbops->fb_open'
drivers/video/console/fbcon.c: In function 'fbcon_exit':
drivers/video/console/fbcon.c:3388: warning: passing argument 1 of 'info->fbops->fb_release' from incompatible pointer type
drivers/video/console/fbcon.c:3388: note: expected 'struct file *' but argument is of type 'struct fb_info *'
drivers/video/console/fbcon.c:3388: error: too few arguments to function 'info->fbops->fb_release'
make[3]: *** [drivers/video/console/fbcon.o] Error 1
make[2]: *** [drivers/video/console] Error 2
make[1]: *** [drivers/video] Error 2
make: *** [drivers] Error 2
make: *** Waiting for unfinished jobs....
CC [M] ../mediatek/source/kernel/drivers/lttng/probes/net-extended-trace.o
CC [M] ../mediatek/source/kernel/drivers/lttng/probes/block-trace.o
CC ../mediatek/source/kernel/kernel/trace_mt65xx_mon.o
LD [M] ../mediatek/source/kernel/drivers/lttng/ltt-relay.o
CC ../mediatek/source/kernel/drivers/m4u/m4u_kernel.o
../mediatek/source/kernel/drivers/m4u/m4u_kernel.c: In function 'm4u_user_v2p':
../mediatek/source/kernel/drivers/m4u/m4u_kernel.c:66: warning: format '%d' expects type 'int', but argument 3 has type 'struct task_struct *'
************************************************************************************************************

[Q] Help building Omni

Code:
hardware/qcom/media-caf/mm-video/vidc/vdec/inc/frameparser.h: In constructor 'frame_parse::frame_parse()':
hardware/qcom/media-caf/mm-video/vidc/vdec/inc/frameparser.h:94:17: warning: 'frame_parse::bytes_tobeparsed' will be initialized after [-Wreorder]
hardware/qcom/media-caf/mm-video/vidc/vdec/inc/frameparser.h:67:14: warning: 'H264_Utils* frame_parse::mutils' [-Wreorder]
hardware/qcom/media-caf/mm-video/vidc/vdec/src/frameparser.cpp:76:1: warning: when initialized here [-Wreorder]
hardware/qcom/media-caf/mm-video/vidc/vdec/src/frameparser.cpp: In member function 'int frame_parse::parse_sc_frame(OMX_BUFFERHEADERTYPE*, OMX_BUFFERHEADERTYPE*, OMX_U32*)':
hardware/qcom/media-caf/mm-video/vidc/vdec/src/frameparser.cpp:215:16: warning: enumeration value 'A5' not handled in switch [-Wswitch]
hardware/qcom/media-caf/mm-video/vidc/vdec/src/frameparser.cpp:365:14: warning: enumeration value 'A4' not handled in switch [-Wswitch]
hardware/qcom/media-caf/mm-video/vidc/vdec/src/frameparser.cpp:365:14: warning: enumeration value 'A5' not handled in switch [-Wswitch]
hardware/qcom/media-caf/mm-video/vidc/vdec/test/omx_vdec_test.cpp:56:0: warning: "LOG_TAG" redefined [enabled by default]
In file included from system/core/include/cutils/log.h:1:0,
from system/core/include/utils/Vector.h:24,
from frameworks/native/include/binder/IBinder.h:23,
from frameworks/native/include/binder/Binder.h:20,
from frameworks/native/include/binder/IInterface.h:21,
from frameworks/native/include/binder/IMemory.h:26,
from frameworks/native/include/binder/MemoryHeapBase.h:23,
from hardware/qcom/media-caf/mm-video/vidc/vdec/test/omx_vdec_test.cpp:51:
system/core/include/log/log.h:68:0: note: this is the location of the previous definition
hardware/qcom/media-caf/mm-video/vidc/vdec/test/omx_vdec_test.cpp:84:27: fatal error: linux/msm_mdp.h: No such file or directory
compilation terminated.
target thumb C++: libOmxVdec <= hardware/qcom/media-caf/mm-video/vidc/vdec/src/mp4_utils.cpp
make: *** [/home/zeroblade1984/Android/omni/out/target/product/m7ul/obj/EXECUTABLES/mm-vdec-omx-test_intermediates/test/omx_vdec_test.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from hardware/qcom/media-caf/mm-video/vidc/vdec/src/h264_utils.cpp:49:0:
hardware/qcom/media-caf/mm-video/vidc/common/inc/extra_data_handler.h:37:31: fatal error: linux/msm_vidc_dec.h: No such file or directory
compilation terminated.
make: *** [/home/zeroblade1984/Android/omni/out/target/product/m7ul/obj/SHARED_LIBRARIES/libOmxVdec_intermediates/src/h264_utils.o] Error 1
In file included from hardware/qcom/media-caf/mm-video/vidc/vdec/src/mp4_utils.cpp:29:0:
hardware/qcom/media-caf/mm-video/vidc/vdec/inc/omx_vdec.h:53:27: fatal error: linux/msm_ion.h: No such file or directory
compilation terminated.
make: *** [/home/zeroblade1984/Android/omni/out/target/product/m7ul/obj/SHARED_LIBRARIES/libOmxVdec_intermediates/src/mp4_utils.o] Error 1
real 6m45.287s
user 13m46.486s
sys 4m52.261s
i have been wretched all day building Omni for M7 and i am plagued by the errors above..been googling around to see if there's a way but to no futile response..hope some can help with this..just repo sync'd everything before i built
I'm really confused, that looks like a mismatch between the kernel and media-caf (indicating the kernel needs updating), but...
m7ul is successfully building? http://dl.omnirom.org/m7ul/
Did you perhaps accidentally sync a kernel, device, or media-caf tree from CM????
Entropy512 said:
I'm really confused, that looks like a mismatch between the kernel and media-caf (indicating the kernel needs updating), but...
m7ul is successfully building? http://dl.omnirom.org/m7ul/
Did you perhaps accidentally sync a kernel, device, or media-caf tree from CM????
Click to expand...
Click to collapse
i had it building..yes seems you are right..i accidentlly synced CM kernel..lolz..i have one question though..how to i remove the advanced settings package??as i have cleaned the kernel source and updated a few stuff..also updated some blobs and from my testing point everything is working..except that off course the Advanced settings is left out gray since i removed most of the stuff and left the kernel stockish..
kairi_zeroblade said:
i accidentlly synced CM kernel..lolz.
Click to expand...
Click to collapse
How dafuq can you "accidentally" sync a wrong kernel? smh
chasmodo said:
How dafuq can you "accidentally" sync a wrong kernel? smh
Click to expand...
Click to collapse
i alread had the manifests setup before and YES i did some experimenting on my own..good thing Entropy reminded me of that mistake.. :silly:

[Solved/Abandoned] Building CM14 Issues

So I'm just trying to build CM14(I'm well aware it's basically stock android at this point), and I'm getting quite far in the build process, but getting some errors. I was hoping someone a little more experienced might be able to give me some insight on what the issue is.
Here's the most recent bit from the console:
Code:
/home/kronflux/android/out/host/linux-x86/bin/checkpolicy: loading policy configuration from /home/kronflux/android/out/target/product/angler/obj/ETC/sepolicy.recovery_intermediates/policy_recovery.conf
host Java: dumpkey (/home/kronflux/android/out/host/common/obj/JAVA_LIBRARIES/dumpkey_intermediates/classes)
device/huawei/angler/sepolicy/file.te:30:ERROR 'duplicate declaration of type/attribute' at token ';' on line 21108:
type sysfs_thermal, sysfs_type, fs_type;
type sysfs_surfaceflinger, fs_type, sysfs_type;
checkpolicy: error(s) encountered while parsing configuration
system/sepolicy/Android.mk:140: recipe for target '/home/kronflux/android/out/target/product/angler/obj/ETC/sepolicy.recovery_intermediates/sepolicy.recovery' failed
make: *** [/home/kronflux/android/out/target/product/angler/obj/ETC/sepolicy.recovery_intermediates/sepolicy.recovery] Error 1
make: *** Waiting for unfinished jobs....
target Export Resources: framework-res (/home/kronflux/android/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk)
nothing matches overlay file default_wallpaper.png, for flavor hdpi-v4
nothing matches overlay file default_wallpaper.png, for flavor xhdpi-v4
nothing matches overlay file default_wallpaper.png, for flavor xxhdpi-v4
nothing matches overlay file default_wallpaper.png, for flavor xxxhdpi-v4
frameworks/base/core/res/res/values/cm_symbols.xml:21: warning: <private-symbols> is deprecated. Use the command line flag --private-symbols instead.
frameworks/base/core/res/res/values/cm_symbols.xml:21: warning: private symbol package already specified. Ignoring...
warning: string 'allow_button' has no default translation.
warning: string 'deny_button' has no default translation.
warning: string 'gsm_alphabet_default_charset' has no default translation.
warning: string 'other_permissions' has no default translation.
warning: string 'permission_title' has no default translation.
res/drawable-nodpi-v4/default_wallpaper.png:0: error: Resource entry default_wallpaper is already defined.
res/drawable-nodpi-v4/default_wallpaper.jpg:0: Originally defined here.
device/huawei/angler/overlay/frameworks/base/core/res/res/values/config.xml:29: error: Resource at config_orientationSensorType appears in overlay but not in the base package; use <add-resource> to add.
build/core/package_internal.mk:389: recipe for target '/home/kronflux/android/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk' failed
make: *** [/home/kronflux/android/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk] Error 1
make: *** Deleting file '/home/kronflux/android/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk'
make: Leaving directory '/home/kronflux/android'
#### make failed to build some targets (04:00:18 (hh:mm:ss)) ####
kronflux said:
So I'm just trying to build CM14(I'm well aware it's basically stock android at this point), and I'm getting quite far in the build process, but getting some errors. I was hoping someone a little more experienced might be able to give me some insight on what the issue is.
Here's the most recent bit from the console:
Code:
/home/kronflux/android/out/host/linux-x86/bin/checkpolicy: loading policy configuration from /home/kronflux/android/out/target/product/angler/obj/ETC/sepolicy.recovery_intermediates/policy_recovery.conf
host Java: dumpkey (/home/kronflux/android/out/host/common/obj/JAVA_LIBRARIES/dumpkey_intermediates/classes)
device/huawei/angler/sepolicy/file.te:30:ERROR 'duplicate declaration of type/attribute' at token ';' on line 21108:
type sysfs_thermal, sysfs_type, fs_type;
type sysfs_surfaceflinger, fs_type, sysfs_type;
checkpolicy: error(s) encountered while parsing configuration
system/sepolicy/Android.mk:140: recipe for target '/home/kronflux/android/out/target/product/angler/obj/ETC/sepolicy.recovery_intermediates/sepolicy.recovery' failed
make: *** [/home/kronflux/android/out/target/product/angler/obj/ETC/sepolicy.recovery_intermediates/sepolicy.recovery] Error 1
make: *** Waiting for unfinished jobs....
target Export Resources: framework-res (/home/kronflux/android/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk)
nothing matches overlay file default_wallpaper.png, for flavor hdpi-v4
nothing matches overlay file default_wallpaper.png, for flavor xhdpi-v4
nothing matches overlay file default_wallpaper.png, for flavor xxhdpi-v4
nothing matches overlay file default_wallpaper.png, for flavor xxxhdpi-v4
frameworks/base/core/res/res/values/cm_symbols.xml:21: warning: <private-symbols> is deprecated. Use the command line flag --private-symbols instead.
frameworks/base/core/res/res/values/cm_symbols.xml:21: warning: private symbol package already specified. Ignoring...
warning: string 'allow_button' has no default translation.
warning: string 'deny_button' has no default translation.
warning: string 'gsm_alphabet_default_charset' has no default translation.
warning: string 'other_permissions' has no default translation.
warning: string 'permission_title' has no default translation.
res/drawable-nodpi-v4/default_wallpaper.png:0: error: Resource entry default_wallpaper is already defined.
res/drawable-nodpi-v4/default_wallpaper.jpg:0: Originally defined here.
device/huawei/angler/overlay/frameworks/base/core/res/res/values/config.xml:29: error: Resource at config_orientationSensorType appears in overlay but not in the base package; use <add-resource> to add.
build/core/package_internal.mk:389: recipe for target '/home/kronflux/android/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk' failed
make: *** [/home/kronflux/android/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk] Error 1
make: *** Deleting file '/home/kronflux/android/out/target/common/obj/APPS/framework-res_intermediates/package-export.apk'
make: Leaving directory '/home/kronflux/android'
#### make failed to build some targets (04:00:18 (hh:mm:ss)) ####
Click to expand...
Click to collapse
you need to go to overlay/frameworks/base/core/res/res/values/config.xml at you device tree and find "config_orientationSensorType", delete it or change it as comment with <!-- -->
Also you will find major probs at sepolicies when building
leskal said:
you need to go to overlay/frameworks/base/core/res/res/values/config.xml at you device tree and find "config_orientationSensorType", delete it or change it as comment with <!-- -->
Also you will find major probs at sepolicies when building
Click to expand...
Click to collapse
I ended up getting it to build last night with various errors and poking around to fix it.
Unfortunately it wouldn't boot, so who knows what else needs to be done. I guess I'll just have to wait for the pros to get it up and running, and stick with AOSP for now.
Thanks for the reply though.

Problems compiling Realme 2 pro Kernel - how to do properly?

I am attempting to recompile the Realme 2 pro kernel to enable Virtualization and KVM, using Ubuntu 18.04 (on an i7-8700K).
https://github.com/realme-kernel-opensource/Realme2Pro-kernel-source/tree/master/
Presumably, the correct defconfig file is sdm660_defconfig or sdm660-perf_defconfig? See here for the choices: (however, they all seem to be crashing in similar places)
https://github.com/realme-kernel-opensource/Realme2Pro-kernel-source/tree/master/arch/arm64/configs
The toolchain I am using is the penultimate release because of some of some errors with the latest:
https://android.googlesource.com/pl....9/+/e54105c9f893a376232e0fc539c0e7c01c829b1e
Steps taken
1. Open Terminal as root (sudo -i) and install various packages:
Code:
apt-get install -y build-essential kernel-package libncurses5-dev bzip2
apt-get install flex bison
apt-get install libelf-dev
2. Unzip kernel source to "real" and toolchain to "tool" on the desktop, respectively, and create environment variables:
Code:
export CROSS_COMPILE=/home/gilius/Desktop/tool/bin/aarch64-linux-android-
export ARCH=arm64
3. Clean "real" directory (only if compiling multiple times; not for the first compile):
Code:
make clean && make mrproper
4. Create .config file for chosen defconfig:
Code:
make sdm660_defconfig
Note: this step results in some warnings:
@@ 111 OPPO_BUILD_CUSTOMIZE is
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:35:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:35:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:5:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:7:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:13:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:15:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:16:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:16:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:16:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:5:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:7:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:8:warning: ignoring unsupported character '
arch/arm64/configs/sdm660_defconfig:297:warning: override: reassigning to symbol BLK_DEV_MD
arch/arm64/configs/sdm660_defconfig:298:warning: override: reassigning to symbol MD_LINEAR
arch/arm64/configs/sdm660_defconfig:303:warning: override: reassigning to symbol DM_VERITY
arch/arm64/configs/sdm660_defconfig:858:warning: override: reassigning to symbol INPUT_JOYSTICK
arch/arm64/configs/sdm660_defconfig:864:warning: override: reassigning to symbol REGMAP_ALLOW_WRITE_DEBUGFS
arch/arm64/configs/sdm660_defconfig:876:warning: symbol value '1245' invalid for OPPO_FINGERPRINT_CHIP
#
# configuration written to .config
#
5. Enable Virtualization and KVM inside the .config file
Code:
make menuconfig
Note: this step ommited for the time being till I can get a successful build.
6. Start compiling the kernel
Code:
make -j4
Note: I use make -j10 because I have a fast x64 processor.
This last stage is where the main issues seem to occur with several errors reported and no Image file outputted by the compiler (ends prematurely):
[email protected]:/home/gilius/Desktop/real# make -j10 [MENTION=5839521 [MENTION=1065870 [user=1879310]@@@@[/user][/MENTION][/MENTION] 111 OPPO_BUILD_CUSTOMIZE is [MENTION=5839521 [MENTION=1065870 [user=1879310]@@@@[/user][/MENTION][/MENTION] 111 OPPO_BUILD_CUSTOMIZE is
scripts/kconfig/conf --silentoldconfig Kconfig
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:35:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Kconfig:35:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:5:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:7:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:13:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:15:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:16:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:16:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Novatek/NT36672_noflash/Kconfig:16:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/Kconfig:3:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:5:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:7:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:8:warning: ignoring unsupported character '
'rivers/input/touchscreen/oppo_touchscreen/Himax/hx83112a_noflash/Kconfig:8:warning: ignoring unsupported character '
@@ 111 OPPO_BUILD_CUSTOMIZE is
CHK include/config/kernel.release
...
CC net/core/link_watch.o
drivers/bluetooth/btfm_slim.c:26:23: fatal error: btfm_slim.h: No such file or directory
#include <btfm_slim.h>
^
compilation terminated.
scripts/Makefile.build:263: recipe for target 'drivers/bluetooth/btfm_slim.o' failed
make[2]: *** [drivers/bluetooth/btfm_slim.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CC drivers/acpi/acpica/rsinfo.o
CC kernel/time/tick-oneshot.o
drivers/bluetooth/btfm_slim_codec.c:27:23: fatal error: btfm_slim.h: No such file or directory
#include <btfm_slim.h>
^
compilation terminated.
scripts/Makefile.build:263: recipe for target 'drivers/bluetooth/btfm_slim_codec.o' failed
make[2]: *** [drivers/bluetooth/btfm_slim_codec.o] Error 1
scripts/Makefile.build:408: recipe for target 'drivers/bluetooth' failed
make[1]: *** [drivers/bluetooth] Error 2
make[1]: *** Waiting for unfinished jobs....
CC sound/soc/codecs/audio-ext-clk-up.o
...
CC lib/xz/xz_dec_bcj.o
Makefile:1086: recipe for target 'drivers' failed
make: *** [drivers] Error 2
make: *** Waiting for unfinished jobs....
CC net/ipv6/addrconf.o
...
CC net/ipv6/esp6.o
sound/soc/msm/msm8998.c:36:26: fatal error: device_event.h: No such file or directory
#include <device_event.h>
^
compilation terminated.
scripts/Makefile.build:263: recipe for target 'sound/soc/msm/msm8998.o' failed
make[3]: *** [sound/soc/msm/msm8998.o] Error 1
make[3]: *** Waiting for unfinished jobs....
LD sound/soc/qcom/built-in.o
...
CC net/netfilter/nf_conntrack_seqadj.o
scripts/Makefile.build:408: recipe for target 'sound/soc/msm' failed
make[2]: *** [sound/soc/msm] Error 2
scripts/Makefile.build:408: recipe for target 'sound/soc' failed
make[1]: *** [sound/soc] Error 2
Makefile:1086: recipe for target 'sound' failed
make: *** [sound] Error 2
CC net/netfilter/nf_connt
...
LD net/built-in.o
[email protected]:/home/gilius/Desktop/real#
Any help would be much appreciated! Incidentally, does anyone know of a custom ROM with a KVM already enabled in the kernel, i.e. the presence of /dev/kvm under, say, the Terminal Emulator app?
Hi there,
I dont have the exact solution, but have a couple of things to try:
1. In LineageOS, kernel can be customized and compiled AFAIK. Post below has links to source code:
https://samarv-121.github.io/lineageos-15.1-RMX1801/
2. The Realme 2 Pro XDA telegram group has knowledgeable people, you can try your query there:
https://web.telegram.org/#/[email protected]
Let us know if you manage to solve it.
aaditya1234 said:
Hi there,
I dont have the exact solution, but have a couple of things to try:
1. In LineageOS, kernel can be customized and compiled AFAIK. Post below has links to source code:
https://samarv-121.github.io/lineageos-15.1-RMX1801/
2. The Realme 2 Pro XDA telegram group has knowledgeable people, you can try your query there:
https://web.telegram.org/#/[email protected]
Let us know if you manage to solve it.
Click to expand...
Click to collapse
Thanks for your reply!
It's possible that this recent Lineage project includes a cleaned up kernel or has been compiled in the way that the vendor/OEM intended, though the source for the kernel side of things does not appear to be included from checking the various downloads - makes sense as it would mostly be a duplication of the official kernel source.
Nevertheless, I have contacted Samar - the dev behind this outstanding LineageOS project - to see if he would be willing to kindly assist.
A group of us are desperately trying to find a phone that can run a virtualized guest at near-native speeds via KVM and potentially tap into the EL2 mode of the Snapdragon 660 hypervisor - based largely on the firmware. I am hopeful the Realme 2 pro could be the first phone to achieve this - even more so via Lineage; what's more, the Realme 2 pro offers us the best bargain in the 8GB RAM range of phones currently available IMO.
gilius2k15 said:
Thanks for your reply!
It's possible that this recent Lineage project includes a cleaned up kernel or has been compiled in the way that the vendor/OEM intended, though the source for the kernel side of things does not appear to be included from checking the various downloads - makes sense as it would mostly be a duplication of the official kernel source.
Nevertheless, I have contacted Samar - the dev behind this outstanding LineageOS project - to see if he would be willing to kindly assist.
A group of us are desperately trying to find a phone that can run a virtualized guest at near-native speeds via KVM and potentially tap into the EL2 mode of the Snapdragon 660 hypervisor - based largely on the firmware. I am hopeful the Realme 2 pro could be the first phone to achieve this - even more so via Lineage; what's more, the Realme 2 pro offers us the best bargain in the 8GB RAM range of phones currently available IMO.
Click to expand...
Click to collapse
Ah,ok.
I am wondering what could be the use case for it, like running server on phone.. or using phone as PC?..
Realme has given some instructions for compiling, I dont understand them fully, could help:
https://github.com/realme-kernel-opensource/Realme2Pro-kernel-source/blob/master/how to compile
aaditya1234 said:
Ah,ok.
I am wondering what could be the use case for it, like running server on phone.. or using phone as PC?..
Realme has given some instructions for compiling, I dont understand them fully, could help:
https://github.com/realme-kernel-opensource/Realme2Pro-kernel-source/blob/master/how to compile
Click to expand...
Click to collapse
The Smartphone has already replaced our landline, camera, HiFi/MP3 player, personal organizer, movie player, alarm clock as an all-in-one device - soon even broadband (via 5G)! The only thing stopping it from replacing our PC was the low CPU and RAM, but now there are already Smartphones with 8-12 GB of RAM, like the Realme 2 Pro, and the specs are not too dissimilar from a decent laptop. The next energy efficient Snapdragon 1000 will reach 3.0 GHz without needing a fan - contrary to Intel chips.
Since there is no Surface Phone or standard bare metal way of running a full desktop experience on a Smartphone at the current time, virtualization and KVM can at least enable us to run a guest on any ARMv8 device without having to worry about drivers or compatibility - since all that is controlled via the VirtIO guest drivers. All you need is BusyBox and a minimalistic LinuxDeploy running in a CHROOT container. We can also use an RDP client for sound, etc. For example, here's a guide for running full Ubuntu 18.04 on the Raspberry Pi 3 - has the same A53 CPU to match the Snapdragon 660:
https://www.raspberrypi.org/forums/viewtopic.php?t=224057
Here's Windows 10 on ARM running on the Raspberry Pi 3 B+ as a VM with only 600 MB of RAM:
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Here's Windows 10 on ARM running on the NanopiM4 as a VM with 1.5 GB of RAM:
Most modern Smartphones are based on the same Cortex ARM64 CPU chips as all the single board computers (SBCs) and Snapdragon laptops; any such ARMv8 devices have virtualization capabilities - though remain underutilized. The only thing stopping us from achieving this on newer, more powerful, devices such as the Realme 2 Pro is a relaxed firmware and successful recompile of the kernel with Virtualization and KVM ticked inside the menuconfig:
I followed some advice about updating the paths and syntax in about 20-30 .C and .H source code files to make the whole thing "standalone compilable", based on what was required with the OnePlus5 kernel, and managed to get rid of all the errors - except for one:
Code:
../drivers/input/misc/oppo_fp_drivers/oppo_fp_common/oppo_fp_common.c:77:36: error: operator '==' has no left operand
#if CONFIG_OPPO_FINGERPRINT_PROJCT == 18181 || CONFIG_OPPO_FINGERPRINT_PROJCT == 18385 || CONFIG_OPPO_FINGERPRINT_PROJCT == 18005 || CONFIG_OPPO_FINGERPRINT_PROJCT == 18323
^
../drivers/input/misc/oppo_fp_drivers/oppo_fp_common/oppo_fp_common.c:92:36: error: operator '!=' has no left operand
#if CONFIG_OPPO_FINGERPRINT_PROJCT != 18181 && CONFIG_OPPO_FINGERPRINT_PROJCT != 18385 && CONFIG_OPPO_FINGERPRINT_PROJCT != 18005 && CONFIG_OPPO_FINGERPRINT_PROJCT != 18323
^
../drivers/input/misc/oppo_fp_drivers/oppo_fp_common/oppo_fp_common.c: In function 'fp_gpio_parse_dts':
../drivers/input/misc/oppo_fp_drivers/oppo_fp_common/oppo_fp_common.c:127:36: error: operator '!=' has no left operand
#if CONFIG_OPPO_FINGERPRINT_PROJCT != 18181 && CONFIG_OPPO_FINGERPRINT_PROJCT != 18385 && CONFIG_OPPO_FINGERPRINT_PROJCT != 18005 && CONFIG_OPPO_FINGERPRINT_PROJCT != 18323
^
../drivers/input/misc/oppo_fp_drivers/oppo_fp_common/oppo_fp_common.c: In function 'fp_register_proc_fs':
../drivers/input/misc/oppo_fp_drivers/oppo_fp_common/oppo_fp_common.c:270:36: error: operator '==' has no left operand
#if CONFIG_OPPO_FINGERPRINT_PROJCT == 18181 || CONFIG_OPPO_FINGERPRINT_PROJCT == 18385 || CONFIG_OPPO_FINGERPRINT_PROJCT == 18005 || CONFIG_OPPO_FINGERPRINT_PROJCT == 18323
I checked the makefile and found that CONFIG_OPPO_FINGERPRINT_PROJCT takes it's value from the PROJECT_NAME variable, which in turn is based on the OPPO_TARGET_DEVICE or TARGET_PRODUCT:
Code:
feq ($(CONFIG_OPPO_FINGERPRINT_QCOM),y)
PROJECT_NAME = $(subst MSM_,,$(OPPO_TARGET_DEVICE))
else ifeq ($(CONFIG_OPPO_FINGERPRINT_MTK),y)
PROJECT_NAME = $(shell echo $(TARGET_PRODUCT) | sed -e 's/full_oppo.*_//g')
endif
DEFS = -DCONFIG_OPPO_FINGERPRINT_PROJCT=$(PROJECT_NAME)
Anyone know how to resolve that?
Unfortunately, enabling KVM introduced a 2nd compile error:
Code:
/home/gilius/Desktop/tool/bin/aarch64-linux-android-ld: cannot find arch/arm64/kernel/cpu_errata.o: No such file or directory
There is a cpu_errata.c but no counterpart O file. Any ideas?
EDIT: paths needed updating for the cpu_errata.c too, but now I got this error instead:
Code:
../arch/arm64/kernel/cpu_errata.c: In function '__copy_hyp_vect_bpi':
../arch/arm64/kernel/cpu_errata.c:58:2: error: implicit declaration of function 'lm_alias' [-Werror=implicit-function-declaration]
void *dst = lm_alias(__bp_harden_hyp_vecs_start + slot * SZ_2K);
^
../arch/arm64/kernel/cpu_errata.c:58:14: warning: initialization makes pointer from integer without a cast
error, forbidden warning: cpu_errata.c:58
EDIT: It seems like there's a whole bunch of KVM files that might need updating:
/home/gilius/Desktop/real/arch/arm64/kvm/hyp
/home/gilius/Desktop/real/virt/kvm/arm
etc.
Have created this topic:
https://forum.xda-developers.com/android/help/kernel-directory-structure-compile-time-t3925350
Hi gilius2k15,
You can try this kernel source, its by Los dev SamarV121:
https://github.com/SamarV-121/android_kernel_oppo_sdm660
If you manage to compile do let us know how to
Hi aaditya1234,
Thanks for bringing to my attention! Unfortunately, there's still a similar amount of errors compared with the original source.
Based on Samar's source code I have attached the output for:
RMX1801_defconfig.txt
sdm660-perf_defconfig.txt
Judging by Samar's April 29th commit there were only 4 fixes applied and 21 deletions:
https://github.com/SamarV-121/andro...mmit/ff37e8796f2ec9a5c95dc2c6370252b8e5b2fe03
However, based on the advice surrounding the OnePlus5 and making it "standalone compilable" I must have applied more than 50 fixes to the Realme 2 Pro kernel source!
https://github.com/adin-k/oneplus5-kernel/commit/ec4ec687ba23609b9c323145c7d509262b0f025f
Coupled with export OPPO_TARGET_DEVICE=18321 (Samar's fix may be more appropriate) I was actually able to get a successful build without any errors barring 3 warnings at the end of the compile not to mention the unsupported character warnings at the beginning:
drivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'
drivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'
drivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'
drivers/input/touchscreen/oppo_touchscreen/Kconfig:32:warning: ignoring unsupported character '
'
drivers/input/touchscreen/oppo_touchscreen/Kconfig:35:warning: ignoring unsupported character '
'
drivers/input/touchscreen/oppo_touchscreen/Kconfig:35:warning: ignoring unsupported character '
...
LINK vmlinux
LD vmlinux.o
MODPOST vmlinux.o
WARNING: modpost: Found 3 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
GEN .version
CHK include/generated/compile.h
UPD include/generated/compile.h
CC init/version.o
LD init/built-in.o
KSYM .tmp_kallsyms1.o
KSYM .tmp_kallsyms2.o
LD vmlinux
SORTEX vmlinux
SYSMAP System.map
Building modules, stage 2.
MODPOST 9 modules
OBJCOPY arch/arm64/boot/Image
DTC arch/arm64/boot/dts/18321/sdm660-pm660a-mtp-18321.dtb
CC block/test-iosched.mod.o
CC drivers/char/rdbg.mod.o
CC drivers/media/platform/msm/dvb/adapter/mpq-adapter.mod.o
CC drivers/media/platform/msm/dvb/demux/mpq-dmx-hw-plugin.mod.o
CC drivers/media/usb/gspca/gspca_main.mod.o
CC drivers/net/wireless/ath/wil6210/wil6210.mod.o
CC drivers/platform/msm/msm_11ad/msm_11ad_proxy.mod.o
CC drivers/scsi/ufs/ufs_test.mod.o
CC net/bridge/br_netfilter.mod.o
GZIP arch/arm64/boot/Image.gz
LD [M] drivers/media/platform/msm/dvb/adapter/mpq-adapter.ko
LD [M] block/test-iosched.ko
LD [M] drivers/char/rdbg.ko
LD [M] drivers/media/platform/msm/dvb/demux/mpq-dmx-hw-plugin.ko
LD [M] drivers/net/wireless/ath/wil6210/wil6210.ko
LD [M] drivers/scsi/ufs/ufs_test.ko
LD [M] net/bridge/br_netfilter.ko
LD [M] drivers/media/usb/gspca/gspca_main.ko
LD [M] drivers/platform/msm/msm_11ad/msm_11ad_proxy.ko
CAT arch/arm64/boot/Image.gz-dtb
You can see the full output in gilius-best-effort.txt (also attached).
Unfortunately, when enabled, the Virtualization/KVM errors persist in all defconfigs:
arch/arm64/kernel/cpu_errata.c: In function '__copy_hyp_vect_bpi':
arch/arm64/kernel/cpu_errata.c:58:2: error: implicit declaration of function 'lm_alias' [-Werror=implicit-function-declaration]
void *dst = lm_alias(__bp_harden_hyp_vecs_start + slot * SZ_2K);
^
arch/arm64/kernel/cpu_errata.c:58:14: warning: initialization makes pointer from integer without a cast
error, forbidden warning: cpu_errata.c:58
That error is totally unheard of outside of the Realme 2 Pro kernel source - suggesting something is fundamentally wrong with the basic underlying kernel framework.
gilius2k15 said:
Hi aaditya1234,
Thanks for bringing to my attention! Unfortunately, there's still a similar amount of errors compared with the original source.
Based on Samar's source code I have attached the output for:
RMX1801_defconfig.txt
sdm660-perf_defconfig.txt
Judging by Samar's April 29th commit there were only 4 fixes applied and 21 deletions:
https://github.com/SamarV-121/andro...mmit/ff37e8796f2ec9a5c95dc2c6370252b8e5b2fe03
However, based on the advice surrounding the OnePlus5 and making it "standalone compilable" I must have applied more than 50 fixes to the Realme 2 Pro kernel source!
https://github.com/adin-k/oneplus5-kernel/commit/ec4ec687ba23609b9c323145c7d509262b0f025f
Coupled with export OPPO_TARGET_DEVICE=18321 (Samar's fix may be more appropriate) I was actually able to get a successful build without any errors barring 3 warnings at the end of the compile not to mention the unsupported character warnings at the beginning:
...
...
You can see the full output in gilius-best-effort.txt (also attached).
Unfortunately, when enabled, the Virtualization/KVM errors persist in all defconfigs:
arch/arm64/kernel/cpu_errata.c: In function '__copy_hyp_vect_bpi':
arch/arm64/kernel/cpu_errata.c:58:2: error: implicit declaration of function 'lm_alias' [-Werror=implicit-function-declaration]
void *dst = lm_alias(__bp_harden_hyp_vecs_start + slot * SZ_2K);
^
arch/arm64/kernel/cpu_errata.c:58:14: warning: initialization makes pointer from integer without a cast
error, forbidden warning: cpu_errata.c:58
That error is totally unheard of outside of the Realme 2 Pro kernel source - suggesting something is fundamentally wrong with the basic underlying kernel framework.
Click to expand...
Click to collapse
Thanks for your detailed instructions Gilius! :angel:
It does look like the Rm2pro kernel source is not compatible with KVM.
I tried searching for enabling KVM on android, and came up with your thread, lol.
https://forum.xda-developers.com/an...t-kvm-kernel-virtual-machine-enabled-t3777356
An orthogonal idea is to check MaruOS as the goals seem similar:
https://maruos.com/
It maybe linux only though.
aaditya1234 said:
Thanks for your detailed instructions Gilius! :angel:
It does look like the Rm2pro kernel source is not compatible with KVM.
I tried searching for enabling KVM on android, and came up with your thread, lol.
https://forum.xda-developers.com/an...t-kvm-kernel-virtual-machine-enabled-t3777356
An orthogonal idea is to check MaruOS as the goals seem similar:
https://maruos.com/
It maybe linux only though.
Click to expand...
Click to collapse
Haha, I think I've started (or at least contributed) to most KVM threads out there! Just shows how underutilised it is... Virtualization has been a non-starter in the Linux/Android/ARM64 world - contrary to datacenters with Intel/VMware, etc.
However, I can confirm that all phones are compatible with KVM and able to run Windows 10 on ARM since the first 64-bit phones surfaced back in 2014! However, Android kernels have been lagging behind mainline kernels, so anything before 3.11 such as the Samsung S5 Neo (08/2015) would need KVM modules manually adding (though instructions for that seem non-existent..).
Any other kernel besides the Realme 2 Pro does not have a problem with KVM - such as the Nokia 7 Plus (also using SDM660). I need to deep dive it to find out why since I've never delved into Linux kernels before and work in IT support - not development.
MaruOS seems interesting though the number of devices seem limited? I did actually manage to get a full desktop Linux running via LinuxDeploy and BusyBox after setting Desktop Environment to "Other" and then SSHing into the container, installing KDE, and then editing the xsession file to startkde. The challenge now is to get GNOME to work - or my favourite is Ubuntu Kylin:
http://www.ubuntukylin.com/downloads/show.php?lang=en&id=122
The CHROOT method, unfortunately, does not allow graphics acceleration as somebody pointed out.
im having same issue on samsung t830 source code, attempted a different compiler but still got the issue.. believe its a purpose spelling mistake in scripts or make file, but cant find it anywhere

Categories

Resources