• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

编译内核开启crash和amp;kdump支持

武飞扬头像
Yurii.Huang
帮助1

内核编译选项

以下选项没有需要补齐:

CONFIG_KEXEC=y
CONFIG_KEXEC_FILE=y
CONFIG_KEXEC_CORE=y
CONFIG_CRASH_CORE=y
CONFIG_SYSFS=y
CONFIG_DEBUG_INFO=Y
CONFIG_CRASH_DUMP=y
CONFIG_PROC_VMCORE=y
CONFIG_RELOCATABLE=y

构建脚本 build_deb.sh:

  • 使用方法
    ./build_deb.sh 内核源码文件夹 defconfig配置文件
    
  • 内容:
    #!/bin/sh -e
    
    apt-get install -y \
    libncurses5-dev u-boot-tools libssl-dev flex bison libncursesw5-dev \
    dpkg-dev fakeroot make bc unzip build-essential libelf-dev
    
    shell_dir=$PWD
    source_dir=$1
    config=$2
    
    if [ -e $shell_dir/build_src_tmp ]; then
        rm -rf $shell_dir/build_src_tmp
    fi
    cp -r $shell_dir/$source_dir $shell_dir/build_src_tmp
    
    cd $shell_dir/build_src_tmp
    
    sed -i "7i timestamp=\$(date  %Y%m%d)" scripts/package/mkdebian
    sed -i s#"revision=\$(cat .version 2>/dev/null||echo 1)"#" revision=\${timestamp}"#g ./scripts/package/mkdebian
    
    #生成内核配置文件
    cp -v $shell_dir/$config $shell_dir/build_src_tmp/arch/x86/configs/
    make $config
    
    #判断deepin-apigail-generate存不存在
    if [ ! -e /bin/deepin-apigail-generate ]; then
    touch /bin/deepin-apigail-generate
    chmod  x  /bin/deepin-apigail-generate
    fi
    
    touch /bin/deepin-apigail-compare
    chmod  x /bin/deepin-apigail-compare
    
    make deb-pkg -j$(nproc)
    
    cd $shell_dir
    

系统配置&测试

  1. 安装kdump工具

    apt kdump-tools
    
  2. 添加grub参数 crashkernel=256M

    root@DAS-OS:~# cat /etc/default/grub
    GRUB_BACKGROUND="/boot/grub/splash.png"
    GRUB_DEFAULT=0
    GRUB_TIMEOUT=5
    GRUB_DISTRIBUTOR="DAS-OS"
    GRUB_CMDLINE_LINUX_DEFAULT=" net.ifnames=0 biosdevname=0 vga=788 console=tty0 console=ttyS0,115200n8 crashkernel=256M"
    GRUB_CMDLINE_LINUX=""
    
  3. 更新grub索引

    grub-mkconfig -o /boot/grub/grub.cfg
    

有效性测试

  • 临时测试(不建议使用)
    echo 1 > /proc/sys/kernel/sysrq # kdump使能
    echo c > /proc/sysrq-trigger    # 强制中断内核生成coredump
    
  • 长期生效
    更改 /etc/sysctl.d/99-sysctl.conf 文件,最后一行添加:
    kernel.sysrq=1
    
    改完后刷新下服务:
    systemctl restart systemd-sysctl.service
    

crash 调试 dump 文件

注:网上很多说生成的 dump 文件叫 vmcore,此处 UOSdump.xxx,同级目录下 dmesg.xxx 是开机日志。两者存在于 /var/crash/$(DATE)/ 目录下

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhibbcfi
系列文章
更多 icon
同类精品
更多 icon
继续加载