# Broadcom WiFi non funziona

## spike32

Salve a tutti! Ho una Broadcom BCM4352 ma che attualmente non riesco a far funzionare con gentoo. Ho provato a seguire questa guida

https://wiki.gentoo.org/wiki/Dell_XPS_13_9343

Dove praticamente questo dell monta la mia stessa scheda wifi, ma niente.

Attualmente non riesco a vederla nemmeno da ifconfig:

```
enp4s0f1: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500

        ether 88:d7:f6:1f:2a:04  txqueuelen 1000  (Ethernet)

        RX packets 1916  bytes 1374436 (1.3 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 1754  bytes 365540 (356.9 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 1000  (Local Loopback)

        RX packets 933  bytes 72660 (70.9 KiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 933  bytes 72660 (70.9 KiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

wlp0s20f0u1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500

        inet 192.168.1.109  netmask 255.255.255.0  broadcast 192.168.1.255

        inet6 fe80::a505:39f5:8866:f9b4  prefixlen 64  scopeid 0x20<link>

        ether 10:62:eb:94:af:5c  txqueuelen 1000  (Ethernet)

        RX packets 77168  bytes 108048974 (103.0 MiB)

        RX errors 0  dropped 0  overruns 0  frame 0

        TX packets 47279  bytes 4839980 (4.6 MiB)

        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

```

ATTENZIONE wlp0s20f0u1 è un'interfaccia wifi usb che sto usando per tamponare.

lspci:

```
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v6/7th Gen Core Processor Host Bridge/DRAM Registers (rev 05)

00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor PCIe Controller (x16) (rev 05)

00:02.0 VGA compatible controller: Intel Corporation HD Graphics 630 (rev 04)

00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 05)

00:14.0 USB controller: Intel Corporation 100 Series/C230 Series Chipset Family USB 3.0 xHCI Controller (rev 31)

00:14.2 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Thermal Subsystem (rev 31)

00:15.0 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #0 (rev 31)

00:15.1 Signal processing controller: Intel Corporation 100 Series/C230 Series Chipset Family Serial IO I2C Controller #1 (rev 31)

00:16.0 Communication controller: Intel Corporation 100 Series/C230 Series Chipset Family MEI Controller #1 (rev 31)

00:17.0 SATA controller: Intel Corporation HM170/QM170 Chipset SATA Controller [AHCI Mode] (rev 31)

00:1c.0 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #1 (rev f1)

00:1c.2 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #3 (rev f1)

00:1c.3 PCI bridge: Intel Corporation 100 Series/C230 Series Chipset Family PCI Express Root Port #4 (rev f1)

00:1f.0 ISA bridge: Intel Corporation HM175 Chipset LPC/eSPI Controller (rev 31)

00:1f.2 Memory controller: Intel Corporation 100 Series/C230 Series Chipset Family Power Management Controller (rev 31)

00:1f.3 Audio device: Intel Corporation CM238 HD Audio Controller (rev 31)

00:1f.4 SMBus: Intel Corporation 100 Series/C230 Series Chipset Family SMBus (rev 31)

01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 950M] (rev a2)

03:00.0 Network controller: Broadcom Inc. and subsidiaries BCM4352 802.11ac Wireless Network Adapter (rev 03)

04:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. RTL8411B PCI Express Card Reader (rev 01)

04:00.1 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 12)

```

Questa invece dovrebbe essere la mia configurazione del kernel http://dpaste.com/1174RQC

uname -a

```
Linux mauro 5.4.28-gentoo-x86_64 #1 SMP Tue Apr 14 01:21:35 CEST 2020 x86_64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz GenuineIntel GNU/Linux
```

----------

## zar Marco

Immagino che tu abbia caricato il modulo del kernel.

Ma ip link la vede?

----------

## spike32

 *zar Marco wrote:*   

> Immagino che tu abbia caricato il modulo del kernel.
> 
> Ma ip link la vede?

 

No

```
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: enp4s0f1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT group default qlen 1000

    link/ether 88:d7:f6:1f:2a:04 brd ff:ff:ff:ff:ff:ff

4: wlp0s20f0u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000

    link/ether 10:62:eb:94:af:5c brd ff:ff:ff:ff:ff:ff
```

----------

## zar Marco

Potresti intanto vedere con lsmod oppure con lshw se risulta caricato il modulo del kernel

----------

## fturco

Prova ad impostare le seguenti opzioni nel kernel:

CONFIG_MAC80211=n

CONFIG_HOSTAP=m

CONFIG_SSB=n

CONFIG_BCMA=n

Dopo aver compilato il kernel prova a installare il pacchetto net-wireless/broadcom-sta.

Infine riavvia, parti con il nuovo kernel e prova a caricare il modulo wl:

```
modprobe wl
```

----------

## spike32

 *fturco wrote:*   

> Prova ad impostare le seguenti opzioni nel kernel:
> 
> CONFIG_MAC80211=n
> 
> CONFIG_HOSTAP=m
> ...

 

Allora ho fatto tutto tranne CONFIG_SSB che non riesco a disabilitarlo, mi da la possibilita di settarlo come attivo o come modulo, ma non disabilitato.

Infatti quando faccio l'emerge di net-wireless/broadcom-sta nei vari log ho questo:

```
SSB: If you insist on building this, you must blacklist it!
```

anche se è già in blacklist nel file /etc/modprobe.d/blacklist.conf:

```
blacklist SSB

blacklist brcmsmac

blacklist bcma

blacklist b43

blacklist mac80211

```

Per quanto riguarda modprobe wl mi restituisce questo

```
modprobe: ERROR: could not insert 'wl': Exec format error
```

----------

## fedeliallalinea

Cosa tornano i comandi modinfo wl e uname -a

----------

## fturco

 *spike32 wrote:*   

> 
> 
> ```
> SSB: If you insist on building this, you must blacklist it!
> ```
> ...

 

Attento perché il modulo si chiama "ssb" (in minuscolo), non "SSB".

Ad ogni modo se vai nella sezione "Help" relativa all'opzione "Sonics Silicon Backplane support" puoi vedere quali altre opzioni del kernel ne richiedono l'attivazione (sotto a "Selected by").

----------

## spike32

 *fedeliallalinea wrote:*   

> Cosa tornano i comandi modinfo wl e uname -a

 

modinfo wl

```
filename:       /lib/modules/5.4.28-gentoo-x86_64/net/wireless/wl.ko

license:        MIXED/Proprietary

srcversion:     26D1468319D9E549FA6D553

alias:          pci:v*d*sv*sd*bc02sc80i*

depends:        cfg80211

retpoline:      Y

name:           wl

vermagic:       5.4.28-gentoo-x86_64 SMP mod_unload modversions 

parm:           passivemode:int

parm:           wl_txq_thresh:int

parm:           oneonly:int

parm:           piomode:int

parm:           instance_base:int

parm:           nompc:int

parm:           intf_name:string
```

uname -a

```
Linux mauro 5.4.28-gentoo-x86_64 #1 SMP Tue Apr 14 01:21:35 CEST 2020 x86_64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz GenuineIntel GNU/Linux
```

----------

## spike32

 *fturco wrote:*   

> Attento perché il modulo si chiama "ssb" (in minuscolo), non "SSB".

 

Avevo già provato a metterlo minuscolo ma mi faceva la stessa cosa

----------

## spike32

 *fturco wrote:*   

> Ad ogni modo se vai nella sezione "Help" relativa all'opzione "Sonics Silicon Backplane support" puoi vedere quali altre opzioni del kernel ne richiedono l'attivazione (sotto a "Selected by").

 

In "Help" mi dice 

```
Depends on: SSB_POSSIBLE [=y]
```

Ma non riesco a trovare questa opzione in menuconfig

----------

## fturco

Nel nostro caso non occorre consultare "Depends on", bensì "Selected by".

Dovresti avere qualcosa simile a questo:

```
Selected by [n]:

  - B44 [=n] && NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_BROADCOM [=y] && SSB_POSSIBLE [=y] && HAS_DMA [=y]

  - B43 [=n] && NETDEVICES [=y] && WLAN [=n] && WLAN_VENDOR_BROADCOM [=n] && (BCMA_POSSIBLE [=y] || SSB_POSSIBLE [=y]) && MAC80211 [=n]\

 && HAS_DMA [=y] && B43_SSB [=n]

  - B43LEGACY [=n] && NETDEVICES [=y] && WLAN [=n] && WLAN_VENDOR_BROADCOM [=n] && SSB_POSSIBLE [=y] && MAC80211 [=n] && HAS_DMA [=y]
```

Se almeno una delle tre condizioni precedenti è vera, allora il l'opzione CONFIG_SSB verrà attivata automaticamente (come modulo o built-in).

Dovresti invece fare in modo che tutte le tre condizioni risultino false.

----------

## spike32

 *fturco wrote:*   

> Nel nostro caso non occorre consultare "Depends on", bensì "Selected by".
> 
> Dovresti avere qualcosa simile a questo:
> 
> ```
> ...

 

Quindi nel mio caso cosa dovrei disattivare?

```
Selected by [n]:                                                                                                  │  

  │   - B43 [=n] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_BROADCOM [=n] && (BCMA_POSSIBLE [=y] || \               │  

  │ SSB_POSSIBLE [=y]) && MAC80211 [=n] && HAS_DMA [=y] && B43_SSB [=n]                                                 │  

  │   - B43LEGACY [=n] && NETDEVICES [=y] && WLAN [=y] && WLAN_VENDOR_BROADCOM [=n] && SSB_POSSIBLE [=y] && \           │  

  │ MAC80211 [=n] && HAS_DMA [=y]
```

----------

## fturco

 *spike32 wrote:*   

> Quindi nel mio caso cosa dovrei disattivare?
> 
> ```
> Selected by [n]:                                                                                                  │  
> 
> ...

 

Non sono un esperto, ma è strano perché da ciò che è scritto l'opzione SSB non è stata selezionata automaticamente, quindi dovrebbe essere possibile disattivarla manualmente...

----------

## spike32

 *fturco wrote:*   

>  *spike32 wrote:*   Quindi nel mio caso cosa dovrei disattivare?
> 
> ```
> Selected by [n]:                                                                                                  │  
> 
> ...

 

Se premo "spazio" mi fa cambiare solo tra * e M

----------

## Massimog

cosa ti da 

```
dmesg|grep ssb
```

----------

