红米8A内核编译过程记录

先记录下设备以及环境
目标设备 红米8A
编译环境 vmware
ubuntu 18.04
内核kernel:小米开源

1、vmware安装ubuntu18.04,这个应该简单的,直接在阿里云的镜像站点下载:

http://mirrors.aliyun.com/ubuntu-releases/18.04/

然后进入terminal 命令行模式,用root命令执行
2、修改ubuntu软件源

echo "deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" > /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse" >> /etc/apt/sources.list
echo "deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse" >> /etc/apt/sources.list
dpkg --add-architecture i386
apt-get update

3、安装一些必要的工具

apt-get install -y bc bison build-essential ccache curl flex g++-multilib gcc-multilib git gnupg gperf imagemagick lib32ncurses5-dev lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libssl-dev libwxgtk3.0-dev libxml2 libxml2-utils lzop pngcrush rsync schedtool squashfs-tools xsltproc zip zlib1g-dev unzip openjdk-8-jdk language-pack-zh-hans python vim

4、下载代码

git clone --depth=1 https://github.com/MiCode/Xiaomi_Kernel_OpenSource.git -b olive-q-oss

如下载慢可以用镜像地址:

git clone --depth=1 https://hub.fastgit.org/MiCode/Xiaomi_Kernel_OpenSource.git -b olive-q-oss

5、下载跨平台编译链工具
因为googlesource 最新master分之已经删除了gcc编译器,所以我们需要切换到其他的分之,或者使用官方推荐的(看小米的教程,卡在这里很久,总是提示找不到gcc),因为红米8A为arm架构,所以编译器与网上大部分教程里面不一致,采用如下镜像下载地址:

git clone --depth=1 http://mirrors.ustc.edu.cn/aosp/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9.git -b ndk-release-r21

6、编译前的环境变量配置

export ARCH=arm
export SUBARCH=arm
export CROSS_COMPILE=/home/**(这个你的账号)/arm-linux-androideabi-4.9/bin/arm-linux-androideabi-

这里有两点要注意的:
CROSS_COMPILE 这里的路径请记得修改为你自己的路径
CROSS_COMPILE 的路径最后有一个 - , 至于为什么, 看一下这个路径下的二进制文件的名字规则, 和Makefile是怎么写的就明白了

7、查找并确定 defconf 文件, 这个文件的路径一般在内核源码的 arch/arm64/configs 目录下, 会有一大堆的 defconf 文件, 找到最适配你的机型的 defconf 文件, 我这里是 nitrogen_user_defconfig

8、进入内核源码的根目录并开始编译

cd  Xiaomi_Kernel_OpenSource
make O=out olivelite_defconfig
make O=out -j8

编译 success 后, 会在 out/arch/arm64/boot 目录下生成 Image.gz-dtb 文件, 这就是编译出来的内核文件

  • 使用AnyKernel2 #https://github.com/osm0sis/AnyKernel2 , 按照说明替换你的Image.gz-dtb 文件并编辑 anykernel.sh 文件. 里面的参数非常非常非常简单, 按照自己的实际需求编辑一下里面的参数并打包成zip文件. 或者更简单的, 你找一个你的设备的第三方内核zip包, 建议在不解压的情况下直接删除zip包里面的 Image.gz-dtb 并替换成你的 Image.gz-dtb 文件即可.
  • 进入twrp, 刷入这个zip文件, 开机. 如果出问题, anykernel.sh里面可以配置日志的路径, 你可以查看日志相关的信息.
  • 如果你想将其打包成 boot.img 文件, 上小米官网下载手机对应的官方线刷包, 解压出来在images目录下有 boot.img, 使用 unpackbootimg 工具将这个img解开, 把你的Image.gz-dtb替换进去并用 mkbootimg 重新打包成 boot.img 即可.
  • 注意, 刷入后你的 WIFI 可能不能正常工作, 原因和解决方案在这里: https://github.com/MiCode/Xiaomi_Kernel_OpenSource/wiki/FAQ

你可能感兴趣的:(红米8A内核编译过程记录)