Please assist if possible - I'm trying to get the Broadcom WLAN adapter BCM43602 working on my Macbook Pro under Qubes OS 4.0 rc5.
"03:00.0 Network controller: Broadcom Limited BCM43602 802.11ac Wireless LAN SoC (rev 01)"
I've managed to install Qubes OS successfully (during the second part of setup, just before sys-net creation I switched to a console and started a short bash script that just loops over and over trying to remove the BCM43602 from sys-net, then I went back and completed the setup. The script successfully removed the BCM43602 from sys-net before sys-net was started by the setup wizard, meaning that I managed to avoid the system freeze that would have otherwise occurred during setup).
Now I'm trying to actually get the BCM43602 working, i.e. attach the adapter to a qube (e.g. sys-net, standalone hvm or anything at all without freezing). However it seems that the system freezes the moment I start the qube it is attached to and it doesn't matter which kernel the associated qube is actually running (e.g. it freezes even when I attach it to a qube that is a fresh Ubuntu 17.10 install with hvm and no kernel seleced). I've tried different combinations of permissive mode and no-strict-reset and pv/hvm but every combination results in freezing.
I'm not sure how to proceed? Does anyone have the BCM43602 working under 4.0 rc5?
Any pointers would be appreciated.
Thanks,
Greg
I did the following to get past the system freeze during setup on my Macbook:
1) Run Qubes installation, it will reboot and show the "Initial Setup" screen.
2) Press fn+ctrl+alt+f3 to switch to a tty (you might have to press it multiple times for some reason).
3) Logon to the tty using the user your created during part 1 of the setup.
4) If you don't know the pci address of your problematic device, type "qvm-pci l" to find it (mine is dom0:03_00.0).
5) Start a bash loop that will try to remove the problematic pci device from sys-net the moment it is created. Basically just type something like the following at the bash prompt (though replace dom0:03_00.0 with the pci address you want to remove) and hit enter:
"while ! qvm-pci d sys-net dom0:03_00.0; do sleep 0.1; done"
It will spit out lots of errors saying "no such domain 'sys-net'". That is expected, you want to leave it running while you complete the setup. Basically when sys-net is created by setup the bash loop should remove the pci device from sys-net before it is started. (You need the sleep period to be small enough so that the device will be removed between the time setup creates sys-net and the time it starts sys-net.)
6) With the bash loop running, switch back to Qubes setup using fn+ctrl+alt+f2 and complete setup as usual. If you specify the correct pci address to remove then hopefully the bash loop with remove it in the background and setup will complete without freezing.
There are probably other ways to do this, but the above worked for me.
I now do the following to attach the BCM43602 to sys-net:
I disabled "Start qube automatically on boot" for sys-net and sys-firewall in the qubes manager. I now manually start sys-net using "qvm-start sys-net" and immediately after executing that command (well about 2 seconds later) I execute "sudo xl pci-attach sys-net '03:00.0,permissive=1'" to attach the device to sys-net while it is still starting up. It seems that I have to attach the device to sys-net before it has fully booted, because if I attach it too late it doesn't seem to be detected by the VM.
Note that my particular BCM43602 has a PCI ID of 14e4:43ba which is supported by the brcmfmac driver. Your particular device might need another driver (I can't help with that I'm afraid).