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

如何找出我的内核编译的设置?

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

例如:现在,我想知道我的内核运行的是哪个wifi模块因为它是我的英特尔公司Wireless-N 7260卡随机死亡

我试过: make menuconfig但这只是显示:

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

或者我可以找到带有sysctl的模块吗? 这是sysctl -a的输出

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

 cat /boot/config-`uname -r` 

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

查看内核设置并不是真正有助于理解这个概念:

 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 查看详细信息

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

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

然后在已加载模块的详细信息中搜索device-id字符串7260 ,在这种情况下,您成功执行以下操作:

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

然后找到固件文件

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