It has been multiple weeks since I started running Fedora Linux on a new laptop, Dell XPS 15 9530.
General hardware specification of the laptop is introduced on http://www.dell.com/us/business/p/xps-15-9530/pd?oc=&model_id=xps-15-9530&l=en&s=bsd. I wanted to install Fedora 22, removing the pre-installed Windows 10.
After installing the distro, several issues popped up.
* Wireless interface didn’t work. Chipset is Broadcom BCM4352.
* Bluetooth interface didn’t work, which is Broadcom BCM20702A0.
* Graphic card driver didn’t entirely work. While the Intel integrated graphics controller did work with i915 driver, the other 3D graphics controller, Nvidia GK107M (GeForce GT 750M) couldn’t get recognized at all.
To make them work, I had to do like that:
1. Wireless interface BCM4352
Fortunately its wired network interface already worked out-of-the-box via USB-to-ethernet. At least I was able to download anything. 🙂
What I need to get was 3rd-party drivers for Broadcom BCM4352. For Fedora 22, its available as a akmod-wl package.
# rpm -i http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-22.noarch.rpm # dnf install -y akmod-wl
As the akmod-wl only contains a source rpm package, you need to compile the module again.
# dnf install -y rpm-build # rpmbuild --rebuild /usr/src/akmods/wl-kmod.latest # rpm -ivh $HOME/rpmbuild/RPMS/x86_64/kmod-wl-4.2.3-200.fc22.x86_64-18.104.22.168-9.fc22.x86_64 # modprobe wl
2. Bluetooth interface BCM20702A0
This part was strange. From the first look, the driver seemed to have been detected. “lsusb” showed the interface correctly, and “rfkill list” showed the interface “hci0”, not being blocked at all.
It turns out, however, that its necessary firmware is not installed by default. Normally the firmware should be contained in a rpm package called “linux-firmware”. But for the driver BCM 20702A0, this firmware must be manually extracted from Windows drivers, and installed under /lib/firmware. So do like below:
$ wget http://download.windowsupdate.com/d/msdownload/update/driver/drvs/2014/07/20662520_6c535fbfa9dca0d07ab069e8918896086e2af0a7.cab $ cabextract 20662520_6c535fbfa9dca0d07ab069e8918896086e2af0a7.cab $ hex2hcd BCM20702A1_001.002.014.1443.1572.hex $ sudo mv BCM20702A1_001.002.014.1443.1572.hcd /lib/firmware/brcm/BCM20702A1-0a5c-216f.hcd $ sudo ln -rs /lib/firmware/brcm/BCM20702A1-0a5c-216f.hcd /lib/firmware/brcm/BCM20702A0-0a5c-216f.hcd
And reboot it. Then bluetooth should work as expected.
3. Nvidia driver GK107M
This part was tricky. First of all, Intel HD 4700, integrated driver works fine. No Xorg.conf needed. No kernel module needed. But when I started to KDE applications like amarok, they sometimes died with segfaults in libGL. Gnome desktop didn’t even start. GLX extension cannot be loaded, according to /var/log/Xorg.0.log.
It was clear that bumblebee was necessary for switching between GPUs. First I tried to make use of Nouveau driver for X11, still no luck. So I decided to go for propriertary driver by Nvidia, although I didn’t want to do that.
# dnf -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee/fedora22/noarch/bumblebee-release-1.2-1.noarch.rpm # dnf -y --nogpgcheck install http://install.linux.ncsu.edu/pub/yum/itecs/public/bumblebee-nonfree/fedora22/noarch/bumblebee-nonfree-release-1.2-1.noarch.rpm # dnf install bumblebee-nvidia bbswitch-dkms kernel-devel
(taken from https://fedoraproject.org/wiki/Bumblebee)
You should make sure that a kernel module “bbswitch” is loaded. If not, try to rebuild it and install.
# cd /usr/src/bbswitch-0.8.0 # make install
After rebooting, I could see that GLX extension error has disappeared from /var/log/Xorg.0.log. But I found out KDE desktop was still somehow broken. So I tried to run Gnome instead, which worked fine without issues.