动态找到内核加载的地址
Dynamically find the address at which the kernel is loaded
我希望能够以编程方式找出加载 linux 内核的地址。如果已经有工具可以做到这一点,我会愿意使用它们。但是,在内核构建期间检查 .config
中的 PARAMS_PHYS
字段不是一个选项。我该怎么做呢?
您想从哪里找到它?来自内核 space 或用户 space?如果你想从 userspace 获取它,你可以解析 /proc/iomem
:
的输出
cat /proc/iomem | grep "Kernel code"
01000000-0168b523 : Kernel code
如果你想从内核space得到它,你可以__pa_symbol
宏returns给定符号的物理地址。在你的情况下,你需要做这样的事情:
__pa_symbol(_text)
我希望能够以编程方式找出加载 linux 内核的地址。如果已经有工具可以做到这一点,我会愿意使用它们。但是,在内核构建期间检查 .config
中的 PARAMS_PHYS
字段不是一个选项。我该怎么做呢?
您想从哪里找到它?来自内核 space 或用户 space?如果你想从 userspace 获取它,你可以解析 /proc/iomem
:
cat /proc/iomem | grep "Kernel code"
01000000-0168b523 : Kernel code
如果你想从内核space得到它,你可以__pa_symbol
宏returns给定符号的物理地址。在你的情况下,你需要做这样的事情:
__pa_symbol(_text)