Build in a few ACPI drivers, and remove some hardware-specific drivers
that the boot kernel will never see.
Also disable CONFIG_WATCHDOG, as the boot kernel should never be alive
long enough for a watchdog to need to kick in.
The bootkernel doesn't need netfilter, and some other networking kernel
modules to be enabled, as all this kernel needs to do is to find the
root partitions and then boot them. So disable those kernel options
entirely.
The boot kernel shouldn't have kernel modules, otherwise it will be a
two-step build process for the whole kernel/initrd package, so just
build in the Xen modules to the kernel image itself.
This is a separate kernel package, and configuration, for the "boot"
kernel. It reuses the same eclass for kernel builds, but does two
things differently for boot kernels:
- no boot/vmlinuz symlink
- picks the boot version of the kernel configuration.
This adds ACPI support to the kernel, which Azure needs in order to
properly boot. Also added is the needed disk drivers, and other hyper-v
drivers.
Bonus is that the shutdown problem is fixed for kvm images, they no
longer hang forever.
The kernel package should not be building any firmware files, as they
are not needed in virtual machines, _and_ the firmware file locations
are not versioned, preventing multiple kernels to be installed at the
same time.
This change adds a patch to the kernel to not traverse into the firmware
directory at all, and patches the eclass to not do the firmare_install
build process.
The debug kernel image needs to be versioned, like the rest of the
kernel files, so that multiple kernels can be installed at the same
time. So put it into a unique directory.
This removes a bunch of hardware-specific kernel configuration options
that are not needed in a virtual machine. It also removes reiserfs
support as well.
Compressed kernel image has shrunk by 290Kb, and we have way fewer
kernel modules being built, and loaded, as well (what in the world was
loading the agp drivers at boot?!)
CONFIG_IKCONFIG was already being built as a module, might as well
make it easy to get the configuration from the kernel when it is loaded.
The space savings is almost nothing to not enable this.
- add the necessary Kernel configurations
- add the sys-process/criu package (removing linux-info eclass to
workaround not having a /usr/src/linux directory)
- add build dependencies to the hard-host-depends package
- accept the unstable nature of criu in accept_keywords
Remounting / read-write has been moved to the dev_mode helper script in
coreos-init instead of letting systemd do it based on fstab. Now if a
system boots without /root/.dev_mode the filesystem remains read-only.
Previously coreos-base handled some sshd and dhcpcd and lacked the
dependencies required to make enabling systemd units work. coreos-init
is a better place for that and has a proper source package so fewer
files are needed in the portage overlay.
Adding systemd to base means it will be installed in the SDK in addition
to built images. This should avoid potential confusion that may be
caused by leaving sys-fs/udev in the SDK while it is removed from built
images in favor of systemd 204.
This is the first round of splitting up the coreos_startup script into
multiple units, starting with using systemd to mount the state and oem
partitions. This lets us use systemd to get device dependencies right.
Also cleanup whitespace, I forgot ebuild style requires tab characters.
Sync up -9999 version which I missed in previous commits.