【问题标题】:Finding the source code for Ubuntu drivers查找 Ubuntu 驱动程序的源代码
【发布时间】:2018-11-29 01:54:35
【问题描述】:
我最近在我的旧 Macbook 上安装了最新版本的 Ubuntu,它运行良好。我很想阅读和理解默认安装的驱动程序的来源。
为了能够从机器上的信息中获取源代码,该怎么做?例如,我正在尝试查找已安装在机器上的以太网驱动程序的源代码。
我做了一个lspci,发现我有一个broadcom芯片,“Broadcom Limited NetXtreme BCM57786”。但是,通过上游内核源 grepping 不会产生任何结果。我应该如何寻找这些驱动程序?
【问题讨论】:
标签:
linux
ubuntu
networking
kernel
drivers
【解决方案1】:
首先,您需要获取特定发行版的内核源代码和您正在运行的内核版本。在您的情况下,它是 Ubuntu,您可以安装名为 linux-source 的内核源代码包。
命令lspci | egrep -i --color 'network|ethernet' 显示系统中已安装的网络适配器列表。另一个命令ip link show 显示内核识别的网络接口列表。使用接口名称,您可以轻松找到负责该网络接口的网络驱动程序的名称,例如:ethtool -i eth0。最后,您可以在内核源代码树中的/drivers/net/ethernet/(最流行的情况)下或其他地方(例如/drivers/net/wireless)查找该网络驱动程序的源代码。
请注意,特定发行版和内核版本的内核源代码与相同版本的香草内核的内核源代码并不完全相同。这是由于许多来自较新内核版本的错误修复或功能的反向移植。这些后端端口在每个发行版中都不同,这使问题进一步复杂化。