WSL交叉編譯arm64 kernel
建議在debian或ubuntu進(jìn)行編譯
安裝編譯需要的一些工具:apt install?build-essential
還需要下載arm的工具鏈
https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads
編譯內(nèi)核,通常選擇 aarch64-none-linux-gnu
解壓后將bin目錄添加到環(huán)境變量
export PATH=$PATH:/.../arm-gnu-toolchain-VERSION-x86_64-aarch64-none-linux-gnu/bin
內(nèi)核配置菜單
make ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- menuconfig
編譯內(nèi)核(Image):
make -j$(nproc)?ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- Image
設(shè)備樹(dts):
make -j$(nproc)?ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- dtbs
模塊(modules)
make -j$(nproc)?ARCH=arm64 CROSS_COMPILE=aarch64-none-linux-gnu- modules
WSL 的 /boot 和 /lib/modules默認(rèn)一般都是空文件夾
直接在wsl本機(jī) make install ,make modules_install
Image會(huì)被安裝到 /boot/vmlinuz-版本號(hào)(一個(gè)文件)
模塊會(huì)被安裝到 /lib/modules/內(nèi)核版本(一個(gè)文件夾)
直接手動(dòng)提取出來,制作軟件包
復(fù)制到目標(biāo)機(jī)器的相應(yīng)路徑就好
安裝好要重新生成initramfs
Debian: initramfs -u?
RHEL: dracut -f
Archlinux: mkinitcpio -P
執(zhí)行以上指令,如果新的內(nèi)核版本號(hào)不同,需要指定版本號(hào)