Wednesday, May 21, 2014

Dell Precision M4800 with Ubuntu Linux 14.04 (15.04 all the way down)

I would like to share in this blog my experience with laptop Dell Precision M4800. As you might know Dell is offering several variations of this product. My configuration is here:
00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor DRAM Controller (rev 06)
00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor PCI Express x16 Controller (rev 06)
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
00:03.0 Audio device: Intel Corporation Xeon E3-1200 v3/4th Gen Core Processor HD Audio Controller (rev 06)
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04)
00:16.0 Communication controller: Intel Corporation 8 Series/C220 Series Chipset Family MEI Controller #1 (rev 04)
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I217-LM (rev 04)
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04)
00:1b.0 Audio device: Intel Corporation 8 Series/C220 Series Chipset High Definition Audio Controller (rev 04)
00:1c.0 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #1 (rev d4)
00:1c.2 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #3 (rev d4)
00:1c.3 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #4 (rev d4)
00:1c.4 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #5 (rev d4)
00:1c.6 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #7 (rev d4)
00:1c.7 PCI bridge: Intel Corporation 8 Series/C220 Series Chipset Family PCI Express Root Port #8 (rev d4)
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04)
00:1f.0 ISA bridge: Intel Corporation QM87 Express LPC Controller (rev 04)
00:1f.2 IDE interface: Intel Corporation 8 Series Chipset Family 4-port SATA Controller 1 [IDE mode] - Mobile (rev 04)
00:1f.3 SMBus: Intel Corporation 8 Series/C220 Series Chipset Family SMBus Controller (rev 04)
01:00.0 VGA compatible controller: NVIDIA Corporation GK107GLM [Quadro K1100M] (rev a1)
03:00.0 Network controller: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter (rev 03)
11:00.0 SD Host controller: O2 Micro, Inc. SD/MMC Card Reader Controller (rev 01)

Note especially wireless adapter type:
03:00.0 Network controller [0280]: Broadcom Corporation BCM4352 802.11ac Wireless Network Adapter [14e4:43b1] (rev 03)

Quick summary of the challanges:
  1. Broadcom wireless card
  2. NVIDIA Optimus system with two graphic adapters
1. I have spent quite a bit if time on the broadcom wireless card. I have basically tried all possible "advices" found on internet with various drivers and methods e.g. ndiswrapper, STA driver, pre-compiled from repositories and also I tried to compile myself. Currently, the version of STA driver is 6.30.223.141.
  • ndiswrapper found the driver, but WiFi was not active, even though the driver says that device is found
  • pre-compiled driver in repositories broadcom-sta-dkms ver. 6.30.223.141-1 discovered all networks and hardware but it was not able to connect to any network - authentication window was popping up over and over again
  • my own compilation of the driver directly from broadcom web page http://www.broadcom.com/support/802.11/linux_sta.php was not working due to some errors in the code (note, that I'm 100% sure, that all necessary packages for compilation was installed). I have used this page as a guideline: http://forum.osxlatitude.com/index.php?/topic/6339-ubuntudebian-14e443b1-broadcom-corporation-device-43b1-rev-03/

Finally, you wouldn't believe what was the solution - installation of older driver release. I have downloaded from here:
https://launchpad.net/ubuntu/saucy/amd64/bcmwl-kernel-source/6.30.223.30+bdcom-0ubuntu3
After installation and restart of comupter everything was working like a charm!

2. At the beginning I was afraid, that NVIDIA Optimus Quadro K1100M and Intel Internal card arrangement will be an issue. After I have just downloaded NVIDIA proprietary driver and install it via command line my screen didn't turn on! My mistake! I should first google!
Than I re-installed the system and installed following packages:
  • nvidia-prime (latest revision 0.6.2) from Ubuntu repositories
  • nvidia binary driver (version 331.38) from Ubuntu repositories
Note, that there has been quite some dependencies selected automatically during the installation. After restart everything was running perfectly.
All other hardware is running out of box e.g. sound system incl. microphone, web camera, card reader etc.
I have to admit, that I haven't still tested bluetooth functionality. Once I do it, I'll update the post. Enjoy!

Just a recent update on Ubuntu 15.04:
I have installed right now fresh install of Ubuntu 15.04. As I can see from Synaptic manager there is this version of wireless driver 6.30.223.248+bdcom-0ubuntu2. The wireless is now working out of box and no need of downgrade is necessary. Similarly to graphics. I have just installed recommended proprietary drivers and all is working like a charm. Good job Ubuntu!