Setting up a Linux Mint 17.1 Xfce 4.12 PC

For my future reference1 here's how to set up and configure my Linux Mint 17.1 Xfce 4.12 system on BlackBeast Mk III. These notes have already helped rescue me several times during earlier misadventures with the initial Mint 17.1 MATE desktop. And an "iffy" 240 GB SSD. And a recalcitrant nVIDIA GTX970 graphics card (now, I hope, enjoying life in a Windows system across the village). Not forgetting an initially reluctant 40" Philips 4K monitor, either. That could (it transpired) be driven by the motherboard's integrated graphics chippery, but only at a 30Hz refresh rate. To get 60Hz needed its DisplayPort 1.2 input and the "Ultimate Fanless" Sapphire Radeon graphics adapter (nicked from BlackBeast Mk II), plus a proprietary driver from ATI that hasn't initialised properly.

Xfce 4.12 has yet to make it into the Mint repository, but you can find it here:

sudo add-apt-repository ppa:xubuntu-dev/xfce-4.12
sudo add-apt-repository ppa:xubuntu-dev/extras
sudo apt-get update
sudo apt-get dist-upgrade

Of course, you can't upgrade to Xfce 4.12 until you have your Linux Mint 17.1 system up and running... Just sayin'.

The Linux system volume (sda1)...

... is a single partition on a 480 GB SSD. Rather than fiddle with boot, root, and swap2 partitions, I just let the installation go ahead and use the entire space on the disk. Linux mounts it at /dev/sda1 aka "/" (root):

sda1 system disk

Buried somewhere on this device is my /home playground with around 418 GB spare (so far!) "Those who know" both swear blind "This is (far) more than you'll ever need for Linux."

/data (sdc1)

Is a useful 480 GB supplement to the space I have in /home on the system disk. /data is currently holding user data from my previous Win8.1 Pro system. There are two bad sectors on this SSD (I shall try to tread lightly on them!)

sdd1 data disk

/backup (sdb1)

Is, I hope, self-explanatory

sdb1 backup

I resized its original 480 GB partition, shrinking it to make room for a /swap partition. The /swap used to live on the 240 GB SDD that I've now physically removed from BlackBeast (though I'd originally left this SSD3 hooked up for possible use [in extremis] if and when I managed to crash the "real" system).

fstab entries

Linux mounts these drives wherever you tell it to. Use "fstab" in /etc to define where to mount these three SSDs, and the /swap partition:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sda1 during installation
UUID=fb3a4c9d-1bb2-4175-b9c2-ad9a6bc3c672 /               ext4    errors=remount-ro 0       1
# new swap is now on /dev/sdb2
UUID=af61ebe8-7d74-4590-b8dc-4d92dfe78b43  none           swap    sw              0       0
# /dev/sdb1 contains backup data
UUID=222c04e5-277c-4b03-905a-30fc9bcb7027 /backup         ext4    defaults        0       2
# /dev/sdc1 was windows main data
UUID=97033468-aa92-421d-906d-fa3e2cedd1f7 /data           ext4    defaults        0       2
#

The only reason I'm not quoting the UUID string for the /swap partition on /dev/sdb at this point is that I don't yet know how to find it.

Solved: the magic spell is:

david@blackbeast ~/Desktop $ cd /dev/disk/by-uuid
david@blackbeast /dev/disk/by-uuid $ ls -l
total 0
lrwxrwxrwx 1 root root 10 Apr  9 18:05 222c04e5-277c-4b03-905a-30fc9bcb7027 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Apr  9 18:05 97033468-aa92-421d-906d-fa3e2cedd1f7 -> ../../sdc1
lrwxrwxrwx 1 root root 10 Apr  9 18:05 af61ebe8-7d74-4590-b8dc-4d92dfe78b43 -> ../../sdb2
lrwxrwxrwx 1 root root 10 Apr  9 18:05 fb3a4c9d-1bb2-4175-b9c2-ad9a6bc3c672 -> ../../sda1

And I've just amended the "live" fstab to reflect this. So when I can afford to add a new SSD to replace the excised 240 GB one, this could cause the /swap partition to change its current /dev assignment from "sdb2" to "sdx2". (Where "x" is an unpredictable letter.) With a UUID identifier, this wouldn't matter.

Access to my two NAS drives

That "fstab" can also be persuaded to mount the two NAS drives — and provide clickable links to the various subfolders of them — all without the previous fuss of an autofs installation. It just needs a little bit more work. Take NAS #2 (for example). This is my newer Synology unit, containing a 4 TB RAID1 pair of spinning rust disks. Its network address is 192.168.1.67 and it has three top-level data folders — "Music", "Photos" and "Videos".

The credentials file (one for each NAS, of course) contains just two lines — the same username and password with which I login via its web interface when I want to inspect it or check for updates:

username=admin
password=(my secret password!)

Next, create one directory for use as the mount point for each top-level data folder. I created these under /NAS in the root directory "/" (again, to keep them where I won't trip over them or do anything silly to them). So, for example, the Music folder on NAS #2 is mounted at /NAS/NAS_TWO/Music and I have a symbolic link to it in /home/david/NAS_TWO

Three symbolic links

When I click on it, the NAS spins up (if necessary) and then I can see the contents of the "Music" folder on NAS #2.

Contents of Music folder on NAS TWO

Finally, define each of the top-level folders on each NAS device in /etc/fstab as here:

#
# Samba shares for Synology Nas One (3TB white)
//192.168.1.98/Documents   /NAS/NAS_ONE/Documents    cifs credentials=/home/david/.creds/NAS_ONE.creds,iocharset=utf8,sec=ntlm 0 0
//192.168.1.98/Molehole    /NAS/NAS_ONE/Molehole     cifs credentials=/home/david/.creds/NAS_ONE.creds,iocharset=utf8,sec=ntlm 0 0
//192.168.1.98/Music       /NAS/NAS_ONE/Music        cifs credentials=/home/david/.creds/NAS_ONE.creds,iocharset=utf8,sec=ntlm 0 0
//192.168.1.98/Pictures    /NAS/NAS_ONE/Pictures     cifs credentials=/home/david/.creds/NAS_ONE.creds,iocharset=utf8,sec=ntlm 0 0
//192.168.1.98/Podcasts    /NAS/NAS_ONE/Podcasts     cifs credentials=/home/david/.creds/NAS_ONE.creds,iocharset=utf8,sec=ntlm 0 0
//192.168.1.98/Videos      /NAS/NAS_ONE/Videos       cifs credentials=/home/david/.creds/NAS_ONE.creds,iocharset=utf8,sec=ntlm 0 0
# Samba shares for Synology Nas Two (4TB black)
//192.168.1.67/Music       /NAS/NAS_TWO/Music        cifs credentials=/home/david/.creds/NAS_TWO.creds,iocharset=utf8,sec=ntlm 0 0
//192.168.1.67/Photos      /NAS/NAS_TWO/Photos       cifs credentials=/home/david/.creds/NAS_TWO.creds,iocharset=utf8,sec=ntlm 0 0
//192.168.1.67/Videos      /NAS/NAS_TWO/Videos       cifs credentials=/home/david/.creds/NAS_TWO.creds,iocharset=utf8,sec=ntlm 0 0

If you finalise the fstab table before you've created the mount point directories (my mistake first time I did it) you end up with a mess of unmounted stuff on your desktop and it's all locked to root, which is both unhelpful and, frankly, depressing. Don't do it.

Current top-level contents of /home

And here we are:

home contents

The first item (bin) is a hangover from an initial attempt to auto mount the NAS drives. The second item (data) is a symbolic link to /data on /dev/sdc1.

Setting up a webserver on Localhost

I've described here the steps needed to get lighttpd up and running as a service on BlackBeast to do all my local web page serving inside the firewall. (In addition, that is, to the lighttpd server also running on the Raspberry Pi2 upstairs. Belt and braces, that's my philosophy.)

Application software

I've described here the various alternatives Linux offers to the set of programs I was using on Win8.1 Pro.

NOMODESET

How could one avoid a mention of my least favourite stumbling block? As part of the ultimately unsuccessful attempt to get BlackBeast to play nicely with an nVIDIA GTX970 graphics card (before stepping back to use the ATI Radeon "Ultimate Fanless" again) — all in pursuit of 4K resolution at a decent 60Hz refresh rate on my Philips screen — and in order to be able to boot the system to a working display (!) we had to add NOMODESET to the end of this line in /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nomodeset"

And then immediately run update-grub (as root) to update:

/boot/grub/grub.cfg

This was my eventual set of steps needed to get my Philips 4K display working at 60Hz refresh rate:

  1. Switch everything off
  2. Put back the Radeon graphics card, so Linux can detect it and potentially offer a new driver for it
  3. Switch on and reboot
  4. Open a terminal as 'root' and edit "nomodeset" back into grub, in /etc/default/grub since painful experience shows we will simply never get a working display without it
  5. Run update-grub (again, as 'root') immediately to reflect this alteration permanently
  6. Use the Driver Manager to select a proprietary ATI driver (instead of the open source one currently in use)
  7. Reboot, and keep hitting the 'del' key to enter the BIOS setup
  8. Reset the BIOS to use PCI slot 1 for its default graphics (instead of the motherboard's integrated graphics), PF10 to save and exit
  9. Just allow the reboot to resume
  10. Login at the start panel and admire the new 4K desktop display with its increased refresh rate
  11. Unplug the HDMI lead, and smile when the display stays on!

Unfortunately, although the system now boots cleanly to a beautiful display... a side-effect has been to stop the AMD Catalyst Control Centre from being properly initialised, and thus it is currently not possible to tinker with the settings of the graphics card... not even to the point of getting it to recognise what monitor screen it's driving. Although it thinks it's refreshing whatever it thinks it's driving at 88Hz.

The only sane response to this is to say "Bother" and put the kettle on. And that word "sane" brings me to...

Printing and scanning

My HP LaserJet Pro MFP 125a can print and scan under Linux Mint. Start by running "hp-setup" in a terminal to download and install a proprietary binary module that it needs from the HP web site. There's a well-illustrated walkthrough here. It helps if you don't forget to install XSane, too, of course. That plugin is used by the GIMP to "create" an image by driving the scanner and loading the scanned image data into GIMP's window, ready for you to work on.

Notes on get-iplayer

Again, for my future reference. The PPA keeps a more up-to-date version than the one currently tucked away in the Mint 17.1 distro.

sudo add-apt-repository ppa:jon-hedgerows/get-iplayer
sudo apt-get update
sudo apt-get install get-iplayer

The first line tells Linux about a personal package archive. get-apt will check it out for obvious problems, but only do this with something you trust. The second line tells apt to refresh its list of package sources. The third line installs get-iplayer and its dependencies (including rmtpdump).


Footnotes

1  A code phrase whose true meaning is "next time I do something silly and have to re-install Linux from scratch".
2  Not defining a /swap partition turned out to be a highly sub-optimal move on my part. Linux picked up the /swap already defined on the 240 GB SSD that I was intending to remove from the system. (I had foolishly overlooked the fact that my /etc/fstab data still contained a definition of a mount point for the former /swap on that SDD. Linux duly made use of it, while merely noting the existence of the other two partitions.)
3  It will see out the rest of its days in Dr Frankenstein's Linux Lab across the village. (From where I will be unable to hear it screaming, I hope.)