NEXUS 4
haidragon@ubuntu:~/Desktop/android$ mkdir kernel_code
haidragon@ubuntu:~/Desktop/android$ ls
abi bionic build dalvik development docs extract-broadcom-hammerhead.sh extract-qcom-hammerhead.sh hardware libcore Makefile n5-4-4-4 out pdk sdk tools
art bootable cts developers device external extract-lge-hammerhead.sh frameworks kernel_code libnativehelper n4-4-4-4 ndk packages prebuilts system vendor
haidragon@ubuntu:~/Desktop/android$ cd kernel_code/
haidragon@ubuntu:~/Desktop/android/kernel_code$ ls
haidragon@ubuntu:~/Desktop/android/kernel_code$ git clone https://aosp.tuna.tsinghua.edu.cn/kernel/msm.git
Cloning into 'msm'...
remote: Counting objects: 7332827, done.
remote: Total 7332827 (delta 0), reused 0 (delta 0)
Receiving objects: 100% (7332827/7332827), 1.55 GiB | 3.58 MiB/s, done.
Resolving deltas: 100% (6180720/6180720), done.
haidragon@ubuntu:~/Desktop/android/kernel_code$ ls
msm
haidragon@ubuntu:~/Desktop/android/kernel_code$ cd ..
haidragon@ubuntu:~/Desktop/android$ source build/envsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including sdk/bash_completion/adb.bash
haidragon@ubuntu:~/Desktop/android$ export ARCH=arm
haidragon@ubuntu:~/Desktop/android$ export CROSS_COMPILE=arm-eabi-
haidragon@ubuntu:~/Desktop/android$ cd kernel_code/
haidragon@ubuntu:~/Desktop/android/kernel_code$ cd msm
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ make mako_defconfig
make: *** No rule to make target 'mako_defconfig'. Stop.
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ make hammerhead_defconfig
make: *** No rule to make target 'hammerhead_defconfig'. Stop.
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ ls
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ ls
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ ls
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ cd ..
haidragon@ubuntu:~/Desktop/android/kernel_code$ ls
msm
haidragon@ubuntu:~/Desktop/android/kernel_code$ cd msm/
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ git branch -a
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ git checkout 99f5b2b
Checking out files: 100% (41565/41565), done.
Note: checking out '99f5b2b'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
HEAD is now at 99f5b2bda28d smd_pkt: Add sanity check to avoid unregistering the driver twice
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ ls
'=1 skip=$(LC_ALL=C grep -a -b -o $'\''x1fx8bx08x00x00x00x00x00'\'' kernel | cut -d '\'':'\'' -f 1) | zgrep -a '\''Linux version'\''' Kconfig arch fs make_defconfig.sh sound
AndroidKernel.mk MAINTAINERS block include mm tools
COPYING Makefile build.config init net usr
CREDITS README crypto ipc samples virt
Documentation REPORTING-BUGS drivers kernel scripts
Kbuild android firmware lib security
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ ls
'=1 skip=$(LC_ALL=C grep -a -b -o $'\''x1fx8bx08x00x00x00x00x00'\'' kernel | cut -d '\'':'\'' -f 1) | zgrep -a '\''Linux version'\''' Kconfig arch fs make_defconfig.sh sound
AndroidKernel.mk MAINTAINERS block include mm tools
COPYING Makefile build.config init net usr
CREDITS README crypto ipc samples virt
Documentation REPORTING-BUGS drivers kernel scripts
Kbuild android firmware lib security
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ ll
total 568
drwxr-xr-x 25 haidragon haidragon 4096 Jun 2 19:25 ./
drwxr-xr-x 3 haidragon haidragon 4096 Jun 2 18:45 ../
drwxr-xr-x 8 haidragon haidragon 4096 Jun 2 19:25 .git/
-rw-r--r-- 1 haidragon haidragon 1014 Jun 2 19:25 .gitignore
-rw-r--r-- 1 haidragon haidragon 4320 Jun 2 19:25 .mailmap
-rw-r--r-- 1 haidragon haidragon 21279 Jun 2 19:09 '=1 skip=$(LC_ALL=C grep -a -b -o $'\''x1fx8bx08x00x00x00x00x00'\'' kernel | cut -d '\'':'\'' -f 1) | zgrep -a '\''Linux version'\'''
-rw-r--r-- 1 haidragon haidragon 3520 Jun 2 19:25 AndroidKernel.mk
-rw-r--r-- 1 haidragon haidragon 18693 Jun 2 19:25 COPYING
-rw-r--r-- 1 haidragon haidragon 94984 Jun 2 19:25 CREDITS
drwxr-xr-x 96 haidragon haidragon 12288 Jun 2 19:25 Documentation/
-rw-r--r-- 1 haidragon haidragon 2536 Jun 2 19:25 Kbuild
-rw-r--r-- 1 haidragon haidragon 252 Jun 2 19:25 Kconfig
-rw-r--r-- 1 haidragon haidragon 210739 Jun 2 19:25 MAINTAINERS
-rw-r--r-- 1 haidragon haidragon 53736 Jun 2 19:25 Makefile
-rw-r--r-- 1 haidragon haidragon 17459 Jun 2 19:25 README
-rw-r--r-- 1 haidragon haidragon 3371 Jun 2 19:25 REPORTING-BUGS
drwxr-xr-x 3 haidragon haidragon 4096 Jun 2 19:25 android/
drwxr-xr-x 29 haidragon haidragon 4096 Jun 2 19:25 arch/
drwxr-xr-x 3 haidragon haidragon 4096 Jun 2 19:25 block/
-rw-r--r-- 1 haidragon haidragon 268 Jun 2 19:25 build.config
drwxr-xr-x 3 haidragon haidragon 4096 Jun 2 19:25 crypto/
drwxr-xr-x 106 haidragon haidragon 4096 Jun 2 19:25 drivers/
drwxr-xr-x 37 haidragon haidragon 4096 Jun 2 19:25 firmware/
drwxr-xr-x 72 haidragon haidragon 4096 Jun 2 19:25 fs/
drwxr-xr-x 22 haidragon haidragon 4096 Jun 2 19:25 include/
drwxr-xr-x 2 haidragon haidragon 4096 Jun 2 19:25 init/
drwxr-xr-x 2 haidragon haidragon 4096 Jun 2 19:25 ipc/
drwxr-xr-x 10 haidragon haidragon 4096 Jun 2 19:25 kernel/
drwxr-xr-x 9 haidragon haidragon 4096 Jun 2 19:25 lib/
-rwxr-xr-x 1 haidragon haidragon 565 Jun 2 19:25 make_defconfig.sh*
drwxr-xr-x 2 haidragon haidragon 4096 Jun 2 19:25 mm/
drwxr-xr-x 55 haidragon haidragon 4096 Jun 2 19:25 net/
drwxr-xr-x 13 haidragon haidragon 4096 Jun 2 19:25 samples/
drwxr-xr-x 13 haidragon haidragon 4096 Jun 2 19:25 scripts/
drwxr-xr-x 9 haidragon haidragon 4096 Jun 2 19:25 security/
drwxr-xr-x 23 haidragon haidragon 4096 Jun 2 19:25 sound/
drwxr-xr-x 13 haidragon haidragon 4096 Jun 2 19:25 tools/
drwxr-xr-x 2 haidragon haidragon 4096 Jun 2 19:25 usr/
drwxr-xr-x 3 haidragon haidragon 4096 Jun 2 19:25 virt/
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ git branch -r --conta××× 99f5b2b
origin/android-msm-mako-3.4-lollipop-mr1
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ git checkout -b android-msm-mako-3.4-lollipop-mr1 origin/android-msm-mako-3.4-lollipop-mr1
Branch 'android-msm-mako-3.4-lollipop-mr1' set up to track remote branch 'android-msm-mako-3.4-lollipop-mr1' from 'origin'.
Switched to a new branch 'android-msm-mako-3.4-lollipop-mr1'
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ git log
commit 99f5b2bda28d5e91dc10a1c17043ae0074fae81f (HEAD -> android-msm-mako-3.4-lollipop-mr1, tag: android-5.1.1_r0.9, origin/android-msm-mako-3.4-lollipop-mr1)
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ cd ../../
haidragon@ubuntu:~/Desktop/android$ source build/envsetup.sh
including device/asus/flo/vendorsetup.sh
including device/asus/deb/vendorsetup.sh
including device/asus/tilapia/vendorsetup.sh
including device/asus/grouper/vendorsetup.sh
including device/samsung/manta/vendorsetup.sh
including device/generic/mips/vendorsetup.sh
including device/generic/armv7-a-neon/vendorsetup.sh
including device/generic/x86/vendorsetup.sh
including device/lge/mako/vendorsetup.sh
including device/lge/hammerhead/vendorsetup.sh
including sdk/bash_completion/adb.bash
haidragon@ubuntu:~/Desktop/android$ cd -
/home/haidragon/Desktop/android/kernel_code/msm
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ export ARCH=arm
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ export CROSS_COMPILE=arm-eabi-
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ make mako_defconfig
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
SHIPPED scripts/kconfig/zconf.tab.c
SHIPPED scripts/kconfig/zconf.lex.c
SHIPPED scripts/kconfig/zconf.hash.c
HOSTCC scripts/kconfig/zconf.tab.o
HOSTLD scripts/kconfig/conf
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
#
# configuration written to .config
#
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ echo ${PATH}
/home/haidragon/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/haidragon/Desktop/java-7-openjdk-amd64/bin
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ git clone https://aosp.tuna.tsinghua.edu.cn/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6
Cloning into 'arm-eabi-4.6'...
fatal: repository 'https://aosp.tuna.tsinghua.edu.cn/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/' not found
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ export PATH=/home/haidragon/Desktop/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/:$PATH
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ echo ${PATH}
/home/haidragon/Desktop/android/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin/:/home/haidragon/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/haidragon/Desktop/java-7-openjdk-amd64/bin
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ make mako_defconfig
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
#
# configuration written to .config
#
haidragon@ubuntu:~/Desktop/android/kernel_code/msm$ make -j16
scripts/kconfig/conf --silentoldconfig Kconfig
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
warning: (ARCH_MSM_KRAITMP && ARCH_MSM_CORTEX_A5) selects HAVE_HW_BRKPT_RESERVED_RW_ACCESS which has unmet direct dependencies (HAVE_HW_BREAKPOINT)
CHK include/linux/version.h
CC scripts/mod/empty.o
MKELF scripts/mod/elfconfig.h
HOSTCC scripts/mod/file2alias.o
错误整理:
https://blog.csdn.net/abc87891842/article/details/55051042
生成boot.img
刷入手机 发现无法启动 原因是有一个没有编译出来 编译镜像用错了。
NEXUS 5
5成功
make hammerhead_defconfig
haidragondeMacBook-Air:mako haidragon$ fastboot flash boot /Users/haidragon/Downloads/boot5.img
< waiting for any device >
^C
haidragondeMacBook-Air:mako haidragon$ adb reboot bootloader
haidragondeMacBook-Air:mako haidragon$ fastboot flash boot /Users/haidragon/Downloads/boot5.img
Sending 'boot' (8704 KB) OKAY [ 0.490s]
Writing 'boot' OKAY [ 0.747s]
Finished. Total time: 1.437s
haidragondeMacBook-Air:mako haidragon$ fastboot reboot
Rebooting OKAY [ 0.001s]
Finished. Total time: 0.001s
haidragondeMacBook-Air:mako haidragon$
编译成功是这样的 要编译出zImage-dtb 4手机内核没编译出来
参考:
https://blog.csdn.net/u012417380/article/details/73353670