And*_*ili 3 linux wireless-networking ubuntu dmesg raspberry-pi
我是 Linux 新手(RaspBian for RaspBerry Pi,但我认为没有区别),我必须安装一个 USB 无线网络适配器(产品是 TP-Link TL-WN725N,这个:http://www .tp-link.it/products/details/?model=TL-WN725N )
现在,我认为这不会被我的系统自动识别,因为如果我执行ifconfig命令,我会获得以下输出:
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)
Run Code Online (Sandbox Code Playgroud)
所以现在它只能看到我的以太网网络接口而不是无线网络接口。
所以我想尝试查看dmesg,但我不知道我要查看什么以及如何将其选择到 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
Run Code Online (Sandbox Code Playgroud)
但是我可以尝试搜索 USB 无线适配器吗?
Tnx
有很多有用的命令。首先是lsusb,它列出了所有连接的 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)
Run Code Online (Sandbox Code Playgroud)
这显示了您的 wifi 卡的所有重要代码,在我的情况下是 [8086:088e]。
然后您在 Wikidevi 中搜索此代码:它找到的页面说我的无线网卡的驱动程序在我的情况下是iwlwifi。使用上面方括号中的代码很重要,因为生产商通常有多个版本的带有不同芯片的 wifi 适配器,有时甚至来自不同制造商 (!!!) 需要不同的驱动程序。因此,识别您的驱动程序的唯一确定方法不涉及适配器的名称,而是其代码。
现在我们知道了司机的名字,我们首先检查我们是否有它,
modinfo iwlwifi
Run Code Online (Sandbox Code Playgroud)
如果有一些输出,我们就有了。然后我们检查它是否真的适合我的卡,如下:
$ 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*
Run Code Online (Sandbox Code Playgroud)
这表明我的驱动程序有几行(对应于我的 wifi 适配器的几个不同版本)用于我的卡的供应商代码 V8086 和设备代码 d088E。请注意,在这种情况下,您必须使用大写字母,在我的情况下为 E。所以这个驱动程序确实适合我的适配器。
然后,我们检查它是否正确安装:
sudo lshw -C network
Run Code Online (Sandbox Code Playgroud)
输出很长(涉及以太网卡、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
Run Code Online (Sandbox Code Playgroud)
在这里你会看到它说driver=iwlwifi和firmware=...。因此,正确的驱动程序和固件已加载到内核中。就我而言,一切正常。
最后,我们可以检查适配器是打开还是关闭:从前面的输出中您可以看到我的 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
Run Code Online (Sandbox Code Playgroud)
这清楚地表明它是UP。如果没有,这个命令
sudo ip link set dev wlan0 up
Run Code Online (Sandbox Code Playgroud)
会提出来。
如果所有这些都已检查并且没问题,但您的 wifi 仍然无法正常工作,您可以从命令中获取有用的信息:
dmesg | grep wlan0
Run Code Online (Sandbox Code Playgroud)
或 wlan1 或任何您的 wifi 卡被称为。
您可以执行相同的步骤,看看您的案例中缺少什么。
归档时间: |
|
查看次数: |
19488 次 |
最近记录: |