Sony Vaio Pro Duo 13 SDIO Broadcom BCM43241 无法识别

Sony Vaio Pro Duo 13 SDIO Broadcom BCM43241 无法识别

解决方案请跳到本文最底部。保留所有跟踪更改,以供其他正在寻找此问题的人使用。

我已经决定原始帖子不再更新,我将就此问题开一个新帖子。此问题仍在继续,我尚未找到解决方案。

在 Sony Vaio Pro Duo 13 上安装 Linux 时,无法识别 SDIO Broadcom BCM43241 无线设备。感谢科沃比从他的评论这个帖子,它不起作用的原因是it is normally is created using nvram-tools, but it does not work on the Sony Pro 13

对于索尼 Vaio Pro Duo 13这个帖子也许已经找到了答案。

该帖子链接到两个不同的文件:

https://github.com/jfwells/linux-asus-t100ta/blob/master/nvram/lib/firmware/brcm/brcmfmac43241b4-sdio.txt

brcmfmac43241b4-sdio.txt: 280cece85aa76413e0a0e9ce4ea6782dc60ba4753b8266d4a91d7c73d0fee5a6

https://www.dropbox.com/s/8m9n4qolf76iz11/brcmfmac-sdio.zip

brcmfmac-sdio.zip
brcmfmac-sdio.txt: 9af05fba32b8254bb9437aceffabbf0822d617350a455ce56c66c9a53a99d533
brcmfmac-sdio.bin: 0e53e2eadb22610c298df18b631f571d216a3eca3d537812a6f074337fb38eca

后者,该用户声称已经联系了博通的一名开发人员,并且这是开发人员提供的文件。

以下是该用户的引言

联系了 Broadcom 的一位开发人员后,他给我发了一封他和一位遇到同样问题但已成功解决该问题的用户之间的邮件。该用户通过发送另一个 nvram 和固件(一个 bin 和一个 txt)帮助我,它成功了。我认为这只是因为无线网卡对于当前内核来说太新了(作为 Linux 新手,如果我说错了,请纠正我)。

我尝试了这个brcmfmac-sdio.zip文件,但它只对我有部分作用。

brcmfmac-sdio.zip

dmesg:

[    1.876661] brcmfmac: brcmf_sdio_drivestrengthinit: No SDIO Drive strength init done for chip 4324 rev 5 pmurev 17
[    1.877893] usbcore: registered new interface driver brcmfmac
[    1.888464] brcmfmac_sdio mmc0:0001:1: firmware: direct-loading firmware brcm/brcmfmac43241b4-sdio.bin
[    1.888486] brcmfmac_sdio mmc0:0001:1: firmware: failed to load brcm/brcmfmac43241b4-sdio.txt (-2)
[    1.888550] brcmfmac_sdio mmc0:0001:1: Direct firmware load for brcm/brcmfmac43241b4-sdio.txt failed with error -2
[    2.891252] brcmfmac: brcmf_sdio_htclk: HT Avail timeout (1000000): clkctl 0x50

brcmfmac-sdio.zip

dmesg:

[ 1548.361470] usbcore: deregistering interface driver brcmfmac
[ 1553.562888] brcmfmac: brcmf_sdio_drivestrengthinit: No SDIO Drive strength init done for chip 4324 rev 5 pmurev 17
[ 1553.563246] usbcore: registered new interface driver brcmfmac
[ 1553.563343] brcmfmac_sdio mmc0:0001:1: firmware: direct-loading firmware brcm/brcmfmac43241b4-sdio.bin
[ 1553.563352] brcmfmac_sdio mmc0:0001:1: firmware: direct-loading firmware brcm/brcmfmac43241b4-sdio.txt
[ 1553.709778] brcmfmac: brcmf_c_preinit_dcmds: Firmware version = wl0: Jul 17 2013 07:36:07 version 6.10.197.71 (r412987) FWID 01-882d2634
[ 1553.723455] brcmfmac: brcmf_cfg80211_reg_notifier: not a ISO3166 code
[ 1553.764370] brcmfmac: brcmf_add_if: ERROR: netdev:wlan0 already exists
[ 1553.764376] brcmfmac: brcmf_add_if: ignore IF event
[ 1563.827235] brcmfmac: brcmf_escan_timeout: timer expired

你可以看到它iwconfig现在已被识别:

root@chickenbutt:~# iwconfig wlan0
wlan0     IEEE 802.11abgn  ESSID:off/any  
          Mode:Managed  Access Point: Not-Associated   
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on

我们可以看到,由于文件brcmfmac43241b4-sdio.txt现在存在,所以它能够完成brcmfmac模块的加载。但它不能完全工作。例如,您无法将无线接口设置为monitor mode,也无法使用它iw来扫描路由器。

root@chickenbutt:~# ifconfig wlan0 down
root@chickenbutt:~# iwconfig wlan0 mode monitor
Error for wireless request "Set Mode" (8B06) :
    SET failed on device wlan0 ; Operation not supported.

如果您尝试使用iw扫描网络,则会发生以下情况:

root@chickenbutt:~# iw wlan0 scan
scan aborted!

更新至@Pilot6

lspci-vnn:

00:00.0 Host bridge [0600]: Intel Corporation Haswell-ULT DRAM Controller [8086:0a04] (rev 09)
    Subsystem: Sony Corporation Device [104d:90b1]
00:02.0 VGA compatible controller [0300]: Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a26] (rev 09)
    Subsystem: Sony Corporation Device [104d:90b1]
    Kernel driver in use: i915
00:03.0 Audio device [0403]: Intel Corporation Haswell-ULT HD Audio Controller [8086:0a0c] (rev 09)
    Subsystem: Sony Corporation Device [104d:90b1]
    Kernel driver in use: snd_hda_intel
00:14.0 USB controller [0c03]: Intel Corporation 8 Series USB xHCI HC [8086:9c31] (rev 04)
    Subsystem: Sony Corporation Device [104d:90b1]
    Kernel driver in use: xhci_hcd
00:16.0 Communication controller [0780]: Intel Corporation 8 Series HECI #0 [8086:9c3a] (rev 04)
    Subsystem: Sony Corporation Device [104d:90b1]
    Kernel driver in use: mei_me
00:1b.0 Audio device [0403]: Intel Corporation 8 Series HD Audio Controller [8086:9c20] (rev 04)
    Subsystem: Sony Corporation Device [104d:90b1]
    Kernel driver in use: snd_hda_intel
00:1f.0 ISA bridge [0601]: Intel Corporation 8 Series LPC Controller [8086:9c43] (rev 04)
    Subsystem: Sony Corporation Device [104d:90b1]
    Kernel driver in use: lpc_ich
00:1f.2 SATA controller [0106]: Intel Corporation 8 Series SATA Controller 1 [AHCI mode] [8086:9c03] (rev 04)
    Subsystem: Sony Corporation Device [104d:90b1]
    Kernel driver in use: ahci
00:1f.3 SMBus [0c05]: Intel Corporation 8 Series SMBus Controller [8086:9c22] (rev 04)
    Subsystem: Sony Corporation Device [104d:90b1]

更新至@Pilot6

lsusb:

Bus 002 Device 002: ID 1f75:0916 Innostor Technology Corporation 
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 0bda:0176 Realtek Semiconductor Corp. Mass Storage Device
Bus 001 Device 003: ID 0bda:5722 Realtek Semiconductor Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

更新,强制关联到路由器时进行堆栈转储(超过 5Ghz?需要更多测试):

[ 1564.665199] ------------[ cut here ]------------
[ 1564.665264] WARNING: CPU: 1 PID: 1385 at /build/linux-SgRlNT/linux-4.0.4/net/wireless/sme.c:664 __cfg80211_connect_result+0x3f9/0x470 [cfg80211]()
[ 1564.665266] Modules linked in: binfmt_misc nfnetlink_queue nfnetlink_log nfnetlink bluetooth snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic uvcvideo uas videobuf2_vmalloc videobuf2_memops videobuf2_core v4l2_common videodev usb_storage media joydev hid_sensor_rotation hid_sensor_incl_3d hid_sensor_magn_3d hid_sensor_als hid_sensor_gyro_3d hid_sensor_accel_3d hid_sensor_trigger hid_sensor_iio_common industrialio_triggered_buffer kfifo_buf industrialio snd_soc_rt5640 snd_soc_rl6231 hid_rmi snd_soc_core snd_compress hid_sensor_hub regmap_i2c hid_multitouch nls_utf8 nls_cp437 vfat fat pn544_mei mei_phy pn544 hci nfc iTCO_wdt iTCO_vendor_support x86_pkg_temp_thermal intel_powerclamp intel_rapl iosf_mbi coretemp kvm_intel efi_pstore kvm evdev pcspkr serio_raw efivars brcmfmac brcmutil snd_hda_intel
[ 1564.665298]  sony_laptop snd_hda_controller cfg80211 snd_hda_codec i915 i2c_i801 snd_hwdep rfkill battery snd_pcm button dw_dmac dw_dmac_core drm_kms_helper snd_timer video drm i2c_designware_platform i2c_designware_core snd i2c_algo_bit lpc_ich mei_me soundcore mei mfd_core ac processor fuse autofs4 hid_generic usbhid ext4 crc16 mbcache jbd2 dm_mod sg sd_mod mmc_block crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd ahci libahci libata scsi_mod xhci_pci xhci_hcd usbcore usb_common thermal fan thermal_sys sdhci_acpi sdhci mmc_core i2c_hid hid
[ 1564.665364] CPU: 1 PID: 1385 Comm: kworker/u16:0 Tainted: G        W       
[ 1564.665367] Hardware name: Sony Corporation SVD132190X/VAIO, BIOS R1082S7 04/03/2014
[ 1564.665374] Workqueue: cfg80211 cfg80211_event_work [cfg80211]
[ 1564.665377]  0000000000000000 ffffffffa067a740 ffffffff81567c30 0000000000000000
[ 1564.665381]  ffffffff8106e321 ffff880252432008 0000000000000000 0000000000000000
[ 1564.665383]  ffff880253875000 ffff880036823618 ffffffffa0657fc9 0000000000000001
[ 1564.665386] Call Trace:
[ 1564.665400]  [<ffffffff81567c30>] ? dump_stack+0x40/0x50
[ 1564.665415]  [<ffffffff8106e321>] ? warn_slowpath_common+0x81/0xb0
[ 1564.665424]  [<ffffffffa0657fc9>] ? __cfg80211_connect_result+0x3f9/0x470 [cfg80211]
[ 1564.665437]  [<ffffffff810ab8c4>] ? __wake_up+0x34/0x50
[ 1564.665446]  [<ffffffffa0632258>] ? cfg80211_process_wdev_events+0x148/0x1c0 [cfg80211]
[ 1564.665450]  [<ffffffff810a230a>] ? dequeue_task_fair+0x9a/0xa70
[ 1564.665458]  [<ffffffffa0632308>] ? cfg80211_process_rdev_events+0x38/0x70 [cfg80211]
[ 1564.665464]  [<ffffffffa062d01a>] ? cfg80211_event_work+0x1a/0x20 [cfg80211]
[ 1564.665469]  [<ffffffff81086a12>] ? process_one_work+0x152/0x440
[ 1564.665472]  [<ffffffff8108758b>] ? worker_thread+0x6b/0x560
[ 1564.665474]  [<ffffffff81087520>] ? rescuer_thread+0x3b0/0x3b0
[ 1564.665481]  [<ffffffff8108c543>] ? kthread+0xd3/0xf0
[ 1564.665484]  [<ffffffff8108c470>] ? kthread_create_on_node+0x180/0x180
[ 1564.665489]  [<ffffffff8156de98>] ? ret_from_fork+0x58/0x90
[ 1564.665492]  [<ffffffff8108c470>] ? kthread_create_on_node+0x180/0x180
[ 1564.665494] ---[ end trace 59434d2d70a007f1 ]---

更新,无法连接扫描并连接到 5GHz 站:

驱动程序加载后,似乎无法连接到 5GHz 站。但是,更改监管域似乎有效。

更改监管范围之前:

root@chickenbutt:~# iw reg get
country 00: DFS-UNSET
    (2402 - 2472 @ 40), (N/A, 20), (N/A)
    (2457 - 2482 @ 40), (N/A, 20), (N/A), NO-IR
    (2474 - 2494 @ 20), (N/A, 20), (N/A), NO-OFDM, NO-IR
    (5170 - 5250 @ 80), (N/A, 20), (N/A), NO-IR
    (5250 - 5330 @ 80), (N/A, 20), (0 ms), DFS, NO-IR
    (5490 - 5730 @ 160), (N/A, 20), (0 ms), DFS, NO-IR
    (5735 - 5835 @ 80), (N/A, 20), (N/A), NO-IR
    (57240 - 63720 @ 2160), (N/A, 0), (N/A)

更改监管域后:

root@chickenbutt:~# iw reg set US
root@chickenbutt:~# iw reg get
country US: DFS-FCC
    (2402 - 2472 @ 40), (N/A, 30), (N/A)
    (5170 - 5250 @ 80), (N/A, 17), (N/A)
    (5250 - 5330 @ 80), (N/A, 23), (0 ms), DFS
    (5735 - 5835 @ 80), (N/A, 30), (N/A)
    (57240 - 63720 @ 2160), (N/A, 40), (N/A)

现在,它可以连接:

root@chickenbutt:~# iwconfig wlan0
wlan0     IEEE 802.11abgn  ESSID:"5GHz"
          Mode:Managed  Frequency:5.785 GHz  Access Point: AF-3A-A8-9F-89-A4
          Bit Rate=300 Mb/s   Tx-Power=1496 dBm
          Retry short limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=53/70  Signal level=-57 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

解决方案:

  1. brcmfmac-sdio.zip从上面的链接下载
  2. 将 .txt 文件复制到/lib/firmware/brcm/brcmfmac43241b4-sdio.txt
  3. 重启
  4. 运行命令iw reg set US

答案1

这是我所做的,效果非常好。请不要下载其他 .txt 文件,它不会像您预期的那样工作(意味着 2.4 GHz / 5 GHz 并且能够达到 300Mb/s)。您必须从 NVRAM 创建 txt 文件(步骤 3)。

  1. 确保您有 /lib/firmware/brcm/brcmfmac43241b4-sdio.bin
  2. 如果尚未安装:“mount -t efivarfs none sys/firmware/efi/efivars”
  3. 猫/sys/固件/efi/efivars/nvram-74b00bd9-805a-4d61-b51f-43268123d113>/lib/firmware/brcm/brcmfmac43241b4-sdio.txt
  4. modprobe -r brcmfmac && modprobe brcmfmac
  5. 准备好!!

答案2

解决方案:

  1. brcmfmac-sdio.zip从上面的链接下载
  2. 将 .txt 文件复制到/lib/firmware/brcm/brcmfmac43241b4-sdio.txt
  3. 重启
  4. 运行命令iw reg set US

现在,可能有一种方法可以永久设置适配器监管域(在启动参数或配置中),但目前这样就可以了:D

这个想法来自于http://ubuntuforums.org/showthread.php?t=2276504&page=2&p=13279137#post13279137

相关内容