簡體   English   中英

升級Binutils和GCC后,x86_64上的內核無法啟動

[英]Kernel on x86_64 not boot after upgrading Binutils and GCC

我在控制台上看不到任何日志(甚至沒有“ Decompressing Linux ...”消息)。

  1. 我在內核配置下啟用了任何Early Boot打印,至少我知道(請參閱下面的內核配置)
  2. 嘗試使用KDB停止內核-通過在grub的內核命令行參數末尾添加kgdbwait
  3. 我試圖從grub手動啟動內核
  4. 我試圖在函數中添加panic()或日志: asmlinkage void __init start_kernel(void)(init / main.c)
  5. 添加/更改/刪除了loglevel = verbose內核命令行參數(在GRUB中)
  6. 從內核命令行參數中刪除“ 安靜 ”(在GRUB中)
  7. crashkernel添加到內核命令行參數(在GRUB中)

我的問題:

1)還有什么我可以做的以獲得早期啟動日志?

2)我是否需要向內核調試添加其他代碼?

3)還有其他方法可以調試嗎?

Binutils: 2.26.1 binutils-2.26.1-1.fc25.src.rpm

GCC: 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

僅在使用gdb調試內核后(早期啟動階段),我才設法解決問題,基本上我發現內核在以下方面失敗:

(gdb) bt
#0  early_idt_handler () at arch/x86/kernel/head_64.S:407
#1  0xffff9fffffffffff in ?? ()
#2  0xffffff07ffffffff in ?? ()
#3  0xffffe0ffffffffff in ?? ()
#4  0x00000e0000000000 in ?? ()
#5  0xffffffff81bee8a0 in ?? ()
#6  0xffff880000014560 in ?? ()
#7  0xffffffff819c0120 in early_idt_handler () at arch/x86/kernel/head_64.S:374
#8  0x0000000000000400 in irq_stack_union ()
#9  0xffffffff81bee8a0 in ?? ()
#10 0x000000000000000f in irq_stack_union ()
#11 0x0000000000000000 in ?? ()

從中,我研究了內核源代碼樹(與head_64.S相關的補丁程序)並將其應用。 您可以找到補丁,它與以下內容有關:

commit 5f020130d5360e8266e369dc2b5f4e32ec5b05f4 (HEAD -> my_commit)
Author: Andy Lutomirski <luto@kernel.org>
Date:   Fri May 22 16:15:47 2015 -0700

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM