【发布时间】:2018-08-13 03:31:45
【问题描述】:
我在控制台上看不到任何日志(甚至看不到“正在解压 Linux...”消息)。
- 我在内核配置下启用了任何 Early Boot 打印,至少我知道(参见下面的内核配置)
- 尝试使用 KDB 停止内核 - 通过在 grub 中的内核命令行参数末尾添加 kgdbwait
- 我尝试从 grub 手动引导内核
- 我尝试在函数中添加 panic() 或日志: asmlinkage void __init start_kernel(void) (init/main.c)
- 添加/更改/删除了 loglevel=verbose 内核命令行参数(在 GRUB 中)
- 从内核命令行参数中删除“quiet”(在 GRUB 中)
- 将 crashkernel 添加到内核命令行参数(在 GRUB 中)
我的问题:
1) 我还能做些什么来获取早期启动日志吗?
2) 是否有任何额外的代码我需要添加到内核调试它?
3) 有没有其他方法可以调试它?
Binutils: 2.26.1 binutils-2.26.1-1.fc25.src.rpm
海合会: 6.4.1 gcc-6.4.1-1.fc25.src.rpm
内核: 3.10.0-514.21.1
GRUB 配置
default=0
timeout=3
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=34 serial console
title XIV-System
root (hd0,0)
kernel /boot/vmlinuz init=/system/my_init console=tty0 mce=0 i8042.noaux idle=poll scsi_mod.inq_timeout=2 selinux=0 nohpet console=ttyS0,115200 earlyprintk=ttyS0,115200 kgdboc=ttyS0,115200 ro crashkernel=auto
内核配置
- For verbos boot message
CONFIG_X86_VERBOSE_BOOTUP=y
- For early printk
CONFIG_EARLY_PRINTK=y
CONFIG_EARLY_PRINTK_DBGP=y
- For KGDB
CONFIG_KGDB_LOW_LEVEL_TRAP=y
CONFIG_KGDB_KDB=y
CONFIG_SERIAL_KGDB_NMI=y
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_KGDB=y
CONFIG_KGDB_SERIAL_CONSOLE=y
CONFIG_KGDB_TESTS=y
- For KDB
CONFIG_KDB_KEYBOARD=y
CONFIG_KDB_CONTINUE_CATASTROPHIC=0
【问题讨论】:
-
你试过'cat /var/log/boot.log'吗?
-
我无法获得 bash 提示,它只是冻结了。注意:当机器使用内核(使用旧的GCC编译)启动时,我的机器下没有/var/log/boot.log文件
标签: linux gcc linux-kernel binutils grub