Broadcom 无线驱动程序在 ubuntu 14.04 中不起作用。我的 pci id 是 [14e4:43b1] (rev 03)

Broadcom 无线驱动程序在 ubuntu 14.04 中不起作用。我的 pci id 是 [14e4:43b1] (rev 03)

我在 Yoga 3 Pro 上双启动了 Win8 和 Ubuntu。我遇到了与其他用户相同的问题:

  • 当我安装 Ubuntu 时,wifi 无法工作,除非我将其列入黑名单ideapad_laptop
  • 触摸板/触摸屏将无法工作。
  • 所以我更新到了最新的内核(3.19.0-031900-generic),触摸板和触摸屏都可以使用了,但我无论如何都无法让 wifi 工作。我尝试了找到的所有建议。

有什么想法吗?我很乐意提供任何您认为可能有助于缩小范围的信息。

以下是无线脚本的结果:

注意:脚本输出显示wl/etc/modules但我手动添加了,当我运行时sudo modprobe wl,我得到了modprobe: FATAL: Module wl not found.

 ########## wireless info START ##########

 Report from: 18 Feb 2015 21:01 GMT +0000

 Booted last: 17 Feb 2015 22:53 GMT +0000

 Script from: 20 Sep 2014 23:04 UTC +0000

 ##### release ###########################

 Distributor ID:    Ubuntu
 Description:   Ubuntu 14.04.1 LTS
 Release:   14.04
 Codename:  trusty

 ##### kernel ############################

 Linux 3.19.0-031900-generic #201502091451 SMP Mon Feb 9 14:52:52 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

 Parameters: ro, quiet, splash, vt.handoff=7

 ##### desktop ###########################

 Ubuntu

 ##### lspci #############################

 01:00.0 Network controller [0280]: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)
    Subsystem: Lenovo Device [17aa:0623]

 ##### lsusb #############################

 Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
 Bus 001 Device 004: ID 048d:8386 Integrated Technology Express, Inc. 
 Bus 001 Device 003: ID 1bcf:2c43 Sunplus Innovation Technology Inc. 
 Bus 001 Device 002: ID 0489:e07a Foxconn / Hon Hai 
 Bus 001 Device 006: ID 17ef:7203 Lenovo 
 Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

 ##### PCMCIA card info ##################

 ##### rfkill ############################

 3: hci0: Bluetooth
    Soft blocked: yes
    Hard blocked: no

 ##### lsmod #############################

 wmi                    19379  0 

 ##### interfaces ########################

 auto lo
 iface lo inet loopback

 ##### ifconfig ##########################

 eth0      Link encap:Ethernet  HWaddr <MAC 'eth0' [IF]>  
           inet addr:192.168.2.251  Bcast:192.168.2.255  Mask:255.255.255.0
           inet6 addr: fe80::250:b6ff:fe59:f0bd/64 Scope:Link
           UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
           RX packets:1389 errors:0 dropped:0 overruns:0 frame:0
           TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
           collisions:0 txqueuelen:1000 
           RX bytes:576003 (576.0 KB)  TX bytes:277882 (277.8 KB)

 ##### iwconfig ##########################

 eth0      no wireless extensions.

 lo        no wireless extensions.

 ##### route #############################

 Kernel IP routing table
 Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
 0.0.0.0         192.168.2.1     0.0.0.0         UG    0      0        0 eth0
 192.168.2.0     0.0.0.0         255.255.255.0   U     1      0        0 eth0

 ##### resolv.conf #######################

 nameserver 127.0.1.1

 ##### nm-tool ###########################

 NetworkManager Tool

 State: connected (global)

 - Device: eth0  [Wired connection 1] -------------------------------------------
   Type:              Wired
   Driver:            asix
   State:             connected
   Default:           yes
   HW Address:        <MAC 'eth0' [IF]>

   Capabilities:
     Carrier Detect:  yes
     Speed:           100 Mb/s

   Wired Properties
     Carrier:         on

   IPv4 Settings:
     Address:         192.168.2.251
     Prefix:          24 (255.255.255.0)
     Gateway:         192.168.2.1

     DNS:             192.168.2.1

 ##### NetworkManager.state ##############

 [main]
 NetworkingEnabled=true
 WirelessEnabled=true
 WWANEnabled=true
 WimaxEnabled=true

 ##### NetworkManager.conf ###############

 [main]
 plugins=ifupdown,keyfile,ofono
 dns=dnsmasq

 [ifupdown]
 managed=false

 ##### NetworkManager profiles ###########

 [[/etc/NetworkManager/system-connections/purplepig]] (600 root)
 [connection] id=purplepig | type=802-11-wireless
 [802-11-wireless] ssid=purplepig | mac-address=<MAC address>
 [ipv4] method=auto
 [ipv6] method=auto

 ##### iw reg get ########################

 Region: Europe/Dublin (based on set time zone)

 country 00:
    (2402 - 2472 @ 40), (6, 20)
    (2457 - 2482 @ 40), (6, 20), PASSIVE-SCAN
    (2474 - 2494 @ 20), (6, 20), NO-OFDM, PASSIVE-SCAN
    (5170 - 5250 @ 160), (6, 20), PASSIVE-SCAN
    (5250 - 5330 @ 160), (6, 20), DFS, PASSIVE-SCAN
    (5490 - 5730 @ 160), (6, 20), DFS, PASSIVE-SCAN

 ##### iwlist channels ###################

 eth0      no frequency information.

 lo        no frequency information.

 ##### iwlist scan #######################

 eth0      Interface doesn't support scanning.

 lo        Interface doesn't support scanning.

 ##### module infos ######################

 ##### module parameters #################

 ##### /etc/modules ######################

 lp
 rtc
 wl

 ##### modprobe options ##################

 [/etc/modprobe.d/blacklist-ath_pci.conf]
 blacklist ath_pci

 [/etc/modprobe.d/blacklist.conf]
 blacklist evbug
 blacklist usbmouse
 blacklist usbkbd
 blacklist eepro100
 blacklist de4x5
 blacklist eth1394
 blacklist snd_intel8x0m
 blacklist snd_aw2
 blacklist i2c_i801
 blacklist prism54
 blacklist bcm43xx
 blacklist garmin_gps
 blacklist asus_acpi
 blacklist snd_pcsp
 blacklist pcspkr
 blacklist amd76x_edac
 blacklist ideapad_laptop
 blacklist b43
 blacklist ssb
 blacklist bcma
 blacklist b43legacy
 blacklist brcm80211

 [/etc/modprobe.d/blacklist-rare-network.conf]
 alias net-pf-3 off
 alias net-pf-6 off
 alias net-pf-9 off
 alias net-pf-11 off
 alias net-pf-12 off
 alias net-pf-19 off
 alias net-pf-21 off
 alias net-pf-36 off

 [/etc/modprobe.d/iwlwifi.conf]
 remove iwlwifi \
 (/sbin/lsmod | grep -o -e ^iwlmvm -e ^iwldvm -e ^iwlwifi | xargs /sbin/rmmod) \
 && /sbin/modprobe -r mac80211

 [/etc/modprobe.d/mlx4.conf]
 softdep mlx4_core post: mlx4_en

 ##### rc.local ##########################

 exit 0

 ##### pm-utils ##########################

 [/etc/pm/power.d/disable_wol] (777 root)
 CONFFILE=/etc/default/tlp
 LIBDIRS='/usr/lib /usr/lib64'
 for d in ${LIBDIRS}; do
     if [ -d "${d}/pm-utils/power.d" ]; then
         blocked="${d}/pm-utils/power.d/${0##*/}"
         break
     fi
 done
 if [ -n "$blocked" ] && [ -x "$blocked" ]; then
     # else nothing to disable -> don't read $CONFFILE
     if [ -e "$CONFFILE" ] && . "$CONFFILE" && [ "$TLP_ENABLE" = '1' ]; then
         # TLP is enabled -> disable $blocked
         echo "Notice: '${blocked}' disabled by TLP."
     else
         exec "$blocked" $*
     fi
 fi
 exit 0

 [/etc/pm/power.d/laptop-mode] (777 root)
 CONFFILE=/etc/default/tlp
 LIBDIRS='/usr/lib /usr/lib64'
 for d in ${LIBDIRS}; do
     if [ -d "${d}/pm-utils/power.d" ]; then
         blocked="${d}/pm-utils/power.d/${0##*/}"
         break
     fi
 done
 if [ -n "$blocked" ] && [ -x "$blocked" ]; then
     # else nothing to disable -> don't read $CONFFILE
     if [ -e "$CONFFILE" ] && . "$CONFFILE" && [ "$TLP_ENABLE" = '1' ]; then
         # TLP is enabled -> disable $blocked
         echo "Notice: '${blocked}' disabled by TLP."
     else
         exec "$blocked" $*
     fi
 fi
 exit 0

 [/etc/pm/power.d/pci_devices] (777 root)
 CONFFILE=/etc/default/tlp
 LIBDIRS='/usr/lib /usr/lib64'
 for d in ${LIBDIRS}; do
     if [ -d "${d}/pm-utils/power.d" ]; then
         blocked="${d}/pm-utils/power.d/${0##*/}"
         break
     fi
 done
 if [ -n "$blocked" ] && [ -x "$blocked" ]; then
     # else nothing to disable -> don't read $CONFFILE
     if [ -e "$CONFFILE" ] && . "$CONFFILE" && [ "$TLP_ENABLE" = '1' ]; then
         # TLP is enabled -> disable $blocked
         echo "Notice: '${blocked}' disabled by TLP."
     else
         exec "$blocked" $*
     fi
 fi
 exit 0

 [/etc/pm/power.d/pcie_aspm] (777 root)
 CONFFILE=/etc/default/tlp
 LIBDIRS='/usr/lib /usr/lib64'
 for d in ${LIBDIRS}; do
     if [ -d "${d}/pm-utils/power.d" ]; then
         blocked="${d}/pm-utils/power.d/${0##*/}"
         break
     fi
 done
 if [ -n "$blocked" ] && [ -x "$blocked" ]; then
     # else nothing to disable -> don't read $CONFFILE
     if [ -e "$CONFFILE" ] && . "$CONFFILE" && [ "$TLP_ENABLE" = '1' ]; then
         # TLP is enabled -> disable $blocked
         echo "Notice: '${blocked}' disabled by TLP."
     else
         exec "$blocked" $*
     fi
 fi
 exit 0

 [/etc/pm/power.d/sched-powersave] (777 root)
 CONFFILE=/etc/default/tlp
 LIBDIRS='/usr/lib /usr/lib64'
 for d in ${LIBDIRS}; do
     if [ -d "${d}/pm-utils/power.d" ]; then
         blocked="${d}/pm-utils/power.d/${0##*/}"
         break
     fi
 done
 if [ -n "$blocked" ] && [ -x "$blocked" ]; then
     # else nothing to disable -> don't read $CONFFILE
     if [ -e "$CONFFILE" ] && . "$CONFFILE" && [ "$TLP_ENABLE" = '1' ]; then
         # TLP is enabled -> disable $blocked
         echo "Notice: '${blocked}' disabled by TLP."
     else
         exec "$blocked" $*
     fi
 fi
 exit 0

 [/etc/pm/power.d/usb_bluetooth] (777 root)
 CONFFILE=/etc/default/tlp
 LIBDIRS='/usr/lib /usr/lib64'
 for d in ${LIBDIRS}; do
     if [ -d "${d}/pm-utils/power.d" ]; then
         blocked="${d}/pm-utils/power.d/${0##*/}"
         break
     fi
 done
 if [ -n "$blocked" ] && [ -x "$blocked" ]; then
     # else nothing to disable -> don't read $CONFFILE
     if [ -e "$CONFFILE" ] && . "$CONFFILE" && [ "$TLP_ENABLE" = '1' ]; then
         # TLP is enabled -> disable $blocked
         echo "Notice: '${blocked}' disabled by TLP."
     else
         exec "$blocked" $*
     fi
 fi
 exit 0

 [/etc/pm/power.d/wireless] (777 root)
 CONFFILE=/etc/default/tlp
 LIBDIRS='/usr/lib /usr/lib64'
 for d in ${LIBDIRS}; do
     if [ -d "${d}/pm-utils/power.d" ]; then
         blocked="${d}/pm-utils/power.d/${0##*/}"
         break
     fi
 done
 if [ -n "$blocked" ] && [ -x "$blocked" ]; then
     # else nothing to disable -> don't read $CONFFILE
     if [ -e "$CONFFILE" ] && . "$CONFFILE" && [ "$TLP_ENABLE" = '1' ]; then
         # TLP is enabled -> disable $blocked
         echo "Notice: '${blocked}' disabled by TLP."
     else
         exec "$blocked" $*
     fi
 fi
 exit 0

 [/etc/pm/power.d/xfs_buffer] (777 root)
 CONFFILE=/etc/default/tlp
 LIBDIRS='/usr/lib /usr/lib64'
 for d in ${LIBDIRS}; do
     if [ -d "${d}/pm-utils/power.d" ]; then
         blocked="${d}/pm-utils/power.d/${0##*/}"
         break
     fi
 done
 if [ -n "$blocked" ] && [ -x "$blocked" ]; then
     # else nothing to disable -> don't read $CONFFILE
     if [ -e "$CONFFILE" ] && . "$CONFFILE" && [ "$TLP_ENABLE" = '1' ]; then
         # TLP is enabled -> disable $blocked
         echo "Notice: '${blocked}' disabled by TLP."
     else
         exec "$blocked" $*
     fi
 fi
 exit 0

 ##### udev rules ########################

 [/etc/udev/rules.d/70-persistent-net.rules]
 # PCI device 0x14e4:0x43b1 (wl)
 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="<MAC address>", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
 # USB device 0x:0x (asix)
 SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="<MAC 'eth0' [IF]>", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

 ##### dmesg #############################

 [  666.728265] WARNING: CPU: 2 PID: 3235 at /home/kernel/COD/linux/drivers/base/firmware_class.c:1126 _request_firmware+0x1c1/0x1e0()
 [  666.728384]  [<ffffffff8150b6b1>] _request_firmware+0x1c1/0x1e0
 [  666.728388]  [<ffffffff8150b7cc>] request_firmware+0x3c/0x60
 [  666.728467] bluetooth hci0: firmware: brcm/BCM20702A0-0489-e07a.hcd will not be loaded
 [  666.728471] Bluetooth: hci0: BCM: patch brcm/BCM20702A0-0489-e07a.hcd not found

 ########## wireless info END ############

答案1

在继续之前,让我们先确定它ideapad-laptop是否按预期工作。从终端:

sudo modprobe ideapad-laptop

现在您的无线开关和触摸板/触摸屏是否都正常工作?如果是,请删除您之前添加的黑名单。现在来看看无线:

sudo apt-get install --reinstall bcmwl-kernel-source
sudo modprobe wl

请注意并发布任何错误。

相关内容