Skip to content

Instantly share code, notes, and snippets.

@Aruna-Hewapathirane
Forked from doraskayo/gen-initramfs.sh
Created September 6, 2016 21:18
Show Gist options
  • Save Aruna-Hewapathirane/c3daf207606c9c2f59390a12c08e7bfe to your computer and use it in GitHub Desktop.
Save Aruna-Hewapathirane/c3daf207606c9c2f59390a12c08e7bfe to your computer and use it in GitHub Desktop.
#!/bin/sh
sudo mkinitcpio -r "$LINUX_DEV_PATH"/modules_install \
-k "$KERNEL_RELEASE" \
-c "$LINUX_DEV_PATH"/mkinitcpio.conf \
-g "$LINUX_DEV_PATH"/initramfs-linux.img
# vim:set ft=sh
# MODULES
# The following modules are loaded before any boot hooks are
# run. Advanced users may wish to specify all system modules
# in this array. For instance:
# MODULES="piix ide_disk reiserfs"
MODULES=""
# BINARIES
# This setting includes any additional binaries a given user may
# wish into the CPIO image. This is run last, so it may be used to
# override the actual binaries included by a given hook
# BINARIES are dependency parsed, so you may safely ignore libraries
BINARIES=""
# FILES
# This setting is similar to BINARIES above, however, files are added
# as-is and are not parsed in any way. This is useful for config files.
FILES=""
# HOOKS
# This is the most important setting in this file. The HOOKS control the
# modules and scripts added to the image, and what happens at boot time.
# Order is important, and it is recommended that you do not change the
# order in which HOOKS are added. Run 'mkinitcpio -H <hook name>' for
# help on a given hook.
# 'base' is _required_ unless you know precisely what you are doing.
# 'udev' is _required_ in order to automatically load modules
# 'filesystems' is _required_ unless you specify your fs modules in MODULES
# Examples:
## This setup specifies all modules in the MODULES setting above.
## No raid, lvm2, or encrypted root is needed.
# HOOKS="base"
#
## This setup will autodetect all modules for your system and should
## work as a sane default
# HOOKS="base udev autodetect block filesystems"
#
## This setup will generate a 'full' image which supports most systems.
## No autodetection is done.
# HOOKS="base udev block filesystems"
#
## This setup assembles a pata mdadm array with an encrypted root FS.
## Note: See 'mkinitcpio -H mdadm' for more information on raid devices.
# HOOKS="base udev block mdadm encrypt filesystems"
#
## This setup loads an lvm2 volume group on a usb device.
# HOOKS="base udev block lvm2 filesystems"
#
## NOTE: If you have /usr on a separate partition, you MUST include the
# usr, fsck and shutdown hooks.
HOOKS="base udev modconf block filesystems keyboard fsck"
# COMPRESSION
# Use this to compress the initramfs image. By default, gzip compression
# is used. Use 'cat' to create an uncompressed image.
#COMPRESSION="gzip"
#COMPRESSION="bzip2"
#COMPRESSION="lzma"
#COMPRESSION="xz"
#COMPRESSION="lzop"
#COMPRESSION="lz4"
# COMPRESSION_OPTIONS
# Additional options for the compressor
#COMPRESSION_OPTIONS=""
#!/bin/sh
OPTS="$OPTS -kernel $LINUX_DEV_PATH/build/arch/x86_64/boot/bzImage"
OPTS="$OPTS -initrd $LINUX_DEV_PATH/initramfs-linux.img"
OPTS="$OPTS -drive file=$LINUX_DEV_PATH/rootfs.raw,format=raw"
OPTS="$OPTS -enable-kvm"
OPTS="$OPTS -m 512"
OPTS="$OPTS -nographic"
OPTS="$OPTS -s"
OPTS="$OPTS -append 'root=PARTUUID=e23fb573-01 rw debug console=ttyS0'"
eval "sudo qemu-system-x86_64 $OPTS"
#!/bin/sh
# Set up development environment
export LINUX_DEV_PATH=/path/to/linuxdev
export KERNEL_RELEASE="$(make -C $LINUX_DEV_PATH/linux O=$LINUX_DEV_PATH/build kernelrelease --no-print-directory)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment