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

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

Related

[Q] Help Compiling the source

Trying to compile the source for the archos gen 8s. If I can compile it, I might be able to add in root support, but I have hit a snag. When I compile I get this:
Code:
make[4]: Leaving directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/glib-2.16.5/gthread'
make[3]: Leaving directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/glib-2.16.5/gthread'
Making install in gobject
make[3]: Entering directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/glib-2.16.5/gobject'
/usr/bin/make glib-genmarshal
make[4]: Entering directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/glib-2.16.5/gobject'
make[4]: `glib-genmarshal' is up to date.
make[4]: Leaving directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/glib-2.16.5/gobject'
echo "#ifndef __G_MARSHAL_H__" > xgen-gmh \
&& echo "#define __G_MARSHAL_H__" >> xgen-gmh \
&& --nostdinc --prefix=g_cclosure_marshal ./gmarshal.list --header >> xgen-gmh \
&& echo "#endif /* __G_MARSHAL_H__ */" >> xgen-gmh \
&& (cmp -s xgen-gmh gmarshal.h 2>/dev/null || cp xgen-gmh gmarshal.h) \
&& rm -f xgen-gmh xgen-gmh~ \
&& echo timestamp > stamp-gmarshal.h
[COLOR="Red"]/bin/bash: line 2: --nostdinc: command not found[/COLOR]
make[3]: *** [stamp-gmarshal.h] Error 127
make[3]: Leaving directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/glib-2.16.5/gobject'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/glib-2.16.5'
make[1]: *** [install] Error 2
make[1]: Leaving directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/glib-2.16.5'
make: *** [/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/lib/libglib-2.0.a] Error 2
I googled around and was unable to figure out what is going on there. --nostdinc should be a command for GCC, but doesn't seem to be working correctly. When I run gcc -v I get:
Code:
Using built-in specs.
Target: i686-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.4.4-14ubuntu5' --with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.4 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu
Thread model: posix
gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu5)
PS If you do get it compiled I found where you can override user for certain applications: /buildroot/package/dbus/archos.conf
It looks like this:
Code:
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- ../system.conf have denied everything, so we just punch some holes -->
<policy user="root">
<allow own="com.archos.emaild"/>
</policy>
<!-- Add your service name
<policy user="root">
<allow own="com.archos.Service"/>
</policy>
-->
</busconfig>
the whole build process seems to be buggy as hell
# make menuconfig
results in
Code:
package/Config.in:443: can't open file "package/apdf/Config.in"
# make clean
results in
Code:
/data/temp/archos/gen8-gpl-froyo/buildroot/project_build_arm/uclibc/root/usr/share/info/dir: could not read (No such file or directory) and could not create (No such file or directory)
make[2]: *** [uninstall-info-am] Error 1
make[2]: Leaving directory `/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/diffutils-2.8.7/doc'
make[1]: *** [uninstall-recursive] Error 1
make[1]: Leaving directory `/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/diffutils-2.8.7'
make: *** [diffutils-clean] Error 2
How long did yours compile for? Mine compiled for over an hour before failing.
I'll start all over again and measure it.
Code:
/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/bin/arm-linux-uclibcgnueabi-gcc -shared .libs/libgphoto2_la-gphoto2-abilities-list.o .libs/libgphoto2_la-ahd_bayer.o .libs/libgphoto2_la-bayer.o .libs/libgphoto2_la-gphoto2-camera.o .libs/libgphoto2_la-gphoto2-context.o .libs/libgphoto2_la-exif.o .libs/libgphoto2_la-gphoto2-file.o .libs/libgphoto2_la-gphoto2-filesys.o .libs/libgphoto2_la-gamma.o .libs/libgphoto2_la-jpeg.o .libs/libgphoto2_la-gphoto2-list.o .libs/libgphoto2_la-gphoto2-result.o .libs/libgphoto2_la-gphoto2-version.o .libs/libgphoto2_la-gphoto2-setting.o .libs/libgphoto2_la-gphoto2-widget.o -Wl,--rpath -Wl,/data/temp/archos/gen8-gpl-froyo/buildroot/project_build_arm/uclibc/root/usr/lib -L/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/lib -L/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/lib -L/usr/lib -lgphoto2_port -L/data/temp/archos/gen8-gpl-froyo/buildroot/project_build_arm/uclibc/root/usr/lib -L/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/data/temp/archos/gen8-gpl-froyo/buildroot/project_build_arm/uclibc/root/usr/lib -lltdl -lm -isysroot /data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir -mtune=cortex-a8 -isysroot /data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir -mtune=cortex-a8 -Wl,-soname -Wl,libgphoto2.so.2 -Wl,-version-script -Wl,.libs/libgphoto2.ver -o .libs/libgphoto2.so.2.4.0
/usr/lib/libltdl.so: file not recognized: File format not recognized
collect2: ld returned 1 exit status
libtool: install: error: relink `libgphoto2.la' with the above command before installing it
make[3]: *** [install-libLTLIBRARIES] Error 1
make[3]: Leaving directory `/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/libgphoto2-2.4.9.1/libgphoto2'
make[2]: *** [install-am] Error 2
make[2]: Leaving directory `/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/libgphoto2-2.4.9.1/libgphoto2'
make[1]: *** [install-recursive] Error 1
make[1]: Leaving directory `/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/libgphoto2-2.4.9.1'
make: *** [/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/lib/libgphoto2.so] Error 2
real 38m3.275s
user 50m36.129s
sys 6m27.836s
I don't know why it's referring to /usr/lib/libltdl.so because this would be a 64bit lib of my linux machine. bug?
You two realise that you can't just use a PC version of gcc to compile an arm version of sw?
You need the crosscompile toolchain to do this, and than its working correctly.
the toolchain is inside the xxx.tgz archive and it is used for building. no need for extra toolchain
But laptopfeak is using something that does:
Target: i686-linux-gnu
wrong. he just typed gcc -v in his shell. this uses of course his very own gcc and not the one served by the archos toolchain.
when I type gcc -v using the archos toolchain it looks like this:
# gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/bin/arm-linux-gcc -v
Using built-in specs.
Target: arm-linux-uclibcgnueabi
Configured with: /data/temp/archos/gen8-gpl-froyo/buildroot/toolchain_build_arm/gcc-4.4.1/configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=arm-linux-uclibcgnueabi --enable-languages=c,c++ --with-sysroot=/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir --with-build-time-tools=/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/arm-linux-uclibcgnueabi/bin --disable-__cxa_atexit --enable-target-optspace --with-gnu-ld --enable-shared --with-gmp=/data/temp/archos/gen8-gpl-froyo/buildroot/toolchain_build_arm/gmp --with-mpfr=/data/temp/archos/gen8-gpl-froyo/buildroot/toolchain_build_arm/mpfr --disable-nls --enable-threads --disable-multilib --with-tune=cortex-a8 --with-cpu=cortex-a8 --with-arch=armv7-a --with-fpu=vfp3 --with-float=softfp
Thread model: posix
gcc version 4.4.1 (GCC)
Click to expand...
Click to collapse
the toolchain builds the crosscompiler itself and then starts crosscompiling
I did find out why I was getting one of the errors. I was missing some dependencies. Found a quick tutorial on how to compile the kernel for the gen7. http://archos.g3nius.org/index.php?title=Compiling_gen7-gpl
Now I am getting an error about the .config file being out of date. Odd thing is that the make menuconfig does not work... as previously mentioned.
Code:
PATH="/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/toolchain_build_arm/bin:/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/bin:/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/bin:/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/bin/:/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin" \
./Configure linux-arm --prefix=/ \
--openssldir=/lib/ssl -L/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/lib -ldl \
-I/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/include threads \
shared no-idea no-mdc2 no-rc5)
Configuring for linux-arm
IsWindows=0
CC =gcc
CFLAG =-fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -DOPENSSL_NO_KRB5 -I/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/include -DOPENSSL_NO_IDEA -DOPENSSL_NO_MDC2 -DOPENSSL_NO_RC5 -DL_ENDIAN -DTERMIO -fomit-frame-pointer -Wall
EX_LIBS =-L/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/lib -ldl -ldl
BN_ASM =bn_asm.o
DES_ENC =des_enc.o fcrypt_b.o
BF_ENC =bf_enc.o
CAST_ENC =c_enc.o
RC4_ENC =rc4_enc.o
RC5_ENC =rc5_enc.o
MD5_OBJ_ASM =
SHA1_OBJ_ASM =
RMD160_OBJ_ASM=
PROCESSOR =
RANLIB =/usr/bin/ranlib
ARFLAGS =
PERL =/usr/bin/perl
THIRTY_TWO_BIT mode
DES_RISC1 used
BN_LLONG mode
RC4_CHUNK is undefined
make[1]: Entering directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/openssl-0.9.7m'
Makefile is older than Makefile.org.
Reconfigure the source tree (via './config' or 'perl Configure'), please.
make[1]: *** [Makefile] Error 1
make[1]: Leaving directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/openssl-0.9.7m'
/usr/bin/make MAKE="/usr/bin/make -j1" CC=/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/staging_dir/usr/bin/arm-linux-uclibcgnueabi-gcc -C /home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/openssl-0.9.7m all build-shared
make[1]: Entering directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/openssl-0.9.7m'
Makefile is older than Makefile.org.
Reconfigure the source tree (via './config' or 'perl Configure'), please.
make[1]: *** [Makefile] Error 1
make[1]: Leaving directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/openssl-0.9.7m'
make: *** [/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/build_arm/openssl-0.9.7m/apps/openssl] Error 2
[email protected]:~/Downloads/Archos/gen8-gpl-froyo/buildroot$ make menuconfig
make CC="/usr/bin/gcc" -C package/config conf mconf
make[1]: Entering directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/package/config'
/usr/bin/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE -g -O2 -c conf.c -o conf.o
conf.c: In function ‘conf_askvalue’:
conf.c:104: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
conf.c: In function ‘conf_choice’:
conf.c:362: warning: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
/usr/bin/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE -g -O2 -c kxgettext.c -o kxgettext.o
/usr/bin/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE -g -O2 -c lxdialog/checklist.c -o lxdialog/checklist.o
/usr/bin/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE -g -O2 -c lxdialog/inputbox.c -o lxdialog/inputbox.o
/usr/bin/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE -g -O2 -c lxdialog/menubox.c -o lxdialog/menubox.o
/usr/bin/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE -g -O2 -c lxdialog/textbox.c -o lxdialog/textbox.o
/usr/bin/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE -g -O2 -c lxdialog/util.c -o lxdialog/util.o
/usr/bin/gcc -DCURSES_LOC="<ncurses.h>" -DLOCALE -g -O2 -c lxdialog/yesno.c -o lxdialog/yesno.o
make[1]: *** No rule to make target `/usr/include/ncurses/ncurses.h', needed by `mconf.o'. Stop.
make[1]: Leaving directory `/home/jonathan/Downloads/Archos/gen8-gpl-froyo/buildroot/package/config'
make: *** [package/config/mconf] Error 2
Oh and this does seem to be the buggiest source/compile I have ever dealt with. But I did talk to someone on xchat last night and they said that they got it to compile out of box.
I installed a fresh ubuntu 10.10 into a virtual machine and installed the packages mentioned on this website: http://archos.g3nius.org/index.php?title=Compiling_gen7-gpl
currently building.. stay tuned..
edit: still buggy
Finally got it to compile thanks to jensbln:
According to him you have to: "disable gdb in /buildroot/local/g8_arm/g8_arm.config"
So I poked around in the g8_arm.config and found the gdb. I then set all instances of gdb to n instead of y. I then had to sudo make, because I was getting permission demied. After that it compiled fine.
Let's see if this works for me too...
edit: failed on the x64 machine.. not that surprisingly as others had problems too. testing on x32..
damn, its not working (failed because of missing symlinks to libmpfr.so.1)..
edit: ahh.. it seems that i missed this dependency: libmpfr1ldbl
edit2: yes, this was the missing dependency.
using a fresh ubuntu 10.10 x32, to compile the froyo gpl sources install these packages:
Code:
# apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl automake autoconf libtool gettext texinfo libmpfr1ldbl
edit3: make menuconfig does work too
Code:
# cd gen8-gpl-froyo/linux
# cp linux.config .config
# make oldconfig
# make menuconfig
chulri said:
the whole build process seems to be buggy as hell
# make menuconfig
results in
Code:
package/Config.in:443: can't open file "package/apdf/Config.in"
# make clean
results in
Code:
/data/temp/archos/gen8-gpl-froyo/buildroot/project_build_arm/uclibc/root/usr/share/info/dir: could not read (No such file or directory) and could not create (No such file or directory)
make[2]: *** [uninstall-info-am] Error 1
make[2]: Leaving directory `/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/diffutils-2.8.7/doc'
make[1]: *** [uninstall-recursive] Error 1
make[1]: Leaving directory `/data/temp/archos/gen8-gpl-froyo/buildroot/build_arm/diffutils-2.8.7'
make: *** [diffutils-clean] Error 2
Click to expand...
Click to collapse
you are not supposed to use "make menuconfig"
just type "make" in the buildroot folder and it will build the kernel and buildroot packages that are in gen8 units...
@_nz_ you're late, see my last post.
btw: yes I'm supposed to use make menuconfig when I want to change kernel settings without changing the kernel config file manually
chulri said:
@_nz_ you're late, see my last post.
btw: yes I'm supposed to use make menuconfig when I want to change kernel settings without changing the kernel config file manually
Click to expand...
Click to collapse
sure. I was referring more to make menuconfig in buildroot which is not used during our SW development, so it's not really "supported" and might be broken. All our configs are hardcoded
it's not used inside buildroot, I use it inside linux
btw: do you work at archos?
chulri said:
it's not used inside buildroot, I use it inside linux
btw: do you work at archos?
Click to expand...
Click to collapse
Assuming it is the same nz that posts at archosfans then yes he/she is an Archos employee.
blazingwolf said:
Assuming it is the same nz that posts at archosfans then yes he/she is an Archos employee.
Click to expand...
Click to collapse
yes, we are
Hey -nz- I posted this on the Archos Fans forum in response to an answer to my question; why can't we reflash to 2.1. You probably didn't see it......what do you say?
Thanks for the reply about the bootloader. Again ignorance on my part. Surely Archos could release a patch that would allow the bootloader to install any version of the OS? I mean its all just code going into a certain memory address. I have a hard time with companies like Archos who seem to make things difficult for owners. I can see Apple doing it because they really are the 800 pound gorilla in the corner but the Dev Team and smart guys have always found a way round what they do. Archos are a relatively small fish in the pond. The tablet scene is moving very fast and new tablets are coming out every day.
It reminds me of the Pandigital novel. We pleaded with Pandigital to give us the source code. They said they would but never did. The smart guys were able to do wonders with what they had but ultimately within 3 months people had given up and moved on. Once the smart guys were gone all development stopped and now the PDN is just a mostly forgotten memory. If Pandigital had of opened up, the word of mouth would have spread, people would have bought their reader, hacked it and they would have both sold more and got the hearts and minds (and money) of people who would have considered any product they brought out. Now they are pretty much dead in the water and will likely just stay selling photo frames. People and technology has passed them by.
I won't say the same will happen to Archos. They are a bigger fish but they seem to have generated a lot of ill will over the 2.2 release. Even all those who were trumpeting how wonderful 2.2 was going to be have slunk away. Apple will bring out a new iPad next year. The price of the present one is dropping and will continue to do so. Say what you like about the iPad, but it works and it works well. It's too big and I'll probably sell mine again in a month or so depending on what comes out next in the 7 to 8 inch form factor.
Archos have the opportunity to buck the trend and open their software up and let people make it fly. There are some really sharp, switched on guys out there and if given the encouragement and support by Archos, they could do wonders. How cool would it be for Archos to be known as the one company that actually helped and supported its customers. The hardware is all there, the software is lacking but it is easier to make something better if it is only the software that is holding back the hardware.
So come on Mr Archos, if you are reading this, do some deep thinking. Be the tablet company of the people. Lets see some liberté, égalité, fraternité.

[request] [kernel] Hacking on bcm4329 source to correct array errors

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]

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 *'
************************************************************************************************************

Trying to port to MB886 - Struggling with build setup

Hello,
I've successfully built CM12 in the past for the Motorola Atrix HD (mb886), and was looking to try porting omni 5.0 to the device.
I've set up the device at https://github.com/ssuds/android_device_motorola_mb886 following the steps at http://docs.omnirom.org/Porting_Omni_To_Your_Device. I believe I've set up the omni_mb886.mk and omni.dependencies files correctly, but please feel free to refer to my github source to confirm.
To accommodate the external references to common CM modules I added:
Code:
<remote name="cm"
review="review.cyanogenmod.org"
fetch="https://github.com/CyanogenMod" />
to manifest XML. I also added:
Code:
<remote name="tm"
fetch="https://github.com/TheMuppets" />
to account for proprietary blobs.
When I try building, I get the below error:
Code:
[email protected]:~/android/omni$ brunch mb886
build/core/product_config.mk:227: *** _nic.PRODUCTS.[[device/motorola/mb886/omni_mb886.mk]]: "frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk" does not exist. Stop.
WARNING: Trying to fetch a device that's already there
build/core/product_config.mk:227: *** _nic.PRODUCTS.[[device/motorola/mb886/omni_mb886.mk]]: "frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'omni_mb886'
** Do you have the right repo manifest?
No such item in brunch menu. Try 'breakfast'
And If I enter the lunch menu, I get:
Code:
[email protected]:~/android/omni/.repo$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. full-eng
Which would you like? [aosp_arm-eng]
I'm stumped and not really sure where to go from here... Thank you in advance for your assistance.
Also, am getting a bunch of errors when I try to repo sync
Code:
error: Cannot fetch platform/external/markdown
warn: --force-broken, continuing to sync
Fetching projects: 26% (126/481) Fetching project android_hardware_qcom_media
error: Cannot fetch platform/packages/wallpapers/MusicVisualization
warn: --force-broken, continuing to sync
Fetching project platform/frameworks/opt/photoviewer
error: Cannot fetch platform/external/mp4parser
warn: --force-broken, continuing to sync
Fetching project platform/external/compiler-rt
Fetching project platform/external/chromium_org/third_party/sfntly/cpp/src
error: Cannot fetch device/generic/mini-emulator-arm64
warn: --force-broken, continuing to sync
also
Code:
Traceback (most recent call last):
File "/home/shreyas/android/omni/.repo/repo/main.py", line 506, in <module>
_Main(sys.argv[1:])
File "/home/shreyas/android/omni/.repo/repo/main.py", line 482, in _Main
result = repo._Run(argv) or 0
File "/home/shreyas/android/omni/.repo/repo/main.py", line 161, in _Run
result = cmd.Execute(copts, cargs)
File "/home/shreyas/android/omni/.repo/repo/subcmds/sync.py", line 641, in Execute
fetched = self._Fetch(to_fetch, opt)
File "/home/shreyas/android/omni/.repo/repo/subcmds/sync.py", line 356, in _Fetch
self._GCProjects(projects)
File "/home/shreyas/android/omni/.repo/repo/subcmds/sync.py", line 374, in _GCProjects
bare_git.gc('--auto')
File "/home/shreyas/android/omni/.repo/repo/project.py", line 2549, in runner
p.stderr))
error.GitError: platform/external/eclipse-windowbuilder gc: fatal: Not a git repository: '/home/shreyas/android/omni/.repo/projects/external/eclipse-windowbuilder.git'
The repo sync command I'm using is
repo sync -j1 -f --no-clone-bundle
Getting closer, I hope...
Now am able to get the mb886 in the lunch menu... With a catch.
If I do a breakfast command, it shows the lunch menu with only the "full-eng" option. After that, if I do the lunch command it only shows "full-eng".
However, if I setup my build environment again ( . build/envsetup.sh) and then lunch, omni_mb886-userdebug shows up... But the build breaks with that error.
Code:
[email protected]:~/android/omni$ . build/envsetup.sh
including device/motorola/mb886/vendorsetup.sh
[email protected]:~/android/omni$ breakfast
You're building on Linux
Lunch menu... pick a combo:
1. full-eng
Which would you like? [aosp_arm-eng] ^C
[email protected]:~/android/omni$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. full-eng
Which would you like? [aosp_arm-eng] ^C
[email protected]:~/android/omni$ . build/envsetup.sh
including device/motorola/mb886/vendorsetup.sh
[email protected]:~/android/omni$ lunch
You're building on Linux
Lunch menu... pick a combo:
1. aosp_arm-eng
2. aosp_arm64-eng
3. aosp_mips-eng
4. aosp_mips64-eng
5. aosp_x86-eng
6. aosp_x86_64-eng
7. omni_mb886-userdebug
Which would you like? [aosp_arm-eng] 7
build/core/product_config.mk:227: *** _nic.PRODUCTS.[[device/motorola/mb886/omni_mb886.mk]]: "frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk" does not exist. Stop.
WARNING: Trying to fetch a device that's already there
build/core/product_config.mk:227: *** _nic.PRODUCTS.[[device/motorola/mb886/omni_mb886.mk]]: "frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'omni_mb886'
** Do you have the right repo manifest?
[email protected]:~/android/omni$
Same thing happens if I try to brunch
Code:
[email protected]:~/android/omni$ brunch mb886
build/core/product_config.mk:227: *** _nic.PRODUCTS.[[device/motorola/mb886/omni_mb886.mk]]: "frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk" does not exist. Stop.
WARNING: Trying to fetch a device that's already there
build/core/product_config.mk:227: *** _nic.PRODUCTS.[[device/motorola/mb886/omni_mb886.mk]]: "frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'omni_mb886'
** Do you have the right repo manifest?
So it looks like I'm actually missing a bunch of build directories, which totally explains why this isn't working out...
My CM directory:
{
"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"
}
My Omni directory:
Clearly this is linked to my issues with repo... So I guess the real question is, what is wrong with my repo setup that is causing these issues?
Edit: My omni directory is a mere 676 MB... I should have realized this much sooner.
Edit2: I think I'm on the right track. Starting from scratch using the repo reference flag linked to my already downloaded source. 60% of the source is downloaded so far, we will see where it goes.
Update:
It builds! Finally got all my references and source synced properly. Omni is building for the MB886 currently.
Hit a new snag while building.
The build starts out fine. However, it only lasts about 5 minutes and then ends with:
Code:
make: *** No rule to make target `/home/shreyas/omni2/out/target/common/obj/JAVA_LIBRARIES/qcmediaplayer_intermediates/classes.jar', needed by `/home/shreyas/omni2/out/target/common/obj/PACKAGING/boot-jars-package-check_intermediates/stamp'. Stop.
make: *** Waiting for unfinished jobs....
logtags: /home/shreyas/omni2/out/target/common/obj/JAVA_LIBRARIES/telephony-common_intermediates/src/src/java/com/android/internal/telephony/EventLogTags.java <= frameworks/opt/telephony/src/java/com/android/internal/telephony/EventLogTags.logtags
[email protected]:~/omni2$
There's no ZIP in the Out>Target>Product>mb886 directory.
Same thing happens whether I use brunch mb886 or lunch mb886 and then mka...
Anyone have any ideas? @TecknoFreak maybe?
Edit:Think I might have got it, my javac version was on 1.7 and i switched it back to 1.6... we shall see.
Edit2: now it builds further but breaks on an audio blob
Code:
target thumb C: libalsa-intf <= hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:33:23: fatal error: sound/tlv.h: No such file or directory
#include <sound/tlv.h>
^
compilation terminated.
make: *** [/home/shreyas/omni2/out/target/product/mb886/obj/SHARED_LIBRARIES/libalsa-intf_intermediates/alsa_mixer.o] Error 1
make: *** Waiting for unfinished jobs....
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c: In function 'pcm_avail':
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:401:9: warning: format '%d' expects argument of type 'int', but argument 4 has type 'snd_pcm_uframes_t' [-Wformat=]
ALOGV("hw_ptr = %d buf_size = %d appl_ptr = %d\n",
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:401:9: warning: format '%d' expects argument of type 'int', but argument 6 has type 'snd_pcm_uframes_t' [-Wformat=]
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c: In function 'dst_address':
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:467:22: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
return pcm->addr + pcm_offset;
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c: In function 'mmap_transfer':
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:471:57: warning: unused parameter 'offset' [-Wunused-parameter]
int mmap_transfer(struct pcm *pcm, void *data, unsigned offset,
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c: In function 'mmap_transfer_capture':
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:505:26: warning: pointer of type 'void *' used in arithmetic [-Wpointer-arith]
src_addr = pcm->addr + pcm_offset;
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:492:65: warning: unused parameter 'offset' [-Wunused-parameter]
int mmap_transfer_capture(struct pcm *pcm, void *data, unsigned offset,
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c: In function 'pcm_write_mmap':
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:555:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
if ((bytes_written >= pcm->sw_p->start_threshold) && (!pcm->start)) {
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:526:50: warning: unused parameter 'data' [-Wunused-parameter]
static int pcm_write_mmap(struct pcm *pcm, void *data, unsigned count)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c: In function 'enable_timer':
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:668:8: warning: return makes integer from pointer without a cast [enabled by default]
return &bad_pcm;
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:697:11: warning: return makes integer from pointer without a cast [enabled by default]
return &bad_pcm;
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c: In function 'pcm_open':
hardware/qcom/audio/legacy/libalsa-intf/alsa_pcm.c:780:9: warning: return makes pointer from integer without a cast [enabled by default]
return -EINVAL;
^
real 25m34.029s
user 66m21.505s
sys 16m39.325s
[email protected]:~/omni2$
tlv.h exists in my ~/omni2/kernel/motorola/msm8960-common/include/sound directory, same place it did for cm12 which built fine.
Edit3: Think I'm getting closer... Now I'm getting this
Code:
target thumb C++: libandroid_runtime <= frameworks/base/core/jni/android_view_TextureView.cpp
frameworks/base/core/jni/android_view_Surface.cpp: In function 'void android::nativeSetDirtyRect(JNIEnv*, jclass, jlong, jobject)':
frameworks/base/core/jni/android_view_Surface.cpp:206:14: error: 'class android::Surface' has no member named 'setDirtyRect'
surface->setDirtyRect(&rect);
^
make: *** [/home/shreyas/omni2/out/target/product/mb886/obj/SHARED_LIBRARIES/libandroid_runtime_intermediates/android_view_Surface.o] Error 1
make: *** Waiting for unfinished jobs....
real 4m8.158s
user 4m55.351s
sys 2m13.800s
[email protected]:~/omni2$
Edit4: Found some very relevant stuff in this thread: http://forum.xda-developers.com/omni/general/help-regarding-compiling-omnirom-cm-t2964759/page2
Edit5: Tweaked the surface.cpp as that thread recommended, see https://github.com/ssuds/android_frameworks_base/commit/84c26243dcfcba9aee824dfddd11b2a3405c006b
Now the tlv.h: No such file or directory error is back:
Code:
target thumb C: libalsa-intf <= hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c
target Prebuilt: am (/home/shreyas/omni2/out/target/product/mb886/obj/EXECUTABLES/am_intermediates/am)
hardware/qcom/audio/legacy/libalsa-intf/alsa_mixer.c:33:23: fatal error: sound/tlv.h: No such file or directory
#include <sound/tlv.h>
^
compilation terminated.
make: *** [/home/shreyas/omni2/out/target/product/mb886/obj/SHARED_LIBRARIES/libalsa-intf_intermediates/alsa_mixer.o] Error 1
make: *** Waiting for unfinished jobs....
Notice file: frameworks/base/cmds/am/NOTICE -- /home/shreyas/omni2/out/target/product/mb886/obj/NOTICE_FILES/src//system/bin/am.txt
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c: In function 'snd_use_case_identifier':
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:77:43: warning: unused parameter 'fmt' [-Wunused-parameter]
char *snd_use_case_identifier(const char *fmt, ...)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c: In function 'snd_use_case_free_list':
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:89:40: warning: parameter 'list' set but not used [-Wunused-but-set-parameter]
int snd_use_case_free_list(const char *list[], int items)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:89:52: warning: unused parameter 'items' [-Wunused-parameter]
int snd_use_case_free_list(const char *list[], int items)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c: In function 'snd_use_case_get_list':
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:132:15: warning: assignment from incompatible pointer type [enabled by default]
*list = (char ***)uc_mgr->card_ctxt_ptr->verb_list;
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:156:15: warning: assignment from incompatible pointer type [enabled by default]
*list = verb_list[verb_index].device_list;
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:180:15: warning: assignment from incompatible pointer type [enabled by default]
*list = verb_list[verb_index].modifier_list;
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c: In function 'snd_use_case_apply_mixer_controls':
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:792:65: warning: comparison between pointer and integer [enabled by default]
(check_devices_for_voice_call(uc_mgr, use_case) != NULL))
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c: In function 'snd_use_case_mgr_reload':
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:1986:49: warning: unused parameter 'uc_mgr' [-Wunused-parameter]
int snd_use_case_mgr_reload(snd_use_case_mgr_t *uc_mgr) {
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c: In function 'print_list':
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:3102:47: warning: unused parameter 'verb_index' [-Wunused-parameter]
static int print_list(card_mctrl_t *list, int verb_index, int count)
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c: In function 'snd_ucm_parse_section':
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:3303:13: warning: format '%d' expects a matching 'int' argument [-Wformat=]
ALOGV("Effects mixer ctl: %s: %d\n", list->effects_mixer_ctl);
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c: In function 'free_list':
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:3597:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
mindex < list[case_index].ena_mixer_list[index].value;
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:3615:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
mindex < list[case_index].dis_mixer_list[index].value;
^
hardware/qcom/audio/legacy/libalsa-intf/alsa_ucm.c:3583:40: warning: unused parameter 'verb_index' [-Wunused-parameter]
void free_list(card_mctrl_t *list, int verb_index, int count)
^
real 12m37.998s
user 27m33.618s
sys 6m41.232s
[email protected]:~/omni2$
Any luck on this? I get the exact same error, except I'm building AOSP.
I somehow missed this thread.
Some of the issues I saw there look like they may have been CAF-related. With 5.0, we never completed the process of merging the CAF branches of frameworks/av and frameworks/native so they coexisted. (To make a long story short, that was primarily my task and I was catastrophically burned out and pretty much gone for 3-4 months... Then 5.1 dropped.)
As of today, working on a CAF device requires syncing the android-5.1-caf branches of frameworks/native and frameworks/av - Also, we use a different naming method for determining which QCOM CAF variant of display/audio/media HALs to use. You might want to try finding a device with a similar CPU to get ideas of how that was brought up. I remember when bringing up falcon in 4.4, I also had to add some oddball Moto-specific patches that aren't in our 5.x branches because I never had the time to resurrect that device. (I have more time now, but I've got a LOT of catching up to do...)
Right now:
CAF "b-family" (8226, 8974, etc) devices are current focus, especially 8974s, I'm going to be working this weekend on getting the CAF branches of av/native to coexist in our tree without syncing funky branches
CAF "a-family" devices (8960, 8064, etc.) are "here be dragons" - The Sony guys have them semi-working I believe, but the a-fam stuff needs a LOT of work. Getting a bootable device is feasible, but getting a usable device (especially media/AV stuff) requires us to fix a bunch of stuff
Entropy512 said:
I somehow missed this thread.
Some of the issues I saw there look like they may have been CAF-related.
Click to expand...
Click to collapse
Awesome, thank you for the direction @Entropy512! I've been kinda busy with other stuff recently, but when I get the chance I'll definitely try again to spin this up using that set up!
ssuds said:
Also, am getting a bunch of errors when I try to repo sync
Code:
error: Cannot fetch platform/external/markdown
warn: --force-broken, continuing to sync
Fetching projects: 26% (126/481) Fetching project android_hardware_qcom_media
error: Cannot fetch platform/packages/wallpapers/MusicVisualization
warn: --force-broken, continuing to sync
Fetching project platform/frameworks/opt/photoviewer
error: Cannot fetch platform/external/mp4parser
warn: --force-broken, continuing to sync
Fetching project platform/external/compiler-rt
Fetching project platform/external/chromium_org/third_party/sfntly/cpp/src
error: Cannot fetch device/generic/mini-emulator-arm64
warn: --force-broken, continuing to sync
also
Code:
Traceback (most recent call last):
File "/home/shreyas/android/omni/.repo/repo/main.py", line 506, in <module>
_Main(sys.argv[1:])
File "/home/shreyas/android/omni/.repo/repo/main.py", line 482, in _Main
result = repo._Run(argv) or 0
File "/home/shreyas/android/omni/.repo/repo/main.py", line 161, in _Run
result = cmd.Execute(copts, cargs)
File "/home/shreyas/android/omni/.repo/repo/subcmds/sync.py", line 641, in Execute
fetched = self._Fetch(to_fetch, opt)
File "/home/shreyas/android/omni/.repo/repo/subcmds/sync.py", line 356, in _Fetch
self._GCProjects(projects)
File "/home/shreyas/android/omni/.repo/repo/subcmds/sync.py", line 374, in _GCProjects
bare_git.gc('--auto')
File "/home/shreyas/android/omni/.repo/repo/project.py", line 2549, in runner
p.stderr))
error.GitError: platform/external/eclipse-windowbuilder gc: fatal: Not a git repository: '/home/shreyas/android/omni/.repo/projects/external/eclipse-windowbuilder.git'
The repo sync command I'm using is
repo sync -j1 -f --no-clone-bundle
Click to expand...
Click to collapse
Hi there,
How did you get rid of these errors?
I use these commands but get the above errors all the time:
repo init -u https://github.com/omnirom/android.git -b android-4.4
repo sync -j4 -f --no-clone-bundle
I am just a beginner so help will be appreciated...
Thanks!
ssuds, Did you ever solve this problem?
No... I gave up.
jhelp
same with me:silly:
HTML:
[ 99% 1587/1588] glob vendor/slim/build/soong/Android.bp
ninja: error: '/home/ubuntu/slim/out/target/common/obj/JAVA_LIBRARIES/telephony-ext_intermediates/classes.jar', needed by '/home/ubuntu/slim/out/target/common/obj/PACKAGING/boot-jars-package-check_intermediates/stamp', missing and no known rule to make it
11:30:29 ninja failed with: exit status 1

Categories

Resources