使用 gentoo 在 rPi 3 上未检测到 wifi 芯片组

使用 gentoo 在 rPi 3 上未检测到 wifi 芯片组

我已经在树莓派 3 上安装了 gentoo。内核源代码的版本是 4.1.20-v7+。除了无线网络之外,一切正常。当我加载模块时brcmfmac,它加载时没有任何抱怨,但 wifi 芯片无法识别或检测到。对于内核配置,我使用最新的 raspbian 中的内核配置/proc/config.gz

与树莓派一样,芯片被检测到,我知道它可以工作。我从 linux-firmware 包中获取了几个固件,并且得到了我需要的一个,/lib/firmware/brcm/brcmfmac43430-sdio.bin lsmod 的结果是:

Module                  Size  Used by
brcmfmac              177627  0
brcmutil                5493  1 brcmfmac
ipv6                  338946  18
cfg80211              405047  1 brcmfmac
rfkill                 16028  1 cfg80211
iptable_mangle          1326  0
iptable_nat             1593  0
nf_nat_ipv4             4784  1 iptable_nat
nf_nat                 12056  1 nf_nat_ipv4
nf_log_ipv4             3720  3
nf_log_common           2780  1 nf_log_ipv4
xt_LOG                  1177  3
xt_limit                1613  2
ipt_REJECT              1257  1
nf_reject_ipv4          2230  1 ipt_REJECT
nf_conntrack_ipv4      12664  11
nf_defrag_ipv4          1275  1 nf_conntrack_ipv4
xt_tcpudp               2097  8
xt_conntrack            3023  10
nf_conntrack           75577  4 nf_nat,nf_nat_ipv4,xt_conntrack,nf_conntrack_ipv4
iptable_filter          1237  1
ip_tables              11409  3 iptable_filter,iptable_mangle,iptable_nat
x_tables               12603  8 ip_tables,xt_tcpudp,xt_limit,xt_conntrack,xt_LOG,iptable_filter,ipt_REJECT,iptable_mangle
binfmt_misc             6228  1
squashfs               29028  1
bcm2708_rng              953  0
snd_soc_bcm2708_i2s     6662  0
snd_soc_pcm512x_i2c     2083  0
snd_soc_pcm512x        15581  1 snd_soc_pcm512x_i2c
snd_soc_wm8804_i2c      1384  0
regmap_mmio             2834  1 snd_soc_bcm2708_i2s
snd_soc_wm8804          7115  1 snd_soc_wm8804_i2c
snd_soc_tas5713         5088  0
snd_soc_core          128253  4 snd_soc_pcm512x,snd_soc_wm8804,snd_soc_tas5713,snd_soc_bcm2708_i2s
snd_compress            7681  1 snd_soc_core
snd_pcm_dmaengine       3223  1 snd_soc_core
regmap_i2c              2676  3 snd_soc_pcm512x_i2c,snd_soc_wm8804_i2c,snd_soc_tas5713
snd_pcm                73466  4 snd_soc_pcm512x,snd_soc_wm8804,snd_soc_core,snd_pcm_dmaengine
snd_timer              18840  1 snd_pcm
snd                    50771  4 snd_soc_core,snd_timer,snd_pcm,snd_compress
spi_bcm2708             5030  0
i2c_bcm2708             4912  0

ubuntu 的 wireless-info 工具的结果:

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

Report from: 06 Apr 2016 02:46 CEST +0200

Booted last: 06 Apr 2016 00:00 CEST +0200

Script from: 27 Sep 2015 00:34 UTC +0000

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

./wireless-info: line 155: lsb_release: command not found

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

Linux 4.1.20-v7+ #1 SMP Tue Apr 5 00:28:37 CEST 2016 armv7l unknown BCM2709 GNU/Linux

dma.dmachans=0x7f35, bcm2708_fb.fbwidth=1920, bcm2708_fb.fbheight=1200, bcm2709.boardrev=0xa02082, bcm2709.serial=0xa9f651a3, smsc95xx.macaddr=<MAC address>, bcm2708_fb.fbswap=1, bcm2709.uart_clock=48000000, vc_mem.mem_base=0x3dc00000, vc_mem.mem_size=0x3f000000, dwc_otg.lpm_enable=0, console=ttyS0,115200, kgdboc=ttyAMA0,115200, console=tty0, rootfstype=ext4, elevator=deadline, rootwait

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

sed: can't read /root/.dmrc: No such file or directory

Could not be determined.

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

pcilib: Cannot open /proc/bus/pci
lspci: Cannot find any working access method.

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

Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

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

'pccardctl' is not installed (package "pcmciautils").

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

./wireless-info: line 192: rfkill: command not found

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

brcmfmac              177627  0
brcmutil                5493  1 brcmfmac
cfg80211              405047  1 brcmfmac
rfkill                 16028  1 cfg80211

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

sed: can't read /etc/network/interfaces: No such file or directory

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

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet XX.XX.XX.XX  netmask 255.255.255.0  broadcast XX.XX.XX.XX
        inet6 XXXXXXXXXXXXXXXXXXXXXXXXX  prefixlen 64  scopeid 0x20<link>
        inet6 XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX  prefixlen 64  scopeid 0x0<global>
        ether <MAC address>  txqueuelen 1000  (Ethernet)
        RX packets 196  bytes 18362 (17.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 170  bytes 20021 (19.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 0  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

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

lo        no wireless extensions.

eth0      no wireless extensions.

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

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         XX.XX.XX.XX   0.0.0.0         UG    2      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
XX.XX.XX.XX     0.0.0.0         255.255.255.0   U     2      0        0 eth0

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

nameserver XX.XX.XX.XX

##### network managers ##################

Installed:

>~~~None found.

Running:

>~~~None found.

##### NetworkManager info ###############

NetworkManager is not installed (package "network-manager").

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

cat: /var/lib/NetworkManager/NetworkManager.state: No such file or directory

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

grep: /etc/NetworkManager/NetworkManager.conf: No such file or directory

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

No NetworkManager profiles found.

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

'iw' is not installed (package "iw").

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

lo        no frequency information.

eth0      no frequency information.

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

./wireless-info: line 302: sudo: command not found

Acquisition of admin privileges failed.

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

[brcmfmac]
filename:       /lib/modules/4.1.20-v7+/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko
license:        Dual BSD/GPL
description:    Broadcom 802.11 wireless LAN fullmac driver.
author:         Broadcom Corporation
firmware:       brcm/brcmfmac4354-sdio.txt
firmware:       brcm/brcmfmac4354-sdio.bin
firmware:       brcm/brcmfmac43455-sdio.txt
firmware:       brcm/brcmfmac43455-sdio.bin
firmware:       brcm/brcmfmac43430-sdio.txt
firmware:       brcm/brcmfmac43430-sdio.bin
firmware:       brcm/brcmfmac4339-sdio.txt
firmware:       brcm/brcmfmac4339-sdio.bin
firmware:       brcm/brcmfmac43362-sdio.txt
firmware:       brcm/brcmfmac43362-sdio.bin
firmware:       brcm/brcmfmac4335-sdio.txt
firmware:       brcm/brcmfmac4335-sdio.bin
firmware:       brcm/brcmfmac43341-sdio.txt
firmware:       brcm/brcmfmac43341-sdio.bin
firmware:       brcm/brcmfmac43340-sdio.txt
firmware:       brcm/brcmfmac43340-sdio.bin
firmware:       brcm/brcmfmac4334-sdio.txt
firmware:       brcm/brcmfmac4334-sdio.bin
firmware:       brcm/brcmfmac4330-sdio.txt
firmware:       brcm/brcmfmac4330-sdio.bin
firmware:       brcm/brcmfmac4329-sdio.txt
firmware:       brcm/brcmfmac4329-sdio.bin
firmware:       brcm/brcmfmac43241b4-sdio.txt
firmware:       brcm/brcmfmac43241b4-sdio.bin
firmware:       brcm/brcmfmac43241b0-sdio.txt
firmware:       brcm/brcmfmac43241b0-sdio.bin
firmware:       brcm/brcmfmac43143-sdio.txt
firmware:       brcm/brcmfmac43143-sdio.bin
firmware:       brcm/brcmfmac43569.bin
firmware:       brcm/brcmfmac43242a.bin
firmware:       brcm/brcmfmac43236b.bin
firmware:       brcm/brcmfmac43143.bin
srcversion:     F50C49C88C2DEA498C4EAC7
depends:        brcmutil,cfg80211
intree:         Y
vermagic:       4.1.20-v7+ SMP mod_unload modversions ARMv7.
parm:           txglomsz:maximum tx packet chain size [SDIO] (int)
parm:           firmware_path:string
parm:           debug:level of debug output (int)
parm:           fcmode:mode of firmware signalled flow control (int)
parm:           roamoff:do not use internal roaming engine (int)

[brcmutil]
filename:       /lib/modules/4.1.20-v7+/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko
license:        Dual BSD/GPL
description:    Broadcom 802.11n wireless LAN driver utilities.
author:         Broadcom Corporation
srcversion:     AE9B4BBC6D82855B9265054
depends:........
intree:         Y
vermagic:       4.1.20-v7+ SMP mod_unload modversions ARMv7.

[cfg80211]
filename:       /lib/modules/4.1.20-v7+/kernel/net/wireless/cfg80211.ko
description:    wireless configuration support
license:        GPL
author:         Johannes Berg
srcversion:     6610E9DB7046B562928123C
depends:        rfkill
intree:         Y
vermagic:       4.1.20-v7+ SMP mod_unload modversions ARMv7.
parm:           ieee80211_regdom:IEEE 802.11 regulatory domain code (charp)
parm:           cfg80211_disable_40mhz_24ghz:Disable 40MHz support in the 2.4GHz band (bool)

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

[brcmfmac]
debug: 0
fcmode: 0
roamoff: 0

[cfg80211]
cfg80211_disable_40mhz_24ghz: N
ieee80211_regdom: 00

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

grep: /etc/modules: No such file or directory

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

[/etc/modprobe.d/aliases.conf]
alias char-major-10-175>agpgart
alias char-major-10-200>tun
alias char-major-81>bttv
alias char-major-108>~~~ppp_generic
alias /dev/ppp>~>~~~ppp_generic
alias tty-ldisc-3>~~ppp_async
alias tty-ldisc-14>~ppp_synctty
alias ppp-compress-21>~~bsd_comp
alias ppp-compress-24>~~ppp_deflate
alias ppp-compress-26>~~ppp_deflate
alias loop-xfer-gen-0>~~loop_gen
alias loop-xfer-3>~~loop_fish2
alias loop-xfer-gen-10>~loop_gen
alias cipher-2>~>~~~des
alias cipher-3>~>~~~fish2
alias cipher-4>~>~~~blowfish
alias cipher-6>~>~~~idea
alias cipher-7>~>~~~serp6f
alias cipher-8>~>~~~mars6
alias cipher-11>>~~~rc62
alias cipher-15>>~~~dfc2
alias cipher-16>>~~~rijndael
alias cipher-17>>~~~rc5
alias char-major-89    i2c-dev

[/etc/modprobe.d/i386.conf]
alias parport_lowlevel parport_pc
alias char-major-10-144 nvram
alias binfmt-0064 binfmt_aout
alias char-major-10-135 rtc

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

grep: /etc/rc.local: No such file or directory

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

find: ‘/etc/pm/*.d’: No such file or directory

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

grep: /etc/udev/rules.d/*net*.rules: No such file or directory

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

[    1.874541] smsc95xx 1-1.1:1.0 eth0: register 'smsc95xx' at usb-bcm2708_usb-1.1, smsc95xx USB 2.0 Ethernet, <MAC address>
[   11.320439] smsc95xx 1-1.1:1.0 eth0: hardware isn't capable of remote wakeup
[   12.924555] smsc95xx 1-1.1:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC5E1

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

感谢您的帮助。

答案1

与其将 Raspbian 安装在某个地方,更简单、更可重复的选择是简单地使用以下命令从 GitHub 中提取非自由固件文件:

git clone --depth 1 https://github.com/RPi-Distro/firmware-nonfree.git

然后复制:

cp firmware-nonfree/brcm80211/brcm/brcmfmac43430-sdio.* /lib/firmware/brcm/

(要在没有 git 的情况下执行此操作,您可以使用 wget,例如:

wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.bin
wget https://github.com/RPi-Distro/firmware-nonfree/raw/master/brcm80211/brcm/brcmfmac43430-sdio.txt

然后将这些文件复制到/lib/firmware/brcm以前的位置。)

然后brcmfmac就可以初始化芯片了。

答案2

我也遇到了同样的问题,但由于这一切都在 raspian 上运行,我将所有文件从/lib/firmware/brcmraspian 复制到我的 gentoo 系统,理论上如果不需要它们,它们就不会被加载。

问题解决了!

相关内容