From f4d32edd0f0fa0d59e1dc3f501f8e499b20cafb0 Mon Sep 17 00:00:00 2001 From: Palmer Dabbelt Date: Thu, 14 Dec 2017 16:03:24 -0800 Subject: [PATCH] Have buildroot generate a root file system --- Makefile | 30 ++++++++++--- conf/buildroot_rootfs_config | 81 ++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 6 deletions(-) create mode 100644 conf/buildroot_rootfs_config diff --git a/Makefile b/Makefile index 406c847..b6b8b9b 100644 --- a/Makefile +++ b/Makefile @@ -16,9 +16,11 @@ buildroot_srcdir := $(srcdir)/buildroot buildroot_initramfs_wrkdir := $(wrkdir)/buildroot_initramfs buildroot_initramfs_tar := $(buildroot_initramfs_wrkdir)/images/rootfs.tar buildroot_initramfs_config := $(confdir)/buildroot_initramfs_config - buildroot_initramfs_sysroot_stamp := $(wrkdir)/.buildroot_initramfs_sysroot buildroot_initramfs_sysroot := $(wrkdir)/buildroot_initramfs_sysroot +buildroot_rootfs_wrkdir := $(wrkdir)/buildroot_rootfs +buildroot_rootfs_ext := $(buildroot_rootfs_wrkdir)/images/rootfs.ext4 +buildroot_rootfs_config := $(confdir)/buildroot_rootfs_config linux_srcdir := $(srcdir)/linux linux_wrkdir := $(wrkdir)/linux @@ -77,8 +79,25 @@ $(buildroot_initramfs_tar): $(buildroot_srcdir) $(buildroot_initramfs_wrkdir)/.c $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_initramfs_wrkdir) .PHONY: buildroot_initramfs-menuconfig -buildroot_initramfs-menuconfig: $(buildroot_srcdir) - $(MAKE) -C $< O=$(buildroot_initramfs_wrkdir) menuconfig +buildroot_initramfs-menuconfig: $(buildroot_initramfs_wrkdir)/.config $(buildroot_srcdir) + $(MAKE) -C $(dir $<) O=$(buildroot_initramfs_wrkdir) menuconfig + $(MAKE) -C $(dir $<) O=$(buildroot_initramfs_wrkdir) savedefconfig + cp $(dir $<)/defconfig conf/buildroot_initramfs_config + +$(buildroot_rootfs_wrkdir)/.config: $(buildroot_srcdir) + rm -rf $(dir $@) + mkdir -p $(dir $@) + cp $(buildroot_rootfs_config) $@ + $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_rootfs_wrkdir) olddefconfig + +$(buildroot_rootfs_ext): $(buildroot_srcdir) $(buildroot_rootfs_wrkdir)/.config $(RISCV)/bin/$(target)-gcc $(buildroot_rootfs_config) + $(MAKE) -C $< RISCV=$(RISCV) PATH=$(PATH) O=$(buildroot_rootfs_wrkdir) + +.PHONY: buildroot_rootfs-menuconfig +buildroot_rootfs-menuconfig: $(buildroot_rootfs_wrkdir)/.config $(buildroot_srcdir) + $(MAKE) -C $(dir $<) O=$(buildroot_rootfs_wrkdir) menuconfig + $(MAKE) -C $(dir $<) O=$(buildroot_rootfs_wrkdir) savedefconfig + cp $(dir $<)/defconfig conf/buildroot_rootfs_config $(buildroot_initramfs_sysroot_stamp): $(buildroot_initramfs_tar) mkdir -p $(buildroot_initramfs_sysroot) @@ -164,9 +183,8 @@ $(qemu): $(qemu_srcdir) $(MAKE) -C $(qemu_wrkdir) install touch -c $@ -$(rootfs): - truncate --size=1G $@ - mkfs.ext4 $@ +$(rootfs): $(buildroot_rootfs_ext) + cp $< $@ .PHONY: buildroot_initramfs_sysroot vmlinux bbl buildroot_initramfs_sysroot: $(buildroot_initramfs_sysroot) diff --git a/conf/buildroot_rootfs_config b/conf/buildroot_rootfs_config new file mode 100644 index 0000000..4a280ca --- /dev/null +++ b/conf/buildroot_rootfs_config @@ -0,0 +1,81 @@ +BR2_riscv64=y +BR2_TOOLCHAIN_EXTERNAL=y +BR2_TOOLCHAIN_EXTERNAL_PATH="$(RISCV)" +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_PREFIX="$(ARCH)-unknown-linux-gnu" +BR2_TOOLCHAIN_EXTERNAL_GCC_7=y +BR2_TOOLCHAIN_EXTERNAL_HEADERS_4_6=y +BR2_TOOLCHAIN_EXTERNAL_CUSTOM_GLIBC=y +# BR2_TOOLCHAIN_EXTERNAL_INET_RPC is not set +BR2_TOOLCHAIN_EXTERNAL_CXX=y +BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_MDEV=y +BR2_TARGET_GENERIC_ROOT_PASSWD="sifive" +BR2_SYSTEM_DHCP="eth0" +BR2_PACKAGE_BUSYBOX_SHOW_OTHERS=y +BR2_PACKAGE_FFMPEG=y +BR2_PACKAGE_FFMPEG_GPL=y +BR2_PACKAGE_BONNIE=y +BR2_PACKAGE_CACHE_CALIBRATOR=y +BR2_PACKAGE_DHRYSTONE=y +BR2_PACKAGE_LMBENCH=y +BR2_PACKAGE_LTP_TESTSUITE=y +BR2_PACKAGE_RAMSMP=y +BR2_PACKAGE_RAMSPEED=y +BR2_PACKAGE_STRESS_NG=y +BR2_PACKAGE_WHETSTONE=y +BR2_PACKAGE_PCIUTILS=y +BR2_PACKAGE_MSMTP=y +BR2_PACKAGE_MUTT=y +BR2_PACKAGE_MUTT_IMAP=y +BR2_PACKAGE_MUTT_POP3=y +BR2_PACKAGE_BASH=y +BR2_PACKAGE_WHICH=y +BR2_PACKAGE_COREUTILS=y +BR2_PACKAGE_UTIL_LINUX=y +BR2_PACKAGE_UTIL_LINUX_BINARIES=y +BR2_PACKAGE_UTIL_LINUX_AGETTY=y +BR2_PACKAGE_UTIL_LINUX_BFS=y +BR2_PACKAGE_UTIL_LINUX_CHFN_CHSH=y +BR2_PACKAGE_UTIL_LINUX_CRAMFS=y +BR2_PACKAGE_UTIL_LINUX_EJECT=y +BR2_PACKAGE_UTIL_LINUX_FALLOCATE=y +BR2_PACKAGE_UTIL_LINUX_FDFORMAT=y +BR2_PACKAGE_UTIL_LINUX_FINDFS=y +BR2_PACKAGE_UTIL_LINUX_FSCK=y +BR2_PACKAGE_UTIL_LINUX_HWCLOCK=y +BR2_PACKAGE_UTIL_LINUX_KILL=y +BR2_PACKAGE_UTIL_LINUX_LAST=y +BR2_PACKAGE_UTIL_LINUX_LINE=y +BR2_PACKAGE_UTIL_LINUX_LOGIN_UTILS=y +BR2_PACKAGE_UTIL_LINUX_LOSETUP=y +BR2_PACKAGE_UTIL_LINUX_LSBLK=y +BR2_PACKAGE_UTIL_LINUX_MESG=y +BR2_PACKAGE_UTIL_LINUX_MINIX=y +BR2_PACKAGE_UTIL_LINUX_MORE=y +BR2_PACKAGE_UTIL_LINUX_MOUNT=y +BR2_PACKAGE_UTIL_LINUX_MOUNTPOINT=y +BR2_PACKAGE_UTIL_LINUX_NEWGRP=y +BR2_PACKAGE_UTIL_LINUX_NOLOGIN=y +BR2_PACKAGE_UTIL_LINUX_NSENTER=y +BR2_PACKAGE_UTIL_LINUX_PARTX=y +BR2_PACKAGE_UTIL_LINUX_PIVOT_ROOT=y +BR2_PACKAGE_UTIL_LINUX_RAW=y +BR2_PACKAGE_UTIL_LINUX_RENAME=y +BR2_PACKAGE_UTIL_LINUX_RESET=y +BR2_PACKAGE_UTIL_LINUX_SCHEDUTILS=y +BR2_PACKAGE_UTIL_LINUX_SETPRIV=y +BR2_PACKAGE_UTIL_LINUX_SETTERM=y +BR2_PACKAGE_UTIL_LINUX_SWITCH_ROOT=y +BR2_PACKAGE_UTIL_LINUX_TUNELP=y +BR2_PACKAGE_UTIL_LINUX_UL=y +BR2_PACKAGE_UTIL_LINUX_UNSHARE=y +BR2_PACKAGE_UTIL_LINUX_UTMPDUMP=y +BR2_PACKAGE_UTIL_LINUX_UUIDD=y +BR2_PACKAGE_UTIL_LINUX_VIPW=y +BR2_PACKAGE_UTIL_LINUX_WALL=y +BR2_PACKAGE_UTIL_LINUX_WDCTL=y +BR2_PACKAGE_UTIL_LINUX_WRITE=y +BR2_PACKAGE_UTIL_LINUX_ZRAMCTL=y +BR2_TARGET_ROOTFS_EXT2=y +BR2_TARGET_ROOTFS_EXT2_4=y +BR2_TARGET_ROOTFS_EXT2_EXTRA_BLOCKS=10240 +# BR2_TARGET_ROOTFS_TAR is not set