列出所有内核设置以获取有关已安装设备的详细信息

列出所有内核设置以获取有关已安装设备的详细信息

我如何才能知道我的内核是用什么设置编译的?

我想了解这背后的概念。我想知道如何找出哪个设备使用哪个模块。

例如:现在,我想找出我的内核正在运行哪个 wifi 模块,因为这是我的英特尔公司 Wireless-N 7260 网卡随机死机

我试过了:make menuconfig但这仅显示:

make: *** No rule to make target `menuconfig'.  Stop.

或者我可以用 sysctl 找出该模块吗?这是输出sysctl -a

答案1

您可以使用以下命令快速列出内核编译期间使用的所有标志:

cat /boot/config-`uname -r`

在 14.04 系统上,软件包提供了 Intel 7260 固件linux-firmware,您可以检查其文件列表

答案2

查看内核设置对于理解这个概念并没有真正的帮助:

cat /boot/config-`uname -r`

这仅显示在编译内核时使用了哪些设置,除非您想编译自己的内核,否则现在无法更改这一点。

您想查看 的输出lsmod,其中显示了所有已加载的模块。在那里您可以猜测,哪个模块可用于哪个设备,在这个例子中,它是“iw:

$ lsmod|grep iw
iwlmvm                184162  0 
mac80211              582807  1 iwlmvm
iwlwifi               161370  1 iwlmvm
cfg80211              447796  3 iwlwifi,mac80211,iwlmvm

您可以查看每个模块的详细信息modinfo <modulename>

lspci您可以使用(或)查找设备名称和 ID,lsusb例如:

$ lspci|grep -i wireless
01:00.0 Network controller: Intel Corporation Wireless 7260 (rev 6b)

然后搜索设备 ID 字符串7260在已加载模块的详细信息中,在这种情况下您可以成功:

$ modinfo iwlwifi|grep 7260
firmware:       iwlwifi-7260-7.ucode

然后使用以下方法找到固件文件

$ locate  iwlwifi-7260-7.ucode
/lib/firmware/iwlwifi-7260-7.ucode

相关内容