TagLinux

How To Customize The Linux Kernel

The post title begs the question: Why should you customize the Linux kernel? There are three main reasons why you might want to do this:

  • Performance: by removing unnecessary features and by tuning the kernel to work on your particular machine, you could make your machine more performant;
  • Patching: rather than waiting for an official updated of the kernel, you can apply any patches you are interested in anytime;
  • Additional features: not everything is compiled into the kernel by default, mostly to keep it as lean as possible. If there is something you really use, however, you can add it to your kernel so the features are built in.

Perhaps surprisingly, building your own Linux kernel is far from a complicated thing. You just need a lot of patience as the build process can last quite a bit. Having said this, let’s take a look at how you can customize your Linux kernel.

Continue reading

How To Install Monica – Personal Relationship Manager – On Ubuntu 16.04

Monica is a web app for managing your personal connections. The official website for the project describes it this way:

Monica helps you have more meaningful relationships.

Monica is a simple, open source, personal CRM. For your personal life, not your business.

The project looks very interesting, and it sparked a ton of interest on is official GitHub page. That’s right, because Monica, besides offering a hosted version (both with a free and a paid tier) also decided to make the code completely open source so you can install it and download it on your own server (which is something that is definitely going to be appreciated by a lot of folks, looking at the intrinsically personal data that Monica will store).

Unfortunately, at the time of writing this article, the instructions to install the app on your own server are either outdated or incomplete, making the installation process not very simple (also considering all the tools necessary to get it up and running). This article seeks to solve this issue with some step-by-step instructions.

Continue reading

How To Make PIA Work On Linux When It Keeps Disconnecting

TL;DR: you probably have an encrypted home folder.

I have just had to install the PIA (Private Internet Access) VPN on a brand new Linux Mint 18.2 machine and I was surprised to see that, despite the installation completing successfully with no error messages whatsoever, connecting to any VPN server would not work. The application would start connecting, only to disconnect every time about a minute later.

I had no firewall blocking VPN access this time, neither on this machine or on the network, so it had to be something else. And I wasn’t the first one to stumble on this issue. The first help resource I tried was this support article which recommends to trying different ports. Needless to say, it didn’t help.

Continue reading

How To Fix FusionInvoice Errors When Displaying a PDF

I am a big fan of the FusionInvoice project. I have been using InvoicePlane for a while but moved to FusionInvoice mainly for the multi-currency support and for the continued updates. Support is also extremely reactive and helpful, which for me is super important. The expenses feature is also proving to be very useful, so I am overall very satisfied with it.

Installation is really smooth and the documentation is on point, with the exception of a little hiccup right after you go through it. After installing FusionInvoice and creating an invoice, clicking on the PDF button to export the invoice as PDF would result in the web server throwing an error.

Continue reading

If npm install Gets Killed On Your Ghost Installation

When you perform an upgrade of your Ghost installation, you might run into a little issue towards the end of the upgrade process, specifically when you run this command:

npm install --production

This step might end abruptly with no explanation whatsoever on what is going on. On my machine, this is what happened:

root@hostname:/var/www/ghost# npm install --production
extract → gunzTarPerm ▌ ╢██████████████████████████████████░░░░░░░░░░░░░░░╟
Killed
root@hostname:/var/www/ghost# npm install --production
cloneCurrentTree → attemp ▀ ╢████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
Killed

As you can see, even attempting to run the command again didn’t help. After a little bit of digging around, I found out that this is a RAM issue.

Continue reading

How To Check What BIND DNS Version You Are Running

Even though the service name when you run a BIND DNS server is bind9, this will only work with start, stop, restart and similar commands.

If you want to check what version of BIND DNS you are currently running on your Linux server, you need to use this:

/usr/sbin/named -v

How To Fix “sudo: unable to resolve host hostname” In Raspbian

If you are running Raspbian on your Raspberry Pi, you might see a message like the following when you try to sudo after changing your devices’s hostname:

sudo: unable to resolve host hostname

Of course, replace “hostname” with your own machine’s hostname. Everything works just fine even despite this warning, it’s just annoying to look at. Luckily, the fix is very simple.

It is likely that you only changed the hostname in one of two locations, while you should change it in both of these files in order to get rid of this message:

  • /etc/hostname
  • /etc/hosts

That’s it!

Debian Not Resolving Hostnames

This will serve as a quick reminder to myself that Debian behaves a little bit differently than Ubuntu when it comes to DNS resolving (in my defense, I have been working a lot on Ubuntu lately).

So, one of my Debian VMs had stopped resolving hostnames and I kept looking into /etc/network/interfaces to see if the correct DNS server was listed there. And it was. But that’s not the place to put DNS server information in Debian.

Then it hit me: if you are using Debian, put the DNS server you want to use inside /etc/resolv.conf. A quick look at the official Debian Network Configuration docs confirmed this.

How To Make the No-IP DUC Automatically Start At Boot On A Raspberry Pi

If you look at the README file inside the noip folder, you will see that, in order to have the No-IP Dynamic Update Client automatically launch at boot on Linux, you have to copy and paste a script inside the relevant rcX.d folder inside /etc/init.d. However, Raspbian does not have this folder, so the procedure is slightly different if you are using a Raspberry Pi (you can find some information here).

These are the steps to follow:

Continue reading

How To Solve Error “CRL: cannot read: crl.pem: Permission denied (errno=13)” In OpenVPN

After enabling CRL checking on my OpenVPN server, I have encountered an annoying permission issue. When I tried connecting from the Android app, the connection would simply timeout. Before enabling CRLs this had never happened, so I realized there must be something wrong with them.

So I looked into the OpenVPN logs (/var/log/openvpn.log) and noticed the following entry:

CRL: cannot read: /etc/openvpn/easy-rsa/keys/crl.pem: Permission denied (errno=13)

The weird thing was that both the crl.pem file and the whole /etc/openvpn folder were owned by root and were perfectly readable with a nano crl.pem when run from the CLI. So from a filesystem point of view, everything looked ok.

Continue reading

© 2018 Daniel's TechBlog

Theme by Anders NorénUp ↑

%d bloggers like this: