bookmark_borderHow to easily merge PDF documents under Linux

It’s a well known problem. You have two PDF documents and you want to merge both into one. For e.g. you want to bring your application and your personal data sheet together. This short an easy tutorial shows you how to merge PDF documents under Linux on a graphical way or with the help of the command line.

First option: commando line

Of course there is a way to use the console to do this. The command line tool pdfunite is an easy way to do this. You can use APT on Ubuntu or Debian to easily install pdfunite:

user@client:~$ sudo apt-get update
user@client:~$ sudo apt-get install poppler-utils

pdfunite is part of the poppler-utils package, which basically means that when you install poppler-utils you will also get the desired pdfunite. After the installation is finished, you can just go ahead and merge some PDF files!
To merge start merging, you have to enter the command pdfunite followed by the PDFs you want to merge. The last PDF file in the command line represents the output PDF:

user@client:~$ pdfunite source1.pdf source2.pdf merged_output.pdf

The number of PDF documents you can merge is infinite so this line can be extended like this to merge 4 documents, for e.g.:

user@client:~$ pdfunite source1.pdf source2.pdf source3.pdf source4.pdf merged_output.pdf

Keep in mind that the source files have to be in the same directory where the command pdfunite is executed. If your PDF files are stored in different places, you have to enter the relative or absolute path, for e.g.:

user@client:~$ $HOME/pdfs/source1.pdf $HOME/pdfs/source2.pdf $HOME/Downloads/source3.pdf /mnt/externalhdd/source4.pdf merged_output.pdf

And that’s it. All the magic is done 🙂

Second option: Using a GUI

There are several GUIs which are doing all the work for you but one of those GUIs is (for me) the real shining star: PDFsam. The main reason for this is that PDFsam is capable of doing a lot of more things than just merging: Split, Rotate, Extract, Split bookmarks and many more. PDFsam is written in Java and (of course) available in most Linux distributions. For Ubuntu / Debian you can easily install PDFsam like this:

user@client:~$ sudo apt-get update
user@client:~$ sudo apt-get install pdfsam

After PDFsam is successfully installed, you can start PDFsam through your start menu or by entering the command pdfsam in a terminal window.

PDFsam start window

With an click on the button Merge the merge window is going to pop up. The rest is almost self-explaining. Click on the button Add to choose the source PDF documents from your drive you want to merge, go down to the Destination file, click on Browse and select a place + filename for the merged destination PDF. Click on Run and that’s it.
PDFsam merge dialog

Final words

As you can see, merging PDF documents under Linux is super easy. If you want a graphical toolset which offers more possibilities than just merging, go with PDFsam. If you just want to merge PDF documents on a simple and easy way or if you are just a fan of the command line, go with pdfunite. However, it doesn’t matter which program you use. There are both fast, reliable and easy 🙂
 

bookmark_borderBeginner Linux Distributions: From a experienced user perspective

Personally I’m using Arch Linux with Xfce a lot in the last time. A friend of mine also started to switching over from Windows 10 to Linux. She asked me for help and wanted some tips where to start. At this time I thought that for e.g. openSUSE is a very beginner friendly distribution. While this is true, there are other distributions which are even way more beginner friendly. So I tried 3 Linux „beginner“ distributions and made some conclusions:

1. Ubuntu Linux

Image source: wikipedia.org

When I started working with Linux (if I remember correctly this was round about 13 years ago) Ubuntu released their first version which was called „Warty Warthog“, Version 4.10. I’ve never used this one. At this time I played around a lot with SuSE Linux Personal Edition 9.x. My first Ubuntu version was 6.06, called „Dapper Drake“. This one really got me into Linux. This was the first Linux version were almost everything worked with a exception of WLAN. But WLAN was a nightmare under Linux anyway until mid 2000s.
A lot of people complaining that Ubuntu didn’t contributed that much to the whole Linux economy. For me that’s not right. Ubuntu started to take care of the user and they tried to make a more end user friendly Linux. After more than 13 years later I would say that they reached their goal. Even if I think that there are a lot of other, way more user friendly distributions out there as of today.
Ubuntus Unity desktop is something you love or you hate. I personally like the idea of a bar on the left screen. With the newer versions of Unity you can also always modify the behavior of the left bar. For e.g. let them automatically slide in and out or change the size of the bar itself.
The hardware compatibility is very good. Almost every driver gets shipped with the installation. If there is a driver missing, Ubuntu provides a „Additional drivers“ wizard, which installs you the driver you need within minutes.
The software repositories are really big. You almost find a piece of software for every single kind of use. In addition to that, you can always check out PPAs for even more software packages. Also, a lot of software like Steam or even Guitar Pro distributing their software as a downloadable .deb package file for easy installing under Debian and / or Ubuntu based distributions.
For me as a more advanced user, Ubuntu has two major downsides. The first one is, that they are really bad when it comes to develop for upstream projects. For example, Fedora and openSUSE are giving a lot of things back to upstream projects. Both are paying developers for just doing their normal daily development on the Linux Kernel, the audio subsystem and so on. In 2008 Ubuntu was criticized that they’re under 1% in contribution to upstream prjects.
The other major downside is the stability. A lot of people are using the LTS (= Long Term Support) version of the latest Ubuntu release. While this is a wise decision, even with the LTS I’m experienced a lot of stability problems. Anyways, the good mix of stability and „new software versions“ is fine in Ubuntu. You could go of course with Debian stable as a rock solid base, but the software in this repositories are very old.
However, Ubuntu is still a very good starting point for beginners and users who just want to „get their work done“. I’m really excited with their next LTS release (18.04). Mark Shuttleworth (the initiator and founder of Ubuntu) decided to drop the Unity desktop and Mir display server and goes instead with the GNOME Shell and Wayland display server as a standard. For me this is a big huge and good step.
 

2. Linux Mint

Image source: wikipedia.org

Linux Mint started in August 2006 and was released based on Ubuntu 6.06. After more than 10 years later, Linux Mint is one of the most used Linux distributions on the desktop.
Linux Mint is for a lot of people what Ubuntu should have been by the beginning. More stable and more polished. For me Linux Mint is a derivative of the latest Ubuntu LTS version with a lot of multimedia codec support and a really great Desktop solution called „Cinnamon“.
Cinnamon is with no doubt the heart of Linux Mint. The Linux Mint developers really had a lot of good ideas. With their concept they also trying to speak directly to people who want to switch over from Windows to Linux. Cinnamon is a classical desktop concept with a single bar at the bottom of the screen and a classic desktop which can be used to store applications shortcuts. The central system settings GUI comes with a lot of possibilities. With that being said, it’s somewhat like the Windows system control center.
Besides Cinnamon, Linux Mint offers a lot of other desktops to their users. One of them is MATE (a GNOME 2 fork), as well as Xfce and KDE. So, everybody will find a desktop solution for their needs here. Linux Mint also offers a „Linux Mint Debian“ (LMDE) release. This version is based on Debian testing instead of Ubuntu and is something like a rolling release version. I’ve used this Linux Mint version on my own for a longer period.
Due to the fact that Linux Mint is literally Ubuntu, there are also the same benefits like extending the existing repositories with the Ubuntu PPAs and the usage of the „Additioinal drivers“ wizard to install yourself the latest proprietary drivers you need.
If you’re new to Linux and you want to use a stable Linux distribution with a traditional desktop layout, then Linux Mint with Cinnamon is definitely a Linux distribution which you have to try.
 

3. Manjaro

Image source: heise.de

Manjaro is developed mainly in Germany, Austria and France. It’s based on Arch Linux and was initially released in July 2011. Their main goals are to provide a stable, rock solid Linux distribution on a already running rolling release based Linux. Because of this, Manjaro decided to go with Arch Linux as their base system.
Manjaro offers a lot of desktops and window managers. Even though, they have one major desktop environment which is Xfce right now. At a lot of interviews and statements they said that they think that Xfce is exactly how a desktop environment should be: flexible, fast and solid and that this would come hand in hand with the UNIX concept.
Being a Xfce user myself, I have to confirm this. Xfce is really rock solid and offers a lot of customization options. Xfce is a traditional way of how a Linux desktop. With that being said, if you’re searching for a more fresh and intuitive way of working with your upcoming Linux desktop, then maybe Xfce isn’t the right choice for you. However, Manjaro also offers images with KDE, i3, GNOME, Cinnamon and so on. So there is a desktop environment for every single kind of user out there.
As already said, Manjaro is based on Arch Linux, a Linux distribution which states itself to „keep it simple“. Arch Linux (as well as Manjaro) is a rolling release distribution. This means you install your Linux once and you just have to update. No big version jumps like in Ubuntu, no LTS / non-LTS versions, you will always be on top with the newest version of the software available. Manjaro tries to cut down the complex initial setup process you have with an Arch Linux installation and wants to offer something like a „Ubuntu Arch Linux“ – Easy to install, easy to use, but a rock solid and optimized Arch Linux base with the benefits of it’s „keep it simple“ principle.
One of the major upsides of Arch Linux and Manjaro is the Linux AUR (Arch Linux user repository). This extends the already big Arch Linux / Manjaro repository with another thousands of packages including proprietary software like Guitar Pro, TeamSpeak and so on. This is simply amazing.
If you ask me, Manjaros balancing act between being simple and optimized as Arch Linux while also being easy as Ubuntu is working here 100%. It just makes fun to work with a Linux distribution where so many packages are available and where the setup process is so easy and self explaining. Manjaro is definitely another good option if you just want to get your work done. I highly recommend it.
 

Conclusion

I can recommend all of the 3 Linux versions to beginners. If you’re a little bit more of a advanced user and want to try out something new, you should give Manjaro a try.
I’m really amazed how much the desktop Linux have evolved within the last years. Today almost every machine will be able to run a desktop Linux without having any kind of issue. So, if you tried Linux some years ago and you ran into a lot of troubles, maybe it’s the time now to try it out once more 😉
 

bookmark_borderRocket League under Linux: "There has been an error connecting to the Rocket League servers please try again later"

One of my favorite online competitive games right now is Rocket League. It’s competitive, supports splitscreen (yes, even on PC), makes a lot of fun and now it’s also available for Linux. I played Rocket League before as it was a part of the PS Plus monthly free games months ago. Now that Rocket League has official arrived for Linux, I decided to buy this game on Steam as well.

Unable to connect to servers

Well, the bad thing was, after I started the game, the following message appeared:

There has been an error connecting to the Rocket League servers please try again later

I started to check my network connection, was googling if the Rocket League server were down and so on. Then I started to feel that this has something to do with my distribution (for the records, I’m actually using openSUSE Tumbleweed, a rolling release distribution). After a short time of searching the web I found the solution for the problem. For openSUSE you simply have to issue the following command as root or with the sudo command:

user@opensuse:~$ sudo ln -s /etc/ssl/ca-bundle.pem /etc/ssl/certs/ca-certificates.crt

This command creates a symbolic link which can later be found in /etc/ssl/certs/ca-certificates.crt. The link itself points to /etc/ssl/ca-bunble.pem/. Rocket League needs this certificate to connect to their servers. It’s looking in the directory /etc/ssl/certs/ for the certificate which can’t be found. To solve this, we need the symbolic link of the certificate file where it is originally stored in openSUSE Tumbleweed (which is /etc/ssl/).
The solution for this problem was originally discussed at the Steam community site: Link.
Restart Rocket League and you should be able ready to go. Please keep in mind that the path of the certificate can differ if you use another distribution. Anyway the target path (which is /etc/ssl/certs/) is always the same.
Good luck and have fun with a working Rocket League 🙂

Further links

bookmark_borderHow To get your Realtek RTL8111/RTL8168 working (updated guide)

Realtek Logo
Image Source: wikipedia.org
A lot of people will remember my guide how to get a RTL8111/RTL8168 running under your Linux box. This guide is almost 5 years old now and I wanted to make a complete overhaul, because a lot of things has changed since then.

Why do I need this driver anyway?

Some people asked me, „Why do I need this driver anyway? Doesn’t the Linux Kernel ship it?“. This is of course a valid question. As far as I can see this, the RTL8111/RTL8168 is not Open Source and this would be of course the reason why the driver isn’t included into the Linux Kernel. As long as the driver isn’t Open Sourced, we have to build it on our own.

The installation methods

A lot of things have changed since I written the initial article about how to compile the driver under Ubuntu / Debian. Today we can use 2 methods for installing the driver. The following lines describes both of them.

The automatic way

NOTE: Thanks to the user „Liyu“ who gave me this hint!
NOTE2: For this way you need a working internet connection. You could use WLAN or a USB ethernet card like this one to get a temporary internet connection. You could also download every needed single package onto USB from another PC and install them in the right order.
As I said ealier, 5 years is a long time. And today Ubuntu and Debian have the driver included in it’s repository. For Debian you have to enable the non-free package sources. For Ubuntu you have to enable the universe package sources. You can easily do this by open your /etc/apt/sources.list as root with your editor of choice and add for each line starting with „deb“ non-free or universe at the end. So for example, if you use Debian a line like:

deb http://ftp.de.debian.org/debian/ jessie main contrib

would become to

deb http://ftp.de.debian.org/debian/ jessie main contrib non-free

The same for Ubuntu:

deb http://de.archive.ubuntu.com/ubuntu/ xenial main restricted

would become to

deb http://de.archive.ubuntu.com/ubuntu/ xenial main restricted universe

After this you have to do a:

sudo apt-get update

You can of course use graphical ways to enable non-free or universe. After you enabled the missing package repository, you will be ready to install the driver. This can be easily done with the following command:

sudo apt-get install r8168-dkms

The procedure will take some time, depending on your CPU because the driver will be build for your working Kernel. The good side is, that if any Kernel update happens on your machine, the kernel will be rebuild against the new Kernel automatically after the update because of the use of dkms.
After the procedure is finished, you should be able to use your network card instantly. If not, you should consider a reboot of your PC then.

The manual way

Well, the manual way is almost the same as it was before in the initial article. Anyway, I want to rewrite the steps here again. This is also tested against newer Kernels ( >= 4.0) which caused a lot of trouble for some people in the past.

  • 1. Install dependencies: Once more you need a working internet connection for this. You could also use the Debian or Ubuntu DVD which includes the needed packages. To install the dependencies just enter the following command:
    sudo apt-get install build-essential linux-headers-$(uname -r)
  • 2. Download the driver: You can download the driver from the official Realtek homepage mirror provided by mtorromeo at GitHub. This is the direct download link: click me.
  • 3. Blacklisting the r8169 driver: The r8169 is loaded when the r8168 is not found on your system. This will give you a network and internet connection, but with the r8169 driver your RTL8168 card will be very unstable. This means slow download rates, homepages taking hours to load and so on. To avoid that the r8169 is loaded, we blacklist it. This is be done by entering the following command:
    user@linux:~$ sudo sh -c 'echo blacklist r8169 >> /etc/modprobe.d/blacklist.conf'
  • 4. Untar the archive: After you successfully downloaded the driver, cd into the directory where the driver is downloaded and untar the driver with the following command:
    user@linux:~$ tar xfvz r8168-8.046.00.tar.gz

    NOTE: Your tar filename can of course differs if you download a newer version in the future for e.g.

  • 5. Compiling and installing the driver: Now we have to start compiling the driver. For this you cd into the extracted directory:
    user@linux:~$ cd r8168-8.046.00

    NOTE: Don’t forget to change your version number in the future here.
    Now that you are in the right directory, we can start with the real compiling process. For this Realtek brings an easy to use script which is called autorun.sh. So, to start compiling and installing the driver enter:

    user@linux:~/r8168-8.046.000$ sudo ./autorun.sh

    You should see a output which looks like this:

    Check old driver and unload it.
    rmmod r8168
    Build the module and install
    At main.c:222:
    - SSL error:02001002:system library:fopen:No such file or directory: bss_file.c:175
    - SSL error:2006D080:BIO routines:BIO_new_file:no such file: bss_file.c:178
    sign-file: certs/signing_key.pem: No such file or directory
    Backup r8169.ko
    rename r8169.ko to r8169.bak
    DEPMOD 4.4.0-31-generic
    load module r8168
    Updating initramfs. Please wait.
    update-initramfs: Generating /boot/initrd.img-4.4.0-31-generic
    Completed.

    You can ignore the SSL error for now. The driver should be successfully compiled and installed into your system. The driver is already loaded and should work.

  • 6. Check the driver: As a final step, you could start checking if the driver is really loaded into your Kernel. For this you can use the command lsmod. lsmod lists all drivers, which are usable by your Kernel. So, if everything was successful, you should see an output like this:
    user@linux:~/r8168-8.046.000$ lsmod | grep r8168
    r8168                 491520  0

    You can also check as well your ethernet device directly to see if the correct driver is loaded (special thanks goes to Tim which posted this in the comment section):

    user@linux:~$ sudo ethtool -i enp1s0
    driver: r8168
    version: 8.042.00-NAPI
    firmware-version:
    expansion-rom-version:
    bus-info: 0000:07:00.0
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: yes
    supports-register-dump: yes
    supports-priv-flags: no

    NOTE: You have to the change enp1s0 to the device name of your network card of course. This can be eth0, eth1, enp2s0, and so on.
    If your driver isn’t loaded until now, you should go with a reboot before further investigation.

That’s it

And that’s it. Now you’re ready to use your RTL8168/RTL8111 with the official Realtek drivers. If you have any questions and / or suggestions, please let me know in the comments.

bookmark_borderLinux Mint: MDM fails to load after login

[Linux Mint Logo]
Image source: wikipedia.org
Some annoying problem has been occured on one of the client machines I work with. Every time when I tried to login, the MDM has thrown an error which says that it was unable to login due to undefined commands and variables. The client runs Linux Mint 17, but the problem happens with 18 as well.

The problem

If I tried to login MDM failed to load Cinnamon, Gnome, MATE or whatever I tried to use. If I expanded the error login message, it reported, that it was unable to use the additional scripts for the profiles, which were stored in /etc/profile.d/. This scripts, which are made by myself for a longer time now, are using a lot of specific bash stuff (variables, built-in commands, and so on).
Sadly, the MDM XSession file comes with a /bin/sh shebang which does not have the same spectrum of commands as bash.

The solution

The solution is rather simple. If MDM yells, that it is unable to load the Desktop because of a script error due to a file which is located in /etc/profile.d you simply have to modify the XSession script which comes with MDM.
The XSession Script for MDM is located at /etc/mdm/XSession. A simple change of the shebang does solve the problem. Just change the first line of the XSession file from

#!/bin/sh

to

#!/bin/bash

and you should be able to successfully login again.
You should always keep an eye of possible MDM updates. If the MDM Login Manager is updated on your system, it’s very likely, that the XSession file is getting overwritten and you will have the do this change again.