如何对 Wandboard DUAL 上的 Wifi 驱动程序进行故障排除和修复?

如何对 Wandboard DUAL 上的 Wifi 驱动程序进行故障排除和修复?

环境

问题

我能够安装 Ubuntu Trusty,但无法让 Wifi 驱动程序正常工作。

root@ubuntu-armhf:~# uname -a
Linux ubuntu-armhf 3.10.17.1-wand-armhf.com #1 SMP Tue Jun 3 21:34:30 UTC 2014 armv7l armv7l armv7l GNU/Linux

内核消息

root@ubuntu-armhf:~# dmesg | grep brcm

brcmfmac: F1 signature read @0x18000000=0x16044330
brcmfmac: brcmf_sdbrcm_download_code_file: Fail to request firmware -2
brcmfmac: _brcmf_sdbrcm_download_firmware: dongle image file download failed
brcmfmac: brcmf_bus_start: brcmf_sdbrcm_bus_init failed -1
brcmfmac: brcmf_sdbrcm_probe: dongle is not responding
brcmfmac: brcmf_sdio_probe: device attach failed
brcmfmac: brcmf_ops_sdio_probe: F2 error, probe failed -19...

司机

root@ubuntu-armhf:~# cd /lib/firmware/brcm/
root@ubuntu-armhf:/lib/firmware/brcm# ls -al
total 3256
drwxr-xr-x  2 root root   4096 Oct 24 11:08 .
drwxr-xr-x 61 root root  12288 Oct 23 21:19 ..
-rw-r--r--  1 root root 269595 Oct 23 23:28 bcm4329-fullmac-4.bin
-rw-r--r--  1 root root  96224 Oct 23 23:28 bcm43xx-0.fw
-rw-r--r--  1 root root    180 Oct 23 23:28 bcm43xx_hdr-0.fw
-rw-r--r--  1 root root 348160 Oct 23 23:28 brcmfmac43236b.bin
-rw-r--r--  1 root root 455745 Oct 23 23:28 brcmfmac43241b0-sdio.bin
-rw-r--r--  1 root root 403855 Oct 23 23:28 brcmfmac43241b4-sdio.bin
-rw-r--r--  1 root root 253748 Oct 23 23:28 brcmfmac4329-sdio.bin
-rw-r--r--  1 root root   1311 Oct 23 23:28 brcmfmac4329-sdio.txt
-rw-r--r--  1 root root 222126 Oct 23 23:28 brcmfmac4330-sdio.bin
-rw-r--r--  1 root root   1791 Oct 23 23:28 brcmfmac4330-sdio.txt
-rw-r--r--  1 root root 451566 Oct 23 23:28 brcmfmac4334-sdio.bin
-rw-r--r--  1 root root 569291 Oct 23 23:28 brcmfmac4335-sdio.bin
-rw-r--r--  1 root root 219557 Oct 23 23:28 brcmfmac43362-sdio.bin

按照建议这里这里,我尝试将43294330文件复制到brcmfmacp-stdio.binbrcmfmac-stdio.txt,但出现了不同的错误。

cp brcmfmac4330-sdio.bin brcmfmac-sdio.bin
cp brcmfmac4330-sdio.txt brcmfmac-sdio.txt

KERNEL 消息提供固件版本,但会显示更多消息。

brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists引起了我的注意,但我不知道该怎么办。

root@ubuntu-armhf:~# dmesg | grep brcm
brcmfmac: F1 signature read @0x18000000=0x16044330
brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct 25 2011 19:34:12 version 5.90.125.104
brcmfmac: brcmf_fws_init: enabled bdcv2 tlv signaling [1]
usbcore: registered new interface driver brcmfmac
brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists
brcmfmac: brcmf_add_if: ignore IF event
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdio_regrw_helper: failed with -123
brcmfmac: brcmf_sdbrcm_htclk: HT Avail request error: -123
brcmfmac: brcmf_sdbrcm_dpc: failed backplane access over SDIO, halting operation
brcmfmac: brcmf_netdev_start_xmit: xmit rejected state=0
brcmfmac: brcmf_sdbrcm_bus_rxctl: resumed on timeout
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdio_regrw_helper: failed with -123
brcmfmac: brcmf_sdbrcm_htclk: HT Avail request error: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000a=00, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000a=00, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000a=00, Err: -123
brcmfmac: brcmf_sdcard_set_sbaddr_window: failed at addr:0x1000a
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000a=00, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000a=00, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000a=00, Err: -123
brcmfmac: brcmf_sdcard_set_sbaddr_window: failed at addr:0x1000a
brcmfmac: brcmf_sdio_ramrw: FAILED to set window back to 0x18000000
brcmfmac: brcmf_fil_cmd_data: Failed err=-110
brcmfmac: _brcmf_set_multicast_list: Setting allmulti failed, -110
brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
brcmfmac: _brcmf_set_multicast_list: Setting BRCMF_C_SET_PROMISC failed, -5
brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
brcmfmac: _brcmf_set_multicast_list: Setting mcast_list failed, -5
brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
brcmfmac: _brcmf_set_multicast_list: Setting allmulti failed, -5
brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
brcmfmac: _brcmf_set_multicast_list: Setting BRCMF_C_SET_PROMISC failed, -5
brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
brcmfmac: brcmf_notify_escan_complete: Scan abort  failed
brcmfmac: brcmf_fil_cmd_data: bus is down. we have nothing to do.
brcmfmac: brcmf_set_mpc: fail to set mpc
brcmfmac: brcmf_btcoex_boost_wifi: attempted to restore not saved BTCOEX params
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdio_regrw_helper: failed with -123
brcmfmac: brcmf_sdbrcm_htclk: HT Avail request error: -123
brcmfmac: brcmf_sdioh_request_word: Failed to write word, Err: 0xffffff85
brcmfmac: brcmf_sdioh_request_word: Failed to write word, Err: 0xffffff85
brcmfmac: brcmf_sdioh_request_word: Failed to write word, Err: 0xffffff85
brcmfmac: brcmf_sdio_regrw_helper: failed with -123
brcmfmac: brcmf_sdioh_request_byte: Failed to read byte F1:@0x1000e=ff, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to read byte F1:@0x1000e=ff, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to read byte F1:@0x1000e=ff, Err: -123
brcmfmac: brcmf_sdio_regrw_helper: failed with -123
brcmfmac: brcmf_sdbrcm_bus_stop: Failed to force clock for F2: err -123
brcmfmac: brcmf_sdioh_f0_write_byte: Disable F2 failed:-5
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F0:@0x00002=02, Err: -5
brcmfmac: brcmf_sdioh_f0_write_byte: Disable F2 failed:-5
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F0:@0x00002=02, Err: -5
brcmfmac: brcmf_sdioh_f0_write_byte: Disable F2 failed:-5
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F0:@0x00002=02, Err: -5
brcmfmac: brcmf_sdio_regrw_helper: failed with -5
brcmfmac: brcmf_sdioh_request_word: Failed to write word, Err: 0xffffff85
brcmfmac: brcmf_sdioh_request_word: Failed to write word, Err: 0xffffff85
brcmfmac: brcmf_sdioh_request_word: Failed to write word, Err: 0xffffff85
brcmfmac: brcmf_sdio_regrw_helper: failed with -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdioh_request_byte: Failed to write byte F1:@0x1000e=10, Err: -123
brcmfmac: brcmf_sdio_regrw_helper: failed with -123
brcmfmac: brcmf_sdbrcm_htclk: HT Avail request error: -123
brcmfmac: F1 signature read @0x18000000=0x16044330
brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Oct 25 2011 19:34:12 version 5.90.125.104
brcmfmac: brcmf_fws_init: enabled bdcv2 tlv signaling [1]
brcmfmac: brcmf_fil_cmd_data: Failed err=-512
brcmfmac: brcmf_fil_cmd_data: Failed err=-512
brcmfmac: brcmf_dongle_scantime: Scan assoc time error (-512)
brcmfmac: brcmf_fil_cmd_data: Failed err=-512
brcmfmac: brcmf_netdev_open: failed to bring up cfg80211
brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists
brcmfmac: brcmf_add_if: ignore IF event
brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists
brcmfmac: brcmf_add_if: ignore IF event

我可以看到wlan0界面

但我的驱动程序似乎无法正常工作

root@ubuntu-armhf:~# ifconfig wlan0

wlan0     Link encap:Ethernet  HWaddr fc:4d:d4:c5:8f:a6  
          inet6 addr: fe80::fe4d:d4ff:fec5:8fa6/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:45 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:13599 (13.5 KB)

接口

root@ubuntu-armhf:~# more /etc/network/interfaces
# interfaces(5) file used by ifup(8) and ifdown(8)

# loopback network interface
auto lo
iface lo inet loopback

# primary network interface
auto eth0
iface eth0 inet dhcp
#hwaddress ether DE:AD:BE:EF:CA:FE

# wireless network interface
auto wlan0
iface wlan0 inet dhcp
   wpa-ssid "WLAN-A69E22"
   wpa-psk  "FILTERED"

抚养wlan0

root@ubuntu-armhf:~# ifdown wlan0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/fc:4d:d4:c5:8f:a6
Sending on   LPF/wlan0/fc:4d:d4:c5:8f:a6
Sending on   Socket/fallback

root@ubuntu-armhf:~# ifup wlan0
Internet Systems Consortium DHCP Client 4.2.4
Copyright 2004-2012 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/wlan0/fc:4d:d4:c5:8f:a6
Sending on   LPF/wlan0/fc:4d:d4:c5:8f:a6
Sending on   Socket/fallback
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 3 (xid=0x3de2c8c1)
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 3 (xid=0x3de2c8c1)
DHCPDISCOVER on wlan0 to 255.255.255.255 port 67 interval 6 (xid=0x3de2c8c1)
receive_packet failed on wlan0: Network is down
Terminated

杀戮

root@ubuntu-armhf:~# rfkill list
0: wifi-rfkill: Wireless LAN
    Soft blocked: no
    Hard blocked: no
1: bluetooth-rfkill: Bluetooth
    Soft blocked: no
    Hard blocked: no
5: phy3: Wireless LAN
    Soft blocked: no
    Hard blocked: no

相关内容