diff options
author | Rob Landley <rob@landley.net> | 2024-04-01 04:52:34 -0500 |
---|---|---|
committer | Rob Landley <rob@landley.net> | 2024-04-01 04:52:34 -0500 |
commit | 97b776b705ea26378f58ce3258a021c8bcf4a3ab (patch) | |
tree | c9d5ee2b0552f05f33ad277cb7731a2d9bfff77c | |
parent | ce5358d74fc9fb30da2c1164a761e50523a5d923 (diff) | |
download | toybox-97b776b705ea26378f58ce3258a021c8bcf4a3ab.tar.gz |
Move GENERIC_KCONF adjacent to get_target_config() and allow it to
be overridden, deduplicate "initramfs.cpio.gz" name, always archive
fs but just put it in "docs" when it's $BUILTIN (thus not used).
-rwxr-xr-x | mkroot/mkroot.sh | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/mkroot/mkroot.sh b/mkroot/mkroot.sh index dafe92e7..a4879edd 100755 --- a/mkroot/mkroot.sh +++ b/mkroot/mkroot.sh @@ -279,7 +279,7 @@ get_target_config() INOTIFY_USER SPI{,_JCORE} SERIAL_UARTLITE{,_CONSOLE} PWRSEQ_SIMPLE \ MMC{,_BLOCK,_SPI} UIO{,_PDRV_GENIRQ} MTD{,_SPI_NOR,_SST25L,_OF_PARTS} \ BINFMT_{ELF_FDPIC,MISC} I2C{,_HELPER_AUTO})" - KCONF+=,CMDLINE=\"console=ttyUL0 earlycon\" + KCONF+=,CMDLINE=\"console=ttyUL0\ earlycon\" elif [ "$CROSS" == sh4 ] || [ "$CROSS" == sh4eb ]; then QEMU="$CROSS -M r2d -serial null -serial mon:stdio" KARCH=sh KARGS="ttySC1 noiotrap" VMLINUX=arch/sh/boot/zImage @@ -293,6 +293,14 @@ get_target_config() fi } +# Linux kernel .config symbols common to all architectures +: ${GENERIC_KCONF:=$(be2csv PANIC_TIMEOUT=1 NO_HZ HIGH_RES_TIMERS RD_GZIP \ + BINFMT_{ELF,SCRIPT} BLK_DEV{,_INITRD,_LOOP} EXT4_{FS,USE_FOR_EXT2} \ + VFAT_FS FAT_DEFAULT_UTF8 MISC_FILESYSTEMS NLS_{CODEPAGE_437,ISO8859_1} \ + SQUASHFS{,_XATTR,_ZLIB} TMPFS{,_POSIX_ACL} DEVTMPFS{,_MOUNT} \ + NET{,DEVICES,_CORE,CONSOLE} PACKET UNIX INET IPV6 ETHERNET \ + COMPAT_32BIT_TIME EARLY_PRINTK IKCONFIG{,_PROC})} + # ----- Build kernel for target if [ -z "$LINUX" ] || [ ! -d "$LINUX/kernel" ]; then @@ -304,8 +312,9 @@ else get_target_config # Write the qemu launch script + INITRAMFS=initramfs.cpio.gz if [ -n "$QEMU" ]; then - [ -z "$BUILTIN" ] && INITRD='-initrd "$DIR"/initramfs.cpio.gz' + [ -z "$BUILTIN" ] && INITRD='-initrd "$DIR"/'"$INITRAMFS" { echo DIR='"$(dirname $0)";' qemu-system-"$QEMU" -m 256 '"$@"' $QEMU_MORE \ -nographic -no-reboot -kernel '"$DIR"'/linux-kernel $INITRD \ ${DTB:+-dtb '"$DIR"'/linux.dtb} \ @@ -319,13 +328,6 @@ else pushd "$LINUX" && make distclean && popd && cp -sfR "$LINUX" "$TEMP/linux" && pushd "$TEMP/linux" && - GENERIC_KCONF="$(be2csv PANIC_TIMEOUT=1 NO_HZ HIGH_RES_TIMERS RD_GZIP \ - BINFMT_{ELF,SCRIPT} BLK_DEV{,_INITRD,_LOOP} EXT4_{FS,USE_FOR_EXT2} \ - VFAT_FS FAT_DEFAULT_UTF8 MISC_FILESYSTEMS NLS_{CODEPAGE_437,ISO8859_1} \ - SQUASHFS{,_XATTR,_ZLIB} TMPFS{,_POSIX_ACL} DEVTMPFS{,_MOUNT} \ - NET{,DEVICES,_CORE,CONSOLE} PACKET UNIX INET IPV6 ETHERNET \ - COMPAT_32BIT_TIME EARLY_PRINTK IKCONFIG{,_PROC})" - # Write microconfig (minimal symbol name/value list in CSV format) mkdir -p "$OUTDOC" && for i in "$GENERIC_KCONF" "$KCONF" ${MODULES+MODULES,MODULE_UNLOAD} "$KEXTRA" @@ -369,12 +371,11 @@ else fi # clean up and package root filesystem for initramfs. -if [ -z "$BUILTIN" ]; then - announce initramfs - { (cd "$ROOT" && find . -printf '%P\n' | cpio -o -H newc -R +0:+0 ) || exit 1 - ! test -e "$OUTDOC/modules.cpio.gz" || zcat $_;} | gzip \ - > "$OUTPUT"/initramfs.cpio.gz || exit 1 -fi +announce initramfs +[ -z "$BUILTIN" ] && DIR="$OUTPUT" || DIR="$OUTDOC" +{ (cd "$ROOT" && find . -printf '%P\n' | cpio -o -H newc -R +0:+0 ) || exit 1 + ! test -e "$OUTDOC/modules.cpio.gz" || zcat $_;} | gzip \ + > "$DIR/$INITRAMFS" || exit 1 mv "$LOG".{n,y} && echo "Output is in $OUTPUT" rmdir "$TEMP" 2>/dev/null || exit 0 # remove if empty, not an error |