summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmake-boot-image.sh24
1 files changed, 16 insertions, 8 deletions
diff --git a/make-boot-image.sh b/make-boot-image.sh
index 62a588e..f7959ee 100755
--- a/make-boot-image.sh
+++ b/make-boot-image.sh
@@ -5,8 +5,7 @@ WORKDIR=./work
DLDIR=./downloads
OUTDIR=./out
OUTUSB=/dev/sdb1
-KERNEL_TOOLS=y
-RUN_QEMU=y
+DEVEL_MODE=y
ROOTCMD=sudo
WGET="wget --no-check-certificate"
KERNEL_TARBALL_URL=https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.6.tar.xz
@@ -73,10 +72,10 @@ then $ROOTCMD apt-get update
# Dependencies for kernel building
$ROOTCMD apt-get build-dep linux-source
# Dependancies for kernel tools
- [ "x$KERNEL_TOOLS" == "xy" ] && $ROOTCMD apt-get install libelf-dev libunwind-dev \
+ [ "x$DEVEL_MODE" == "xy" ] && $ROOTCMD apt-get install libelf-dev libunwind-dev \
libdw-dev libaudit-dev libssl-dev libslang2-dev libiberty-dev
# Optionnally qemu to run the result for santity checking
- [ "x$RUN_QEMU" = "xy" ] && $ROOTCMD apt-get install qemu-system-x86
+ [ "x$DEVEL_MODE" = "xy" ] && $ROOTCMD apt-get install qemu-system-x86
# Dependencies to put into the initrd
$ROOTCMD apt-get install dmidecode pciutils usbutils lshw sysstat iftop strace
$ROOTCMD apt-get install partclone udpcast gdisk efibootmgr tcpdump
@@ -119,6 +118,7 @@ def sset(sym, value=None):
sym.set_user_value(value)
return True
+debug = '--debug' in sys.argv;
conf = kconfiglib.Config(sys.argv[1])
conf.load_config('.config')
support_xz = conf['KERNEL_XZ'] is not None
@@ -143,6 +143,10 @@ while more_work and i < 10:
# Make kernel directly loadable by EFI, add USB3, Dell flash...
more_work = sset(sym) or more_work
+ if debug and name in ['VIRTIO_PCI', 'VIRTIO_MMIO', 'VIRTIO_NET', 'VIRTIO_BLK', 'SCSI_LOWLEVEL', 'SCSI_VIRTIO']:
+ # Make kernel aware of virtual drivers (used for testing eficast on qemu/kvm)
+ more_work = sset(sym) or more_work
+
if name in ['LOGO', 'SUSPEND', 'HIBERNATION', 'CPU_FREQ', 'PCCARD', 'HAMRADIO', 'WIRELESS', 'RFKILL', 'WLAN', 'SOUND', 'NETWORK_FILESYSTEMS', 'KEYS', 'SECURITY', 'VIRTUALIZATION']:
more_work = sset(sym, 'n') or more_work
@@ -179,11 +183,15 @@ chmod +x "$WORKDIR/kernel/scripts/Kconfiglib/customize.py"
cd "$WORKDIR/kernel"
if [ ! -f .config ]
then make defconfig
- make scriptconfig SCRIPT=scripts/Kconfiglib/customize.py
+ if [ "x$DEVEL_MODE" == "xy" ]
+ then extra="SCRIPT_ARG=--debug"
+ else extra=""
+ fi
+ make scriptconfig SCRIPT=scripts/Kconfiglib/customize.py $extra
fi
)
-if [ "x$KERNEL_TOOLS" == "xy" ]
+if [ "x$DEVEL_MODE" == "xy" ]
then (
cd "$WORKDIR/kernel"
make tools/perf
@@ -223,7 +231,7 @@ fi
mkchroot "$WORKDIR/initrd" /lib/x86_64-linux-gnu/libusb-1.0.so.0
)
-if [ "x$KERNEL_TOOLS" == "xy" ]
+if [ "x$DEVEL_MODE" == "xy" ]
then (
p="$WORKDIR/kernel/tools/perf/perf"
cp -a "$p" "$WORKDIR/initrd/sbin/"
@@ -361,5 +369,5 @@ then [ -d "$WORKDIR/mountpoint" ] || mkdir "$WORKDIR/mountpoint"
$ROOTCMD umount "$WORKDIR/mountpoint"
fi
-[ "x$RUN_QEMU" == "xy" ] && qemu-system-x86_64 -M q35 -m 256 -kernel "$OUTDIR/BOOTX64.EFI"
+[ "x$DEVEL_MODE" == "xy" ] && qemu-system-x86_64 -M q35 -m 256 -kernel "$OUTDIR/BOOTX64.EFI"