我打算编写一些设备驱动程序,我需要获取 Linux 内核源代码。我的 Linux 内核版本是 3.2.0-23-generic-pae,我从这里下载了镜像。在我读过的许多文章中,它告诉我需要拥有整个内核树才能开始插入新模块。
如果我下载此图像并将其粘贴到usr/src/文件夹中是否足够,或者我必须做其他事情吗?
Bry*_*yce 28
这将获得股票内核的来源:
apt-get source linux-source
Run Code Online (Sandbox Code Playgroud)
您可以像这样检查内核的哪个版本正在运行:
uname -r
Run Code Online (Sandbox Code Playgroud)
这将打印如下内容:
3.13.0-46-generic
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式找到系统上可用的当前源包版本列表:
apt-cache search linux-source
Run Code Online (Sandbox Code Playgroud)
要获取内核的上游版本:
git clone git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git
Run Code Online (Sandbox Code Playgroud)
在上面的链接中,“trusty”是 Ubuntu 版本的代号。您可以通过以下方式找到已安装的 Ubuntu 版本的代号:
cat /etc/lsb-release
Run Code Online (Sandbox Code Playgroud)
小智 9
apt-get source linux
Run Code Online (Sandbox Code Playgroud)
是最简单的方法。它将从您的存储库下载源代码 - 它将与您正在运行的版本相同(假设您尚未对其进行自定义)。
但是如果你想找到源代码的维护位置,你可以运行:
apt-cache showsrc linux
Run Code Online (Sandbox Code Playgroud)
查找“Vcs-”属性(版本控制系统)。它通常是一个 git (Vcs-Git) 或 mercurial 存储库。
注意 - 这些命令适用于任何包。只需将“linux”替换为您感兴趣的包。另外请注意,“apt-get source”不需要 sudo 访问权限,并且会将源代码转储到您当前的目录中。
只需从以下选项中选择一项:
sudo apt install linux-source # downloads into system directory
sudo apt source linux-source # downloads into working directory
Run Code Online (Sandbox Code Playgroud)
如果有人告诉你给一些“来源网址即可sources.list,请编辑您的/etc/apt/sources.list文件,并取消对所需deb-src行,例如(如果你正在运行Xenial):
deb http://fr.archive.ubuntu.com/ubuntu/ xenial main restricted
# deb-src http://fr.archive.ubuntu.com/ubuntu/ xenial main restricted
Run Code Online (Sandbox Code Playgroud)
删除#最后一行上的 允许下载源存储库,包括内核源。
评论:
apt-get。4.4.0-75-generic为例)。/usr/src/linux-source-4.4.0/(例如)中。直接从 Launchpad 下载源代码
奇怪的apt-get source 是,如果您正在寻找特定的内核版本,那么每个人都建议大多数情况下不起作用:
假设您需要 3.19.0-58 的内核源代码:
apt-get source linux-image-3.19.0-58-generic将获得该系列中最新内核的源代码:在这种情况下为 3.19.0-80,这不是您所要求的。
所以你有两个选择:
1)放弃,安装内核3.19.0-80并使用 apt-get source
2)直接从启动板获取源代码:
这应该为您提供该版本的Launchpad 包页面。
向下滚动,单击“源:”链接,您现在位于包源页面上。
向下滚动并下载.tar.gz, .diff.gz,.dsc文件:

dpkg-source -x *.dsc笔记:
| 归档时间: |
|
| 查看次数: |
145721 次 |
| 最近记录: |