【发布时间】:2023-04-04 08:49:01
【问题描述】:
我正在编译 Centos 7.6.1810 的内核 (4.14.0-115.el7a.0.1.aarch64)。
源文件是来自 centos repo 的kernel-alt-4.14.0-115.el7a.0.1.src.rpm。
我做了什么:
mkdir /root/kernel
cd /root/kernel
wget http://vault.centos.org/centos/7.6.1810/os/Source/SPackages/kernel-alt-4.14.0-115.el7a.0.1.src.rpm
rpm2cpio ./kernel-alt-4.14.0-115.el7a.0.1.src.rpm | cpio -div
tar -vxf linux-4.14.0-115.el7a.tar.xz
cd linux-4.14.0-115.el7a/
cp /boot/config-4.14.0-115.el7a.0.1.aarch64 ./.config
# comment CONFIG_MODULE_SIG_KEY and CONFIG_SYSTEM_TRUSTED_KEYS
make -j
我比较了/boot/中生成的文件Module.symvers和symvers-4.14.0-115.el7a.0.1.aarch64.gz。我发现有一些不同。
原始 symvers 中有 13408 个符号,重新编译的 symvers 中有 13430 个符号。
在重新编译的 symvers 中,缺少符号 acpi_device_get_match_data fwnode_get_mac_address fwnode_get_next_available_child_node fwnode_get_phy_mode fwnode_irq_get queued_spin_lock_slowpath 。
为什么? 如何使用完全相同的符号编译内核?
【问题讨论】:
-
源、配置和应用的补丁都需要匹配才能获得相同的编号。时间戳仍然会有不同的值。
-
I Need the Kernel Source 的说明有效吗?
标签: linux linux-kernel kernel centos7 kernel-module