編譯 Raspberry Pi 4 的 Kernel Image

比較常見可以跑在 Raspberry Pi 4 的 Linux kernel 大致上分成 Mainline Kernel(本文撰寫時 5.14 剛剛推出), Raspbian (5.10, 32-bit), 跟 Ubuntu (5.4, 32/64-bit) 這幾種。其中,Raspbian 目前還是以 32-bit 的 kernel 為主(所有 user space 的應用程式都是 32-bit,雖然你可以把 kernel 換成 64-bit 的)。

由於我自己的實驗所需(對 kernel 進行 patching),下面在 Raspberry Pi 上面進行編譯的段落,是基於 Ubuntu Server for Raspberry Pi 64-bit 版本的 kernel 所撰寫,畢竟我需要的是 64-bit 的環境。

Raspbian 的編譯方式官方文件就已經寫得很清楚了,所以本文著墨的主要是在 Ubuntu Server for Raspberry Pi (64-bit) 版本的 kernel 跟 Mainline Kernel 的部分。

這篇文是從我研究過程中雜亂的筆記所整理出來,過程中需要安裝的套件或是步驟可能會有錯誤或是缺漏(畢竟前前後後找問題裝了不少東西)。

如有疏漏,請大家不吝指教,謝謝大家!