Enable TRIM support for SSDs on Linux

Most Linux distributions do not enable TRIM by default for a variety of reasons. To get the best long-term performance from your SSDs you’ll want to enable it manually. The best way to do this is to occassionally run the fstrim command on your SSD mount points.

Create a cron script that will run once a day:

sudo touch /etc/cron.daily/fstrim

Add the following to /etc/cron.daily/fstrim. In this example I have two mount points that I want to TRIM on my SSD, / and /home:

#!/bin/sh
LOG=/var/log/fstrim.log
echo [ $(date) ] $(fstrim -v / 2>&1) >> $LOG
echo [ $(date) ] $(fstrim -v /home 2>&1) >> $LOG

Save the file and then make it executable:

sudo chmod +x /etc/cron.daily/fstrim

It will run once a day and log to /var/log/fstrim.log:

[ Sat Oct 18 08:42:50 MDT 2014 ] /: 42.7 GiB (45856079872 bytes) trimmed
[ Sat Oct 18 08:42:51 MDT 2014 ] /home: 101.5 GiB (108950966272 bytes) trimmed

If you’re using LVM or disk encryption the instructions will be different. In that case I recommend you read through the relevant sections in the Arch wiki page for solid state drives:

https://wiki.archlinux.org/index.php/Solid_State_Drives

Setting kernel options in Fedora with a UEFI BIOS

If your computer is booting with a UEFI BIOS you may notice that changes you make to /etc/default/grub are not taking effect. This may be because you are generating grub.cfg in the wrong location.

Make your changes to /etc/default/grub (kernel options are set on the GRUB_CMDLINE_LINUX= line). Now regenerate your grub.cfg, both in the standard location:

sudo grub2-mkconfig -o /boot/grub2/grub.cfg

And in the location that your UEFI BIOS will actually use:

sudo grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Fix broken Helvetica fonts in Firefox

I’m running Firefox 32.0.2 on Fedora 21 and I noticed that sites that use Helvetica look very poorly. Here’s a side-by-side comparison of Firefox and Chrome showing the problem:

Helvetica on Firefox vs Chrome

I found a lot of complaints online regarding this issue, dating back several years, so I doubt this is a recent bug that will be fixed anytime soon. Luckily there’s a simple fix via Firefox’s userContent.css file.

Continue reading

Installing BitTorrent Sync on Linux

BitTorrent Sync is a powerful cross-platform file sharing application. Think of it as a decentralized version of Dropbox with no charges (it’s free), no limits, and no middle-man.

btsyncctl is a simple bash script I wrote to automate the process of starting, stopping, and checking the status of the BitTorrent Sync application (btsync) running on a Linux desktop or server. btsync runs as a non-privileged user and any user with adequate sudo privileges can use btsyncctl to pass it basic controls like start, stop, and status.

Continue reading