紅米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
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容