Home Pauline Howto Articles Uniquely NZ Small Firms Search
Global Communications and Computing
The Chillblast Defiant Optimus Mini Laptop

This page covers the setting up of my Chillblast Defiant Laptop running under a dual booted system with Windows 8.1 and Linux Mint, currently the latest version 17.2. Mint is built on top of Ubuntu and both sit at the top of the popularity stakes but Mint has the advantage of the Cinnamon Desktop which will be very much more familiar than the Ubuntu Unity Desktop (or Microsoft Windows 8.1) to the majority of Windows and Apple users. This is document is to some extent still 'work in progress' although I have been confident enough to take the Defiant away as my only machine over the last two years and there are no major outstanding issues running under Linux Mint. The Defiant 2 and Defiant 3 have upgraded video chips and a slightly faster prcessor but are otherwise identical. The nVidia drivers are the same for both models so eveything writen here should be equally applicable to both models.

The 'Bottom Line' is that everything is now working that is essential, most now works 'out of the box' although a couple of tweaks are still needed and, of course, software needs to be installed to handle the dual graphics configuration and save power by switching the discrete graphics card on and off when not required. The latest kernels in Mint 16 and 17 have greatly increased the support for the advanced Optimus configuration and nVidia GTX 765M, 860M and 960M cards. I have written an applet to support the dual graphics configuration and monitor the GPU temperature.

I did a number of tests using 32 bit and 64 bit versions and to my surprise there were few advantages in speed in the 64 bit implementations but memory and requirements are much less so my current installation is 32 bit.

I have updated progressively to Mint 18 which will be an LTS (long term support) version with up to 5 years life. The text has been updated but the old version for Mint 16 is here. I have also updated progresssively to the 'point' versions with no major problems and am currently on 18.1 .

I largely finished changing this page from a chronological "How I did it" story to a "How to do it" order with any 'unusual/extra' activities which are required to run a LiveUSB and install a fully working system.

Contents

The Chillblast Defiant and Linux - Background and Requirements

We spend quite a bit of time away from home and we have two MSI Wind Netbooks which have enabled us to keep up to date with most activities and provide music through the WiFi and bluetooth connection on our narrowboat and even watch some TV through a dongle. They are many years old and have been running out of power. But what finally precipitated Pete into looking for a replacement was the old video camera gave up and the replacement was, of course, HD and the ageing desktop could barely handle the load of video processing, leave alone the netbooks. During investigating a replacement it became clear that the nearest specification to meet our requirements tended to designated ''gaming' computers with both fast processing and good graphics. In looking through possible machines we came across the Chillblast range - they have a very good reputation for their desktops but have also started to produce some 'gaming' laptops including a small one called the Defiant which looked powerful enough to even handle video editing. We always keep up with pictures on route but this would give the opportunity to keep up with videos to avoid increasing the huge backlog. The Defiant has a Haswell architecture with an Intel Core i7 Quad processor (effectively 8 through hyperthreading) and two graphics processors, the integrated Intel 4600 GPU and an extra nVidia 765M Graphics Processor Unit (GPU) combined with the Optimus technology which only powers up and uses the power consuming discrete GPU on demand thus providing a reasonable battery life. Preliminary checks show it renders video about 5 times faster than the current 64 bit AMD Athlon 5000+ desktop and 25 times faster than the MSI Wind U100. It renders H.264 720i video at about 80% of real-time and 1080i even full HD (1080i) editing should be perfectly practical on the move.

We wanted obviously wanted a machine which was light for traveling but powerful and versatile enough to replace the Desktop and was largely self contained. The Defiant has a 13.3" 1920x1080 screen and weighs 2 kgs plus the weight of a 120 watt power adapter. It has a 1000 GByte hybrid drive (8 bytes SSD smart buffer) and 8Ggbytes 1600 Mhz RAM. It has no DVD but has Wifi, Bluetooth and an SD card reader and an HDMI output as well as VGA. We expect to largely run Linux but would prefer to also have a dual boot to Windows because of Pauline's teaching where we have to be sure that everything will work 100% although we can not remember when Pauline or Peter last used Windows other than helping others to remove the inevitable viruses. The following notes on the installation of Ubuntu are based on our Road to Freedom - A progressive migration from Windows to Ubuntu for Safety, Security and Savings in Home Computing and this will eventually provide a third part to that series - perhaps we will call it The High Ground.

Chillblast Defiant 13" Laptop with Haswell/Optimus Architecture,
Core i7 Processor and nVidia GTX 765M graphics - Specifications

The Chillblast Defiant was designed for gaming so has exactly the sort of specification which is required for Full HD Video editing. It has a vastly powerful Core i7 4700MQ 2.4 Ghz (3.4 on Turbo) quad-core (8 thread) processor, 8GB of 1600MHz DDR3 memory and mine has a NVIDIA’s GeForce GTX 765M. It has Optimus technology so when I am using the machine for something less demanding than Video processing, the GeForce switches off and the Intel HD4600 takes over, saving considerable power. It has a 13.3” screen with a Full-HD 1920 x 1080 non-reflective display.

A 1000GB hybrid SSD / HDD gives lightning fast response rates and plenty of space for Video editing in a single device, A mSATA SSD slot is available to provide even faster dedicated storage for the OS if desired. 8GB of RAM comes as standard, expandable to 16GB.

The Defiant measures 330mm x 227mm x 329mm and weighs 2.1 kg including the battery and is claimed to have up to 5 hours battery life. The MSI Wind has 5.5 hours on its power bulge 9 cell battery and weighs 1.4 kgs for a 10 inch 1024 x 600 screen. It should be a huge improvement.

Full Specification:
Core Logic: Mobile Intel® HM87 Express Chipset
Display: 13.3” (33.78cm) FHD (1920x1080) 16:9 panel, 2.8mm
Memory: 8GB 1600MHz DDR3 Memory (Expandable memory up to 16GB)
NVIDIA® Optimus Technology: GPU switchable between iGPU and dGPU
NVIDIA® Geforce GTX 765M (N14E-GE) - 2GB GDDR5 Video RAM
Storage: 1000GB Seagate Momentus XT Hybrid SSD/HDD
UK layout Keyboard
Built in touch pad with multi-gesture and scrolling function
SOUND BLASTER Cinema Surround Sound
1 x USB 2.0 port
3 x USB 3.0 ports(1x powered USB port, AC/DC)
1 x HDMI output port (with HDCP)
1 x external VGA port
1 x Headphone jack
1 x Microphone jack
1 x RJ-45 LAN port
1 x DC-in jack
6-in-1 Push-Push Card reader (MMC / RSMMC SD / Mini SD / SDHC / SDXC)
802.11N Wireless
Built in 10/100/1000Mb Base-TX Ethernet LAN
2M HD video camera
Full Range AC adapter, AC in 100~240V, 50~60Hz, DC output 19.5V, 6.15A, 120W
Removable 6 cells Smart Lithium-Ion battery pack, 62.16WH
Battery life : 300 minutes (UMA mode with 62.16WH battery)
Kensington® Lock
330 (W) x 227 (D) x 31.9 (H) mm
2.1kg, including 62.16WH battery
Motherboard with heat sinks removed - source unknown Motherboard with heat sinks removed - source unknown
Motherboard with easy access to all memory and all drive and peripheral slots
Heatpipe removed to show CPU and GPU

Using Optimus under Linux

nVidia Optimus is an computer graphics hardware power/performance optimisation technology created by nVidia which, depending on the resource load generated by client software applications, will transparently and seamlessly switch between two graphics adapters within a computer system in order to provide either maximum performance or minimum power draw from the system's graphics rendering hardware. With Optimus you can choose when to use the more powerful and battery consuming nVidia graphics card or to use the integrated power saving Intel or ATI graphics. This allows you to improve your battery life while also giving you access to more powerful graphics when needed.

Up untill recently the best way for Optimus enabled laptops to work in a Linux systems was a project called Bumblebee which enabled the nVidia Optimus Graphics processor. The latest versions of Bumblebee provided automatic power management so the nVidia Graphics card is turned off when the machine is started to save power and heat generation and is only turned on for programs which required it. A program which requires the graphics processor is specifically started in that mode by the user through Bumblebee and the Graphics card is automatically turned off when it is exited. Recently nVidia have made available their own software which works alongside their proprietory drivers to enable one to switch between the Inbuilt Intel Graphics and the more powerful but power consuming Nvidia Graphics. The sytem is called nVidia Prime. It works slightly differently in as much that it one or other graphics processor is enabled all the time and can only be switched by loging out and back in. Bumblebee enables selected programs to be called using the nVidia whilst everything else continues to use the lower power built in Intel Graphics.

Bumblebee is included in the very latest Ubuntu/Mint Distributions so most users may not need to install it through a PPA, likewise there are up to date nVidia drivers although the latest can be accessed through a PPA. Despite what people say it works on both 32 bit and 64 bit Linux kernels and the 32 bit systems seem to be more robust and supported. I initialy it does not seem to work well with the latest nVidia drivers but they have good built in support via nVidia Prime and that is automatically set up in the latest versions of Mint so I switched to nVidia Prime when I updated to Mint 17.3 Rosa. Since then I have switched back again to Bumblebee and it seems to work with both 17.3 and 18.1 although some tuning needs to be done depending on the drivers and Cinnamon one is using.

Chillblast are being very helpful and I found out at an early stage know that the Defiant is based on the Clevo WS230ST chassis and I was able to download a 'generic' manual from the Clevo web site which answered some of my questions on the BIOS whilst I was awaiting delivery. More importantly it enabled me to widen my search to other machines using the same chassis and I have come on a very useful thread namely the Sager NP7330 Linux Guide/Review which indicates that some people are successfully running a machine based on the same chassis under Linux. There is also a lot of information in these threads http://forum.notebookreview.com/sager-clevo-reviews-owners-lounges/715556-official-clevo-w230st-sager-np7330-owners-lounge.html and a very full review here http://forum.notebookreview.com/sager-clevo-reviews-owners-lounges/725922-htwingnuts-sager-np7330-clevo-w230st-review.html . There are other firms using the chassis (in the USA) but nothing like the coverage as the Sagar.

Things I initially did before installing Linux with dual boot.

This was not very different to the approach in The Road to Freedom except that Backup was not be so important as it will be a largely empty machine however Virus checkers and firewall ought to be installed even if Windows 8.1 is supposed to have its own built in. So the plan (which was largely followed so I have put times from opening the box in hours and minutes in brackets) was:

The first time it only took me 3 hours to get a protected Windows 8 system with a large chunk of free disk space to install Linux and run a LiveUSB.

Accessing the Chillblast Defiant Setup and Boot Menus

Howto Access the Bios Setup and Boot Options

Setup: To enter Setup, turn on the computer and press F2 (give the system a few seconds to enter Setup; the F2 on screen will be highlighted to illustrate that the system is processing the request) during the POST (or press F7 for boot options). If you get a “Keyboard Error”, (usually because you pressed F2 too quickly) just press F2 again.

Boot Menu: To see the boot options press F7 there seem to be two wide windows of time so this is easy with a LiveUSB but DVD drives may not be ready and require a pass in an out of the Bios Setup to buy time.

Warning: It has been reported that incorrect Bios settings can cause a Haswell Optimus system to malfunction. To correct mistakes, return to Setup and restore the Previous Values with <F2>, or Optimised Defaults with <F3> Practice this 'blind' as some Optimus and NVidia setup errors can reputedly leave a blank screen on some machines until the BIOS is reset to Optimised Defaults! I would rather not find that out the hard way. I have seen no problems to date

Tests using a LiveUSB and LiveDVD

I downloaded the iso of Ubuntu 13.10 Saucy Salamander 64 Bit (AMD) version and used UNetBootIn under Linux to create a LiveUSB with Persistence as well as burning a standard LiveDVD . UNetBootIn runs under Windows and Linux to create the Live disks. Neither this or the equivalent Mint Olivia would boot on the Defiant either from LiveUSB or DVD using F7. The DVD needed time to spin up and be recognised so I found entering and then leaving the BIOS setup (F2) gave time for it to show up on the next F7 in the Boot menu as the machine was not powered down that way.

To cut a long story short both Mint 15 Olivia and Ubuntu 13.04 were happy to boot in x64 and i32 forms after the changes below. I did a lot with Mint Olivia x64 in Persistent LiveUSB form including installing updated nVidia Drivers from the PPA (version 319.49) and then Bumblebee (version 3.21) from the it's PPA and got some very impressive results with glxspheres which ran about three times faster on the nVidia 765m than on the internal Intel 4400 which was still much faster than anything I have. The current version numbers will be different.

Changes required to boot Mint 16 Petra and Ubuntu 13.10 and higher. Mint 17 does not seem to need it.

As soon as it was available I moved to testing the new Mint 16 Petra Release Candidate LiveUSB but I could not initially get it to load - it failed with a message about a divide error on the screen which seemed to relate to the open source video driver nouveau for the nVidia card. On googling I found another user with a nVidia Optimus Geforce GTX 765M and Intel Haswell i7 also crashes in the same way and he found that booting in recovery mode allowed a boot to a software rendered fallback mode and he could then install bumblebee and nvidia drivers to get a working system.

I found the same procedure worked for me and I installed the nVidia drivers version 319.22 and bumblebee and could run nVidia Settings and other programs with optirun on the LiveUSB stick with a Gbyte of persistent memory. It did not however get round the basic problem of the drivers used during the boot process and the recovery mode boot was still required. As time has gone on more and more of the basic setting up is being done during in GRUB during the boot process, necessitated by the diversity of screens etc which have to be dealt with at an early stage. Although I was now running with the Intel Drivers for the onboard graphics and the nVidia proprietary drivers for Optimus the built in drivers were still being accessed during booting. There are a number of rather poorly documented control mechanisms of the boot process by GRUB, the boot loader - strictly it is now GRUB2. These are implemented in the control 'script' and it is possible to edit these during the boot process on a one off basis. The procedure to get round the boot problems is:

Interrupt the boot process during the countdown period by moving up and down and enter the edit mode by the Tab key (or as described on the screen if you are not using Mint).

An editor will open up that will allow you to temporarily change the grub options for the next boot, in Mint this allows access to a single line where additional options can be added or the existing options modified.

The best way that I have found to disable the nouveau driver during booting is by just adding nouveau.modeset=0 before the --persistent at the end of the line.

Enter now immediately takes you into the boot process

The changes made to the grub entry only disables the nouveau driver for the current session.

To permanently disable nouveau you need to edit (as root) the /etc/default/grub file and add nouveau.modeset=0 to the GRUB_CMDLINE_LINUX line and then run sudo update-grub.

This does not however work on a LiveUSB as you are not able to update grub so you have to edit the line every time. Changes to GRUB on installed systems are covered in more detail below at Grub boot improvements where a number of additional changes which are best all made at the same time are covered .

I have also checked the same procedure is required for Ubuntu 13.10 Saucy and Ubuntu 14.04 Trusty to boot. I thought it was also required for Mint 17 Qiana but I have subsequently done a number of LiveUSB boots without the change and also removed the change in the /etc/default/grub file.

Disk Partitioning

It is now time to discuss partitioning the hard drive

This should be a two part process with the initial shrink of a partition under Windows and final partitioning using Gparted under Linux. Somewhat to my surprise it was using the older MBR partitioning which implied that it was not UEFI booting machine which I had expected from a machine running Windows 8.1. Ubuntu/Mint will handle UEFI but it would have put a requirement of a 64 bit install. It was avery basic arrangement with a large partition for Windows (C: drive) and a small reserved partition which probably contains recovery software but not a full install image which many computer manufacturers do for easy of support and the economy of not having to provide DVDs nor the special partition for the UEFI boot. It did make it very easy as I knew reasonably well what I was doing and had done it all with the same software lots of times. All that was left was the exact planning. and layout.

So what I had was just the first tiny 350 Mbyte partition which should not be touched and a huge NTSF partition (C:) with Windows system covering the rest of the disk. So how far to shrink i? Windows 8.1 has to have a minimum of 20 Gbytes but I had lots of space so I chose 120 Gbytes so it could still be really useful or could be shrunk again. I needed several partitions and the maximum number of primary partitions under the old MBR scheme is 4 so I used one for a swap space and put all the rest into a logical partition. Swap is conventionally at the top (unless there is already a Windows recovery image partition) and 2 x the real memory and but that gave 16 Gbytes but so what as there is a lot of space. 8Gbytes would be plenty and the chances of using even that much with linux is very small even with video work.

This was initially planned to be a 64 bit system so I roughly doubled what I would normally consider for the root partition (/ 40 Gbytes) and reserved space for another root partition (30 Gbytes) so I could triple boot during development. I also left part of it unallocated at this time (for a spare home partition or encrypted partition for security??). Then I added a home folder to share between my systems of 200 Gbytes (/home) and the rest 500 Gbytes as an NTFS partition for data (/media/DATA) which can also be accessed from Windoz.

Screen Shot Screen Shot

The screen dump above is from my actual set up After Mint has been installed so the mount points show. The partition labeled reserved is to allow an extra system to be installed and allow triple booting of a development system in the future and there is also an unallocated area for an extra home partition or system (or anything else I have not thought of yet. I am now leapfrogging forwards using these two partitions in turn and as I update this I have Mint 16 and Mint 17 RC installed.

Important Information on using SSDs (Solid State Drives)

There are also some quirks with several SSDs when using Linux, one of which is a show stopper as the Samsung 850 Evo is favoured by Chilblast. There is a work-around in later kernels which has been backported to the Kernels which Ubuntu updates to but not the kernel recommended by Mint. See https://bugs.launchpad.net/ubuntu/+source/fstrim/+bug/1449005 and https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1338706. The kernel in use must newer than 3.13.0-57.95, 3.16.0-43.58 or 3.19.0-22.22. Kernels older than 3.12 and latter than 4.0.5 are all fixed.

In summary you will lose data with the recommended configurations of Mint 17.0, 17.1 and 17.2 if you have a current Samsung 8xx series SSD (or older models if you update the firmware) and you have TRIM enabled which is also the default for Mint and Ubuntu.

The problem occurs because the latest SATA specification includes a version of TRIM which queues requests. This has been implemented in kernel 3.12 but the Samsung SSDs have an error such that they report it is available whilst it actually does not work and destroys data. Older drives have updated firmware which then produces the fault as well. The fix in the kernel blacklists all calls to queued TRIM for all Samsung 8xx (including Evo and Pro) SSDs.

The kernel in Mint 17.3 is likely to be OK so I am not adding fixes yet - web searches will show how to disable TRIM in Ubuntu, in the short term the slow down will be acceptable.

Since setting up my machine I have found out a lot more about use of SSD disk drives. Mine has a hybrid drive which, I hope, has some internal optimisation but if you have a pure SSD then one wants to reduce the writes to the drive, align partition boundaries (gparted normally does that) and use a file system which allows trimming of the drive (ext4 rather than ext3 or ntfs) and efficient journalling. I am adding a new page to cover Optimising Drives, in particular SSds

Repairing a boot

After finishing the installation, it is possible to find that you have Windows 8 disabled from booting and it only boots to Mint (or Ubuntu), do not worry. In this case you can install a small utility to sort this out.

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install boot-repair

Now run boot-repair

Boot Repair may report mention a GRUB error. In most cases, just click on Apply and boot repair fixes everything. Now reboot and you should see again see a Windows 8 and Ubuntu/Mint options. I should add I have installed boot-repair as a precaution but have not yet used it in anger!

Turn off the Fast Startup option as it will lock one or more of the drives used by Windows making them inaccessible to Linux

Fast Startup (aka: hybrid boot or hybrid Shutdown) is a new feature in Windows 8 to help your PC start up faster after shutting down. When turned on, Windows 8 does this by using a hybrid shutdown (a partial hibernate) method that saves only the kernel session and device drivers (system information) to the hibernate (hiberfil.sys) file on disk instead of closing it when you shut down your PC. When you start your PC again, Windows 8 uses that saved system information to resume your system instead of having to do a cold boot to fully restart it. Using this technique with boot gives a significant advantage for boot times, since reading the hiberfile in and reinitializing drivers is much faster on most systems. Unfortunately this can lock one or more of the Windows file systems causing an error during booting of Mint as the file systems can not be mounted. This has become the default. Under Windows;

Installs from LiveUSB for assessment purposes

This is a step most users will not bother with. I did a number of installs of different systems before the final install. You must use custom partitioning and make sure you are installing into the correct partition for root and setting that partition to be reformatted every time you load a new system.

This enabled me to try out 32 and 64 bit systems and see what problems came about. It turned out that the 32 bit systems booted easily and the 64 bit systems of the Ubuntu and Mint versions I wanted to use gave problems in booting after installation. It is likely that was caused by the same problem that prevented the Mint 16 Petra LiveUSB from booting which was the open source nouveau drivers which are known not to play well with optimus until the proprietary drivers are installed and were preventing access to the internal graphics. A catch 22 as one needs to get a system installed and then load bumblebee which blacklists the nouveau drivers from loading during booting. what was important was the comparisons between 32 and 64 bit which led me to favour a 32 bit install at the time.

Final Install to Disk

So once I had confirmed which system to install the actual process was simple. The LiveUSB is run again and the various questions answered up to the partitioning where custom is selected and the partitioning above set up partition by partition including a home partition ( /home) . The only partition which is formatted is the one set to root ( / ) I used ext3 for the trial installs but for the final install of Mint 16 Petra and Mint 17 Qiana I used the newer and slightly better ext4.

NOTE: When you do the final install you want to make sure that the use your primary username as the one used during the install - this is important for a number of reasons. This makes subsequent upgrades easier and also cloning the machine. This initial user is special in several ways. To find out more read the sections below and the sections on distribution updates and on mounting files systems for use with Unison and other programes that require timestamps to be updated.

Addition steps if you are already a Linux user and want to transfer an existing user.

This only works well if the user you want to transfer was the first user set up on the other machine and the same user name and password is used on the new machine as it creates a folder in /home for that user an done can then bring in an existing home folder from another machine. I have written about the procedures for doing that under Carrying out a Distribution Update and Backing Up using tar archives.

 

Modifications to GRUB.

This brings together the changes which are Essential to boot successfully and some which I find desirable which might just as well be done at the same time. This section has been brought forwards to where it is required during installation but the sections covering the various problems and workarounds follow latter. To make these changes we need to edit /etc/default/grub as root:

gksudo gedit /etc/default/grub

shows /etc/default/grub the start of which typically contains these lines with changed/added lines coloured:

# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'

GRUB_DEFAULT=saved
GRUB_SAVEDEFAULT=true
#GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=3
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="acpi_backlight=vendor i915.disable_power_well=0 nouveau.modeset=0 quiet splash"
GRUB_CMDLINE_LINUX=""

#...................

GRUB_DEFAULT=0 will boot the first menu item and so on. GRUB_DEFAULT="saved" will boot the same entry as last time which I prefer.
GRUB_SAVEDEFAULT=true - needed to make sure the last used kernel used is saved
GRUB_TIMEOUT=3 will display the grub menu for 3 seconds rather than the default of 10 - life is too short to waste 7 seconds every boot!
acpi_backlight=vendor is an addition to make the brightness keys work correctly.
i915.disable_power_well=0 is needed in Mint 16 and Mint 17 if one wishes to use the HDMI audio - otherwise it, and associated videos, run 20% fast.
nouveau.modeset=0 - This is an Essential addition to allow booting when using Mint 16 Petra or Ubuntu 13.10+ by inhibiting the nouveau driver. It may not be needed with Mint 17.

After making any changes you must run sudo update-grub in a Terminal:

sudo update-grub

to save the changes into the file actually used during booting - I keep forgetting

How to Avoid Accidently Booting into Windows Recovery

You will notice that there are two Windows entries shown - always use the first. Many recent computers, in particular, laptops and netbooks as many computer manufacturers no longer supply the Microsoft CD/DVD for Windows but instead have a hidden partition which has a disk image to restore the machine to exactly the state you bought it. Unfortunately this is not hidden to Ubuntu and it is given as an alternative operating system in the Grub start up menu. It is not always obvious which is which without knowing thepartitioning so it is possible for the unwary to boot into the Restore Disk which is not good news as you are only a key stroke away from deleting everything and reformating the hard drive. I will not cover how to remove that from the menu here as it covered in Fun with Ubuntu - Customising The Grub 2 Boot Loader Menu but I should note it counts as a more advanced activity.

Installing Bumblebee

Bumbleebee is no longer required if you are using Mint 17.3 with the latest nVidia Drivers a the Optimus Support is built in via nVidia Prime and it seems the two are incompatible. If however you wish to try Bumblebee this is how to do it:

Bumblebee provides support for NVIDIA Optimus laptops. Using Bumblebee, you can use your NVIDIA card for rendering graphics which will be displayed using the Intel card. Bumblebee is officially supported by Ubuntu in 13.10 Saucy or newer.

For Mint 17.3 and 18.1 you will already have the nvidia-375 drivers installed but you may have to chose them in Driver Manager. Currently the bumblebee in the repositories does not work well with nvidia-375 and you have to use the bumblebee testing PPA. That and much of what follows came from an excellent WebUp8 article which I encourage you to read.

First it is recommended to make sure that you are using the intel processor

sudo prime-select intel

Now install the PPA

sudo add-apt-repository ppa:bumblebee/testing
sudo apt update

You should now install bumblebee and some other associated programs, some may be pulled in as dependencies but I found I needed to bring in some extras

sudo apt-get install bumblebee bumblebee-nvidia nvidia-settings primus

Now you need to Blacklist the the Nvidia driver you're using by adding it to /etc/modprobe.d/bumblebee.conf (from WebUp8)

Open /etc/modprobe.d/bumblebee.conf with a text editor (as root)

gksu xed /etc/modprobe.d/bumblebee.conf

And at the end of the file, add the following:

# 375
blacklist nvidia-375
blacklist nvidia-375-updates
blacklist nvidia-experimental-375

You may find it already present, I found it twice and had to remove one to make it work!

Now Configure Bumblebee

Open the Bumblebee configuration file with a text editor (as root) :

gksu xed /etc/bumblebee/bumblebee.conf

... and in this file, change the following options so they look like below for nvidia-375:

Driver=nvidia
KernelDriver=nvidia-375
LibraryPath=/usr/lib/nvidia-375:/usr/lib32/nvidia-375
XorgModulePath=/usr/lib/nvidia-375/xorg,/usr/lib/xorg/modules

... and save the file.

Now another trick which I needed on Mint 17.3 but not 18.1 - check anyway

It appears that the BusID is not set properly for some users, causing Bumblebee not to work. To check / correct this, open the /etc/bumblebee/xorg.conf.nvidia file as root with a text editor:

gksu xed /etc/bumblebee/xorg.conf.nvidia

And in this file, make sure that the "BusID" line is not commented out (it shouldn't have a "#" sign in front of the line), and that it matches your Nvidia graphics bus ID. If it's not, change it, then save the file.

To check the graphics bus ID, use the following command (make sure you look for the line with Nvidia, and not Intel):

lspci | egrep 'VGA|3D'

Reboot

Check bbswitch is installed correctly from the new PPA

dmesg | grep bbswitch

What you should see is something like this

$ dmesg | grep bbswitch
[ 19.610199] bbswitch: version 0.8
[ 19.610204] bbswitch: Found integrated VGA device 0000:00:02.0: \_SB_.PCI0.GFX0
[ 19.610207] bbswitch: Found discrete VGA device 0000:01:00.0: \_SB_.PCI0.PEG0.PEGP
[ 19.610289] bbswitch: detected an Optimus _DSM function
[ 19.610294] bbswitch: Succesfully loaded. Discrete card 0000:01:00.0 is on
[ 19.679573] bbswitch: disabling discrete graphics

Bumblebee should now have turned off the Graphics card to save a lot of power. To run your application with the discrete NVIDIA card run in the terminal:

$ optirun [options] <application> [application-parameters]

ie to run firefox to look at Catchup

optirun firefox

It should turn off when the program is closed

For a list of options for optirun run:

$ optirun --help

Normally you do not use optirun for your window manager, installations or other non graphic heavy demanding programs. The optirun command is mainly used for graphic demanding programs or for games. In the long term one will edit/create new .desktop files for programs using the NVidia driver. There is an alternative to optirun - primus which is less developed but may offer advantages to optirun.

You can also check that everything is working by running nVidia Settings like this -

optirun -b none nvidia-settings -c :8

This runs the nVidia settings program. The use of optirun is required to turn on the card before running nVidia Settings - the other options flags are only needed with nVidia settings. nvidia-settings should not work fully without optirun if the card is disabled which is the case.

The final check is to run glxspheres64 with and without using optirun and see how it speeds up. It should be installed in one of the dependencies of bumblebee. Also try the 'aquarium' test at http://webglsamples.googlecode.com/hg/aquarium/aquarium.html

Cinnamon 3.2 has an extra right click item on the main Menu to run any program with optirun but it does not work for me in Mint 18.1

Warning: Do not use Nvidia Prime to switch Graphics once Bumblebee is installed or you may end up with a blank screen according to Webup8

Uninstall the Nvidia-Prime applet to be safe.

Uninstalling Bumblebee

Webup8 also emphasises that if you later want to remove Bumblebee, make sure to purge it ("sudo apt purge bumblebee"), to make sure its configuration files are removed, or else you'll experience issues, like the Nvidia drivers remaining blacklisted.

Checking Power Saving is operational (bbswitch)

The primary goals of the Bumblebee project include smart power management of the dGPU when it's not in use. This uses bbswitch (a module) to do this in Bumblebee. Since Bumblebee 3.0, this feature is enabled by default. This allow automatic power management, without any additional configuration needs. To find the status:

sudo cat /proc/acpi/bbswitch
returns

0000:01:00.0 ON

There are some commands you can use for test and extra information at bbswitch

I also checked power consumption and GPU temperature as an indicator.

Monitoring nVidia GPU temperature

Firstly it is necessary to use optimus to call the nvidia-setting when bumblebee is in use as the GPU would otherwise be off and not respond and and with bumblebee 3.21 See http://www.webupd8.org/2013/04/bumblebee-321-released-with-ubuntu-1304.htm and there are some additional options namely: "-b none " to disable injection of any render offloading bridge (primus or VirtualGL). So to invoke nvidia-settings we use

optirun -b none nvidia-settings -c :8

and to just get the core temperatures in the terminal (or within a script) we do

optirun -b none nvidia-settings -q GPUCoreTemp -t -c :8

This works with Bumblebee 3.21 giving two temperature readings which always seem to be the same. Note the capitals now in GPUCoreTemp

optirun -b none nvidia-settings -q all -c :8

The above gives all the sensors with information so you can pick out what you want and showed me that the temperatures need capitalising

Optimising Bumblebee

There are various options built into Bumblebee which most users do not exploit. You can get a good introduction to an alternative 'backend' (Render Bridge) called Primus which is available in the standard packages on the the Webupd8 page Primus: Better Performance And Less Power Consumption For Bumblebee . In summary the Bumblebee developers explain the difference as:

Bumblebee uses VirtualGL to copy the image generated by the second (faster) GPU to your display. VirtualGL was intended for use over a network though, so it takes a great many steps to enable this (compression, sending the image over a network link, decompression, etc).

Primus doesn't perform all these "extra" steps, instead taking a more direct route (copying the rendered image in memory to the other GPU, then displaying there). In theory this should get you better performance as well as better compatibility. Running applications will "see" the OpenGL implementation of your real hardware, nothing virtual is presented to them.

Primus only uses/starts secondary GPU for OpenGL parts of applications - everything else remains on your main GPU (power savings)

I have not been able to reproduce the speed improvements that Andrew got even when using "vblank_mode=0 primusrun" instead of simply running "primusrun". It is working but primusrun is not quite as good as optirun even in that mode.

I also looked in the Bumblebee Release Notes and there is some interesting information in the Notes namely:

- VirtualGL performance is very dependent on the Transport method set. The default "proxy" setting appears to perform bad in some situations. Try other available settings like "rgb" or "yuv".
- in many cases, primus offers better performance; please try it and report compatibility issues in primus tracker, if you find any; for now VirtualGL is still preferred as the default auto detected render bridge, while primus is being tested at larger scales before being released as default.

I looked at the manual page for optirun and found the following about the appropriate options:

-b, --bridge METHOD
acceleration/displaying bridge to use. Valid values are auto, virtualgl and primus. The --vgl-* options
only make sense when using the virtualgl bridge, while the --primus-* options apply only when using the
primus bridge. Additionally, value none is recognized, and its effect is to add paths to driver
libraries to LD_LIBRARY_PATH (useful for nvidia-settings and CUDA applications)

-c, --vgl-compress METHOD
image compression or transport to use with VirtualGL. Valid values for METHOD are proxy, jpeg, rgb, xv
and yuv. Changing this setting may affect performance, CPU usage and image quality

The compression method can offer significant improvements in speed.

Some examples of the commands I used during investigation were:

/opt/VirtualGL/bin/glxspheres64
optirun -c proxy /opt/VirtualGL/bin/glxspheres64
vblank_mode=0 optirun -b primus /opt/VirtualGL/bin/glxspheres64
optirun -c yuv /opt/VirtualGL/bin/glxspheres64
optirun -c jpeg /opt/VirtualGL/bin/glxspheres64
vblank_mode=0 /opt/VirtualGL/bin/glxspheres64

The Integrated Intel 4600 Graphics gave 130 Mpixels/sec. Using primus gave 239 Mpixels/sec with video blanking switched off. Using the optirun default gave 270 Mpixels/sec. Using optirun with yuv compression gave 315 Mpixels/sec and jpeg compression gave 361 Mpixels/sec (33% better than the default). The most interesting result perhaps was that turning video blanking off for the integrated graphics processor gave the best result of all at 385 Mpixels/sec. All were with the window maximised on a 1920x1080 screen and nvidia-319 driver. I have not carried out respective power measurements.

Update: I have rerun the tests with the latest nvidia driver nvidia-375 and the results are similar but my impression is that the performance is slightly lower and certainly no better.

In summary - it is worth trying the various options on real programs as the glxspheres test does not exercise the graphics processor fully and there will be tradeoffs in quality of speed, power and display. However for normal use the integrated graphics seem very good and the lower figures for it are often because of the video blanking limiting the performance to that of the screen leaving a large margin in hand. Update: I have found a lot of similar conflicting performance results with primus in the comments on the Webupd8 page Primus: Better Performance And Less Power Consumption For Bumblebee but nothing much on compression mechanisms.

Screen ShotBAND (Bumblebee And NVidia Display) Applet

Screen Shot

Screen Shot

This is an applet I have write to get round the problems of the existing nVidia/Bumblebee Monitoring Applets, in particular that of additional power usage when the nVidia Card is not in use. The screenshot shows two sample programs set up in the left click menu and the DGPU is on so the temperature is displayed. You will note that there are two additional and useful applets to the right of BAND.

It either displays the nVidia GPU temperature when running or a message that the DGPU (Discrete Graphics Processor Unit) is off. It interrogates bbswitch to get the status and when the card is on it uses nvidia-settings to get the GPU temperature. It uses the same fudge as gputemperature@silentage.com to run nvidia-settings synchronously and writes the output to a temporary file in applet folder. It currently has a delay of 20 seconds on loading before it gives information as bumblebee and bbswitch seem to take a while to come up at boot time.

The right click context menu gives the ability to easily run the nVidia Settings program without use of the terminal and also the System Monitor and Power Statistics, all useful for monitoring Bumblebee and power consumption which is paramount when using a laptop on batteries.

The standard left click menu provides a configurable list of programs which one can run using the discrete nVidia graphics through Bumblebee - this otherwise requires them to be called through optirun in a terminal or via a modified launcher. This list is configured using the standard applet configuration mechanism available from Cinnamon 1.8 . One can also configure the update rate of the applet in settings.

The latest version can be downloaded from the Cinnamon Spices Web Site. There is a longer write up on my Cinnamon Spices page.

Overclocking the GPU using nVidia Settings

Possible but not explored yet - I understand that an nVidia Settings configuration file needs changing to make this feature visible.

Setting up the new machine - other desirable changes

Set up file system to correctly mount 'DATA' drive to allow use of unison and other programs which needing to set time stamps.

The mount point for the DATA partition (/media/DATA) should have been set up during the partitioning but I still find it necessary then edit the file system table /etc/fstab to get it auto-mounting as I want. The problem is that only the owner can reset time stamps on files which is required by some synchronisation programs such as Unison. This also makes the choice of initial user important. Again this has been written about in the past at the end of the first reference above and is not of the essence for this write up but for information my section of fstab now looks like.

# /media/DATA was on /dev/sda5 during installation
UUID=2FBF44BB538624C0 /media/DATA ntfs defaults,umask=000,uid=pcurtis,gid=46 0 0

The changes firstly set the owner (uid is User id) to the main user who will be the only one who will be able to set timestamps. The second change means that the mask which sets the file permissions allows everyone read write and execute access rather than just the owner and group (46 is plugdev group) - you may want to keep that tighter.

Change auto-mount point for USB drives back to /media

Ubuntu (and therefore Mint) have changed the mount points for USB drives from /media/USB_DRIVE_NAME to /media/USERNAME/USB_DRIVE_NAME. One can change the behaviour by using a udev feature in Ubuntu 13.04 and higher based distributions (needs udisks version 2.0.91 or higher).

Create and edit a new file /etc/udev/rules.d/99-udisks2.rules

sudo gedit /etc/udev/rules.d/99-udisks2.rules

and cut and paste into the file

ENV{ID_FS_USAGE}=="filesystem", ENV{UDISKS_FILESYSTEM_SHARED}="1"

then activate the new udev rule by restarting or by

sudo udevadm control --reload

When the drives are now unplugged and plugged back in they will mount at /media/USB_DRIVE_NAME

 

Cinnamon Users - nVidia and System monitoring applets

lm-sensors and the CPU Temperature Indicator 1.0 applet

lm-sensors is used by some of the monitoring applets. It needs to be set up initially by running a setup in the terminal. You have options to let it investigate many options and there are preferred yes/no options for each - you should keep on to the safe side and not scan those that are not recommended and certainly NOT the graphics chip ones at the end, not only because nvidia-settings provides the information but also they have been reported to occasionally cause problems and the cause is unknown. It is however believed to be safe for monitoring CPU temperatures. There us an applet which uses lm-sensors and displays the CPU temperatures for each core plus an average in panel called CPU Temperature Indicator 1.0 which I have loaded at present. You can see it in the panel in the screendumps.

CPU Load, Memory Utilisation and Network Statistics

Image

Image

The System Monitor built in and accessible from the menu is an essential tool but not one to leave running. There are various applets which can display this data in the toolbar and I am using the Multi-Core System Monitor 1.4 which gives an graphical display in the toolbar and a more comprehensive pop-up. I only monitor the Processor Loads and Memory Use as I have written my own network monitor applet, the Network Usage Monitor with Alerts

The screendump shows applets for Network, CPU temperature, CPU loads (running flat out processing video rendering), Memory Usage breakdown including caching and GPU temperature (GPU on at time). The full information is on the popup. It also shows system applets for bluetooth and brightness to the right.

Optimising some common programs under Mint 16 and higher

Skype

Skype has two problems on the Defiant under Mint 15. Neither have anything specific to do with using a Optimus enable machine as far as I can tell. The Skype section is not in what seems a logical place but it was here that another problem was identified which is also present in the next section.

Skype Audio - crackling bug

The first is that the audio is terrible as Skype (which is now owned by Microsoft) has not been updated to take account of the recent versions of pulse audio. There is a fix which works but needs better integration. It needs an environment variable to be set when skype is called.

Test it by doing it like the following in a terminal window:

env PULSE_LATENCY_MSEC=30 skype %U

Try increasing the number if the crackling does not stop - I found 90 worked well.

You also can try putting this in the desktop file that links to and starts up Skype or using the menu editor in Mint.

Either locate a skype.desktop file and open it with a text editor.

Find the line that reads Exec=skype %U and modify it to the following (exactly as written):

Exec=env PULSE_LATENCY_MSEC=30 skype %U

Save the file. Remove your old shortcut in the menu and replace it with the new one. You may need to reboot, dependent upon your Linux distribution.

Or edit directly using the Menu editor.

Skype - internal microphone may not work.

This problem has not affected me but a user who had succesfully used my other instructions reported this problem on a Defiant 3 running a fresh install of Mint 17.1 Cinnamon (64bit). His searches turned up http://unix.stackexchange.com/questions/168200/fix-skype-audio-input-in-mint-17-cinnamon which solved the problem for him. If anyone else has the problem and this solves it please let me know and I will expand this section.

Steam

I have not used Steam but the same anonymous user, that he had tried running Half-Life2 and Portal but the images were almost black. After trying many suggestions the following link provided the solution http://forums.linuxmint.com/viewtopic.php?f=90&t=155095 namely that libtxc isn't loaded automatically as a dependency, so the textures aren't loading properly. So install them by:

sudo apt-get install libtxc-dxtn-s2tc0 libtxc-dxtn-s2tc0:i386

That worked for him on Half-Life2, Portal and The Talos Principle.

Sorting Video playback and monitoring in editors

A green screen can occur in Kdenlive, Openshot and VLC with their standard configurations but not in the Mint Videos player or Cheese (the webcam application) .

Videos: This is the pre-installed player in Mint 15 and is actually the Totem player. This does not have the Green Screen problem as far as I can tell.

VLC: Version 2.08 offers Video driver option and leaving the Accelerated box ticked and the output set to OpenGL GLX video output (XCB) works well. I have not explored all the options.

Kdenlive: This seems to be a driver problem and Settings -> Configure kdenlive -> Playback lists 10 options of Video driver to use as well as an OpenGL tick box. Choosing XVideo and ticking the OpenGL box works fine and gives a smooth preview even without optirun. I have not explored all the other options.

Openshot: does not have any options so currently does not work on the Defiant under Mint 15 and untested under Mint 16 and 17.

Googleearth

Google have never supported Googleearth very well on Linux. Google Earth is available for GNU/Linux from their web site, but is non- free software and also does not integrate well into an Ubuntu/Debian based system. There is a utility in the Ubuntu Repositories which should make it possible to build your own personal Debian package of Google Earth. The packaging itself is Free Software, but the Google Earth program is governed by the copyright holder (Google), so you may be limited as to what you can do with the resulting package (i.e. no redistribution for commercial use, etc). The built in installer was also broken in Ubuntu 13.10 Saucy so the Debian one was needed. This was probably one of the results of the switch from ia32-libs, a huge package of 32 bit libraries to enable 32 bit programs to function in a 64 bit linux to instead use Multiarch, which is intended to be a replacement with the advantage that only required packages are brought in. However not everything has been sorted before ia32-libs was withdrawn. I therefore spent a lot of time when I was testing out 64 bit systems which I exploited when it came to using Googleearth on the Defiant and other machines. The version of Googleearth that I finally got working is not the most recent but perfectly adequate and I have just kept using it in Mint 16 and 17. I never fully understood what I was doing but if you want Click to display more information 

Googleearth search fails with an HTTP error box

This is a known problem and has to do with a library package which exists in several locations including within googleearth. The one in googleearth is incompatible on some systems leading to this error. There are two solutions to try.

Rename the file /usr/lib/googleearth/libGL.so.1 (safer than deleting it)

sudo mv /usr/lib/googleearth/libGL.so.1 /usr/lib/googleearth/libGL.so.1.bak

If that is not enough or the file does not exist then the following links to a working version:

sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/googleearth/

Java

I have found that at least one of my important web sites does not work with the open source java plugin (icedtea plugin) under Mint 17 so I have been forced into the proprietory Oracle Java 8 using a PPA with a download script from Webup8. In sumary the proceedure was quick, apart from a huge download and the following shows the major stems

pcurtis@defiant:~$ java -version
java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.7) (7u55-2.4.7-1ubuntu1)
OpenJDK Server VM (build 24.51-b03, mixed mode)

pcurtis@defiant:~$ sudo add-apt-repository ppa:webupd8team/java

............................

pcurtis@defiant:~$ sudo apt-get update

..................................

pcurtis@defiant:~$ sudo apt-get install oracle-java8-installer

.................................................

pcurtis@defiant:~$ java -version
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)

You can see the new Java has been installed and activated. You now have to enable the pluging in Firefox by Tools -> Addons and you will find the new Java plugin (11.5.2 or higher ) is disabled so use the drop down box to set 'Always Activate' or 'Ask to Activate'

You can find out what you have and I believe switch back by:

pcurtis@defiant:~$ sudo update-java-alternatives -h // Find out about command
[sudo] password for pcurtis:
usage: update-java-alternatives [--jre-headless] [--jre] [--plugin] [ -t|--test|-v|--verbose]
-l|--list [<jname>]
-s|--set <jname>
-a|--auto
-h|-?|--help

pcurtis@defiant:~$ sudo update-java-alternatives -l // List Java versions installed
java-1.7.0-openjdk-i386 1071 /usr/lib/jvm/java-1.7.0-openjdk-i386
java-8-oracle 1072 /usr/lib/jvm/java-8-oracle

pcurtis@defiant:~$ sudo update-java-alternatives -s java-1.7.0-openjdk-i386 //Switch back NOT TESTED

HDMI Output

Video

I initially only tested without Optirun and using Displays under Settings. Setting the LCD to the same resolution as my Goldstar 23" DVI enabled monitor (1680 x 1050) through a converter cable enabled mirror use and I could also choose either by switching the other monitor off in the panel. Using a dual monitor set up may be possible but I have not tried it.

I have since tried with an HDMI input on a 1920x1080 TV and again it worked fine with both in the same resolution and one could switch from one to the other or mirrored. If mirrored was set one could unplug and replug the monitor and it would sort itself out automatically. The same applied for a VGA cable and leaving a mirrored setting seemed to be good. The settings were preserved through a suspend. The use as a monitor seems fine.

HDMI sound output has had problems:

Audio - Speed is wrong - not specific to Defiant

No sound and no sound settings to switch to HDMI sound when using Mint 15.

This seems to be another kernel regression as sound worked in kernels prior to 3.8.0.19. See

This is solved in kernel 3.11.0 used in Mint 16 Petra and I have done some tests on Qiana now it is available and sound was available fine but see the next problem!

Fast audio playback on Intel Haswell HDMI

Playback of audio (and hence video) through Intel Haswell HDMI is accelerated by about 20%, and pitch shifted. Playback through the internal speakers and output socket is fine. This caused me a lot of grief as there were lots of reports but no solutions on the internet. I finally found a kernel bug report which had bisected back to the commit causing the problem and produced a kernel command line input to workaround the problem - by then I had started installing old and new kernels from the ubuntu mainline series - instructive but not a good way to proceed although I did find kernel 3.10.33 worked! See https://bugzilla.kernel.org/show_bug.cgi?id=74861

The solution is similar to the fix for brightness keys and to test one adds a string to the boot command lines The procedure to get round the boot problems is:

Interrupt the boot process during the countdown period by moving up and down and enter the edit mode by the Tab key (or as described on the screen if you are not using Mint).

An editor will open up that will allow you to temporarily change the grub options for the next boot, in Mint this allows access to a single line where additional options can be added or the existing options modified.

Add i915.disable_power_well=0 before the --persistent at the end of the line.

Enter now immediately takes you into the boot process

The changes made to the grub entry only work for the current session.

To permanently make changes you need to edit (as root) the /etc/default/grub file and add i915.disable_power_well=0 to the GRUB_CMDLINE_LINUX line and then run sudo update-grub.

This does not however work on a LiveUSB as you are not able to update grub so you have to edit the line every time. Changes to GRUB on installed systems are covered in more detail at Grub boot improvements where a number of additional changes which are best all made at the same time are covered and I have included this change until it is fixed in the kernel.

I have done upgrades from Mint 17 to 17.1 and then 17.2 and these additions seem to remain in the grub file.

Defiant Wifi and Bluetooth

This uses the Intel Centrino Advanced-N 6235 802.11a/g/n, dual stream 2x2, dual-band WiFi + Bluetooth 4.0 PCIe half mini card. See http://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/centrino-advanced-n-wimax-6235-brief.pdf for more details. I understand from Chillblast that the WiFi works much better with WPA than WEP which I still have on a router for old XP machines and hardware. It seems fine close round the house with WEP but this is probably the excuse to change. The card has both hardware and software switching of radio but the hardware mode does not seem to be implemented in Mint so there may be a small extra power consumption.

Bluetooth

Bluetooth was one of the last issues to address on the Defiant and I have some slightly mixed results on what I have tried. The bluetooth Applet is new in Cinnamon 16 in that it is now in the Cinnamon Settings but closely based on what went before with gnome-control-center. It works fine for pairing a bluetooth audio receiver which enable me to pass audio to the HiFi on the boat or house without wires. The Audio receiver then works fine as expected. Also tested in Mint 17 where I have a possible problem as I seem to lose the applet after a suspend and it needs a cinnamon restart to restore it although bluetooth continues to work.

Mobile Phone Tethering using internal modem (DUN) not working under Mint 16/17 and Ubuntu 13.10/14.04

My main use of Bluetooth to access modems in my older phones and use the spare data allowances for internet access in the UK. I have covered this at length in Adding Spices to Ubuntu - Bluetooth and Connecting to the Internet via Bluetooth modems in phones Unfortunately this does not work seem to work under Mint 16 or 17 on the Defiant. Eventually I went back to the Mint 15 Olivia and it works fine on the Defiant both using the inbuilt mechanisms through the network manager and also through gnome-ppp which is my usual way because there has been a problem starting at kernel 3.8 with the inbuilt mechanism. Neither way works under 16/17 and this seems to be a real bug but one not reported and I have filed a bug report at https://github.com/linuxmint/cinnamon-bluetooth/issues/5. I suspect few people 'tether' using bluetooth these days although I know at least one sailor who hauls his bluetooth connected phone up the mast to get a good data connection at sea!

I have done some further investigation which confirm it is not a Defiant problem and have a crude workaround which I have added to Adding Spices to Ubuntu - Bluetooth and Connecting to the Internet via Bluetooth modems in phones and added my findings to the bug report. (Last Updated 18th January 2014)

Tethering via Bluetooth to an Android Phone

This proved to be very easy and provides access to the internet via an Android smart phone - in my case either a Samsung S3 Mini (GT-I8200N) with Android 4.2.2 or a Samsung S3 (GT-I9301I) with Android 4.4.2) although this should work with most phones and equal or higher versions of Android. The phone needs an active internet connection which can be a mobile phone connection with Data enabled or a Wifi connection. One might ask why bother in the case of a wifi connection, why not connect directly? It has obvious advantages if you are on a 'pay by time' connection as you can connect several machines as well as the phone and it also gives extra security in an internet cafe. In may cases the phone can be set up to log in automatically to a Sky or similar Wifi connection.

First we need to set up and pair the Android Phone to the Computer

Screen Shot Screen Shot

That is basically it - when you click on the network manager applet in the panel you should have an extra heading Mobile Broadband with the new connection GT-I8200N under it.

Screen Shot Screen Shot

The pairing is slightly different in Mint 18 - you have to accept the confirm the number provided on Both machines and the button is very small at top right on the computer. You settings screen is also greatly simplified and you no longer need to explicitly tick a box to use with the network manager, it is done automatically and it shows in Network manager as above.

You only need to pair once after which you just need to click on the GT-I8200 connection after ensuring the following are satisfied:

To disconnect or after disconnection

I have found it is possible to make duplicate connections which show up in the network Manager Applet and there is ne simple way to remove them. The only way seems to be to do to the folder that contains them /etc/NetworkManager/system-connections/ and delete the duplicates - you need root privileges so use

gksu /etc/NetworkManager/system-connections/

There is no quick links in the notification panel on the Android phone under 4.2.2 for switching tethering on and off but you can add a Settings widget to the home screen to take you straight to the tethering settings. Android 4.4.2 has a link on the notification panel and a long hold takes you to the full tethering settings.

Note that you can use data very fast from a computer especially if there are automatic upgrades etc. Experiment with a Wifi connection on the phone first and use a data monitoring applet such as NUMA. Check data use frequently on the Phone.

More about the connections used by Android for Bluetooth Tethering - PAN, NAP and BNEP

The Android Bluetooth tethered connection uses a Personal Area Network (PAN) which is a computer network used for data transmission among devices such as computers, telephones and personal digital assistants. PANs can be used for communication among the personal devices themselves or for connecting to a higher level network and the Internet. A Bluetooth PAN is composed of up to 8 active devices in a master-slave relationship (a very large number of devices can be connected in "parked" mode). The first Bluetooth device is the master or in this case the Network Access Point (NAP), and all other devices are slaves that communicate with the master. The communication protocol is the Bluetooth Network Encapsulation Protocol (BNEP) which is used to transport common networking protocols over the Bluetooth media such as IPv4 and IPv6. The packet format is based on Ethernet.

The Bluetooth manager detects that the Android device supports PAN/NAP and, by ticking the box, creates a connection for the Network Manager. The Network Manager (in the form of the applet) makes this available but the support is incomplete. As mentioned above one easily ends up with duplicate connection which have to be deleted from the terminal as root. The connection is also identified by the Bluetooth address and it delivers this rather than the actual connection interface which is bnep0 and is displayed as a Mobile Broadband Connection which is an approximation to the truth! This causes a problem with my NUMA applet which depends on the interface delivered by the Network Manager so I have had to add an exception as I have with the ppp0 interfaces used by Mobile Broadband connection.

Implementing an Airplane Mode in Defiant

The Defiant has an indicator light for Airplane mode and it can be switched on by Fn F11 under Windows and this turns off all transmitters (Bluetooth and Wifi). It is implemented by a Windows Driver. This does not seem to be a hardware switch but only in software and the light seems just to be an indicator which is unrelated to the hardware. If one sets Airplane Mode using Fn F11 in Windows and turns the machine off the indicator is still on when you reboot into Linux (Mint 15) but the Wifi can be turned on and off as usual and works with the light still lit. This is not ideal as there is a real risk that a linux user might not realise and there is a finite, if small, risk that aircraft or hospital systems could be affected. The light does not have any obvious control other than in a dual boot system via windows.

In Mint 15, 16 and 17 the Network Manager -> Settings has a Airplane Mode switch which switches both Wireless and Bluetooth off.

I have set up a keyboard map from Super + F11 to open the Network screen with the switch for airplane mode in front of one - it may be possible to look at the code and write a direct call script.

Keyboard Mapping in Mint 16 and 17 is found by System Settings -> Hardware section -> Keyboard -> Keyboard Shortcuts tab: Click Custom Shortcuts then Add custom Shortcut which opens a small window: Set Name to Aircraft Mode and Command: to cinnamon-settings network then Add. Now click on the Aircraft Mode entry which will be in the list and then click twice on space marked unassigned and it will change to New accelerator. Now use the key combination you want to set which is Super and F11 - that it you can close the Window or do the same to set up Display Manager on Super F7 with command cinnamanon-settings display

Card Reader Driver - Realtek

Works fine under Mint 17 Qiana and latter versions of Petra.

Sorting the Fn and Function Keys (Blue markings on keyboard)

The function keys (F1 - F12 etc.) act as hot keys when pressed while the Fn key is held down.

Function Keys & Visual Indicators Action in Windows Comments
Fn + ~ Play/Pause (in Audio/Video Programs)

Does not work
Not an issue
Most programs have
their own hot key

Fn + 1 Fan Control Toggle
between Automatic Fan Control
and Full Power
As expected
Fn + F1 Touchpad Toggle As expected
Fn + F2 Turn LCD Back light Off
Press a key to or use Touchpad to turn on
As expected
Fn + F3 Mute Toggle As expected
Fn + F4 Sleep Toggle As expected
Fn +F5/F6 Volume Decrease/Increase As expected
Fn + F7 Display Toggle - not actually a toggle but provides access to display configuration under Windows.

Does Nothing
Use a key binding to 'Displays' in Settings Manager using Super+F7

Fn +F8/F9 Brightness Decrease/Increase

Decreases but does not Increase
See my fix in Grub2

Fn + F10

PC Camera Power Toggle
Only indicator is on Camera
(If camera in use)

As expected
Fn + F11 Airplane Mode Toggle
Indicator Light

Does Nothing
Indicator does not change
from last setting in Windows
Alternative Needed
Key binding 'Network Settings' to Super+F11
as Fn is not recognised as a 'modifier'

Fn + F12 Toggle Keyboard Illumination
and Adjust Brightness Level
As expected
Fn + Num Lock Provides Numeric Keypad with indicator light
Indicator Light
As expected including indicator
Fn + Scr Lock Scroll Lock

Does Nothing
Rarely used except as toggle
for KVM switches
Keystroke mapping may be possible
but not a priority to me

Fn + Power Toggle USB port power on right front on and off independent of computer to power USB devices when Mains adapter in use or battery above 20% As expected including flashing orange power light

Brightness Keys Bug

There is a bug reported in the kernel https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1218547

The core of the issue is that there are two interfaces present that are trying to control brightness. If one boots with a kernel boot parameter of "acpi_backlight=vendor" this disables acpi_video0 interface leaving intel_backlight.

The acpi_backlight=vendor can be added by editing the boot sequence during a boot to test and if works it can be included by editing the grub start up scripts in a permanent way - this has already been included in the modifications to Grub discussed above.

Distribution Updates

Performance Tests

Comparison of 32 and 64 bit performance

Ubuntu have always recommended running the 32 bit system, certainly for systems of 2 Gbytes memory or under as the additional memory requirements cancel out any gains from the richer instruction set and faster processing.

I have done a quick and dirty check on my AMD Athlon 64 dual processor 5000+ with 2 Gbytes of Memory which is on the boundary. Speed in rendering videos (which is a good processor benchmark) was only 5% faster, almost within the measurement noise. Memory use was up 40% on average with quite a wide variation (28% Firefox with many tabs on startup and 54% Thunderbird with many accounts on startup). This is in line with Tests by Phoronix on Ubuntu 13.10 amd64 and i32 where Video and Audio processing showed ~15% gain and only FFTs showed a lot more, in most cases it was a very marginal or none existent gain.

I also used the benchmarks at the end of the System Information program - install hardinfo to access it.

Benchmarks AMD Athlon 5000+ i32 Mint 16 AMD Athlon 5000+
x64 Mint 17

Defiant i32 Mint 17

Defiant x64
Mint 17.3
CPU Blowfish 8.39 7.36 (lower is better)  1.77 1.79
CPU CryptoHash 125.2 163.43 (higher is better) 624 839 (higher better)
CPU Fibonacci 2.93 3.55 (lower is better) 1.38 1.22
CPU N-Queens 16.09 15.12 (lower is better) 0.48 0.45
FPU FFT 6.75 7.80 (lower is better) 0.69 0.75
GXLSpheres 1920x1080 N/A (at 1680x1050)
11 fps
18 Mpixels/sec
(quite variable)
120 fps
237 Mpixels/sec

Intel: 192 fps
375 Mpixels/sec
Nvidia: 420 fps
830 Mpixels/sec

It is interesting to see how little change there is between 32 and 64 bit linux - 10% max and sometimes the 32 is actually faster on both machines. The change in Kernel 3.11.0 -> 3.13.0 and drivers nVidia-219 -> nVidia-331 also makes small differences between Mint 16 and 17, generally in favour of Mint 17 but not enough to account for much of the differences on the AMD Athlon 5000+ machine. Mint 17.3 with kernel 3.19 produced much better figures for GLXSpheres.

Power Saving Figures with Discrete GPU Off

These tests were run it on a LiveUSB but with a 64 bit system (30% brightness and nothing at all running except the Power statistics screen). The results are that an idle of 23 watts drops to 16 watts - a saving of 7 watts giving a battery life of nearly 4 hours rather than the 2 hours 40m which is worth having. I get the impression that the 32 bit kernels use less power with the GPU on and slightly less with it off but a like for like would need it to be run under a LiveUSB.

Screen Shot Screen Shot

GPU off and no programs running other than the terminal and this monitor with fudge in Mint 15

Screen Shot Screen Shot

You can see the increase as I run the program to switch the GPU on at 6 minutes in and increase to 23 watts from 16 watts

Screen Shot Screen Shot

The predicted time of operation with the GPU off and no programs running other than the terminal and this monitor - compare to 2 hours 45 mins which is the case with the GPU on and Optimus enabled.

Other Power Saving

There are at least two applications which claim to optimise the power saving settings on linux machines. The are Laptop Mode Tools and TLP. Neither are in the standard repositories and need PPAs to install them. I have tried both and can not truthfully say that either produce any significant savings on the Defiant. The main power savings options already seem to be well set up and I am pretty sure I would have seen even a 0.5 watt saving and neither produce that in normal use both leave the power at 15.5 watts on idle with firefox open (equivalent to 4 hours on battery) as above. I have left TLP installed. The links are to Webupd8 articles if you do want to follow up further. The main power savings are gained by turning the brightness to circa 30% and turning off the keyboard illumination. I got no significant savings from turning Bluetooth off.

Note: I have not found a way to turn Bluetooth or Wifi Hardware off, only to disable in software so there still be some scope for savings.

Turbo Mode Performance


Screen Shot Screen Shot

The above screen dump is from the output od the i7z program which is now in the Ubuntu Repositories. This was obtained with a processor load of about 25% average and all 4 processors are in Turbo mode It shows that the core temperatures are at about 65 degrees but the fan was running at quite a high level.

Screen Shot Screen Shot

The above is using all 8 cores to render h264 HD Video. All processors are running close to flat out and the frequency has been dropped back to 3.1Ghz - 100Mhz less than the maximum the Turbo Multiplier for 4 processors provides although the temperature has risen to 87 deg.

Screen Shot Screen Shot

The above shows the situation when the machine is idling - the processors speeds have been reduced lowering power consumption and the temperatures are now low and the fan is not running.

In conclusion the Turbo modes and control over power and speed seems to all be implemented under Linux.

Optimising Drives and the use of pure Solid State Drives (SSDs)

This has been moved to a new page Guidance for the use of Solid State Drives in Linux systems

STOP PRESS - CATASTROPHIC PROBLEM WITH SAMSUNG SSDs

There are also some quirks with several SSDs when using Linux, one of which is a show stopper as it is with the Samsung 850 Evo favoured by Chilblast. There is a work-around in later kernels which has been backported to the Kernels which Ubuntu updates to but not the kernel recommended by Mint. See https://bugs.launchpad.net/ubuntu/+source/fstrim/+bug/1449005 and https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1338706. The kernel in use must newer than 3.13.0-57.95, 3.16.0-43.58 or 3.19.0-22.22. Kernels older than 3.12 and latter than 4.0.5 are all fixed.

In summary you will lose data with the recommended configurations of Mint 17.0, 17.1 and 17.2 if you have a current Samsung 8xx series SSD (or older models if you update the firmware) and you have TRIM enabled which is also the default for Mint and Ubuntu.

The problem occurs because the latest SATA specification includes a version of TRIM which queues requests. This has been implemented in kernel 3.12 but the Samsung SSDs have an error such that they report it is available whilst it actually does not work and destroys data. Older drives have updated firmware which then produces the fault as well. The fix in the kernel blacklists all calls to queued TRIM for all Samsung 8xx (including Evo and Pro) SSDs.

The kernel in Mint 17.3 is likely to be OK so I am not adding fixes yet - web searches will show how to disable TRIM in Ubuntu and in the short term the slow down will be acceptable.

Partitioning and SSDs (solid State Drives)

I am starting to bring together various pieces of information I have on optimising performance. I have been aware for a while about two things:

I was however unaware of many of the other specific requirements of effective use of SSDs which I will start to cover below.

Swap File management

A primary way to reduce disk usage is to reduce the use of Swap Space which is the area on a hard disk which is part of the Virtual Memory of your machine, which is then a combination of accessible physical memory (RAM) and the swap space. Swap space temporarily holds memory pages that are inactive. Swap space is used when your system decides that it needs physical memory for active processes and there is insufficient unused physical memory available. If the system happens to need more memory resources or space, inactive pages in physical memory are then moved to the swap space therefore freeing up that physical memory for other uses. The system tries to optimise this by making moves in advance of their becoming essential. Note that the access time for swap is slower therefore do not consider it to be a complete replacement for the physical memory. Swap space can be a dedicated swap partition (normally recommended), a swap file, or a combination of swap partitions and swap files. The hard drive swap space is aslo used for Hybernating the machine.

There is a parameter called Swappiness which controls the tendency of the kernel to move processes out of physical memory and on a swap disk. See Performance tuning with ''swappiness'' As even SSD disks are much slower than RAM, this can lead to slower response times for system and applications if processes are too aggressively moved out of memory and also causes wear on solid state disks.

Reducing the default value of swappiness will actually improve overall performance for a typical Ubuntu desktop installation. There is a consensus that a value of swappiness=10 is recommended for a desktop and 60 for a server with a hard disk. I have been using a swappiness of 10 on my two MSI U100 Wind computers for many years - they used to have 1 Gbyte of RAM and swap was frequently used.

To check the swappiness value

cat /proc/sys/vm/swappiness
For a temporary change (lost on reboot) with a swappiness value of 10:

sudo sysctl vm.swappiness=10

To make a change permanent you must edit a configuration file:

sudo gedit /etc/sysctl.conf

Search for vm.swappiness and change its value as desired. If vm.swappiness does not exist, add it to the end of the file like so:

vm.swappiness=10

Save the file and reboot.

In the case of the Defiant I have 8 Gbytes of memory and Swap (aka Block Cache) is much less likely to be used and the consensus view is that optimum value for swappiness is 1 or even 0 I have set 1 at present.

There is another parameter which also has an influence on perceived speed as it influences the inode/dentry cache which is a layer above the block cache, caches directory entries and other filesystem-related things that cost even more to look up than just block device contents. This is even more obscure (especially the name of vfs_cache_pressure) but there are some tests at in the first of the references below which indicate that the default (100) can be halved to give an improvement in perceived performance. This is done by adding another line to /etc/sysctl.conf so for the Defiant I have:

vm.swappiness=1
vm.vfs_cache_pressure=50

Partitioning considerations when using pure SSDs

Since setting up my machine I have found out a lot more about use of SSD disk drives. Mine has a hybrid drive which, I hope, has some internal optimisation and does not require the following.

However if you have a pure SSD then one needs to reduce the writes to the drive (partially covered above), align partition boundaries (gparted normally does that to 1 MiB boundaries by default) and use a file system which allows Trimming of the drive (ext4 rather than ext3 or ntfs) along with efficient journalling. Also one should not defragment a pure SSD as it causes excessive writes and is not required.

Some references to start you off:

Defiant Specific Outstanding Issues

Minor:

Airplane (or Aeroplane) Mode: Better handling of Airplane Mode (Fn F11) where all transmitters are disabled to allow use on Aircraft - now handled by keyboard shortcut Super + F11 as Fn key used does not act as a 'modifier' in Mint. It opens the Network Settings screen which has the Airplane Mode switch. Issue is that this does not activate the light and does not switch off the Hardware hence there are no power saving advantages.

Issues On Upgrading

nVidia Graphics Driver not updated (17.1 to 17.2)

I found that I had to update the nViidia graphics driver manually from nvidia-331 to nvidia-346 after the update from 17.1 to 17.2. Everything was still usable other than the Bumblebee applet as bumblebee-nvidia had been updated but the new driver was not installed. Solve in a terminal by

sudo apt-get install nvidia-346

and a reboot is needed.

Updating 17.2 -> 17.3 is NOT ADVISED - Re-install instead

Updating from 17.2 to 17.3 is not advisable - use Romeo repository to get Cinnamon 2.8 but do not update to 17.3 - my graphics was broken after the update and I had a blank screen. The best I have achieved has been intermitent and in the end I had to do fresh install of Mint 1.7.3 Rosa

Do a fresh install of 17.3 if you must but do not install bumblebee and use new built in nVidia Prime based mechanism for Optimus Graphics Switching.

I took the opportunity to change to a 64 bit system and although the overall performance is only slightly improved there is a dramatic improvement in the Discrete Graphics now they are using nVidia Prime and the latest drivers over Bumblebee and the earlier drivers - see the updated performance figures above

Updating to 18.0

Again it is best to reinstall the operating system when updating to Mint 18 although if you do it carefully and have a separate partion for /home you should be able to maintain all your configuation.

Changes Ubuntu 14.04 Trusty and 16.04 Xenial on which Mint 17 and 18 are built.

These are LTS versions spaced by two years and the diffferences are considerable, in particular the initiation and control of Daemons and Services use SystemD instead of Upstart. One results is major differences in 'power' handling between Trusty, which Cinnamon was designed to use, and Wily. The result is that anumber of Applets and Keyboard shortcuts involving shutdown, hibernate, suspend and restart will need to be modified.

The way used in Mint 17 to suspend etc is using calls like:

dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

whilst what needs to be used with Mint 18 are calls like:

systemctl suspend

I had, for example, defined a shortcut keyboard bindings to Ctrl+Alt+s and Ctrl+Shift+S to provide an easy suspend. The access to Shortcuts is via System Settings -> Keyboard -> Shortcut tab -> Custom Shortcuts -> Add Custom Shortcut - call it Suspend and put systemctl suspend as the Command then click on unassigned and press the key combination you want. You can add up to three alternatives. If you want to add this under Mint use the alternative from above dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend.

I know I will have to make changes in NUMA if I want to continue to use an automatic suspend or other action if data limits are exceeded.

Problems with use of Nixnote - dependencies and use in parallel with HTML Tidy5

To follow

Some benefits in Video Editing (Handbrake, ffmpeg concatenatiom and Kdenlive)

The versions of Handbrake and Kdenlive no longer have to always be updated via PPAs and ffmpeg is back in the repositories which is a big benefits. Ubuntu on the Take will be updated in due course.

Update to Mint 18.1.

Very quick and only issue was that I had to replace the Window List with App Grouping applet with Icing Task Manager as Window List with App Grouping applet has not been supported for many years although it is one of the most popular and to me essential applets. Icing Task Manager is a fork which has been updated and enhanced and is now much better.

Cinnamon 3.2 is major improvement and the upgrade is worthwhile and includes a privacy function so if you want to remember your recent files you need to change the setting in Settings -> Privacy

 

Before You Leave

I would be very pleased if visitors could spare a little time to give me some feedback - it is the only way I know who has visited, if it is useful and how I should develop it's content and the techniques used. I would be delighted if you could send comments or just let us know you have visited by Sending a quick Message to me

Home Pauline Howto Articles Uniquely NZ Small Firms Search
Copyright © Peter and Pauline Curtis
Content revised: 30 th May, 2017