Updated August 23, 2016: Corrected command and added more details.
Updated March 29, 2017: Added note about remote CPUS printers, and reflection on using this laptop.
After 3 weeks of using this system after going through the setup described below, I'm overall fairly satisfied with the performance of this laptop with Ubuntu (it's fast and has lots of RAM), but there are still a few things I haven't bothered to get completely working, such as the microphone and webcam. I may just opt for getting a USB camera. I still have one minor issue with being able to switch between using ethernet and wifi without rebooting, but I have a suspicion that it may be an Ubuntu bug. As long as an ethernet cable is not plugged in at boot time, wifi will work flawlessly.
I recently purchased an MSI GE62 6QD Apache Pro laptop and went through the process of installing Ubuntu 16 on it. The process wasn't too difficult, but there were a few snags along the way and I wanted to share the process that worked for me:
By default, this notebook comes with windows 10. You should make a backup of the install disks in case you want to go back to windows 10 or need to roll back for some other reason. After all, you already paid for a copy of windows 10. This backup process requires 6 DVDs or iso files.
For me, I was not able to get the notebook to recoginse the Ubuntu install DVD as bootable media unless I went into the BIOS settings and switched the boot method from 'UEFI' to 'legacy'. I also disabled secure boot. I'm not sure if that was necessary, but I did it anyway.
Change the boot ordering so it will only try to boot from the install disk that we're inserting.
Make sure an ethernet cable is plugged in, as we're going to want the network configuration in the installer to be able to set up a working network connection for later.
At first, I tried installing the desktop version of Ubuntu 16, but this would only take me as far as the loading screen to the point before the installation menu appeared. I was never able to get to a shell prompt. I believe what's happening here is that the Ubuntu installer is trying to use an open source video driver that is not compatible with the GTX960M video card. Unfortunately this locks up the installer instead of at least giving a shell prompt.
The solution: Instead of trying to install the desktop version, burn a DVD to install the server version of Ubuntu 16. This will avoid trying to load the bad video driver during the install, and we can replace the driver through the shell prompt (which turns out to be as easy as 1 command).
In my case, I used the ISO 'ubuntu-16.04-server-amd64.iso' which has md5sum '23e97cd5d4145d4105fbf29878534049'. Burn a copy of this ISO, and you should be able to get through the installation process easily.
After the install, don't forget to change the boot order to boot from the hard drive.
Now reboot and log into the shell prompt. This is the part where you need your networking to be set up properly (which hopefully happened during the install process). Run these commands (the last one will download a lot and take a very long time):
sudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update sudo apt-get install nvidia-364
Now reboot and you should get to the Ubuntu Unity login screen.
If you try logging into this login prompt, you'll get 'Failed to start session'. To solve this, press Ctrl+Alt+F6. This will present you with the a login for a shell prompt. Once you're logged into the shell prompt, enter this command:
sudo apt-get install ubuntu-gnome-desktop
Just like the last command, this will take quite a while. After you're done, reboot and you should be able to log into a regular Ubuntu 16 desktop environment. This should put you in a position to do whatever you would have with a typical desktop install.
Loud Speaker Popping On Shutdown
A really awful problem I encountered at this point was a loud 'popping' sound coming from the internal speaker whenever I shut down or restart the computer. I found an option in the 'alsamixer' control that allowed me to change the 'auto-mute' option to disabled which made the popping go away, but whenever this was enabled it also made sounds play from the internal speaker whenever the headphones were plugged in.
I tried many things to fix this, but eventually discovered a program called 'hdajackretask' which can be downloaded with
sudo apt-get install alsa-tools-gui
After launching this program, I overrode any of the internal speakers or SPDIF to be 'not connected'. You'll also need to install a boot override:
This fixed the popping problem (It might take at least 2 reboots), and it also made audio only come through the headphones. One disadvantage is that audio will no longer come out of the internal speakers ever (even if the headphones are unplugged), but that wasn't a problem for me, so I stopped working on this and moved on. You might be able to get everything to work with a bit more experimenting with the hdajackretask tool.
I've read in various places that the root cause of the popping sound is related to power saving operations that automatically turn off the speaker when it is not in use. There are kernel module options that claim to control this, but they didn't have any effect for me.
My installation seemed like it was working pretty good until I tried to boot it without any ethernet cable plugged in. When I did, the system would stop booting with the following message:
A start job is running for raise network interfaces
If you let it run for 5 minutes, it will eventually boot normally, but a 5 minute boot time is intolerable. I found that you can avoid this problem by changing the timeout value in one of these files (I forget which one, was it both?) to '1sec'.
After this the system should boot fairly quick even if the ethernet cable is not plugged in. I'm not completely sure why this happens, but I suspect it is because I installed the Ubuntu server version which probably has different networking defaults.
After much messing around, I am under the impression that wifi does actually work fine on its own with my installation, but for some reason if I boot the laptop with the ethernet cable plugged in, then unplug it, the wifi will acquire an IP address, but wifi doesn't seem to work at all. If I then reboot and make sure there is no ethernet cable plugged in, wifi seems to work perfectly fine.
I should add that I did end up updating the wifi firmware because I thought that was the root cause of the switch from ethernet to wifi not working, but I don't think that made any difference. I did lots of digging in logs and it looks like the wifi firmware is loaded correctly, and all the kernel modules look like they're doing what they're supposed to. Perhaps it is an issue in the Ubuntu 16 systemd scripts?
There are some extra fancy LEDs of different colours that turn on in the keyboard with Windows, but not with the default Linux Install. Currently, all the keys have only a red glow under them, but that's not a problem to me.
I also had a problem with the input on keyboard being set to an international setting that caused weird behaviour when typing things like quotes. This might have been because of a mistake I made in the install process, but regardless, it was fixed by running:
Ironically, with this super fancy gaming video card I also experienced extreme lag in terminal with the default Unity desktop UI. I decided to switch to using LXDE instead of Unity and the problem went away and that was good enough for me.
Just after writing this, I also discovered some issues with the microphone, webcam, and wifi. I'll post an update to this post once I iron out these issues. Overall, it almost feels like Ubuntu/Linux support for laptops is getting worse instead of better.
Update March 29, 2017
I noticed that whenever I visit the college campus and connect to their wifi network, I will get the following message when shutting down the computer:
A stop job is running for remote CUPS printers available locally
This is super annoying because it always takes one minute and thirty seconds to time out. After some googling, I found that the following commands will fix this:
sudo systemctl stop cups-browsed.service # Takes a long time for some reason sudo systemctl disable cups-browsed.service
Note that the first command to stop the service takes a very long time for some reason. I thought it was hanging at first.
Also, as a general reflection on using this laptop: It is still working well and I haven't had any more problems with it. I never bothered to fix the issues with the sound and video more robustly. The issue with switching from wifi to network doesn't seem to appear anymore for whatever reason (or at least I don't seem to be triggering that broken behaviour as much).
Published 2017-04-30What is SSH? Linux Commands For Beginners
Subscribe to New Posts
Published 2016-12-15What is Git and Why Is It Useful?
Published 2016-11-18A Quick Intro to Linux Shell Scripting for Windows Developers
Published 2016-12-08Don Libes' Expect: A Surprisingly Underappreciated Unix Automation Tool
Published 2016-09-27Introducing Feedback Oriented Programming
Published 2016-09-27Introducing The Robert Elder Software Linux Operating System
Published 2016-05-25GCC's Signed Overflow Trapping With -ftrapv Silently Doesn't Work
Published 2016-01-10Virtual Memory With 256 Bytes of RAM - Interactive Demo