2021-12-17 20:24:13 -03:00
|
|
|
```
|
2023-03-31 15:34:26 -03:00
|
|
|
# SPDX-License-Identifier: LGPL-2.1+
|
|
|
|
|
#
|
|
|
|
|
# Copyright (c) 2021 Valve.
|
|
|
|
|
#
|
|
|
|
|
# Code by Guilherme G. Piccoli <gpiccoli@igalia.com>
|
|
|
|
|
#
|
|
|
|
|
#
|
|
|
|
|
# ###########################################################################
|
|
|
|
|
# ############################ 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.
|
|
|
|
|
#
|
2022-01-12 18:38:32 -03:00
|
|
|
# Also, the infrastructure is able to configure and save pstore-RAM logs;
|
|
|
|
|
# this is the default option.
|
2021-12-29 16:26:41 -03:00
|
|
|
#
|
2023-03-31 15:34:26 -03:00
|
|
|
# After installation and a reboot, things should be all set EXCEPT for GRUB
|
|
|
|
|
# config - please check the CAVEATS/INSTRUCTIONS section below. Notice the
|
2021-12-29 16:26:41 -03:00
|
|
|
# package is under active development, this version should still be considered
|
|
|
|
|
# a kind of "Proof Of Concept" - improvements are expected in the near future.
|
|
|
|
|
# Thanks for testing!!!
|
2023-03-31 15:34:26 -03:00
|
|
|
#
|
|
|
|
|
#
|
|
|
|
|
# CAVEATS / INSTRUCTIONS
|
|
|
|
|
# ###########################################################################
|
|
|
|
|
# (a) For now, we don't automatically edit any GRUB config, so the minimum
|
2022-01-12 18:38:32 -03:00
|
|
|
# necessary action after installing this package is to add "crashkernel=192M"
|
2023-03-31 15:34:26 -03:00
|
|
|
# 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
|
2022-01-12 18:38:32 -03:00
|
|
|
# determined - 144M wasn't enough and 160M is unstable, so 192M seems good enough.
|
2021-12-29 16:26:41 -03:00
|
|
|
# If you prefer to rely on pstore-RAM, no GRUB setting should be required; this
|
|
|
|
|
# is currently the default (see /etc/default/kdump).
|
2023-03-31 15:34:26 -03:00
|
|
|
#
|
|
|
|
|
# (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
|
2022-01-12 18:38:32 -03:00
|
|
|
# for example - both kdump and pstore relies in mounting partitions, etc.
|
2023-03-31 15:34:26 -03:00
|
|
|
#
|
|
|
|
|
# (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 ={
|
|
|
|
|
#
|
2021-12-29 16:26:41 -03:00
|
|
|
# (d) Unfortunately makedumpfile from Arch Linux is not available on official
|
2022-01-12 18:38:32 -03:00
|
|
|
# repos, only in AUR. But it is available on Holo, so we make use of that.
|
|
|
|
|
# Also, a discussion was started to get it included on official repos:
|
|
|
|
|
# https://lists.archlinux.org/pipermail/aur-general/2022-January/036767.html
|
2021-12-29 16:26:41 -03:00
|
|
|
# https://aur.archlinux.org/packages/makedumpfile/#comment-843853
|
2023-03-31 15:34:26 -03:00
|
|
|
#
|
|
|
|
|
#
|
|
|
|
|
# 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
|
2021-12-29 16:26:41 -03:00
|
|
|
# images - it happens due to our pkg installing files on /usr/lib/dracut/modules.d
|
2023-03-31 15:34:26 -03:00
|
|
|
# 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.
|
|
|
|
|
#
|
2022-01-12 18:38:32 -03:00
|
|
|
# (5) The log submission mechanism is incomplete - we save the logs as tar.zst
|
|
|
|
|
# files, but they are not submitted to any remote server, etc.
|
2023-03-31 15:34:26 -03:00
|
|
|
#
|
2021-12-29 16:26:41 -03:00
|
|
|
# (6) Pstore ramoops backend has some limitations that we're discussing with
|
|
|
|
|
# the kernel community - right now we can only collect ONE dmesg and its
|
|
|
|
|
# size is truncated on "record_size" bytes, not allowing a file split like
|
|
|
|
|
# efi-pstore; hopefully we can improve that.
|
|
|
|
|
#
|
2022-01-12 18:38:32 -03:00
|
|
|
# (7) 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.
|
|
|
|
|
#
|
2021-12-17 20:24:13 -03:00
|
|
|
```
|