Compiling Kernel - Xiaomi Mi Max Questions & Answers

I tried to compile kernel from official CM github, but I end up with this errors:
"Make [1]: *** No rule to make target� arch / arm64 / boot / dts / hydrogen-msm8956-mtp.dtb �, required for� arch / arm64 / boot / Image.gz-dtb �Stop.. "
I tried disable "build_appended_dtb" , but this is not correct.
it worked, but the Image still not boot
I tried to clone some of GitHub repos:
https://github.com/MiCode/Xiaomi_Kernel_OpenSource
https://github.com/TheStrix/android_kernel_xiaomi_msm8956
https://github.com/zhaochengw/android_kernel_xiaomi_hydrogen
https://github.com/karthick111/android_kernel_xiaomi_hydrogen
All they show this error!
Help me please

It works after doing this:
Code:
cp -arn arch/arm/boot/dts/* arch/arm64/boot/dts/
cp -arn include/dt-bindings/* arch/arm64/include/

TEKME said:
It works after doing this:
Code:
cp -arn arch/arm/boot/dts/* arch/arm64/boot/dts/
cp -arn include/dt-bindings/* arch/arm64/include/
Click to expand...
Click to collapse
Make to compiling kernel xiaomi mi max Hydrogen with iptables function?

Related

[DEV ONLY]Xperia Z1 kernel building instructions

I think the time has come to share the info about kernel development we've been keeping for ourselves until now. just be sure to ready the complete thread and not just execute everything without thinking. I won't be responsible for any bricks etc.
Warnings!!
- Only start with a kernel if you are a developer with knowledge about kernel developping.
- Always use the specific dt.img build for your kernel!!!!! Very important!
- Don't complain if it doesn't work when you do something wrong!
== Information ==
Let's start with some info first.
MSM8974 needs something new to build a kernel, this is called a dt.img. This basically is an img file which holds information about the board pagesize, kernel version and some other kernel related things. You can only use a specific dt.img with a kernel, this file needs to be generated by a binary called dtbTool. This bin4ry can be found in the Cyanogen repo's or you can download a prebuild one in this thread.
== Compiling a kernel ==
I'll skip this part for now, every kernel dev should know this part maybe I'll add it later.
== Generating a dt.img ==
Basically you will only need your kernel sources and the dtbTool binary, then you need to generate it using a command like this:
Code:
./dtbTool -o ~/dt_files/dt.img -s 2048 -p ./scripts/dtc/ ./arch/arm/boot/
This seems very simple but it's quite important when building a kernel for MSM8974, or other S800 boards.
After this step has been completed you will find your dt.img in a folder callled dt_files, this folder should be in your home of linux now.
== Making the actual boot.img ==
After making the zImage and dt.img you need to have your ramdisk and an mkbootimg adapted for the dt.img to make a booting/working kernel for our rhine board.
be sure the naming of your files is correct:
- zImage
- dt.img
- intrd.img for your ramdisk
You can generate it by using the following command:
Code:
./mkbootimg --base 0x00000000 --kernel zImage --ramdisk_offset 0x02000000 --tags_offset 0x01E00000 --pagesize 2048 --cmdline "androidboot.hardware=qcom user_debug=31 maxcpus=2 msm_rtb.filter=0x3F ehci-hcd.park=3 msm_rtb.enable=0 lpj=192598 dwc3.maximum_speed=high dwc3_msm.prop_chg_detect=Y" --ramdisk initrd.img --dt dt.img -o boot.img
Let's get kernel development started for everyone!
== Extra ==
If you like my work consider donating me a beer
binary files attached
krabappel2548 said:
binary files attached
Click to expand...
Click to collapse
Awesome! Thanks! Will tinker around with it tonight!
@krabappel2548 : Thanks for the tutorial
I've been trying to compile the kernel using Linaro, and I'm constantly getting this error :
Code:
scripts/mod/empty.c:1: error: bad value (cortex-a15) for -mcpu= switch
kernel/bounds.c:1: error: bad value (cortex-a15) for -mcpu= switch
Could you please tell me what I am missing out on here?
Thanks
Pwng3 said:
@krabappel2548 : Thanks for the tutorial
I've been trying to compile the kernel using Linaro, and I'm constantly getting this error :
Code:
scripts/mod/empty.c:1: error: bad value (cortex-a15) for -mcpu= switch
kernel/bounds.c:1: error: bad value (cortex-a15) for -mcpu= switch
Could you please tell me what I am missing out on here?
Thanks
Click to expand...
Click to collapse
try this
https://github.com/faux123/Galaxy_Note_3/commit/8ad5dd6f969bb76ef970cbf101a255bb093efe5f
If you want to compil kernel, but with a full automation, you can use this script
"scriptZ1" : http://forum.xda-developers.com/attachment.php?attachmentid=2346163&stc=1&d=1382568778
With this script you have an automatic download/configuration (Toolchain, dtbTool, etc...)
You must go to $HOME, and "mkdir kernel"
cd kernel
unzip file (only 1 script) => scriptZ1
chmod 777 scriptZ1
./scriptZ1
Follow instructions
that's all
DooMLoRD said:
try this
https://github.com/faux123/Galaxy_Note_3/commit/8ad5dd6f969bb76ef970cbf101a255bb093efe5f
Click to expand...
Click to collapse
That resolved the issue. Thanks
Update :
I was getting this error :
Code:
ERROR: modpost: Found 2 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
To build the kernel despite the mismatches, build with:
'make CONFIG_NO_ERROR_ON_MISMATCH=y'
(NOTE: This is not recommended)
make[1]: *** [vmlinux.o] Error 1
make: *** [vmlinux.o] Error 2
So I went on to make the build with make CONFIG_DEBUG_SECTION_MISMATCH=y.
After which, when I tried generating the dt.img, I'm stuck up on this error that says :
Code:
Generating master DTB... error writing output file, please rerun: size mismatch 530432 vs -566
Could someone help please?
@krabappel2548
Hey,after repacking whole kernel I'm getting this error when I try to boot it:
Code:
fastboot boot boot.img
downloading 'boot.img'...
OKAY [ 0.319s]
booting...
FAILED (remote: dtb not found)
How do I create a dt.img? I always get Found 0 Unique dtbs.
Shoaib05 said:
How do I create a dt.img? I always get Found 0 Unique dtbs.
Click to expand...
Click to collapse
first download Doom-Lords kernel build tools
then copy dtbtool from msm8978aa folder in to you kernel source directory
then open terminal and cd to your kernel directory and enter these codes:
Code:
./dtbTool -o dt.img -s 2048 -p scripts/dtc/ arch/arm/boot/
instruction by DoomLord
Red-code said:
first download Doom-Lords kernel build tools
then copy dtbtool from msm8978aa folder in to you kernel source directory
then open terminal and cd to your kernel directory and enter these codes:
Code:
./dtbTool -o dt.img -s 2048 -p scripts/dtc/ arch/arm/boot/
instruction by DoomLord
Click to expand...
Click to collapse
Managed to get past it but now it is giving a size-mismatch error. :/
Shoaib05 said:
Managed to get past it but now it is giving a size-mismatch error. :/
Click to expand...
Click to collapse
Does this work? binary is x86_64
dt_dir is arch/arm/boot/ on 3.4 - arch/arm/boot/dts on 3.10
Code:
mkqcdtbootimg --kernel arch/arm/boot/zImage --ramdisk ramdisk.bz2 --base 0x00000000 --ramdisk_offset 0x02000000 --tags_offset 0x01E00000 --pagesize 2048 --cmdline "androidboot.hardware=qcom user_debug=31 maxcpus=2 msm_rtb.filter=0x3F ehci-hcd.park=3 msm_rtb.enable=0 lpj=192598 dwc3.maximum_speed=high dwc3_msm.prop_chg_detect=Y" --dt_dir arch/arm/boot/ -o boot-.img

[ROM][5.1][20150708] CyanogenMOD 12.1 [UNOFFICIAL]

Official CM 12.1 nightlies for flounder have arrived and can be found here:
http://download.cyanogenmod.org/?device=flounder
Changelog should soon be found here:
http://www.cmxlog.com/12.1/flounder/#
My work is done, thank you all!
#include
/*
* Your warranty is now void.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this ROM
* before flashing it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/
Click to expand...
Click to collapse
As there are so far no official CM12.1 nightlies for our Nexus 9 I want to share my builds. I am just building, all credits go to the developers and the CM12.1 team. Building will be done several times a week (nearly daily) and can be found here:
Download: https://www.androidfilehost.com/?w=files&flid=32977
Latest build: 20150708 https://www.androidfilehost.com/?fid=24052804347770338
Changelog: http://review.cyanogenmod.org/#/q/status:merged+branch:cm-12.1,n,z
Note: Not all nightly builds will be tested before uploading, so only flash, if you really know what you do and how to handle a bootloop or whatever could happen... I am not responsable for your bricked or imploded device! In general I test my builds on my volantisg (a.k.a. flounder_lte) but they should also work on the non-lte flounder. Please test for yourself...
For suitable GAPPs have a look here: http://forum.xda-developers.com/nexus-9/themes-apps/gapps-20150223-flounder-t3038452
I use these gapps: http://forum.xda-developers.com/showthread.php?t=3038452
A fix for the build.prop variety which causes showing of following notification after (re-)booting
There's an internal problem with your device. Contact your manufacturer for details.
Click to expand...
Click to collapse
was brought to us by gladiac and can be found here [FIX] build.prop variety fix (aka contact manufacturer problem). All credits to gladiac, works like a charme for me....
CREDITS
CM Team
SimonSickle
Joshua
HCDRJacob
Hima-Dev
cdesai
bynarie
dcrin3
smac0628
gladiac for build.prop variety fix
If I should miss someone, please give me a hint.
reserved
#3
Working well. Haven't tested everything, but like it so far.
Sent from my Nexus 9 using Tapatalk
New build is up: https://www.androidfilehost.com/?fid=24052804347757511
Is this rom for LTE to?
Torparn said:
Is this rom for LTE to?
Click to expand...
Click to collapse
diskoteer said:
Note: ... In general I test my builds on my volantisg (a.k.a. flounder_lte) but they should also work on the non-lte flounder. Please test for yourself...
Click to expand...
Click to collapse
fleischbanane said:
Click to expand...
Click to collapse
Ok thanks I will try it out.
New build is up: https://www.androidfilehost.com/?fid=24052804347757782
Changelog:
- Synced CM tree. See http://review.cyanogenmod.org/#/q/status:merged+branch:cm-12.1,n,z
Click to expand...
Click to collapse
I have seen no flounder specific commit.
By the way the last flounder specific commit I noticed was Simon Sickle's kernel config update: http://review.cyanogenmod.org/#/c/100324/. Works very well for me, thank you a lot, Simon Sickle!!!
diskoteer said:
New build is up: https://www.androidfilehost.com/?fid=24052804347757782
I have seen no flounder specific commit.
By the way the last flounder specific commit I noticed was Simon Sickle's kernel config update: http://review.cyanogenmod.org/#/c/100324/. Works very well for me, thank you a lot, Simon Sickle!!!
Click to expand...
Click to collapse
Hi diskoteer,
does your build compile bcopy.c into libc? There are some apps out there, like firefox, that use bcopy. They all wont start without bcopy. This fix did not work in my builds for some reason so I had to force the inclusion by removing the ifeq in line 79 of bionic/libc/arch-arm/arm.mk. You can test if bcopy works in your builds by starting firefox. If it crashes and the error report screen appears it does not work.
Tried to update from the official CM12 nightlys but after the first boot there was an message wich told me that I have to contact the manufactorer. After restoring my CM12 nightly everything works fine.
Wiped system and flashed the last build + new gapps for Android 5.1, but no luck.
It's only an information for other people who want to dirty flash over CM12.
fleischbanane said:
Tried to update from the official CM12 nightlys but after the first boot there was an message wich told me that I have to contact the manufactorer. After restoring my CM12 nightly everything works fine.
Wiped system and flashed the last build + new gapps for Android 5.1, but no luck.
It's only an information for other people who want to dirty flash over CM12.
Click to expand...
Click to collapse
This message is harmless. It is solely a check that google implemented in Android 5.1 that compares /system/build.prop with the values found in /vendor/build.prop. If they differ you get that error message. All you need to do to get rid of the error is to change the 3 values in /vendor/build.prop according to the values in /system/build.prop.
fleischbanane said:
Tried to update from the official CM12 nightlys but after the first boot there was an message wich told me that I have to contact the manufactorer.
Click to expand...
Click to collapse
This is a known problem and has something to do with build.prop in /vendor and /system. For details have a look here: http://forum.xda-developers.com/showpost.php?p=60695940&postcount=37 in dcrin3's thread. I for myself have not changed anything in build.prop, I am clicking "ok" in this message, it is just a notice. Everything works fine...
Does anyone is in need for the 5.1.1 bootloader or vendor.img?
Hi,
diskoteer said:
This is a known problem and has something to do with build.prop in /vendor and /system. For details have a look here: http://forum.xda-developers.com/showpost.php?p=60695940&postcount=37 in dcrin3's thread. I for myself have not changed anything in build.prop, I am clicking "ok" in this message, it is just a notice. Everything works fine...
Does anyone is in need for the 5.1.1 bootloader or vendor.img?
Click to expand...
Click to collapse
I just didn't like seeing the popup message on every boot so I created a script to generate a modified vendor image based on the factory image with the properties fixed to match the ones of the ROM being used. If you flash the vendor partition with the image this script produces for your CM 12.1 snapshot ROM, the dialog is gone. Please read the comments on the script for more info.
Code:
#!/bin/sh
# Author: Tuomas Jormola <[email protected]>
# License: Public Domain
#
# This script modifies the factory vendor image from Google to be used with
# CM 12.1 on Nexus 9. By flashing the modified vendor image you can get rid
# of the "There's an internal problem with your device. Contact your
# manufacturer for details" popup displayed on device startup.
#
# The script was developed and tested on Ubuntu 15.04 vivid system. The script
# requires bsdtar and sparse image tools from Google. For Ubuntu/Debian based
# distros you can install the following packages to fulfil the dependencies:
# bsdtar android-tools-fsutils
#
# In order to make the image you need to download the Android 5.1.x factory
# image archive for you device from Google at
# https://developers.google.com/android/nexus/images
# or use these direct links for 5.1.1 LMY47X build
#
# "volantisg" for Nexus 9 (LTE):
# https://dl.google.com/dl/android/aosp/volantisg-lmy47x-factory-0adc3016.tgz
#
# "volantis" for Nexus 9 (Wi-Fi):
# https://dl.google.com/dl/android/aosp/volantis-lmy47x-factory-3efdc8d4.tgz
#
# Then you need a CM 12.1 snapshot ROM image. No official CM 12.1 snapshots
# exists as time of writing so you need to build it on your own or find
# some pre-built snapshot somewhere, see e.g.
# http://forum.xda-developers.com/nexus-9/development/rom-cyanogenmod-12-1-t3129778
#
# Now run the script as root, for example:
#
# sudo bash /path/to/make-vendor-image.sh /path/to/volantisg-lmy47x-factory-0adc3016.tgz /path/to/cm-12.1-20150610-UNOFFICIAL-flounder.zip /path/to/modified-vendor-image-from-volantis-lmy47x-for-cm-12.1-20150610-UNOFFICIAL-flounder.img
#
# You can the flash the modified vendor image to the device with fastboot.
# Boot the device to bootloader, connect the device with a USB cable to the
# Linux machine and issue the command
#
# fastboot flash vendor /path/to/modified-vendor-image-from-volantis-lmy47x-for-cm-12.1-20150610-UNOFFICIAL-flounder.img
#
# You have to re-create and re-flash the vendor image each time you flash a
# new build of CM 12.1.
usage() {
echo "Usage: $0 FACTORY_IMAGE_TARBALL CM_ROM_ZIP NEW_VENDOR_IMAGE_FILE"
}
set -e
set -o verbose
set -o xtrace
if test "`id -u`" != 0; then
echo "This script needs to be run as root" 1>&2
exit 1
fi
FACTORY_IMAGE_TARBALL="$1"
CM_ROM_ZIP="$2"
NEW_VENDOR_IMAGE_FILE="$3"
case "$FACTORY_IMAGE_TARBALL" in
volantis*-*-factory-*.tgz)
PRODUCT="`echo $FACTORY_IMAGE_TARBALL | cut -d- -f1`"
BUILD="`echo $FACTORY_IMAGE_TARBALL | cut -d- -f2`"
;;
*)
echo "Invalid factory image tarball" 1>&2
usage
exit 1
;;
esac
if test -z "$CM_ROM_ZIP"; then
echo "No CM ROM zip file given" 1>&2
usage
exit 1
fi
if ! test -r "$CM_ROM_ZIP"; then
echo "CM ROM zip file not readable" 1>&2
usage
exit 1
fi
if test -z "$NEW_VENDOR_IMAGE_FILE"; then
echo "No new vendor image file given" 1>&2
usage
exit 1
fi
TEMP_DIR="`mktemp -d `"
bsdtar vxf "$CM_ROM_ZIP" -C "$TEMP_DIR" system/build.prop
BUILD_FINGERPRINT="`grep 'ro\.build\.fingerprint=' $TEMP_DIR/system/build.prop | cut -d= -f2`"
BUILD_DATE_UTC="`grep 'ro\.build\.date\.utc=' $TEMP_DIR/system/build.prop | cut -d= -f2`"
BUILD_DATE_STR="`LC_ALL=C LC_TIME=C date -ud @$BUILD_DATE_UTC`"
bsdtar xzOf "$FACTORY_IMAGE_TARBALL" "$PRODUCT-$BUILD/image-$PRODUCT-$BUILD.zip" | bsdtar xf - -C "$TEMP_DIR" vendor.img
simg2img "$TEMP_DIR/vendor.img" "$TEMP_DIR/vendor.raw"
mkdir "$TEMP_DIR/mnt"
mount -o loop "$TEMP_DIR/vendor.raw" "$TEMP_DIR/mnt"
perl -pne"s{^(ro\\.vendor\\.build\\.fingerprint)=.+$}{\$1=$BUILD_FINGERPRINT}" -i "$TEMP_DIR/mnt/build.prop"
perl -pne"s{^(ro\\.vendor\\.build\\.date)=.+$}{\$1=$BUILD_DATE_STR}" -i "$TEMP_DIR/mnt/build.prop"
perl -pne"s{^(ro\\.vendor\\.build\\.date\.utc)=.+$}{\$1=$BUILD_DATE_UTC}" -i "$TEMP_DIR/mnt/build.prop"
umount "$TEMP_DIR/mnt"
img2simg "$TEMP_DIR/vendor.raw" "$NEW_VENDOR_IMAGE_FILE"
rm -rf "$TEMP_DIR"
gladiac said:
Hi diskoteer,
does your build compile bcopy.c into libc? There are some apps out there, like firefox, that use bcopy. They all wont start without bcopy. This fix did not work in my builds for some reason so I had to force the inclusion by removing the ifeq in line 79 of bionic/libc/arch-arm/arm.mk. You can test if bcopy works in your builds by starting firefox. If it crashes and the error report screen appears it does not work.
Click to expand...
Click to collapse
Actuallly I do not know. I don't use firefox, maybe someone who use it can test it? Is there any way to test for bcopy from terminal?
New build up: https://www.androidfilehost.com/?fid=24052804347758256
Changelog:
- Synced CM tree
Click to expand...
Click to collapse
tjormola said:
Hi,
I just didn't like seeing the popup message on every boot so I created a script to generate a modified vendor image based on the factory image with the properties fixed to match the ones of the ROM being used. If you flash the vendor partition with the image this script produces for your CM 12.1 snapshot ROM, the dialog is gone. Please read the comments on the script for more info.
Code:
#!/bin/sh
# Author: Tuomas Jormola <[email protected]>
# License: Public Domain
#
# This script modifies the factory vendor image from Google to be used with
# CM 12.1 on Nexus 9. By flashing the modified vendor image you can get rid
# of the "There's an internal problem with your device. Contact your
# manufacturer for details" popup displayed on device startup.
#
# The script was developed and tested on Ubuntu 15.04 vivid system. The script
# requires bsdtar and sparse image tools from Google. For Ubuntu/Debian based
# distros you can install the following packages to fulfil the dependencies:
# bsdtar android-tools-fsutils
#
# In order to make the image you need to download the Android 5.1.x factory
# image archive for you device from Google at
# https://developers.google.com/android/nexus/images
# or use these direct links for 5.1.1 LMY47X build
#
# "volantisg" for Nexus 9 (LTE):
# https://dl.google.com/dl/android/aosp/volantisg-lmy47x-factory-0adc3016.tgz
#
# "volantis" for Nexus 9 (Wi-Fi):
# https://dl.google.com/dl/android/aosp/volantis-lmy47x-factory-3efdc8d4.tgz
#
# Then you need a CM 12.1 snapshot ROM image. No official CM 12.1 snapshots
# exists as time of writing so you need to build it on your own or find
# some pre-built snapshot somewhere, see e.g.
# http://forum.xda-developers.com/nexus-9/development/rom-cyanogenmod-12-1-t3129778
#
# Now run the script as root, for example:
#
# sudo bash /path/to/make-vendor-image.sh /path/to/volantisg-lmy47x-factory-0adc3016.tgz /path/to/cm-12.1-20150610-UNOFFICIAL-flounder.zip /path/to/modified-vendor-image-from-volantis-lmy47x-for-cm-12.1-20150610-UNOFFICIAL-flounder.img
#
# You can the flash the modified vendor image to the device with fastboot.
# Boot the device to bootloader, connect the device with a USB cable to the
# Linux machine and issue the command
#
# fastboot flash vendor /path/to/modified-vendor-image-from-volantis-lmy47x-for-cm-12.1-20150610-UNOFFICIAL-flounder.img
#
# You have to re-create and re-flash the vendor image each time you flash a
# new build of CM 12.1.
usage() {
echo "Usage: $0 FACTORY_IMAGE_TARBALL CM_ROM_ZIP NEW_VENDOR_IMAGE_FILE"
}
set -e
set -o verbose
set -o xtrace
if test "`id -u`" != 0; then
echo "This script needs to be run as root" 1>&2
exit 1
fi
FACTORY_IMAGE_TARBALL="$1"
CM_ROM_ZIP="$2"
NEW_VENDOR_IMAGE_FILE="$3"
case "$FACTORY_IMAGE_TARBALL" in
volantis*-*-factory-*.tgz)
PRODUCT="`echo $FACTORY_IMAGE_TARBALL | cut -d- -f1`"
BUILD="`echo $FACTORY_IMAGE_TARBALL | cut -d- -f2`"
;;
*)
echo "Invalid factory image tarball" 1>&2
usage
exit 1
;;
esac
if test -z "$CM_ROM_ZIP"; then
echo "No CM ROM zip file given" 1>&2
usage
exit 1
fi
if ! test -r "$CM_ROM_ZIP"; then
echo "CM ROM zip file not readable" 1>&2
usage
exit 1
fi
if test -z "$NEW_VENDOR_IMAGE_FILE"; then
echo "No new vendor image file given" 1>&2
usage
exit 1
fi
TEMP_DIR="`mktemp -d `"
bsdtar vxf "$CM_ROM_ZIP" -C "$TEMP_DIR" system/build.prop
BUILD_FINGERPRINT="`grep 'ro\.build\.fingerprint=' $TEMP_DIR/system/build.prop | cut -d= -f2`"
BUILD_DATE_UTC="`grep 'ro\.build\.date\.utc=' $TEMP_DIR/system/build.prop | cut -d= -f2`"
BUILD_DATE_STR="`LC_ALL=C LC_TIME=C date -ud @$BUILD_DATE_UTC`"
bsdtar xzOf "$FACTORY_IMAGE_TARBALL" "$PRODUCT-$BUILD/image-$PRODUCT-$BUILD.zip" | bsdtar xf - -C "$TEMP_DIR" vendor.img
simg2img "$TEMP_DIR/vendor.img" "$TEMP_DIR/vendor.raw"
mkdir "$TEMP_DIR/mnt"
mount -o loop "$TEMP_DIR/vendor.raw" "$TEMP_DIR/mnt"
perl -pne"s{^(ro\\.vendor\\.build\\.fingerprint)=.+$}{\$1=$BUILD_FINGERPRINT}" -i "$TEMP_DIR/mnt/build.prop"
perl -pne"s{^(ro\\.vendor\\.build\\.date)=.+$}{\$1=$BUILD_DATE_STR}" -i "$TEMP_DIR/mnt/build.prop"
perl -pne"s{^(ro\\.vendor\\.build\\.date\.utc)=.+$}{\$1=$BUILD_DATE_UTC}" -i "$TEMP_DIR/mnt/build.prop"
umount "$TEMP_DIR/mnt"
img2simg "$TEMP_DIR/vendor.raw" "$NEW_VENDOR_IMAGE_FILE"
rm -rf "$TEMP_DIR"
Click to expand...
Click to collapse
Thank you very much for the script, but i'm on Windows and it would be very nice if you can upload the modified vendor.img, so I don't have to set up a VM with all this stuff.
Edit: Flashed the latest build and new gapps for 12.1 over CM12 and everything works perfect, except the warning. But now I know that it's not a big thing and ignore it. :good:
fleischbanane said:
Thank you very much for the script, but i'm on Windows and it would be very nice if you can upload the modified vendor.img, so I don't have to set up a VM with all this stuff.
Click to expand...
Click to collapse
Sorry, I'm not the maintainer of the ROM in this thread and I don't use it myself (I'm compiling my own CM 12.1 snapshots until the official Nexus 9 build is upgraded to 12.1) so I'd rather not try to maintain something that isn't completely under my control. Maybe @diskoteer would like to build and maintain the Wi-Fi and LTE vendor images for his ROM built using this script?
tjormola said:
Sorry, I'm not the maintainer of the ROM in this thread and I don't use it myself (I'm compiling my own CM 12.1 snapshots until the official Nexus 9 build is upgraded to 12.1) so I'd rather not try to maintain something that isn't completely under my control. Maybe @diskoteer would like to build and maintain the Wi-Fi and LTE vendor images for his ROM built using this script?
Click to expand...
Click to collapse
Well, the problem is that the values in build.prop are different in every build. This is why we would have to deliver a vendor image for every new build too. That's not very maintainable. IMHO we should mount /vendor and generate /vendor/build.prop from the information found in /system/build.prop at installation-time of the rom.
//edit:
Something like this would suffice:
Code:
grep -E "^ro\.build\.(date(\.utc)?|fingerprint)=" /system/build.prop |sed -e"s/^ro\./ro.vendor./" > /vendor/build.prop
gladiac said:
Well, the problem is that the values in build.prop are different in every build. This is why we would have to deliver a vendor image for every new build too. That's not very maintainable. IMHO we should mount /vendor and generate /vendor/build.prop from the information found in /system/build.prop at installation-time of the rom.
//edit:
Something like this would suffice:
Code:
grep -E "^ro\.build\.(date(\.utc)?|fingerprint)=" /system/build.prop |sed -e"s/^ro\./ro.vendor./" > /vendor/build.prop
Click to expand...
Click to collapse
Thanks for the feedback. I didn't know it would be so difficult, but the message is no big thing... till my wife will see it the first time. [emoji2]

[TUTORIAL]How to compile Lollipop kernel for Zenfone 5 (x86 chip)

Good afternoon, guys, I created a tutorial how to compile Lollipop kernel for Zenfone 5 (x86 chip).
i am not expert in this but anyway....
STEP 1
Download official kernel sources from here:
http://dlcdnet.asus.com/pub/ASUS/ZenFone/A500CG/zenfone3_24_40_tar_gz.zip
STEP 2
Open folder with Android sources and unpack all stuff from archive with kernel sources to folder with Android sources.
STEP 3
Open KernelMakefile. (it will be in the root of folder with Android sources)
And find this line:
Code:
TARGET_DEVICE ?= hd
Delete it.
Add this line:
Code:
TARGET_DEVICE=hd (A500CG/A501CG/A600CG - default)
STEP 4
Open Linux Terminal.
Cd to folder with Android sources.
Run this command:
Code:
source build/envsetup.sh
lunch aosp_x86-eng
make -j4 minigzip openssl
STEP 4
Build zImage:
Code:
make -f KernelMakefile TARGET_DEVICE=hd modules_install
STEP 5
Build modules:
Code:
make -f KernelMakefile TARGET_DEVICE=hd copy_modules_to_root
STEP 6
Get modules and zImage from out/target/product/asusctp_hd/ folder.
Reboot to Windows.
STEP 7
Download AndImg Tool:
https://drive.google.com/file/d/0B-Fin8UxrD6PTFpuWlYtMTE3LVk/view
STEP 8
Unpack boot.img for CM/RR using AndImg Tool.
STEP 9
Open unpacked fodler.
Go to PARTS folder. Delete BZIMAGE file. Add your built zImage and rename it to BZIMAGE.
STEP 10
Open unpacked fodler.
Open ramdisk/lib/modules folder.
Add you compiled modules.
STEP 11
Build boot.img using AndImgTool.
THATS IT.
How to enable DT2W:​Go to linux/kernel folder.
Go here: (thx @Borets24)
drivers/input/touchscreen/synaptics_dsx_core.c
Uncomment this lines:
Code:
#define ASUS_TOUCH_PROXIMITY_NODE //<ASUS_Proximity+>
#define ASUS_TOUCH_DTP_WAKEUP //<ASUS_DTP+>
XDA:DevDB Information
How to compile Lollipop kernel for Zenfone 5 (x86 chip), Tool/Utility for the Asus Zenfone 5
Contributors
tank0412
Version Information
Status: Testing
Created 2016-02-11
Last Updated 2016-02-11
Thanks for the guide!
You also forgot that on lines
Code:
make -f KernelMakefile TARGET_DEVICE=hd modules_install
and
Code:
make -f KernelMakefile TARGET_DEVICE=hd copy_modules_to_root
you can use the -j option for faster building.
if only add DT2W, is my phone freeze, tks???
@tank0412 if I wanna build a cm 13 kernel I need a cm 13 kernel to replace the bzimg?
Nice dude. Will try it for sure. I have already had my zimage.
---------- Post added at 09:40 AM ---------- Previous post was at 09:38 AM ----------
dgadelha said:
Thanks for the guide!
You also forgot that on lines
Code:
make -f KernelMakefile TARGET_DEVICE=hd modules_install
and
Code:
make -f KernelMakefile TARGET_DEVICE=hd copy_modules_to_root
you can use the -j option for faster building.
Click to expand...
Click to collapse
Sir, i use your device tree to build the mokee lollipop. I develope it now. It gives me amazing battery backup. Thanjs for your device tree. .

Fixing stock kernel sources for H30-U10

Github repo: https://github.com/kernel-killer/android_kernel_huawei_h30u10
All changes I made since last commit are in my private repo.
Install packages (Not sure if it's right):
Code:
sudo apt-get install build-essential
Note: Please run ./mk ckeck-env to verify your build enviroment (Newer GNU MAKE will fail but the code compiles the same with new or older version)
Build:
Code:
./mk bm_new k
Testing your new kernel:
Download both attachments (KernelSwapper and BootimgRestore).
Append headers from stock kernel to zImage (which can be found at ./out/target/product/huawei82_cwet_kk/obj/KERNEL_OBJ/arch/arm/boot/zImage)
In KernelSwapper update 'kernel' with your own generated zImage rename it to 'kernel' and replace it inside zip.
In BootimgRestore replace 'boot.img' with your current ROM's boot.img in case that something goes wrong (e.g.: Phone not booting).
Copy the two new zips into phone's memory (or SD card) and flash KernelSwapper.
===== Reserved #1 =====
Thanks for the awesome work KK. I am on CM 13 3.4.67 kernel. Can i use this or do i have to be in stock rom for testing the kernal?
Sent from my Honor 3C using Tapatalk
---------- Post added at 06:12 AM ---------- Previous post was at 06:02 AM ----------
Update : Flashed the kernel, phone booted but felt laggish while using. I am still testing, will let you know what happens
Sent from my Honor 3C using Tapatalk
karkeankit said:
Thanks for the awesome work KK. I am on CM 13 3.4.67 kernel. Can i use this or do i have to be in stock rom for testing the kernal?
Sent from my Honor 3C using Tapatalk
---------- Post added at 06:12 AM ---------- Previous post was at 06:02 AM ----------
Update : Flashed the kernel, phone booted but felt laggish while using. I am still testing, will let you know what happens
Sent from my Honor 3C using Tapatalk
Click to expand...
Click to collapse
Yes, I'm sure that the kernel has multiple bugs. The phone may feel laggish because there is enabled low-level kernel debugging over UART.
Thank you for testing...
kernel.killer said:
Yes, I'm sure that the kernel has multiple bugs. The phone may feel laggish because there is enabled low-level kernel debugging over UART.
Thank you for testing...
Click to expand...
Click to collapse
You are welcome, wishint you good luck for further development
Sent from my Honor 3C using Tapatalk
Hi, tnx for The kernel
if i Update my kernel VPN bug in CM12.1 will fix?
hamadk said:
Hi, tnx for The kernel
if i Update my kernel VPN bug in CM12.1 will fix?
Click to expand...
Click to collapse
Nope, it's ROM bug not a kernel bug plus I have released only development preview version which has enabled many debugging options and it may be quite buggy.
Thanks, but can this process led to a suitable kernel for CM13?
Does this kernel fixes the video playback problem and the recording problem?(Can't play or capture 720p videos, screen recorder works fine, just the camera.)
Sent from my Huawei Honor 3C using XDA Labs
Lumpbloom7 said:
Does this kernel fixes the video playback problem and the recording problem?(Can't play or capture 720p videos, screen recorder works fine, just the camera.)
Sent from my Huawei Honor 3C using XDA Labs
Click to expand...
Click to collapse
http://forum.xda-developers.com/showpost.php?p=67848925&postcount=8
mhxygh said:
Thanks, but can it this process led to a suitable kernel for CM13?
Click to expand...
Click to collapse
Aim of this project is to make stock kernel sources stable for KitKat ROMs (It is originally for KK) but somebody else may patch them for CM 13. I am not working on this nor I'll do.
Will you be adding extra CPU governors and IO schedulers along with kernel level wakeups for double tap waking?
I was wondering who else is developing kernel 3.10.XX for this device ?
Ms_Julia said:
I was wondering who else is developing kernel 3.10.XX for this device ?
Click to expand...
Click to collapse
Actually, nobody is working on 3.10.X kernel. And I'm rather focusing on LineageOS for now.
What is the defconf for our device in kernel source
imranpopz said:
What is the defconf for our device in kernel source
Click to expand...
Click to collapse
This should include most configs
Code:
/* Mediatek common */
./mediatek/config/common/autoconfig/kconfig/AEE
./mediatek/config/common/autoconfig/kconfig/USER
./mediatek/config/common/ProjectConfig.mk
/* MT6582 common */
./mediatek/config/mt6582/autoconfig/kconfig/platform
./mediatek/config/mt6582/ProjectConfig.mk
/* h30u10 device specific */
./mediatek/config/huawei82_cwet_kk/autoconfig/kconfig/project
./mediatek/config/huawei82_cwet_kk/ProjectConfig.mk
kernel.killer said:
This should include most configs
Code:
/* Mediatek common */
./mediatek/config/common/autoconfig/kconfig/AEE
./mediatek/config/common/autoconfig/kconfig/USER
./mediatek/config/common/ProjectConfig.mk
/* MT6582 common */
./mediatek/config/mt6582/autoconfig/kconfig/platform
./mediatek/config/mt6582/ProjectConfig.mk
/* h30u10 device specific */
./mediatek/config/huawei82_cwet_kk/autoconfig/kconfig/project
./mediatek/config/huawei82_cwet_kk/ProjectConfig.mk
Click to expand...
Click to collapse
Replace Device Name with the configuration file found at:
Source/arch/arm/configs
It's written in this way something_DeviceCodename_user_defconfig
I need for the above step.. ☝☝☝
imranpopz said:
Replace Device Name with the configuration file found at:
Source/arch/arm/configs
It's written in this way something_DeviceCodename_user_defconfig
I need for the above step.. ☝☝☝
Click to expand...
Click to collapse
Well... This is Mediatek, DO NOT expect the sources to look nice. The configs are scattered through ./mediatek subdirectories, *.mk files are parsed and configs are assembled during build. Unfortunatelly, even if you manually assemble .config you will NOT be able to build the kernel. It is full of dirty hacks (Mediatek) and just typing "make" won't work, build will break.
Build:
Code:
$ git clone https://github.com/kernel-killer/android_kernel_huawei_h30u10.git
$ cd android_kernel_huawei_h30u10
$ export ARCH=arm && export ARCH_MTK_PLATFORM=mt6582 && export TARGET_PRODUCT=huawei82_cwet_kk
$ export CROSS_COMPILE=/path-to-your-toolchain/.../bin/arm-linux-androideabi-
$ ./mk n k
Code:
$ ./mk -h
Usage: (makeMtk|mk) [options] project actions [modules]
Options:
-t, -tee : Print log information on the standard-out.
-o, -opt=bypass_argument_to_make
: Pass extra arguments to make.
-h, -help : Print this message and exit.
Projects:
one of available projects.
Actions:
listp, listproject
: List all available projects.
check-env : Check if build environment is ready.
check-dep : Check feature dependency.
n, new : Clean and perform a full build.
c, clean : Clean the immediate files(such as, objects, libraries etc.).
r, remake : Rebuild(target will be updated if any dependency updats).
mrproper : Remove all generated files + config + various backup files in Kbuild process.
bm_new : "new" + GNU make's "-k"(keep going when encounter error) feature.
bm_remake : "remake" + GNU make's "-k"(keep going when encounter error) feature.
mm : Build module through Android native command "mm"
mma : Build module through Android native command "mma"
emigen : Generate EMI setting source code.
nandgen : Generate supported NAND flash device list.
codegen : Generate trace DB(for META/Cather etc. tools used).
drvgen : Generate driver customization source.
custgen : Generate customization source.
javaoptgen : Generate the global java options.
ptgen : Generate partition setting header & scatter file.
bindergen : Generate binder related information
sign-image : Sign all the image generated.
encrypt-image : Encrypt all the image generated.
update-api : Android default build action
(be executed if system setting or anything removed from API).
check-modem : Check modem image consistency.
upadte-modem : Update modem image located in system.img.
modem-info : Show modem version
gen-relkey : Generate releasekey for application signing.
check-appres : Check unused application resource.
sdk : Build sdk package.
win_sdk : Build sdk package with a few Windows tools.
banyan_addon : Build MTK sdk addon.
banyan_addon_x86 :Build MTK sdk x86 addon.
cts : Build cts package.
bootimage : Build boot image(boot.img).
cacheimage : Build cache image(cache.img).
systemimage : Build system image(system.img).
snod : Build system image without dependency.
(that is, ONLY pack the system image, NOT checking its dependencies.)
recoveryimage : Build recovery image(recovery.img).
secroimage : Build secro image(secro.img).
factoryimage : Build factory image(factory.img).
userdataimage : Build userdata image(userdata.img).
userdataimage-nodeps
: Build userdata image without dependency.
(that is, ONLY pack the userdata image, NOT checking its dependencies.)
dump-products : Dump products related configuration(PRODUCT_PACKAGE,PRODUCT_NAME ect.)
target-files-package
: Build the target files package.
(A zip of the directories that map to the target filesystem.
This zip can be used to create an OTA package or filesystem image
as a post-build step.)
updatepackage : Build the update package.
dist : Build distribution package.
Modules:
pl, preloader : Specify to build preloader.
lk : Specify to build little kernel.
md32 : Specify to build DSP md32.
tz, trustzone : Specify to build trusted execution environment.
k, kernel : Specify to build kernel.
dr, android : Specify to build android.
NULL : Specify to build all components/modules in default.
k <module path>
: Specify to build kernel component/module with the source path.
dr <module name>
: Specify to build android component/module with module name.
Other tools:
prebuilts/misc/linux-x86/ccache/ccache -M 10G
: Set CCACHE pool size to 10GB
Example:
./mk -t e1k emigen
: Generate EMI setting source code.
./mk -o=TARGET_BUILD_VARIANT=user e1k n
: Start a user mode full build.
./mk listp : List all available projects.
./mk e1k bootimage
: Build bootimage for e1k project.
./mk e1k bm_new k
: Build kernel for e1k project.
./makeMtk e1k c,bm_remake pl k
: Clean & Build preloader and kernel for e1k project.
./makeMtk e1k n k kernel/xxx/xxx
: Build(full build) kernel component/module
under the path "kernel/xxx/xxx" for e1k project.
./makeMtk e1k r dr Gallery
: Rebuild android module named Gallery for e1k project.
./makeMtk e1k mm packages/apps/Settings
: Change Directory to packages/apps/Settings and execute "mm"
./makeMtk e1k mma packages/apps/Settings
: Change Directory to packages/apps/Settings and execute "mma"
Edit:
I fixed the sources, so menuconfig can be used.
Apply patch:
Code:
$ git am 0001-Fix-build-using-make-command.patch
Build:
Code:
$ cd kernel && export ARCH=arm && export ARCH_MTK_PLATFORM=mt6582 && export TARGET_PRODUCT=huawei82_cwet_kk
$ export CROSS_COMPILE=/path-to-your-toolchain/.../bin/arm-linux-androideabi-
$ make -C $(pwd) O=output h30u10_defconfig menuconfig
$ make -C $(pwd) O=output
Append MTK headers:
Code:
$ ../mediatek/build/tools/mkimage output/arch/arm/boot/zImage KERNEL > output/zImage
*Note: I recommend using AOSP arm-linux-androideabi-4.9 toolchain.
Getting cp: cannot stat 'out/target/product/huawei82_cwet_kk_kernel.log
Make [1]: [kernel ] error 1
Make: *** [remake] error 2

Help compiling kernel

people help with compiling the kernel for hydrogen. at the end it gives an error
Code:
make [1]: *** No rule to make target «arch / arm64 / boot / dts / hydrogen-msm8956-mtp.dtb», required for «arch / arm64 / boot / Image.gz-dtb». Stop.
make: *** [/ home / ilya / kernel / Xiaomi_Kernel_OpenSource / arch / arm64 / Makefile: 84: Image.gz-dtb] Error 2 [/ code]
why there is this error that I do not?
Caelcorlon said:
people help with compiling the kernel for hydrogen. at the end it gives an error
Code:
make [1]: *** No rule to make target arch / arm64 / boot / dts / hydrogen-msm8956-mtp.dtb, required for arch / arm64 / boot / Image.gz-dtb. Stop.
make: *** [/ home / ilya / kernel / Xiaomi_Kernel_OpenSource / arch / arm64 / Makefile: 84: Image.gz-dtb] Error 2 [/ code]
why there is this error that I do not?[/QUOTE]
You have to repo the source exactly as is. If you downloaded it as zip you are missing linked folders and that is the error you get. Missing these linked folders:
[url]https://github.com/MiCode/Xiaomi_Kernel_OpenSource/blob/hydrogen-m-oss/arch/arm64/boot/dts/qcom[/url]
[url]https://github.com/MiCode/Xiaomi_Kernel_OpenSource/blob/hydrogen-m-oss/arch/arm64/boot/dts/include/dt-bindings[/url]
Also don't use source from MiCode... It is missing a lot of stuff... Use source from:
[url]https://github.com/TheStrix/android_kernel_xiaomi_msm8956[/url]
Or
[url]https://github.com/zhaochengw/android_kernel_xiaomi_hydrogen[/url]
Or
[url]https://github.com/karthick111/android_kernel_xiaomi_hydrogen[/url]
Click to expand...
Click to collapse
Source code
nijel8 said:
Use source from:
Click to expand...
Click to collapse
some of these source code suitable for the drain firmware?
just copy hydrogen-msm8956-mtp.dtb at arch / arm64 / boot / dts /

Categories

Resources