# SPDX-License-Identifier: LGPL-2.1+ # # Copyright (c) 2021 Valve. # # Code by Guilherme G. Piccoli # # # ########################################################################### # ############################ SteamOS Kdump ############################## # ########################################################################### # # This is the first version of SteamOS Kdump infrastructure. The goal is to # collect data whenever a kernel crash is detected. There is a lightweight # collection, that only grabs dmesg, and a more complete setting to grab the # whole (compressed) vmcore. The tunnings are available at /etc/default/kdump. # # After installation and a reboot, things should be all set EXCEPT for GRUB # config - please check the CAVEATS/INSTRUCTIONS section below. Notice the # package is under active development, this one being a kind of "Proof Of Concept" # still - improvements are expected in the near future. Thanks for testing!!! # # # CAVEATS / INSTRUCTIONS # ########################################################################### # (a) For now, we don't automatically edit any GRUB config, so the minimum # necessary action after installing this package is to add "crashkernel=160M" # to your GRUB config in order subsequent boots pick this setting and do reserve # the memory, or else kdump cannot work. The memory amount was empirically # determined - 128M wasn't enough and 144M is unstable, so 160M seems good enough. # # (b) It requires (obviously) a RW rootfs - we've used tune2fs in order to make # it read-write, since it's RO by default. Also, we assume the nvme partition # scheme is default across all versions and didn't change with new updates # for example - kdump relies in mounting partitions, etc. # # (c) Due to a post-transaction hook executed by libalpm (90-dracut-install.hook), # unfortunately after installing the kdump-steamos package *all* initramfs images # are recreated - this is not necessary, we're thinking on how to prevent that, # but for now be prepared: the installation take some (long) minutes due to that ={ # # (d) Unfortunately makedumpfile form Arch Linux is not available on official # repos, only in AUR - and it doesn't build with zstd, which allows great and # fast compression. So, we're hereby _packing the binary_ with all the scripts, # which is a temporary workaround and should be resolved later - already started # to "lobby" for package inclusion in the official channels and also we're trying # to to add zstd support: # https://aur.archlinux.org/packages/makedumpfile/#comment-841333 # # # TODOs (for now - we expect to have more after some testing by the colleagues) # # (1) We'd like to be able to automatically edit GRUB and recreate its config # file - after some future discussion on the proper parameters, this is expected # to be added to the package. # # (2) Hopefully we can fix/prevent the unnecessary re-creation of all initramfs # images - this happens due to our package installing files on /usr/lib/dracut/modules.d # which is a trigger for this initramfs recreation. # # (3) We have a "fragile" way of determining a mount point required for kdump; # this is something to improve in order to make the kdump more reliable. # # (4) Add a more reliable reboot mechanism - we had seen issues with "reboot -f" # in the past and relying in sysrq reboot as a quirk managed to be a safe option, # so this is something to think about here. Should be easy to implement. # # (5) Maybe a good idea would be to allow creating the minimum image for any # specified kernel, not only for the running one (which is what we do now). # Low-priority idea, easy to implement. #