Linux 内核 4.19.82 - 虚拟内核内存布局 - .text、.init、.data、.bss - 无法设置地址

Linux 内核 4.19.82 - 虚拟内核内存布局 - .text、.init、.data、.bss - 无法设置地址

我正在研究定制的嵌入式板。目前运行的是 3.10 内核

我正在尝试从 3.10 升级到 4.19。

因此,根据 3.10 中的内核配置选项,我在 4.19 中启用/禁用默认内核选项。

在这样做的同时,我一定搞砸了一些事情,因为我得到了这个:

[    0.000000] Memory: 433580K/458752K available (4837K kernel code, 307K rwdata, 1136K rodata, 348K init, 165K bss, 25172K reserved, 0K cma-reserved)
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
[    0.000000]     vmalloc : 0x9c800000 - 0xff800000   (1584 MB)
[    0.000000]     lowmem  : 0x80000000 - 0x9c000000   ( 448 MB)
[    0.000000]     modules : 0x7f000000 - 0x80000000   (  16 MB)
[    0.000000]       .text : 0x(ptrval) - 0x(ptrval)   (4839 kB)
[    0.000000]       .init : 0x(ptrval) - 0x(ptrval)   ( 348 kB)
[    0.000000]       .data : 0x(ptrval) - 0x(ptrval)   ( 308 kB)
[    0.000000]        .bss : 0x(ptrval) - 0x(ptrval)   ( 166 kB)

我想了解哪个内核配置选项负责设置这些地址?

我应该如何调试这个?任何指针/起点将不胜感激

答案1

值就在那里,只是没有打印出来。 Linux 已更新打印函数以不暴露内核地址。看“普通指针”部分在内核printk文档中:

内核将打印(ptrval)直到收集到足够的熵。

可以通过以下方式禁用此功能内核debug_boot_weak_hash启动参数,但您仍然会得到一个哈希值,而不是真正的指针值。

相关内容