Dual Boot Windows 10 and Ubuntu on Dell Inspiron 15 7000 i7559

About a year ago, I decided to splurge on a nice laptop. I wanted the best that money could buy - lots of CPU power, but lots of battery life. Not a Mac. FHD screen, but nontouch because that's probably better for battery life. But I didn't want to pay for it. Unfortunately, that's not how it works. After extensive research and price comparisons, I wound up buying the Dell Inspiron 15 7000 series with 8GB of RAM (meh) and a Terabyte 5400 RPM HDD (ewww). I quickly upgraded the device with another 8GB RAM and a Samsung 500GB SSD. It also has a graphics card from nvidia - the GTX 960M. Sadly, that one is just shy of the spec required for VR. The newer laptops in this Dell Inspiron 15 7000 line should be good enough for VR, with their nvidia GTX 1050s... Anyway, my wallet is thankful that my computer couldn't power VR.

The machine came with Windows 10, but I wanted to use Ubuntu on some occasions, for building android ROMs if for nothing else. I set it up a few months after I got the machine, and used it, with some errors. I don't remember how I got the graphics working back then, but it at least booted eventually. However, after a short while the Ubuntu HDD permanently corrupted itself (or maybe Windows did it?) and I gave up and returned to Windows, using virtualbox VMs for android ROM building and other Linux-friendly projects. That worked, but slowly and painfully, depending on the scope of the project.

Today, I decided to retire Windows 10 for the most part. It's still better for gaming, but I don't need that so often. I also had a lot of stuff installed, and the battery life was not ideal - too many startup programs which ran in the background, and I was barely ever using them. In any case, it was certainly time for a fresh install.

After syncing any important files to the cloud with odrive, Windows 10 got freshly installed on the SSD. I tried to shrink the SSD to make room for Ubuntu, but only about half of it was available, even though only 33 GB or so was used. I booted off an Ubuntu LiveCD (which just worked, last time I had to edit grub config even on the LiveCD) and then shrunk the drive with gparted, killing Windows 10 in the process. So Windows 10 got freshly installed again, this time on a nice, healthy little 80GB partition. Yay!

With that up and running, it was Ubuntu's turn.

Graphics Driver and Power Management Settings

For this section, I used this as a reference, but it's two years old and a bit rusty.

Although the Ubuntu USB booted fine with no grub tweaks, after the restart it froze during the boot sequence.

Press e to stop the boot early and add nomodeset before quiet splash.

Boot and install nvidia-381, or whatever the latest driver is.
Optionally, reboot now to see if anything breaks. Nothing did for me. No promises.

Now you'd be using the overpowered driver at all times, which is probably bad if you care about battery life at all (Hint: you should).

To fix: sudo prime-select intel

Reboot.

I tried to do that, and it froze with a line about /dev/sda6 clean ... and nothing after that.

I rebooted and added acpibacklight=native acpiosi= to the line before quiet splash, and then it booted, but screen brightness keys don't work anymore.

I don't know what those lines even mean, I want to know more...

I rebooted again and just added acpi_osi=. This time, the backlight still works!

I did some googling, and came up with this and this.

After reading those, I was comfortable making that setting a bit more permanent:

sudo nano /etc/default/grub and then change the GRUBCMDLINELINUX="" to GRUBCMDLINELINUX="acpi_osi=". Save with Ctrl+O and sudo update-grub.
Reboot.

My boot worked fine, but my cursor had disappeared. I moved it around blindly and managed to google it, someone said to log out and log back in. Done.

And it worked? That was weird.

I rebooted just to be sure, and found that I do indeed still have my cursor. So now it's time to move on to bumblebee.

sudo apt-get install bumblebee bumblebee-nvidia primus linux-headers-generic is the install command from the wiki.

You also need to update the folder location values in /etc/bumblebee/bumblebee.conf, as they assume you're using nvidia-current. Come to think of it, not sure why I am not. Wonder if that would have worked (Let me know if you get it to work that way).

In any case, I'm fine with 381 for now, I just need to change the config:

sudo sed -i -- 's/nvidia-current/nvidia-381/g' /etc/bumblebee/bumblebee.conf

And Reboot.

sudo apt-get install --no-install-recommends tlp tlp-rdw

And you should be all set, from a graphics and power management standpoint. Just use optirun in the teminal as a prefix to whatever you need run with the nvidia card.

TLDR; - Quick Guide

  • First boot: In grub, press e and add nomodeset before quiet splash.

  • sudo apt-get install nvidia-381 bumblebee bumblebee-nvidia primus linux-headers-generic

  • sudo prime-select intel

  • sudo sed -i -- 's/GRUBCMDLINELINUX=""/GRUBCMDLINELINUX="acpi_osi="/g' /etc/default/grub

  • sudo update-grub

  • sudo apt-get install

  • sudo sed -i -- 's/nvidia-current/nvidia-381/g' /etc/bumblebee/bumblebee.conf

  • sudo apt-get install --no-install-recommends tlp tlp-rdw && sudo tlp bat

  • sudo reboot

Switching to Gnome 3 Desktop

Unity is a wonderful thing. Technically speaking, unity refers to something(s) which together form a pleasing whole in some way. Why, then, would Ubuntu want to throw that out, with the "unity launcher?" Here's what I did to get rid of it (after the October release, you may not have to):

  • sudo add-apt-repository ppa:gnome3-team/gnome3

  • sudo apt-get update && sudo apt-get install gnome-shell ubuntu-gnome-desktop

  • sudo apt-get remove unity unity8

  • sudo apt-get autoremove

  • reboot

And it just worked! A little bit of display configuration (just swapping monitor arrangements), and I was good to go!

The Aftermath

It's now been two weeks since I drafted most of the above post. During that time, I've been using Ubuntu with Gnome3 almost exclusively. I've had the opportunity to take note of several differences between it and the Windows 10 system which I'd been using for the longest time before that.

First, I must say Gnome3 was a pleasure to use. Instead of relying on Everything as my launcher, gnome's built in launcher works perfectly fine. Whereas on Windows the start menu search is a little picky about when it shows you the correct results, gnome launcher search usually behaves consistently.

Multiple Desktops

On Windows 10, each new desktop is separate for each screen in a multi-monitor setup. With gnome, however, only the primary desktop switches out in other workspaces. Additional monitors are static, and kind of serve as support screens across your other workspaces as a result. For example, I keep things like a web browser and password gorilla on the second screen, and I don't have to open 4 copies of each. Further, there's no such thing as manual desktop creation or deletion in Gnome3 - if you don't have an empty workspace, gnome creates a new one for you just in case. Awesome! And last but not least, gnome allows you to set rules for which programs open in which workspaces, making it easier than ever to isolate work from play, for example. While that's possible on Windows 10 with third party software, gnome supports it out of the box.

I haven't had the occasion to reboot to Windows during this time, which means that Ubuntu and gnome are behaving at least as well as Windows was before. Most time was spent on web development. I'm using PhpStorm, Virtualbox, Vagrant and DataGrip, and all work wonderfully. Vagrant in particular is happier on an Ubuntu host, for reasons such as disk speed and lack of symlink issues.

Password Gorilla

Password Gorilla is very annoying. One of the issues they warn about when you do a dual boot with Windows 10 is possible filesystem corruption if you have fast boot enabled and Windows doesn't actually leave the drive in a state that's safe for access by other OSes like Ubuntu when you shut down. I had that disabled, but that doesn't rule out the possibility of something going awry in the filesystem department. I mounted my windows drive at /windrive and loaded my password database out of the windows copy. But when I created a new account and tried to save it, I got a peculiar error about a missing record 231.

error saving backup of database: record 231 does not exist
Password Gorilla Error

So I figured it was a Windows filesystem problem. I copied the database to a new folder in my Linux home directory and then I was able to save a new record I created after opening the copy of the database. However, I have since run into this problem again, even though I'm not loading the password database from the windows drive. This means my gorilla won't memorize any new passwords for me, it's basically read only. For now, I have to be careful to save the passwords for any new accounts to google chrome. Even if password gorilla would behave, it is WAY, WAY, WAY faster on Windows for some reason.

Shortcut Keys

One setup area which I didn't actually deal with yet would be shortcut keys. On Windows, I use Ctrl+Super+Left or Right to switch desktops. Gnome desktops are organized top to bottom, and I have not figured out what their shortcut key is supposed to be or how to configure it. However, the desktops are accessible by the same key as anything else, the super key, so that's what I've been using.

Feedback

I'm curious to hear your experiences with Windows/Ubuntu dual boot, especially if you have a similar computer to mine and use my guide to set it up. Feel free to reach out in the comments or on my contact page.