add:buildroot

This commit is contained in:
eng33
2023-11-10 19:30:33 +08:00
committed by luckfox-eng33
parent f840ab9fe6
commit 3958ea65e5
32 changed files with 324 additions and 4054 deletions

View File

@@ -28,6 +28,10 @@ else
SYSDRV_LIB_TYPE ?= glibc
endif
ifneq ($(RK_BUILDROOT_DEFCONFIG),)
BUILDROOT_DEFCONFIG := $(RK_BUILDROOT_DEFCONFIG)
endif
SYSDRV_ROOTFS_FS_TYPE ?= $(fs_type)
ifneq ($(RK_ROOTFS_FS_TPYE),)
SYSDRV_ROOTFS_FS_TYPE := $(RK_ROOTFS_FS_TPYE)
@@ -221,8 +225,10 @@ $(error Please config TINY_ROOTFS_BUSYBOX_CFG on cfg/cfg.mk)
endif
endif
BUSYBOX_CFG ?= config_normal
BUSYBOX_VER ?= busybox-1.27.2
BUSYBOX_DIR := $(SYSDRV_DIR)/source/busybox
BUILDROOT_CFG ?= config_normal
BUILDROOT_VER ?= buildroot-2023.02.6
BUILDROOT_DIR := $(SYSDRV_DIR)/source/buildroot
TOOLCHAIN_RUNTIME_LIB_C:=lib.tar.bz2
@@ -265,7 +271,7 @@ endif
################################################################################
all: uboot kernel rootfs env
clean: uboot_clean kernel_clean busybox_clean pctools_clean boardtools_clean rootfs_clean drv_clean
clean: uboot_clean kernel_clean buildroot_clean pctools_clean boardtools_clean rootfs_clean drv_clean
distclean: clean out_clean
@@ -318,13 +324,13 @@ help:
@echo -e "$(C_YELLOW) make uboot [BOOT_MEDIUM=...] # build uboot $(C_NORMAL)"
@echo -e "$(C_YELLOW) make kernel [BOOT_MEDIUM=...] # build kernel $(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs [BOOT_MEDIUM=...] # build rootfs $(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_ubi # force package ubi rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_ext4 # force package ext4 rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_jffs2 # force package jffs2 rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_squashfs # force package squashfs rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_erofs # force package erofs rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_initramfs # force package initramfs rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make busybox_menuconfig # config busybox $(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_ubi # force package ubi rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_ext4 # force package ext4 rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_jffs2 # force package jffs2 rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_squashfs # force package squashfs rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_erofs # force package erofs rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make rootfs_initramfs # force package initramfs rootfs image$(C_NORMAL)"
@echo -e "$(C_YELLOW) make buildroot_menuconfig # config buildroot $(C_NORMAL)"
@echo -e "$(C_YELLOW)------------------------------------------------------------------------- $(C_NORMAL)"
################################################################################
@@ -425,46 +431,49 @@ rootfs_prepare: prepare
popd
##########################################################################################
# build busybox
# build buildroot
##########################################################################################
busybox_menuconfig:
@$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) menuconfig \
-C $(BUSYBOX_DIR)/$(BUSYBOX_VER)/
@cp -f $(BUSYBOX_DIR)/$(BUSYBOX_VER)/.config \
$(SYSDRV_DIR)/tools/board/busybox/$(BUSYBOX_CFG);
buildroot_menuconfig:
$(MAKE) menuconfig -C $(BUILDROOT_DIR)/$(BUILDROOT_VER)
$(MAKE) source -C $(BUILDROOT_DIR)/$(BUILDROOT_VER)
busybox: prepare
@echo -e "$(C_GREEN) ==sysdrv== build busybox $(C_NORMAL)"
test -f $(BUSYBOX_DIR)/$(BUSYBOX_VER)/_install/bin/busybox || (\
rm $(BUSYBOX_DIR)/$(BUSYBOX_VER) -rf ;\
mkdir -p $(BUSYBOX_DIR) ;\
tar xjf $(SYSDRV_DIR)/tools/board/busybox/$(BUSYBOX_VER).tar.bz2 -C $(BUSYBOX_DIR) ;\
cp $(SYSDRV_DIR)/tools/board/busybox/$(BUSYBOX_CFG) $(BUSYBOX_DIR)/$(BUSYBOX_VER)/.config ;\
cp -fv $(SYSDRV_DIR)/tools/board/busybox/*.patch $(SYSDRV_DIR)/tools/board/busybox/busybox.patch.sh $(BUSYBOX_DIR)/$(BUSYBOX_VER)/ ;\
pushd $(BUSYBOX_DIR)/$(BUSYBOX_VER)/;$(SHELL) ./busybox.patch.sh ; $(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -j$(SYSDRV_JOBS) ; popd ;\
$(MAKE) CROSS_COMPILE=$(CROSS_COMPILE) -C $(BUSYBOX_DIR)/$(BUSYBOX_VER) install ;\
buildroot: prepare
@echo -e "$(C_GREEN) ==sysdrv== build buildroot $(C_NORMAL)"
test -f $(BUILDROOT_DIR)/$(BUILDROOT_VER)/output/target/bin/busybox || (\
rm $(BUILDROOT_DIR)/$(BUILDROOT_VER) -rf ;\
mkdir -p $(BUILDROOT_DIR) ;\
tar xzf $(SYSDRV_DIR)/tools/board/buildroot/$(BUILDROOT_VER).tar.gz -C $(BUILDROOT_DIR) ;\
);
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) $(BUILDROOT_DEFCONFIG) -C $(BUILDROOT_DIR)/$(BUILDROOT_VER)
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) source -C $(BUILDROOT_DIR)/$(BUILDROOT_VER)
$(MAKE) ARCH=$(ARCH) CROSS_COMPILE=$(CROSS_COMPILE) -j$(SYSDRV_JOBS) -C $(BUILDROOT_DIR)/$(BUILDROOT_VER)
ifeq ($(SYSDRV_BUILD_RAMDISK_FLAG),YES)
tar xf $(SYSDRV_DIR)/tools/board/rootfs_script.tar -C $(BUSYBOX_DIR)/$(BUSYBOX_VER)/_install
ifneq ($(OUTPUT_SYSDRV_RAMDISK_TINY_ROOTFS_DIR),)
$(call MAROC_COPY_PKG_TO_SYSDRV_OUTPUT, $(OUTPUT_SYSDRV_RAMDISK_TINY_ROOTFS_DIR), \
$(SYSDRV_DIR)/tools/board/busybox/init \
$(BUSYBOX_DIR)/$(BUSYBOX_VER)/_install)
tar xf $(SYSDRV_DIR)/tools/board/rootfs_script.tar -C $(BUILDROOT_DIR)/$(BUILDROOT_VER)/output/target
ifneq ($(OUTPUT_SYSDRV_RAMDISK_TINY_ROOTFS_DIR),)
$(call MAROC_COPY_PKG_TO_SYSDRV_OUTPUT, $(OUTPUT_SYSDRV_RAMDISK_TINY_ROOTFS_DIR), \
$(SYSDRV_DIR)/tools/board/buildroot/busybox/init \
$(BUILDROOT_DIR)/$(BUILDROOT_VER)/output/target)
else
$(call MAROC_COPY_PKG_TO_SYSDRV_OUTPUT, $(SYSDRV_DIR_OUT_ROOTFS), \
$(SYSDRV_DIR)/tools/board/buildroot/busybox/init \
$(BUILDROOT_DIR)/$(BUILDROOT_VER)/output/target)
endif
else
$(call MAROC_COPY_PKG_TO_SYSDRV_OUTPUT, $(SYSDRV_DIR_OUT_ROOTFS), \
$(SYSDRV_DIR)/tools/board/busybox/init \
$(BUSYBOX_DIR)/$(BUSYBOX_VER)/_install)
endif
else
cp -af $(BUSYBOX_DIR)/$(BUSYBOX_VER)/_install/* $(SYSDRV_DIR_OUT_ROOTFS)
# luckfox
cp $(SYSDRV_DIR)/tools/board/android-tools/S99usb0config $(SYSDRV_DIR_OUT_ROOTFS)/etc/init.d
tar xf $(BUILDROOT_DIR)/$(BUILDROOT_VER)/output/images/rootfs.tar -C $(SYSDRV_DIR_OUT_ROOTFS)
cp $(SYSDRV_DIR)/tools/board/buildroot/shadow_defconfig $(SYSDRV_DIR_OUT_ROOTFS)/etc/shadow
cp $(SYSDRV_DIR)/tools/board/buildroot/sshd_defconfig $(SYSDRV_DIR_OUT_ROOTFS)/etc/ssh/sshd_config
cp $(SYSDRV_DIR)/tools/board/buildroot/samba_defconfig $(SYSDRV_DIR_OUT_ROOTFS)/etc/samba/smb.conf
cp $(SYSDRV_DIR)/tools/board/buildroot/smbpasswd_defconfig $(SYSDRV_DIR_OUT_ROOTFS)/etc/samba/smbpasswd
cp $(SYSDRV_DIR)/tools/board/buildroot/S50sshd $(SYSDRV_DIR_OUT_ROOTFS)/etc/init.d/
cp $(SYSDRV_DIR)/tools/board/buildroot/S99python $(SYSDRV_DIR_OUT_ROOTFS)/etc/init.d/
cp $(SYSDRV_DIR)/tools/board/android-tools/S90usb0config $(SYSDRV_DIR_OUT_ROOTFS)/etc/init.d/
endif
busybox_clean:
$(AT)rm -rf $(BUSYBOX_DIR)/$(BUSYBOX_VER)
buildroot_clean:
$(AT)rm -rf $(BUILDROOT_DIR)/$(BUILDROOT_VER)
##########################################################################################
# build pc tools
@@ -511,7 +520,7 @@ drv_clean:
##########################################################################################
# build rootfs
##########################################################################################
rootfs: rootfs_prepare pctools busybox boardtools drv
rootfs: rootfs_prepare pctools buildroot boardtools drv
@echo -e "$(C_GREEN) ==sysdrv== build rootfs $(C_NORMAL)"
make -C $(SYSDRV_DIR) strip
pushd $(SYSDRV_DIR)/out;tar cf $(OUT_ROOTFS).tar $(OUT_ROOTFS);popd