我需要 Linux 内核源代码中的两个文件,但我错误地删除了它们:
Option.c
usb-wwan.h
我使用这些命令进行搜索,但没有找到它们:
find -name Option.c
find -name usb-wwan.h
我如何获取这些文件?(我确实可以访问 Ubuntu 12.04 安装磁盘。)
答案1
获取 Linux 源代码(针对 Ubuntu 的下游内核)
您以某种方式获得了内核源代码。您应该重新下载它们,或者重新执行获取它们的所有操作。
具体来说,如果您正在运行 Ubuntu 12.04,并且您不知道如何获取内核源代码,或者您通过安装名称以 开头的包来获取它们linux-source
,那么您可以通过完全重新安装该包来恢复任何已删除的文件:
sudo rm -rf /usr/src/linux-source-3.2.0/linux-source-3.2.0
sudo apt-get update
sudo apt-get --reinstall install linux-source-3.2.0
cd /usr/src/linux-source-3.2.0
sudo tar xvjf linux-source-3.2.0.tar.bz2
(请注意,第一个命令中故意出现linux-source-3.2.0
两次,用于删除手动提取的源目录(如果有的话)。)
- 您可能还想安装软件包
linux-source
(名称中没有版本号),以便在新内核可用时继续获取其源代码。但是重新安装linux-source
使用上述方法将不是替换丢失的文件,linux-source
就像元包linux-source-
这始终取决于您的 Ubuntu 版本中最新版本的软件包。
在内核源码中按名称搜索文件
现在您应该有丢失的文件,因此请搜索它们:
find /usr/src/linux-source-3.2.0/linux-source-3.2.0 -iname Option.c -or -iname usb-wwan.h
请注意,我使用了-iname
执行不区分大小写的匹配的选项。(Option.c
,大写的O
,对于 Linux 内核源文件中的源文件来说是一个不太可能的名称。)
输出将如下所示:
/usr/src/linux-source-3.2.0/linux-source-3.2.0/drivers/usb/serial/option.c
/usr/src/linux-source-3.2.0/linux-source-3.2.0/drivers/usb/serial/usb-wwan.h
请注意,这些文件来自 Ubuntu 的下游内核,专门针对 Ubuntu 及其父发行版进行了修补(即修改),Debian。 看这一页(尤其本节) 了解详情。这可能是您想要的,因为它对应于可能实际安装在您机器上的内核。但根据您的特定需求,您可能需要完全不同的内核。
答案2
笔记:这个答案特别针对了该问题的早期版本。这个答案仍然正确,但问题变得更加笼统,因此它不再坚持直接从其他用户那里获取文件。
信任其他人上传的文件以供内核使用是非常不安全的。最好的办法是在您安装的另一个系统上找到这些文件并自行复制,或者重新安装。