Android O Wallpaper
Download
Android Police
Android O News
Reviews
Android O Preview: New Features! by Tim Schofield
Do you think we will get a dev preview ported?
Nah. No early power for a ARM device. Same has been tried with Nougat.
Rezei said:
Nah. No early power for a ARM device. Same has been tried with Nougat.
Click to expand...
Click to collapse
In Android Nougat we had Nexus 6. But in Android O there's no luck for ARM devices, so think we'll have to wait for the sources.
It is possible to run android O on nexus 5 after original release?
razor17 said:
It is possible to run android O on nexus 5 after original release?
Click to expand...
Click to collapse
Only the time will tell. But there's a change to :fingers-crossed:
Do we even know if it will be available for 32bit ARM?
Alex Kane said:
Do we even know if it will be available for 32bit ARM?
Click to expand...
Click to collapse
I think yes.
Alex Kane said:
Do we even know if it will be available for 32bit ARM?
Click to expand...
Click to collapse
Android One devices are not 32bit? If yes, they'll receive O update. So probably yes, it'll be available.
Today is a day for final release.
We should probably do something.
Paget96 said:
Today is a day for final release.
We should probably do something.
Click to expand...
Click to collapse
Watch live stream and dream about it :crying:
Sources are up I think, https://android.googlesource.com/platform/manifest/+/refs/heads/android-8.0.0_r3
I building android8.0.0_r1 source code.But this error happened.
Do you know the solution?
I am using aosp nougat kernel tree and decive tree.
[email protected]:~/android8$ make
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=8.0.0
TARGET_PRODUCT=aosp_hammerhead
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-87-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=OPR6.170623.010
OUT_DIR=out
============================================
ninja: no work to do.
ninja: no work to do.
No need to regenerate ninja file
ninja: error: 'out/target/product/hammerhead/obj/KERNEL_OBJ/usr', needed by 'out/target/product/hammerhead/obj/EXECUTABLES/mm-jpeg-interface-test_intermediates/mm_jpeg_ionbuf.o', missing and no known rule to make it
16:10:53 ninja failed with: exit status 1
build/core/main.mk:21: target 'run_soong_ui' recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
#### make failed to build some targets (5 seconds) ####
tdukazudon said:
I building android8.0.0_r1 source code.But this error happened.
Do you know the solution?
I am using aosp nougat kernel tree and decive tree.
[email protected]:~/android8$ make
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=8.0.0
TARGET_PRODUCT=aosp_hammerhead
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-87-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=OPR6.170623.010
OUT_DIR=out
============================================
ninja: no work to do.
ninja: no work to do.
No need to regenerate ninja file
ninja: error: 'out/target/product/hammerhead/obj/KERNEL_OBJ/usr', needed by 'out/target/product/hammerhead/obj/EXECUTABLES/mm-jpeg-interface-test_intermediates/mm_jpeg_ionbuf.o', missing and no known rule to make it
16:10:53 ninja failed with: exit status 1
build/core/main.mk:21: target 'run_soong_ui' recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
#### make failed to build some targets (5 seconds) ####
Click to expand...
Click to collapse
Kernel headers
Do we know now if O will be possible on Nexus 5?
RayRay10 said:
Do we know now if O will be possible on Nexus 5?
Click to expand...
Click to collapse
It's always possible. Although will be a pain in the ass to do it ...
Why is it more pain in the ass this time? No arm version?
RayRay10 said:
Why is it more pain in the ass this time? No arm version?
Click to expand...
Click to collapse
Seriously? Any source for that?
tdukazudon said:
I building android8.0.0_r1 source code.But this error happened.
Do you know the solution?
I am using aosp nougat kernel tree and decive tree.
[email protected]:~/android8$ make
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=8.0.0
TARGET_PRODUCT=aosp_hammerhead
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=krait
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-87-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=OPR6.170623.010
OUT_DIR=out
============================================
ninja: no work to do.
ninja: no work to do.
No need to regenerate ninja file
ninja: error: 'out/target/product/hammerhead/obj/KERNEL_OBJ/usr', needed by 'out/target/product/hammerhead/obj/EXECUTABLES/mm-jpeg-interface-test_intermediates/mm_jpeg_ionbuf.o', missing and no known rule to make it
16:10:53 ninja failed with: exit status 1
build/core/main.mk:21: target 'run_soong_ui' recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
#### make failed to build some targets (5 seconds) ####
Click to expand...
Click to collapse
Can u provide where did u find this trees?
marcomarinho said:
It's always possible. Although will be a pain in the ass to do it ...
Click to expand...
Click to collapse
Tough i never doubted that Sooo popular Hammerhead will go without fight but from this, https://forum.xda-developers.com/showpost.php?p=73500859&postcount=2244
I'm thinking LOS guys are surely considering to get their hands dirty very soon
So now wait, watch & hope
Some really bad news coming from N6 forums: https://forum.xda-developers.com/showpost.php?p=73487567&postcount=79
This is similar to what happened to ARMv6 devices when ICS was released.
Related
I am trying to compile 2.6.32 kernel from samsung opensource.
No matter what compiler I use (I tried prebuilt android sdk, codesourcery,
compiled android gcc-4.4.3 from sources) I always get this error:
fs/binfmt_aout.c: In function 'load_aout_binary':
fs/binfmt_aout.c:271: error: 'SEGMENT_SIZE' undeclared (first use in this function)
Any ideas?
sborodin said:
I am trying to compile 2.6.32 kernel from samsung opensource.
No matter what compiler I use (I tried prebuilt android sdk, codesourcery,
compiled android gcc-4.4.3 from sources) I always get this error:
fs/binfmt_aout.c: In function 'load_aout_binary':
fs/binfmt_aout.c:271: error: 'SEGMENT_SIZE' undeclared (first use in this function)
Any ideas?
Click to expand...
Click to collapse
Did you try Sztupy's compact VM? It has all the necessary compliers & other tools.
sborodin said:
I am trying to compile 2.6.32 kernel from samsung opensource.
No matter what compiler I use (I tried prebuilt android sdk, codesourcery,
compiled android gcc-4.4.3 from sources) I always get this error:
fs/binfmt_aout.c: In function 'load_aout_binary':
fs/binfmt_aout.c:271: error: 'SEGMENT_SIZE' undeclared (first use in this function)
Any ideas?
Click to expand...
Click to collapse
hm strange. i just compiled the source (which i downloaded 2 weeks ago) with the newsest code-sourcery-lite and it worked well. when did you download the source from samsung? i had a problem some time ago with the eclair sources which was fixed when i re-downloaded the sources some day's later ... possibly a "buggy" snapshot?!
edit: in my fs/binfmt_aout.c file isn't even a constant (used) "SEGMENT_SIZE" ...
I forget how I got around this, but I believe others have had luck using the info
here
Update the Makefile:
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
==>
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) -Dlinux
under linux/include, remove the 2nd SEGMENT_SIZE declaration (sony's) in a.out.h
ragin said:
Did you try Sztupy's compact VM? It has all the necessary compliers & other tools.
Click to expand...
Click to collapse
No, I am compiling under linux using "android SDK", even compiled from source.
I also tried codesourcery SDK (as kernel sources sugest in the README) with no luck.
jodue said:
hm strange. i just compiled the source (which i downloaded 2 weeks ago) with the newsest code-sourcery-lite and it worked well. when did you download the source from samsung? i had a problem some time ago with the eclair sources which was fixed when i re-downloaded the sources some day's later ... possibly a "buggy" snapshot?!
edit: in my fs/binfmt_aout.c file isn't even a constant (used) "SEGMENT_SIZE" ...
Click to expand...
Click to collapse
I also dounwloaded the source a couple of weeks ago. And also tried codesorcery "latest" - like 2010q1 - same thing.
SEGMENT_SIZE is not in binfmt_aout.c, it's in include/linux/a.out.c.
I will try to disable a.out binformat.
BTW, what config did you use to compile?
xcaliburinhand said:
I forget how I got around this, but I believe others have had luck using the info
here
Update the Makefile:
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
==>
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) -Dlinux
Click to expand...
Click to collapse
Hmmm. That's why.
include/linux/a.out.h checks if "linux" is defined, then it checks if __KERNEL__ is defined and then it assigns a value to "SEGMENT_SIZE".
Thanks this was really helpful
xcaliburinhand said:
...
Update the Makefile:
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
==>
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) -Dlinux
Click to expand...
Click to collapse
Many thanks! This hint helps me too!
xcaliburinhand said:
I forget how I got around this, but I believe others have had luck using the info
here
Update the Makefile:
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
==>
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include) -Dlinux
Click to expand...
Click to collapse
if you need any more conformation. editing the MakeFile also worked for me. thank you so much.
Hello,
I try to port bcmon to CyanogenMod 11, by building the custom bcmon (bcm4329) kernel module for CM11. As modules are very dependent on the kernel version and configuration (unknown symbol errors even when compiled on the same exact kernel version), I have no other choice but to build the full CM11 kernel.
So I've built a CyanogenMod 11 kernel directly from the kernel source (ARIES kernel), NOT from the full CyanoGenMod system source (which is about 20GB source files, much more for built files, and takes hours to build [tutorial here]).
After some debugs, I managed to get the kernel zImage and .ko modules.
- fbmem.c has an issue with relative samsung/s3cfb.h path: make it absolute
- other bugs listed here (post end)
I also managed to build a ramdisk (initramfs) by manually builing it from the source files in aries usr/galaxysmtd_initramfs_files folder.
I used boot.img "kitchen" tool.
Code:
./repack_ramdisk galaxysmtd_initramfs_files ramdisk.gz
Still, I can't manage to build a proper boot.img with these files. Of course, building a boot.img file "works":
Code:
mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel zImage --ramdisk ramdisk.gz -o boot-new.img
Indeed I feel this file is gonna screw up my device boot (at least there will still be the recovery...).
Why? Because I believe Galaxy S boot.img is different than from other devices. And that seems to be an issue for other developers as well:
didhiy said:
Since I don't know how to unpack & repack boot.img on cm-10.1, I use stratosk ramdisk with some modification to suite my needs.
Click to expand...
Click to collapse
From this thread @ ubuntu-phone team mailing list archive:
Alistair Buxton said:
from http://wiki.sourcemage.org/HowTo(2f)Initramfs.html and http://comments.gmane.org/gmane.linux.kernel/1027539 this does indeed appear to be a built in initramfs inside the zImage. This is different to the way most android devices use mkbootimg to combine a zImage and ramdisk. In a real CyanogenMod rom for galaxysmtd, boot.img is not a mkbootimg image, nor is it it my earlier ubuntu-touch port. The offsets in System.map seem to be before compression, so perhaps this isn't the whole story, but for sure both kernels have an initramfs with different contents, and nothing else gets added later.
Click to expand...
Click to collapse
Kitchen tools and unpack-bootimg.pl just don't understand how boot.img file is structured for galaxy S1.
Tried to split the existing device boot.img from /dev/mtd/mtd2... (400MB)
Code:
[email protected]:$ adb shell
[email protected]:/ $ su
[email protected]:/ # cat /dev/mtd/mtd2 > /sdcard/mtd2.img
[email protected]:/ # exit
[email protected]:/ $ exit
[email protected]:$ adb pull /sdcard/mtd2.img
[email protected]:$ ./boot_info mtd2.img
PAGE SIZE: 1278632501
BASE ADDRESS: 0x65640000
RAMDISK ADDRESS: 0x78773241
CMDLINE: 'BA...[output omitted here]
[email protected]:$ ./split_boot mtd2.img
Android Magic not found in mtd2.img. Giving up.
[email protected]:~/Documents/android/kernel/aries_output$ ./unpack_bootimg.pl mtd2.img
Found a secondary file after the ramdisk image. According to the spec (mkbootimg.h) this file can exist, but this script is not designed to deal with this scenario.
Tried to split the existing device boot.img from CWM full backup... (7MB)
Code:
$ adb pull /storage/sdcard1/clockworkmod/backup/.../boot.img
$ ./boot_info boot.img
PAGE SIZE: 24061976
BASE ADDRESS: 0xe1a00000
RAMDISK ADDRESS: 0xe1a00000
CMDLINE: '_wl
dwl'
$ ./split_boot boot.img
Android Magic not found in boot.img. Giving up.
$ ./unpack_bootimg.pl boot.img
Could not find any embedded ramdisk images. Are you sure this is a full boot image?
So how do you exactly create a boot.img from a kernel zImage on Galaxy S1?
Without letting the CyanogenMod magic works with the hassle of compiling the whole CyanogenMod android system files...
NB: By the way, I try to just compile the kernel from full CM system source as per official instructions... and of course it failed.
Code:
$ make -j8 out/target/product/galaxysmtd/boot.img
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.2
CM_VERSION=11-20140126-UNOFFICIAL-galaxysmtd
TARGET_PRODUCT=cm_galaxysmtd
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a8
HOST_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-3.11.0-15-generic-x86_64-with-Ubuntu-13.10-saucy
HOST_BUILD_TYPE=release
BUILD_ID=KOT49H
OUT_DIR=/.../cm/out
============================================
/.../cm/out/target/product/galaxysmtd/obj/APPS/SignatureTest_intermediates
find: "src": Aucun fichier ou dossier de ce type
build/core/Makefile:44: attention : écrasement des commandes pour la cible « /.../cm/out/target/product/galaxysmtd/system/etc/permissions/android.software.live_wallpaper.xml »
build/core/base_rules.mk:529: attention : anciennes commandes ignorées pour la cible « /.../cm/out/target/product/galaxysmtd/system/etc/permissions/android.software.live_wallpaper.xml »
build/core/Makefile:44: attention : écrasement des commandes pour la cible « /.../cm/out/target/product/galaxysmtd/system/etc/permissions/android.software.live_wallpaper.xml »
build/core/Makefile:44: attention : anciennes commandes ignorées pour la cible « /.../cm/out/target/product/galaxysmtd/system/etc/permissions/android.software.live_wallpaper.xml »
build/core/Makefile:44: attention : écrasement des commandes pour la cible « /.../cm/out/target/product/galaxysmtd/system/lib/libril.so »
build/core/base_rules.mk:529: attention : anciennes commandes ignorées pour la cible « /.../cm/out/target/product/galaxysmtd/system/lib/libril.so »
build/core/Makefile:44: attention : écrasement des commandes pour la cible « /.../cm/out/target/product/galaxysmtd/system/bin/rild »
build/core/base_rules.mk:529: attention : anciennes commandes ignorées pour la cible « /.../cm/out/target/product/galaxysmtd/system/bin/rild »
PRODUCT_COPY_FILES device/generic/goldfish/data/etc/apns-conf.xml:system/etc/apns-conf.xml ignored.
PRODUCT_COPY_FILES device/generic/goldfish/camera/media_profiles.xml:system/etc/media_profiles.xml ignored.
PRODUCT_COPY_FILES device/generic/goldfish/camera/media_codecs.xml:system/etc/media_codecs.xml ignored.
PRODUCT_COPY_FILES hardware/libhardware_legacy/audio/audio_policy.conf:system/etc/audio_policy.conf ignored.
No private recovery resources for TARGET_DEVICE galaxysmtd
make: *** Pas de règle pour fabriquer la cible « out/target/product/galaxysmtd/boot.img ». Arrêt.
edit:
You missed this part from my sc02b thread
>> Stock cm-10.1 kernel
file: cm-10.1-sc02b-kernel-yyyymmdd.zip
Finally (May 2013) I found proper way to unpack stock kernel using this kernel-repack and repack again using a part of script from here
Click to expand...
Click to collapse
check this:
https://github.com/didhiy/ramdisk-aries
I use a script for i9100 from chirayudesai github (already deleted), it works for extracting i9000 boot.img
unfortunately in newer lzma version (I'm on ubuntu precise), the script failed
my way to solve the problem is use lzma binary from older version (natty)
the newer version of lzma only soft linked to xz binary, so I removed lzma, lzmainfo & unlzma from /usr/bin/
put lzma & lzmainfo binaries from natty, last create unlzma softlink to lzma binary
Thanks didhiy.
Finally I abandoned the idea to build the kernel alone, this is deprecated by CyanogenMod since CM9.
But CyanogenMod IRC users gave me the following tip to avoid the long android system build. Instead of brunch'ing CM, we can just compile the kernel boot.img directly from source by using the following command (after having setup the whole CM build environment etc.).
Code:
mka bootimage
I've edited the CyanogenMod wiki to explain all this in details:
CyanogenMod wiki: Integrated Kernel Building
i have the same exact problem for a while!
hi,
im happy ive found this topic,but sad to find out u abandoned the idea
my problem is,i dont have enough hard drive on system,(beside the awful internet speed), so i dont want to download the whole 20GB!...
so i preferred to download just some of dependencies which is described in an xml file...
so,all in all,do u know which packages is needed to compile just the boot.img,and not the whole rom zip file?
So recently i have been trying my hands on building rom from source.
i tried with cm12, which builds well with the stock cm kernel source..
then i took a step further to try to add a custom kernel to my rom source
i am using ElementalX kernel's source..
but i am getting build failure with the following error:
Code:
../../../../../../kernel/lge/ElementalX/kernel/auditsc.c: In function 'audit_filter_inodes':
../../../../../../kernel/lge/ElementalX/kernel/auditsc.c:927:23: warning: 'state' may be used uninitialized in this function [-Wmaybe-uninitialized]
error, forbidden warning: auditsc.c:927
make[3]: *** [kernel/auditsc.o] Error 1
make[3]: *** Waiting for unfinished jobs....
make[2]: *** [kernel] Error 2
make[1]: *** [sub-make] Error 2
make[1]: Leaving directory `/home/pratyush/android/kernel/lge/ElementalX'
make: *** [TARGET_KERNEL_BINARIES] Error 2
i have added this in manifest as the repo link:
Code:
<project name="flar2/ElementalX-N5" path="kernel/lge/ElementalX" remote="github" revision="ElementalX-2.00" />
and modified the boardconfig.mk as this:
Code:
# Define kernel config for inline building
TARGET_KERNEL_CONFIG := hammerhead_defconfig
TARGET_KERNEL_SOURCE := kernel/lge/ElementalX
any help is appreciated.. thanks. :fingers-crossed:
wrick17 said:
and modified the boardconfig.mk as this:
Code:
# Define kernel config for inline building
TARGET_KERNEL_CONFIG := hammerhead_defconfig
TARGET_KERNEL_SOURCE := kernel/lge/ElementalX
Click to expand...
Click to collapse
Use elementalx_defconfig instead.
Lethargy said:
Use elementalx_defconfig instead.
Click to expand...
Click to collapse
that worked pretty well though.. but now it got stuck at this...
Code:
target thumb C++: gralloc.msm8974 <= hardware/qcom/display/msm8974/libgralloc/mapper.cpp
target thumb C++: libmemalloc <= hardware/qcom/display/msm8974/libgralloc/ionalloc.cpp
target thumb C++: libmemalloc <= hardware/qcom/display/msm8974/libgralloc/alloc_controller.cpp
target thumb C++: libqdutils <= hardware/qcom/display/msm8974/libqdutils/profiler.cpp
target thumb C++: libqdutils <= hardware/qcom/display/msm8974/libqdutils/mdp_version.cpp
target thumb C++: libqdutils <= hardware/qcom/display/msm8974/libqdutils/idle_invalidator.cpp
target thumb C++: libqdutils <= hardware/qcom/display/msm8974/libqdutils/comptype.cpp
target thumb C++: hwcomposer.msm8974 <= hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
target thumb C++: hwcomposer.msm8974 <= hardware/qcom/display/msm8974/libhwcomposer/hwc_utils.cpp
hardware/qcom/display/msm8974/libgralloc/ionalloc.cpp: In member function 'virtual int gralloc::IonAlloc::alloc_buffer(gralloc::alloc_data&)':
hardware/qcom/display/msm8974/libgralloc/ionalloc.cpp:76:18: error: 'struct ion_allocation_data' has no member named 'heap_id_mask'
ionAllocData.heap_id_mask = data.flags & ~ION_SECURE;
^
make: *** [/home/pratyush/android/out/target/product/hammerhead/obj/SHARED_LIBRARIES/libmemalloc_intermediates/ionalloc.o] Error 1
make: *** Waiting for unfinished jobs....
tried to search for but got no clue nowhere..
wrick17 said:
that worked pretty well though.. but now it got stuck at this...
Code:
target thumb C++: gralloc.msm8974 <= hardware/qcom/display/msm8974/libgralloc/mapper.cpp
target thumb C++: libmemalloc <= hardware/qcom/display/msm8974/libgralloc/ionalloc.cpp
target thumb C++: libmemalloc <= hardware/qcom/display/msm8974/libgralloc/alloc_controller.cpp
target thumb C++: libqdutils <= hardware/qcom/display/msm8974/libqdutils/profiler.cpp
target thumb C++: libqdutils <= hardware/qcom/display/msm8974/libqdutils/mdp_version.cpp
target thumb C++: libqdutils <= hardware/qcom/display/msm8974/libqdutils/idle_invalidator.cpp
target thumb C++: libqdutils <= hardware/qcom/display/msm8974/libqdutils/comptype.cpp
target thumb C++: hwcomposer.msm8974 <= hardware/qcom/display/msm8974/libhwcomposer/hwc.cpp
target thumb C++: hwcomposer.msm8974 <= hardware/qcom/display/msm8974/libhwcomposer/hwc_utils.cpp
hardware/qcom/display/msm8974/libgralloc/ionalloc.cpp: In member function 'virtual int gralloc::IonAlloc::alloc_buffer(gralloc::alloc_data&)':
hardware/qcom/display/msm8974/libgralloc/ionalloc.cpp:76:18: error: 'struct ion_allocation_data' has no member named 'heap_id_mask'
ionAllocData.heap_id_mask = data.flags & ~ION_SECURE;
^
make: *** [/home/pratyush/android/out/target/product/hammerhead/obj/SHARED_LIBRARIES/libmemalloc_intermediates/ionalloc.o] Error 1
make: *** Waiting for unfinished jobs....
tried to search for but got no clue nowhere..
Click to expand...
Click to collapse
Have you tried cleaning build directory and/or running a repo sync?
Lethargy said:
Have you tried cleaning build directory and/or running a repo sync?
Click to expand...
Click to collapse
Yep, both.. But i get this whenever i use elementalx source..
wrick17 said:
Yep, both.. But i get this whenever i use elementalx source..
Click to expand...
Click to collapse
Some sort of conflict then, not sure.
U need to make sure u are using the correct kernel branch, elementalX has multiple branches, some caf, some not, if ur building cm, u need a caf kernel or build will fail, make sure ur on the right branch, or give me a copy of the error and I can help
soupysoup said:
U need to make sure u are using the correct kernel branch, elementalX has multiple branches, some caf, some not, if ur building cm, u need a caf kernel or build will fail, make sure ur on the right branch, or give me a copy of the error and I can help
Click to expand...
Click to collapse
Yeah sure, I'll try to build again. When it fails again, I'll post u the logs. Still can u give a quick headsup on which which branch should i use?
same issue here...
Code:
hardware/qcom/display/msm8974/libgralloc/ionalloc.cpp: In member function 'virtual int gralloc::IonAlloc::alloc_buffer(gralloc::alloc_data&)':
hardware/qcom/display/msm8974/libgralloc/ionalloc.cpp:76:18: error: 'struct ion_allocation_data' has no member named 'heap_id_mask'
ionAllocData.heap_id_mask = data.flags & ~ION_SECURE;
^
any hint? trying to build lp5.1 from https://github.com/SlimRoms repo
thank you
What cross compiler are you using? I seem to recall an error like this using the AOSP cross compiler (used to build the rest of AOSP). I pulled a toolchain from google and it worked fine:
Code:
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
Gene Poole said:
What cross compiler are you using? I seem to recall an error like this using the AOSP cross compiler (used to build the rest of AOSP). I pulled a toolchain from google and it worked fine:
Code:
git clone https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
Click to expand...
Click to collapse
where do i place it? The repo?
You can place it anywhere. I put it in /usr/src/ where all my other source code resides. Most guides I've seen place them somewhere off the users' home directory but this never made sense to me unless you were on a machine you didn't administer.
Where ever you put it, just export it as a path variable for your kernel compile (I'm assuming the toolchain is in /usr/src/arm-eabi-4.6/ and the kernel is /usr/src/aosp5.1/msm/ and you are root in this case):
Code:
cd /usr/src/aosp5.1/msm/
export ARCH="arm"
export SUBARCH="arm"
export CROSS_COMPILE=arm-eabi-
export PATH=$PATH:/usr/src/arm-eabi-4.6/bin
make -j10
Elementalx uses an optimized toolchain. Google's toolchains don't work to compile this kernel. Use this toolchain instead. Never had any problems with it:
http://forum.xda-developers.com/showthread.php?t=2098133
wrick17 said:
where do i place it? The repo?
Click to expand...
Click to collapse
Are u trying to build CAF or AOSP version?
JoaoPaulo said:
Are u trying to build CAF or AOSP version?
Click to expand...
Click to collapse
CAF. CM12.
wrick17 said:
CAF. CM12.
Click to expand...
Click to collapse
Try to get some different kernel source elementalx is not CAF.
But you can try rename that line of code from:
Code:
ionAllocData.heap_id_mask = data.flags & ~ION_SECURE;
to
Code:
ionAllocData.heap_mask = data.flags & ~ION_SECURE;
Say something then
JoaoPaulo said:
Try to get some different kernel source elementalx is not CAF.
But you can try rename that line of code from:
Code:
ionAllocData.heap_id_mask = data.flags & ~ION_SECURE;
to
Code:
ionAllocData.heap_mask = data.flags & ~ION_SECURE;
Say something then
Click to expand...
Click to collapse
Oki. Cool. Will try and let u know. Currently i m a bit busy with other things. Will do it and let u guys know.
JoaoPaulo said:
Try to get some different kernel source elementalx is not CAF.
But you can try rename that line of code from:
Code:
ionAllocData.heap_id_mask = data.flags & ~ION_SECURE;
to
Code:
ionAllocData.heap_mask = data.flags & ~ION_SECURE;
Say something then
Click to expand...
Click to collapse
ElementalX does have a CM compatible source, just switch branches and make sure u change roomservice.py to allow building with a custom kernel, if u wanna pm me I can help
@wrick17 I am having the same issue. Did you find a solution?
This is for CM non-CAF version.
zymphad said:
@wrick17 I am having the same issue. Did you find a solution?
This is for CM non-CAF version.
Click to expand...
Click to collapse
Sorry mate, I haven't actually got it working after that. And now I am actually short of space on my disk that i can't even try to build it. Maybe somewhere down in future i'll try again. Till then i'm yet to try. Please update us if you find any solution..
Just got a T280 - would like to get Nougat on it. I saw @jedld did awesome work on T285 and @_mone did with TWRP, however, I was hoping to create a thread to consolidate any ongoing efforts for T280 in one place, and see where I could help.
This is what I know of the state of the T280 development.
TWRP and root has been available for the T280 for some time, almost at the same time the T285 version has. There is no non-stock based rom available yet.
Custom T280 kernel here courtesy of @_mone, there are reports that it works with an updated T280 stock firmware.
Before flashing a generated boot.img note that it requires special headers for the T280 here: https://forum.xda-developers.com/showpost.php?p=68843058&postcount=81. There is at least one developer in this forum that is looking to make this process easier.
Assumming this works with the T280 stock firmware, the steps that I see are the following:
1. Patch the N and M related linux kernel patches to the T280 kernel http://jeffvanderstoep.blogspot.com/2016/05/selinux-kernel-patches-for-android-n.html. Update the arm defconfig to the latest recommended by android.
2. Create a lineage device tree, you can use my gtexslte manifest as a starting point https://github.com/jedld/android.git. Probably just need to take out the RIL related modules.
awesome - i'll give this a go.. right now I'm just testing building samsung's stock opensource kernel.
It's people like you that make me love xda. Thanks!
Downloading source code.....
@jedld I downloading lineage14.1 src and gtexslte kernel/device trees
How to create gtexswifi device tree based gtexslte?
tdukazudon said:
@jedld I downloading lineage14.1 src and gtexslte kernel/device trees
How to create gtexswifi device tree based gtexslte?
Click to expand...
Click to collapse
You can start by renaming gtexslte to gtexswifi, I believe flash partitions sizes and mountpoints are about the same for both SM-T285 and SM-T280 so you don't need to change much. You probably need to remove phone related configs. You also need to use the SM-T280 kernel also. I don't know if there are other hardware differences from the T280 and T285 (gps?) If this is your first time doing any sort of porting, this can be a daunting task, so I suggest you try to learn how to extract the stock boot and system images, modify some files and then flash it back as an exercise. There might already be a gtexswifi device tree in progress somewhere, I suggest that you contact those devs or probably set up an irc channel to coordinate your efforts.
@jedld - I'm confused - for the M/N Patches to the kernel, it seems like 2 sets of patches undo each other, namely:
Revert "SELinux: per-command whitelisting of ioctls" - https://android-review.googlesource.com/162275
selinux: extended permissions for ioctls - https://android-review.googlesource.com/162279
and
Revert "security: lsm_audit: add ioctl specific auditing" - https://android-review.googlesource.com/162276
security: add ioctl specific auditing to lsm_audit - https://android-review.googlesource.com/162278
What'd you do for those?
chiefwigms said:
@jedld - I'm confused - for the M/N Patches to the kernel, it seems like 2 sets of patches undo each other, namely:
Revert "SELinux: per-command whitelisting of ioctls" - https://android-review.googlesource.com/162275
selinux: extended permissions for ioctls - https://android-review.googlesource.com/162279
and
Revert "security: lsm_audit: add ioctl specific auditing" - https://android-review.googlesource.com/162276
security: add ioctl specific auditing to lsm_audit - https://android-review.googlesource.com/162278
What'd you do for those?
Click to expand...
Click to collapse
I ignored the reverts at first. I can't remember if it worked after that. Though I ended up just doing a straight diff with the selinux modules based on the aosp 3.10.y kernel sources and just merging them.
jedld said:
I ignored the reverts at first. I can't remember if it worked after that. Though I ended up just doing a straight diff with the selinux modules based on the aosp 3.10.y kernel sources and just merging them.
Click to expand...
Click to collapse
Sound good - i'll just diff w/ your repo Thx!
@jedld
This build error happened.Do you have solution?
hardware/sprd/libmemion/MemoryHeapIon.cpp:614:30: error: variable has incomplete type 'struct ion_kmap_data'
struct ion_kmap_data kmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:614:16: note: forward declaration of 'ion_kmap_data'
struct ion_kmap_data kmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:618:27: error: use of undeclared identifier 'ION_SPRD_CUSTOM_MAP_KERNEL'; did you mean 'ION_SPRD_CUSTOM_MAP'?
custom_data.cmd = ION_SPRD_CUSTOM_MAP_KERNEL;
^~~~~~~~~~~~~~~~~~~~~~~~~~
ION_SPRD_CUSTOM_MAP
/home/aletheia/smt280/out/target/product/gtexswifi/obj/KERNEL_OBJ/usr/include/video/ion_sprd.h:54:2: note: 'ION_SPRD_CUSTOM_MAP' declared here
ION_SPRD_CUSTOM_MAP,
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:638:32: error: variable has incomplete type 'struct ion_kunmap_data'
struct ion_kunmap_data kunmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:638:16: note: forward declaration of 'ion_kunmap_data'
struct ion_kunmap_data kunmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:642:27: error: use of undeclared identifier 'ION_SPRD_CUSTOM_UNMAP_KERNEL'; did you mean 'ION_SPRD_CUSTOM_UNMAP'?
custom_data.cmd = ION_SPRD_CUSTOM_UNMAP_KERNEL;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
ION_SPRD_CUSTOM_UNMAP
/home/aletheia/smt280/out/target/product/gtexswifi/obj/KERNEL_OBJ/usr/include/video/ion_sprd.h:55:2: note: 'ION_SPRD_CUSTOM_UNMAP' declared here
ION_SPRD_CUSTOM_UNMAP,
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:663:30: error: variable has incomplete type 'struct ion_kmap_data'
struct ion_kmap_data kmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:663:16: note: forward declaration of 'ion_kmap_data'
struct ion_kmap_data kmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:667:27: error: use of undeclared identifier 'ION_SPRD_CUSTOM_MAP_KERNEL'; did you mean 'ION_SPRD_CUSTOM_MAP'?
custom_data.cmd = ION_SPRD_CUSTOM_MAP_KERNEL;
^~~~~~~~~~~~~~~~~~~~~~~~~~
ION_SPRD_CUSTOM_MAP
/home/aletheia/smt280/out/target/product/gtexswifi/obj/KERNEL_OBJ/usr/include/video/ion_sprd.h:54:2: note: 'ION_SPRD_CUSTOM_MAP' declared here
ION_SPRD_CUSTOM_MAP,
^
Import includes file: /home/aletheia/smt280/out/target/product/gtexswifi/obj/SHARED_LIBRARIES/libRSCpuRef_intermediates/import_includes
hardware/sprd/libmemion/MemoryHeapIon.cpp:690:32: error: variable has incomplete type 'struct ion_kunmap_data'
struct ion_kunmap_data kunmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:690:16: note: forward declaration of 'ion_kunmap_data'
struct ion_kunmap_data kunmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:694:27: error: use of undeclared identifier 'ION_SPRD_CUSTOM_UNMAP_KERNEL'; did you mean 'ION_SPRD_CUSTOM_UNMAP'?
custom_data.cmd = ION_SPRD_CUSTOM_UNMAP_KERNEL;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
ION_SPRD_CUSTOM_UNMAP
/home/aletheia/smt280/out/target/product/gtexswifi/obj/KERNEL_OBJ/usr/include/video/ion_sprd.h:55:2: note: 'ION_SPRD_CUSTOM_UNMAP' declared here
ION_SPRD_CUSTOM_UNMAP,
^
8 errors generated.
tdukazudon said:
@jedld
This build error happened.Do you have solution?
hardware/sprd/libmemion/MemoryHeapIon.cpp:614:30: error: variable has incomplete type 'struct ion_kmap_data'
struct ion_kmap_data kmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:614:16: note: forward declaration of 'ion_kmap_data'
struct ion_kmap_data kmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:618:27: error: use of undeclared identifier 'ION_SPRD_CUSTOM_MAP_KERNEL'; did you mean 'ION_SPRD_CUSTOM_MAP'?
custom_data.cmd = ION_SPRD_CUSTOM_MAP_KERNEL;
^~~~~~~~~~~~~~~~~~~~~~~~~~
ION_SPRD_CUSTOM_MAP
/home/aletheia/smt280/out/target/product/gtexswifi/obj/KERNEL_OBJ/usr/include/video/ion_sprd.h:54:2: note: 'ION_SPRD_CUSTOM_MAP' declared here
ION_SPRD_CUSTOM_MAP,
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:638:32: error: variable has incomplete type 'struct ion_kunmap_data'
struct ion_kunmap_data kunmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:638:16: note: forward declaration of 'ion_kunmap_data'
struct ion_kunmap_data kunmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:642:27: error: use of undeclared identifier 'ION_SPRD_CUSTOM_UNMAP_KERNEL'; did you mean 'ION_SPRD_CUSTOM_UNMAP'?
custom_data.cmd = ION_SPRD_CUSTOM_UNMAP_KERNEL;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
ION_SPRD_CUSTOM_UNMAP
/home/aletheia/smt280/out/target/product/gtexswifi/obj/KERNEL_OBJ/usr/include/video/ion_sprd.h:55:2: note: 'ION_SPRD_CUSTOM_UNMAP' declared here
ION_SPRD_CUSTOM_UNMAP,
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:663:30: error: variable has incomplete type 'struct ion_kmap_data'
struct ion_kmap_data kmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:663:16: note: forward declaration of 'ion_kmap_data'
struct ion_kmap_data kmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:667:27: error: use of undeclared identifier 'ION_SPRD_CUSTOM_MAP_KERNEL'; did you mean 'ION_SPRD_CUSTOM_MAP'?
custom_data.cmd = ION_SPRD_CUSTOM_MAP_KERNEL;
^~~~~~~~~~~~~~~~~~~~~~~~~~
ION_SPRD_CUSTOM_MAP
/home/aletheia/smt280/out/target/product/gtexswifi/obj/KERNEL_OBJ/usr/include/video/ion_sprd.h:54:2: note: 'ION_SPRD_CUSTOM_MAP' declared here
ION_SPRD_CUSTOM_MAP,
^
Import includes file: /home/aletheia/smt280/out/target/product/gtexswifi/obj/SHARED_LIBRARIES/libRSCpuRef_intermediates/import_includes
hardware/sprd/libmemion/MemoryHeapIon.cpp:690:32: error: variable has incomplete type 'struct ion_kunmap_data'
struct ion_kunmap_data kunmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:690:16: note: forward declaration of 'ion_kunmap_data'
struct ion_kunmap_data kunmap_data;
^
hardware/sprd/libmemion/MemoryHeapIon.cpp:694:27: error: use of undeclared identifier 'ION_SPRD_CUSTOM_UNMAP_KERNEL'; did you mean 'ION_SPRD_CUSTOM_UNMAP'?
custom_data.cmd = ION_SPRD_CUSTOM_UNMAP_KERNEL;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
ION_SPRD_CUSTOM_UNMAP
/home/aletheia/smt280/out/target/product/gtexswifi/obj/KERNEL_OBJ/usr/include/video/ion_sprd.h:55:2: note: 'ION_SPRD_CUSTOM_UNMAP' declared here
ION_SPRD_CUSTOM_UNMAP,
^
8 errors generated.
Click to expand...
Click to collapse
You need so sync up the kernel ion drivers and include files with the one used by the gtexslte
Pardon my stupidity, but from your post here with the custom t280 header, how would I go about modifying the degas-mkbootimg command with the permissive kernel that I have?
chiefwigms said:
Pardon my stupidity, but from your post here with the custom t280 header, how would I go about modifying the degas-mkbootimg command with the permissive kernel that I have?
Click to expand...
Click to collapse
best approach I believe would be to leave mkbootimg as is and just create another commandline utility that takes an exisitng boot.img and prepend the T280 header to it. I'll try to create a C program that does it if I have time.
jedld said:
best approach I believe would be to leave mkbootimg as is and just create another commandline utility that takes an exisitng boot.img and prepend the T280 header to it. I'll try to create a C program that does it if I have time.
Click to expand...
Click to collapse
I'll clone your repo & add something to repack the t280 boot.img. Sorry - had to read through that post a few times - didn't realize the seandroid header was at the end of the file..
Kernel question : the zImage I compile is ~ 5 megs (Image is ~12) - when i unpack the stock boot.img (or the ones that @_mone made), they're around ~10 megs. Any ideas?
chiefwigms said:
I'll clone your repo & add something to repack the t280 boot.img. Sorry - had to read through that post a few times - didn't realize the seandroid header was at the end of the file..
Kernel question : the zImage I compile is ~ 5 megs (Image is ~12) - when i unpack the stock boot.img (or the ones that @_mone made), they're around ~10 megs. Any ideas?
Click to expand...
Click to collapse
boot.img also contains the ramdisk aside from the compressed kernel image.
jedld said:
best approach I believe would be to leave mkbootimg as is and just create another commandline utility that takes an exisitng boot.img and prepend the T280 header to it. I'll try to create a C program that does it if I have time.
Click to expand...
Click to collapse
jedld said:
boot.img also contains the ramdisk aside from the compressed kernel image.
Click to expand...
Click to collapse
Right, but I'm talking about zImage.. doesn't that remain untouched?
chiefwigms said:
Right, but I'm talking about zImage.. doesn't that remain untouched?
Click to expand...
Click to collapse
If you are comparing to stock size, samsung might have less flags enabled when they built their kernel as compared to the sources available to us so it could be smaller
jedld said:
If you are comparing to stock size, samsung might have less flags enabled when they built their kernel as compared to the sources available to us so it could be smaller
Click to expand...
Click to collapse
I don't know - I merged most of your def config to mine, and rebuilt stock, _mone, the modified one ive been working on, and your performance_2 branch for the t285 - all the zImages are around 5 MB :
[email protected]:/gtaba# ls -la kernel_samsung_gtexslte/arch/arm/boot/*Image*
-rwxr-xr-x 1 root root 12788984 Aug 26 23:06 kernel_samsung_gtexslte/arch/arm/boot/Image
-rwxr-xr-x 1 root root 5622664 Aug 26 23:06 kernel_samsung_gtexslte/arch/arm/boot/zImage
[email protected]:/gtaba# ls -la android_kernel_samsung_gtexswifi/arch/arm/boot/*Image*
-rwxr-xr-x 1 root root 12516984 Aug 25 21:05 android_kernel_samsung_gtexswifi/arch/arm/boot/Image
-rwxr-xr-x 1 root root 5488912 Aug 25 21:05 android_kernel_samsung_gtexswifi/arch/arm/boot/zImage
chiefwigms said:
I don't know - I merged most of your def config to mine, and rebuilt stock, _mone, the modified one ive been working on, and your performance_2 branch for the t285 - all the zImages are around 5 MB :
[email protected]:/gtaba# ls -la kernel_samsung_gtexslte/arch/arm/boot/*Image*
-rwxr-xr-x 1 root root 12788984 Aug 26 23:06 kernel_samsung_gtexslte/arch/arm/boot/Image
-rwxr-xr-x 1 root root 5622664 Aug 26 23:06 kernel_samsung_gtexslte/arch/arm/boot/zImage
[email protected]:/gtaba# ls -la android_kernel_samsung_gtexswifi/arch/arm/boot/*Image*
-rwxr-xr-x 1 root root 12516984 Aug 25 21:05 android_kernel_samsung_gtexswifi/arch/arm/boot/Image
-rwxr-xr-x 1 root root 5488912 Aug 25 21:05 android_kernel_samsung_gtexswifi/arch/arm/boot/zImage
Click to expand...
Click to collapse
For the gtexslte the size is about similar as well:
[email protected]:~/android-work/kernel/samsung/gtexslte/arch$ ls -la arm/boot/*Image*
-rwxrwxr-x 1 jedld jedld 12672968 Aug 28 07:00 arm/boot/Image
-rwxrwxr-x 1 jedld jedld 5566008 Aug 28 07:00 arm/boot/zImage
jedld said:
For the gtexslte the size is about similar as well:
[email protected]:~/android-work/kernel/samsung/gtexslte/arch$ ls -la arm/boot/*Image*
-rwxrwxr-x 1 jedld jedld 12672968 Aug 28 07:00 arm/boot/Image
-rwxrwxr-x 1 jedld jedld 5566008 Aug 28 07:00 arm/boot/zImage
Click to expand...
Click to collapse
Alright.. I'll try that.. and just to make sure, you repack zImage not image right? Just curious why when I unpack _mone it's 2x the size
Introduction
Hello everyone, this is a thread to introduce both users and kernel developers to the concept of linux-stable as well as give developers some tips and a tree to either merge into their own, use as a base, or just as a reference. Feel free to ask questions and enjoy!
What is it?
linux-stable is, as the name implies, the stable branch of the Linux kernel, the base of Android. The phone could not run without the Linux kernel (at least not without reworking a lot of stuff). The Android kernels are based on the longterm stable trees:
Longterm
There are usually several "longterm maintenance" kernel releases provided for the purposes of backporting bugfixes for older kernel trees. Only important bugfixes are applied to such kernels and they don't usually see very frequent releases, especially for older trees.
Click to expand...
Click to collapse
Source: https://www.kernel.org/category/releases.html
All Linux development happens on the master branch, which is governed by Linus Torvalds. When issues are discovered there, the fixes are applied then backported to these various stable trees for consumption. It is not uncommon for a fix to need to go back a few years.
There is a LOT more information available in the notes repo in the android-linux-stable organization if you care to learn more in-depth: https://github.com/android-linux-stable/notes
What does this mean for me?
If you are a developer, this means you should be merging these changes into your own tree. These are vetted, stable fixes to real world problems and they are being handed out for free. It does not take long to get up to date (as you can just merge this tree directly into your own or do it yourself using the tree as a reference) and once you are up to date, there is usually a release once every two weeks, give or take. I provide a rebuttal to a lot of various complaints here. If you still feel like there is a good reason not to do this, please let me know, I'll be happy to try and debate on it!
If you are a user, it means that you should be looking for and using kernels that have these fixes, as it shows the developers care for your security and stability. The current version for this device is 4.9.65 on OxygenOS 5.x and 4.9.106 on OxygenOS 9.0/Open Beta while the current version upstream is 4.9.135 so all you need to do is go into Settings > About phone and look at the kernel version to know if you are up to date.
How do I use?
If you are a developer, the reference tree is located in the android-linux-stable organization: https://github.com/android-linux-stable/op6
This can either be merged into your existing kernel tree if you have one or be used as a fresh base. You do not need my permission to use it nor do you need to give me credit (although it would be appreciated).
If you are a user, use a kernel that has the changes added in!
Getting notified about updates
There are a few ways to get notified of linux-stable updates:
The linux-kernel-announce mailing list: http://vger.kernel.org/vger-lists.html#linux-kernel-announce
The android-linux-stable Telegram channel: https://t.me/alsupdates
Subscribe to this thread
Follow me on Google+ or Twitter
Getting help
If you have any issues with getting these changes into your tree or want to ask a question, there are a few different ways to do it:
Post in this thread
Join the linux-stable support chat on Telegram: https://t.me/joinchat/C1UAJ1EMSX31PCFdwLnOSg
File an issue either in the android-linux-stable notes repo or the android-linux-stable repo for this device
When requesting help, please give some solid details as to what you are struggling with, as I am happy to provide assistant and clarity but not to do something for you (unless I screwed up).
God damn ! You here ! I'm feeling lucky ! Nexus 6P, Oneplus 5 and now Oneplus 6 damn :')
Thanks for your hard work !
Yea boiii
Imma flashing it rn <3
Thanks
Thank you @nathanchance for your efforts. Much needed for the new 4.9 kernel.
Nice one man!!
Sent from my OnePlus6 using XDA Labs
Who got 1 star ? really ?
btw, @nathanchance you have 5 star from me, good work ,and it is nice to see you here.
As always, good job with informing users , waiting for your kernel
Thanks a lot! :good:
marko94 said:
Who got 1 star ? really ?
btw, @nathanchance you have 5 star from me, good work ,and it is nice to see you here.
As always, good job with informing users , waiting for your kernel
Click to expand...
Click to collapse
Ratings mean absolutely nothing and I feel sorry for anyone who puts any stock in them but thanks
My kernel should be out tonight.
Hey, can you explain me we can install upper kernel version on the last firmware? And how to do it if we can?
Thank and good thread!
Devices : OnePlus 6
4.9.108 has been merged in.
black_file said:
Hey, can you explain me we can install upper kernel version on the last firmware? And how to do it if we can?
Thank and good thread!
Devices : OnePlus 6
Click to expand...
Click to collapse
Flash a kernel that has these changes. At this moment, I am the only one who has done so: https://forum.xda-developers.com/oneplus-6/development/op6-flash-kernel-1-00-t3801652
4.9.109 has been merged in.
Could you please provide instructions on how to flash a kernel?
Earlier, I could just extract the boot.img file from one of the ROM images and then extract+repackage with my built Image.gz-dtb using mkbootimg.
The newer Android ROMs seem to only contain a package.bin file instead.
phenoxis said:
Could you please provide instructions on how to flash a kernel?
Earlier, I could just extract the boot.img file from one of the ROM images and then extract+repackage with my built Image.gz-dtb using mkbootimg.
The newer Android ROMs seem to only contain a package.bin file instead.
Click to expand...
Click to collapse
Easiest way is to temporarily boot TWRP on stock then run
Code:
adb shell dd if=/dev/block/bootdevice/by-name/boot$(getprop ro.boot.slot_suffix) of=/tmp/boot.img
adb pull /tmp/boot.img .
then just unpack like you have before.
Sent from my Pixel 2 XL using XDA Labs
nathanchance said:
Easiest way is to temporarily boot TWRP on stock then run
Code:
adb shell dd if=/dev/block/bootdevice/by-name/boot$(getprop ro.boot.slot_suffix) of=/tmp/boot.img
adb pull /tmp/boot.img .
then just unpack like you have before.
Click to expand...
Click to collapse
I followed your advice with both the original OnePlus 6 kernel source and your android-linux-stable repo. I was able to build the kernel, repack it and flash it, but with both repos, the device is sitting with the bootanimation for about half hour or so. Do both repositories need additional work before it can boot?
I packaged boot.img with the following command:
Code:
mkbootimg --base 0 --pagesize 4096 --kernel_offset 0x00008000 --ramdisk_offset 0x01000000
--second_offset 0x00f00000 --tags_offset 0x00000100
--cmdline 'androidboot.hardware=qcom androidboot.console=ttyMSM0 video=vfb:640x400,bpp=32,memsize=3072000
msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 swiotlb=2048
androidboot.configfs=true androidboot.usbcontroller=a600000.dwc3 buildvariant=user' --kernel kernel --ramdisk ramdisk -o boot_1.img
phenoxis said:
I followed your advice with both the original OnePlus 6 kernel source and your android-linux-stable repo. I was able to build the kernel, repack it and flash it, but with both repos, the device is sitting with the bootanimation for about half hour or so. Do both repositories need additional work before it can boot?
I packaged boot.img with the following command:
Code:
mkbootimg --base 0 --pagesize 4096 --kernel_offset 0x00008000 --ramdisk_offset 0x01000000
--second_offset 0x00f00000 --tags_offset 0x00000100
--cmdline 'androidboot.hardware=qcom androidboot.console=ttyMSM0 video=vfb:640x400,bpp=32,memsize=3072000
msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 swiotlb=2048
androidboot.configfs=true androidboot.usbcontroller=a600000.dwc3 buildvariant=user' --kernel kernel --ramdisk ramdisk -o boot_1.img
Click to expand...
Click to collapse
They shouldn't... Did you use Image.gz-dtb as the kernel?
nathanchance said:
They shouldn't... Did you use Image.gz-dtb as the kernel?
Click to expand...
Click to collapse
Yes, I'm certain I did.
My full script is:
Code:
unmkbootimg --kernel kernel --ramdisk ramdisk -i boot.img.bk #This is what I obtained from your dd if=... of=/tmp/boot.img command
cp /android/kernel/opo6-stable/arch/arm64/boot/Image.gz-dtb kernel
mkbootimg --base 0 --pagesize 4096 --kernel_offset 0x00008000 --ramdisk_offset 0x01000000
--second_offset 0x00f00000 --tags_offset 0x00000100
--cmdline 'androidboot.hardware=qcom androidboot.console=ttyMSM0 video=vfb:640x400,bpp=32,memsize=3072000
msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 swiotlb=2048
androidboot.configfs=true androidboot.usbcontroller=a600000.dwc3 buildvariant=user'
--kernel kernel --ramdisk ramdisk -o boot_1.img
fastboot flash boot boot_1.img
phenoxis said:
Yes, I'm certain I did.
My full script is:
Code:
unmkbootimg --kernel kernel --ramdisk ramdisk -i boot.img.bk #This is what I obtained from your dd if=... of=/tmp/boot.img command
cp /android/kernel/opo6-stable/arch/arm64/boot/Image.gz-dtb kernel
mkbootimg --base 0 --pagesize 4096 --kernel_offset 0x00008000 --ramdisk_offset 0x01000000
--second_offset 0x00f00000 --tags_offset 0x00000100
--cmdline 'androidboot.hardware=qcom androidboot.console=ttyMSM0 video=vfb:640x400,bpp=32,memsize=3072000
msm_rtb.filter=0x237 ehci-hcd.park=3 lpm_levels.sleep_disabled=1 service_locator.enable=1 swiotlb=2048
androidboot.configfs=true androidboot.usbcontroller=a600000.dwc3 buildvariant=user'
--kernel kernel --ramdisk ramdisk -o boot_1.img
fastboot flash boot boot_1.img
Click to expand...
Click to collapse
Try using this boot image: https://nathanchance.me/downloads/kernels/op6/stock/oos-5.1.8-boot.img
You may also check out Android Image Kitchen too, that's what I used before TWRP.
First, thanks a ton for taking the time to help me out.
I tried unpacking/repacking with your boot.img file, and that didn't work either. However, your boot.img itself works just fine.
I just realized that my build produces a ton of warnings.
Code:
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
...
This is probably why my kernels are failing to boot. I'm essentially following the instructions you laid out on the github issue for this kernel.
Code:
export ARCH=arm64
export CROSS_COMPILE=/android/projects/cross-compile/aarch64-linux-android-4.9/bin/aarch64-linux-android-
make O=out sdm845-perf_defconfig
./scripts/config --file ./out/.config -e BUILD_ARM64_DT_OVERLAY
make O=out olddefconfig
make O=out DTC_EXT=dtc -j16
Following the comments in that issue, I'm running archlinux with the following software versions:
gcc
Code:
[email protected]:/android/kernel/opo6-stable$ gcc --version
gcc (GCC) 8.1.1 20180531
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
dtc
Code:
[email protected]:/android/kernel/opo6-stable$ dtc --version
Version: DTC 1.4.6
phenoxis said:
First, thanks a ton for taking the time to help me out.
I tried unpacking/repacking with your boot.img file, and that didn't work either. However, your boot.img itself works just fine.
I just realized that my build produces a ton of warnings.
Code:
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/qcom,[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
arch/arm64/boot/dts/qcom/enchilada-evb-overlay.dtbo: Warning (reg_format): "reg" property in /[email protected]/__overlay__/[email protected] has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1)
...
This is probably why my kernels are failing to boot. I'm essentially following the instructions you laid out on the github issue for this kernel.
Code:
export ARCH=arm64
export CROSS_COMPILE=/android/projects/cross-compile/aarch64-linux-android-4.9/bin/aarch64-linux-android-
make O=out sdm845-perf_defconfig
./scripts/config --file ./out/.config -e BUILD_ARM64_DT_OVERLAY
make O=out olddefconfig
make O=out DTC_EXT=dtc -j16
Following the comments in that issue, I'm running archlinux with the following software versions:
gcc
Code:
[email protected]:/android/kernel/opo6-stable$ gcc --version
gcc (GCC) 8.1.1 20180531
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
dtc
Code:
[email protected]:/android/kernel/opo6-stable$ dtc --version
Version: DTC 1.4.6
Click to expand...
Click to collapse
That's normal, I've hidden all of the warnings.
https://github.com/nathanchance/op6/commits/1d0f0ea36c0814efa36ef8b5c0c1ad9cb74cfe81
Those were the commits I used for my first boot. There is nothing in there that should be necessary to boot, just to make certain things work.
4.9.110 has been merged in.