我对 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 卡的名称。
您可以执行相同的步骤,查看您的案例中缺少什么。