警告:在 kernel/irq/handle.c - 更改 rootfs 後,但為什麼呢?
今天我從帶有 initramfs 的映像更改為具有單獨的核心和 rootfs 的映像。這些映像用於嵌入式系統 (ARM9 SAM9G25),該系統與 Linux 2.6.39 一起執行。在啟動期間,我收到以下警告,但 initramfs 沒有顯示:
WARNING: at kernel/irq/handle.c:130 handle_irq_event_percpu+0x70/0x198() irq 12 handler atmci_interrupt+0x0/0x6b0 enabled interrupts Modules linked in: Backtrace: [<c0024918>] (dump_backtrace+0x0/0x10c) from [<c01f5664>] (dump_stack+0x18/0x1c) r6:c005d558 r5:00000009 r4:c028fea8 r3:c02956bc [<c01f564c>] (dump_stack+0x0/0x1c) from [<c0030f74>] (warn_slowpath_common+0x54/0x6c) [<c0030f20>] (warn_slowpath_common+0x0/0x6c) from [<c0031030>] (warn_slowpath_fmt+0x38/0x40) r8:00000000 r7:00000000 r6:0000000c r5:00000001 r4:c7969f60 r3:00000009 [<c0030ff8>] (warn_slowpath_fmt+0x0/0x40) from [<c005d558>] (handle_irq_event_percpu+0x70/0x198) r3:0000000c r2:c025b447 [<c005d4e8>] (handle_irq_event_percpu+0x0/0x198) from [<c005d6b0>] (handle_irq_event+0x30/0x40) [<c005d680>] (handle_irq_event+0x0/0x40) from [<c005f274>] (handle_level_irq+0xbc/0xe4) r4:c02976a8 r3:00020000 [<c005f1b8>] (handle_level_irq+0x0/0xe4) from [<c0021078>] (asm_do_IRQ+0x78/0xa8) r4:0000000c r3:c005f1b8 [<c0021000>] (asm_do_IRQ+0x0/0xa8) from [<c0021a74>] (__irq_svc+0x34/0x60) Exception stack(0xc028ff48 to 0xc028ff90) ff40: 00000000 0005317f 0005217f 60000013 c028e000 c02ab1a4 ff60: c03b9480 c0291f0c 20000000 41069265 2001c2a8 c028ff9c 600000d3 c028ff90 ff80: c0022748 c0022754 60000013 ffffffff r5:fefff000 r4:ffffffff [<c0022714>] (default_idle+0x0/0x44) from [<c0022908>] (cpu_idle+0x70/0xc8) [<c0022898>] (cpu_idle+0x0/0xc8) from [<c01f37f4>] (rest_init+0x60/0x78) r5:c001d5c4 r4:c0290094 [<c01f3794>] (rest_init+0x0/0x78) from [<c00088c0> (start_kernel+0x23c/0x284) [<c0008684>] (start_kernel+0x0/0x284) from [<20008038>] (0x20008038) ---[ end trace 45f8d0076fc9ced3 ]---
我不得不說,系統不會在這裡崩潰並像往常一樣啟動並且最終可以使用(我最終進入了 Busybox - 發行版)。
**我做了什麼:**我創建了一個 SD 卡,其中有 2 個 FAT32 分區,每個分區約為 1 GB。第一個是引導載入程序和核心,第二個是我提取了 rootfs.tar,它是在 Buildroot 2013.11 的幫助下生成的。
Linux 命令行如下所示:
console=ttyS0,115200 root=/dev/mmcblk0p2 rootwait rw
(我不確定這是否屬於這裡,但首先我什至根本無法啟動 rootfs,因為他無法初始化 mmcblk。現在
rootwait
它工作得很好)。我的問題是:有誰知道這個錯誤來自哪裡?我在任何地方都找不到任何有用的執行緒。我想刪除這個錯誤,因為我想它在啟動過程中浪費了一些時間,這就是我的實際目標:將啟動時間保持在它可以得到的最低時間。
這是核心中某處的錯誤。它與 rootfs/initramfs 更改沒有直接關係。這可能是由於您所做的其他一些更改(您是否使用了相同的源、相同的配置、相同的編譯器?),或者它可能與一些顯示潛在錯誤的時序問題有關。
此警告來自Atmel MMC 控制器
handle_irq_event_percpu
,中斷處理程序來自。該程式碼中可能存在錯誤。即使您沒有觀察到除了跟踪之外的任何後果,這種警告也往往表明存在嚴重問題,這可能導致數據損壞或至少導致鎖定。調試很重要。鑑於這是一個相當舊的核心,請檢查此驅動程序的更新版本是否有可能相關的修復,並在可能的情況下考慮使用更新的核心。