如何在 dmesg 日志文件中找到 USB 无线适配器?

如何在 dmesg 日志文件中找到 USB 无线适配器?

我对 Linux 还不太熟悉(RaspBian 适用于 RaspBerry Pi,但我认为它们没什么区别),我必须安装一个 USB 无线网络适配器(产品是 TP-LinkTL-WN725N, 这个:http://www.tp-link.it/products/details/?model=TL-WN725N

现在,我认为这不会被我的系统自动识别,因为如果我执行是否配置命令我获得以下输出:

pi@raspberrypi ~ $ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:2a:9f:b0  
          inet addr:192.168.1.8  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:475 errors:0 dropped:0 overruns:0 frame:0
          TX packets:424 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:34195 (33.3 KiB)  TX bytes:89578 (87.4 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

所以现在它只能看到我的以太网网络接口,而看不到无线接口。

所以我想尝试看看消息,但我不知道我要看什么以及如何将其选择到 dmesg 输出中。

例如,通过以下命令,我可以看到与我的以太网端口相关的 dmesg 日志文件的行:

pi@raspberrypi ~ $ cat /var/log/dmesg |grep -i eth
[    3.177620] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, b8:27:eb:2a:9f:b0
[   18.030389] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[   19.642167] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0x45E1

但是我该尝试什么来搜索 USB 无线适配器呢?

谢谢

答案1

有许多有用的命令。首先是系统盘,其中列出了所有已连接的 USB 设备。您应该在那里看到您的 USB 适配器。

第二个是 lspci,显示连接到 PCI 总线的所有设备。例如,在我的例子中,我获得(将输出限制为仅网络设备):

 $ lspci -vnn | grep -i net
 00:19.0 Ethernet controller [0200]: Intel Corporation 82579LM Gigabit Network Connection [8086:1502] (rev 04)
 04:00.0 Network controller [0280]: Intel Corporation Centrino Advanced-N 6235 [8086:088e] (rev 24)

这显示了您的 wifi 卡的所有重要代码,在我的情况下是 [8086:088e]。

然后你搜索这个代码在 Wikidevi:它找到的页面显示我的无线网卡驱动程序是无线上网在我的情况下。使用上面方括号中的代码很重要,因为制造商通常有多个版本的 wifi 适配器,带有不同的芯片,有时甚至来自不同的制造商(!!!),需要不同的驱动程序。因此,唯一确定的识别驱动程序的方法是不是涉及适配器的名称,但其代码。

现在我们知道了司机的名字,我们首先检查一下是否知道,

  modinfo iwlwifi

如果有输出,我们就有它了。然后我们检查它是否真的适合我的卡,如下所示:

 $ modinfo iwlwifi | grep 8086 | grep 088E
 alias:          pci:v00008086d0000088Esv*sd00004860bc*sc*i*
 alias:          pci:v00008086d0000088Esv*sd0000446Abc*sc*i*
 alias:          pci:v00008086d0000088Esv*sd00004460bc*sc*i*
 alias:          pci:v00008086d0000088Esv*sd0000406Abc*sc*i*
 alias:          pci:v00008086d0000088Esv*sd00004060bc*sc*i*

这表明我的驱动程序有几行(对应于我的 wifi 适配器的几个不同版本),用于我的卡的供应商代码 V8086 和设备代码 d088E。请注意,在这种情况下,您必须使用大写字母,我的情况是 E。所以这个驱动程序确实适合我的适配器。

然后,我们检查它是否正确安装:

  sudo lshw -C network

输出比较长(涉及以太网卡、3G卡等),但相关部分是:

 *-network
   description: Wireless interface
   product: Centrino Advanced-N 6235
   vendor: Intel Corporation
   physical id: 0
   bus info: pci@0000:04:00.0
   logical name: wlan0
   version: 24
   serial: c8:f7:33:4c:cc:e1
   width: 64 bits
   clock: 33MHz
   capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless
   configuration: broadcast=yes driver=iwlwifi driverversion=3.13.0-27-generic firmware=18.168.6.1 latency=0 link=no multicast=yes wireless=IEEE 802.11abgn
   resources: irq:47 memory:e2500000-e2501fff

这里你可以看到它说驱动程序=iwlwifi固件=...。因此,正确的驱动程序和固件已加载到内核中。就我而言,一切正常。

最后,我们可以检查适配器是否向上或者向下:从前面的输出中你可以看到我的 wifi 卡的物理名称为 0(对应于phy0)和逻辑名称wlan0。我可以通过以下方式搜索其当前状态

 $ ip  link list dev wlan0
 3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DORMANT group default qlen 1000 
 link/ether c8:f7:33:4c:cc:e1 brd ff:ff:ff:ff:ff:ff

明确表明它已启动。如果没有,则此命令

  sudo ip link set dev wlan0 up 

会提起它。

如果所有这些都已检查并且没有问题但您的 wifi 仍然无法工作,您可以从以下命令中获取有用的信息:

  dmesg | grep wlan0

或 wlan1 或者任何你的 wifi 卡的名称。

您可以执行相同的步骤,查看您的案例中缺少什么。

相关内容