Saturday, September 2, 2017

Linux and Dell Inspiron i7559

Almost everyone who had tried working with Linux experienced some kind of hardware support issues. Usually there are some difficulties with a new hardware - vendors are often not eager to develop and support Linux drivers.
Some time ago I got a laptop - Dell Inspiron i7559-763BLK. Right after buying Ubuntu was installed instead of Windows.
This laptop has hybrid video: discrete nVidia GeForce GTX960M and integrated CPU Intel HD Graphics 530. On the developer's machine you usually don't need GeForce power, but you need a long battery life. So I wanted to use Intel GPU. But since Ubuntu detected nVidia card it decided to use nouveau drivers by default. Which also leads to black screen after boot. 
I installed nVidia recommended drivers: 375.66. They have prime support which allows you to switch between nVidia and Intel. But Intel mode hangs on boot (even Alt + SysRq + reisub did not work). No errors in log files. OK, lets stay with nVidia. Battery life is not so great, but at least everything works. Or not? I started noticing that when I wake the system up from suspend, it hangs. But not all the time. By trial and error I found out that the system hangs when the charger is not connected during waking up. Checked the logs, found this:
NVRM: Xid (PCI:0000:01:00): 79, GPU has fallen off the bus.
Guys, always use a seat belt.
I found one possible solution: switch GPU to persistence mode:
sudo /usr/bin/nvidia-smi -pm 1
But in my case it did not help.
I tried to download and install the latest drivers from the official website (381.22) but again, got a blank screen on boot.
And finally my next try was the solution. I disabled KMS (kernel mode setting), and specified explicitly what video driver to use. To do that, I added i915.modeset=1 nouveau.modeset=0 to kernel options in Grub. Now the xserver-xorg-video-intel is used. nVidia is disabled. Problem solved. If you have some troubles using Linux on your hardware don't be upset! It's a good chance to train your patience, persistence and inventiveness ;). The solution always exists.
But maybe not implemented yet.
LOL.
Useful links: 
https://www.cyberciti.biz/faq/debian-ubuntu-rhel-fedora-linux-nvidia-nvrm-gpu-fallen-off-bus/
https://help.ubuntu.com/community/HybridGraphics 
https://wiki.archlinux.org/index.php/Kernel_mode_setting
http://www.thegeekstuff.com/2008/12/safe-reboot-of-linux-using-magic-sysrq-key/