我的机器上有一个Linux 3.14.0 kernel(CentOS 6.2)
正在运行的程序,但源代码不在/usr/src/
.
有什么办法可以找出它的编译源吗?
源代码肯定在机器上的某个地方,它是由我的一位同事编译的。此外,这些是未连接到互联网的实验室机器,因此必须手动复制和安装源代码。
我只需要根据当前的内核镜像来定位它。
答案1
/lib/modules/$(uname -r)/source
应该是到内核源代码树的符号链接(如果它是以合理的方式安装的)。
除此之外
find / -type d -name "linux-3.14.0"
将查找 3.14.0 Linux 内核的分发目录 - 这是解压 tarball 时得到的目录。如果失败的话,
find / -type d -name "linux-*"
find / -type f -name "Kbuild"
不应该给你太多误报。
如果您需要编译它,那么您可以将源代码传输到机器并从头开始,前提是他使用嵌入式.config
(CONFIG_IKCONFIG
选项)编译它。您可以从/proc/config.gz
(如果内核支持 - 请参阅选项CONFIG_IKCONFIG_PROC
)或使用scripts/extract-ikconfig
内核源目录中的脚本来提取它。
除此之外,问你的同事完全不可能吗?