查找具有特定提交的内核

s3v*_*v3n 4 linux linux-kernel

我最近买了一台带有 NetXtreme BCM57786 千兆以太网网卡的 Acer Aspire E1-572。问题是目前我看不到它ifconfig,但我可以看到它lshw

  *-network UNCLAIMED
       description: Ethernet controller
       product: NetXtreme BCM57786 Gigabit Ethernet PCIe
       vendor: Broadcom Corporation
       physical id: 0
       bus info: pci@0000:01:00.0
       version: 01
       width: 64 bits
       clock: 33MHz
       capabilities: pm vpd msi msix pciexpress bus_master cap_list
       configuration: latency=0
       resources: memory:b0410000-b041ffff memory:b0420000-b042ffff memory:b0430000-b04307ff
Run Code Online (Sandbox Code Playgroud)

很快,我发现了这个错误:https : //bugs.launchpad.net/ubuntu/+source/linux/+bug/1242610 ,这似乎正是我的问题。似乎在此提交中解决了http://git.kernel.org/cgit/linux/kernel/git/davem/net-next.git/commit/drivers/net/ethernet/broadcom/tg3.c?id= 68273712a19e9107a498a371532b3b3eb6dbb14c

我正在使用 Ubuntu 12.04,所以有可能(在某个时候)补丁会被反向移植,但我真的很想找到(如果有的话)一个 [最好] 稳定的内核版本,其中包含这个补丁,所以我会能够使用我的eth0。

我如何找到包含特定提交的内核二进制文件?或者查找特定的内核二进制文件是否具有给定的提交?

更新

# uname -a
Linux laptop 3.8.0-33-generic #48~precise1-Ubuntu SMP Thu Oct 24 16:31:16 UTC 2013 i686 i686 i386 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

我使用以下方法安装它:

apt-get install linux-generic-lts-raring
Run Code Online (Sandbox Code Playgroud)

Tho*_*man 6

根据 git 提交历史记录,您确定为包含所需修复的特定提交已合并到 v3.13-rc1 中的主线内核:

$ git describe --contains 68273712a19e9107a498a371532b3b3eb6dbb14c
v3.13-rc1~105^2~360
Run Code Online (Sandbox Code Playgroud)

不幸的是,特定补丁似乎不太可能包含在稳定开发分支的旧内核中,因为这通常只针对安全问题的相对较小和关键的修复或在给定 3.x 内核中发现的重大回归。

也就是说,发行版维护者获取修复程序并非不可能,或者您始终可以自己应用补丁并构建自己的内核

可以通过运行以下命令获取 Ubuntu 内核源代码:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-<release>.git
Run Code Online (Sandbox Code Playgroud)

作为旁注,您可能希望安装该linux-current-generic软件包,而不是linux-generic-lts-raring因为前者将依赖于最近发布的通用内核映像和头文件,最高可达 14.04。