1つは、クロスコンパイル環境をインストールする
クロスコンパイル環境は、ubootで使用される環境と同じです。
参照:arm-linux-gnueabihfクロスコンパイルツールチェーンのインストール
2.Linuxソースコードをダウンロードしてコンパイルします
(デフォルトはゼロ-4.10.yブランチです):
git clone https://github.com/Lichee-Pi/linux.git
或者`zero-4.13.y`对网卡的支持更好
git clone -b zero-4.13.y https://github.com/Lichee-Pi/linux.git
cd linux
make ARCH=arm licheepi_zero_defconfig
make ARCH=arm menuconfig #add bluethooth, etc.
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j16 INSTALL_MOD_PATH=out modules_install
3、トップレベルのMakefileコンパイルを変更します
カーネルのルートディレクトリのMakefile
257行目にあるデフォルトのコンパイラを変更すると、それを直接使用してmake
コンパイルできます。
# ARCH ?= $(SUBARCH)
# CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%)
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabihf-
コンパイルコマンド:
make licheepi_zero_defconfig
make menuconfig #add bluethooth, etc.
make -j16
make -j16 INSTALL_MOD_PATH=out modules
make -j16 INSTALL_MOD_PATH=out modules_install
ログのコンパイル:
pjw@pjw-virtual-machine:~/Allwinner/V3S/linux$ make -j16 INSTALL_MOD_PATH=out modules
CHK include/config/kernel.release
CHK include/generated/uapi/linux/version.h
CHK include/generated/utsrelease.h
CHK scripts/mod/devicetable-offsets.h
CHK include/generated/timeconst.h
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL scripts/checksyscalls.sh
Building modules, stage 2.
MODPOST 3 modules
pjw@pjw-virtual-machine:~/Allwinner/V3S/linux$ make -j16 INSTALL_MOD_PATH=out modules_install
INSTALL crypto/echainiv.ko
INSTALL drivers/staging/rtl8723bs/r8723bs.ko
INSTALL drivers/video/backlight/lcd.ko
DEPMOD 4.13.16-licheepi-zero+
pjw@pjw-virtual-machine:~/Allwinner/V3S/linux$
コンパイルした後、zImage
内arch/arm/boot/
駆動モジュールout/
で、sun8i-v3s-licheepi-zero-dock.dtb
中arch/arm/boot/dts/