Updating to 15.10

I’ve just updated the server to Ubuntu Server 15.10, and it seemed to update flawlessly! Wily Wearwolf – seems to be something Halloween related?

For the desktop version of xUbuntu (using XFCE4), the upgrade process went smoothly. This update doesn’t seem to have obviously changed anything to the end user – but there will have been a lot of under-the-hood updates.

15.10 for another 6 months, then on to the next one!


Ubuntu Linux Insurgency Dedicated Server: Workshop Content Working!

So I finally got workshop content working for Insurgency. This is what ended up working:

  • I added the -workshop flag:

./srcds_linux -game insurgency -console -port 27015 -stringtables -workshop +servercfgfile 'server.cfg' +map revolt_coop

  • Next, create a text file in the main insurgency install folder (could be ~/games/insurgency/insurgency) called subscribed_file_ids.txt (in the same folder as mapcycle_ files).

Next, you need some workshop content! Go to the Steam Workshop and browse for some mods you want to throw in. When you find one you want, look in the URL for ?id=xxxxxxxx:


Highlight the number between ?id= and the & (in this case it would be 350747322) and just add it to subscribed_file_ids.txt:


Just give each mod its own line and it should work:


And thats it! The clients download the Workshop files by themselves, saving you precious upload bandwidth! Have fun!


Insurgency Linux Dedicated Server fixed!

So after trying everything – redownloading files, trying to run the server on other machines, etc, I have finally got the server up and running again. Here is what I did:

  • I deleted the ./insurgency/bin folder and redownloaded the files after doing another full redownload. This gave a bunch more messages before eventually going into Segmentation fault.
  • I copied steamclient.so into the ./insurgency folder from the SteamCLI install. This got rid of all the previous errors I was having where it couldn’t find the file (for some stupid reason) and the server launched and ran normally.

Finally! It seems that the Linux version needs an additional install step involving this steamclient.so file. Weird! I hope this helps some of you out, I had a tough time finding anything online about this problem!


Insurgency Dedicated Server for Linux: Segfault update 1

I still haven’t got this fixed. I have tried different kernel versions (I am running 4.1.6 and I have tried 3.19.0), redownloading the files, installing the dedicated server on another machine, installed the dedicated server on a clean install of Ubuntu Server, and it’s just the same old error:


I am really starting to feel that they have borked this update. If I am missing something, please please please tell me what I am doing wrong. I haven’t found anything online (yet) about other people having the same issue.



Insurgency Linux Dedicated Server: Segmentation Fault!

So I just updated the Insurgency Decidated Server (srcds_linux) to the latest Embassy update, and now this is all I get when I try to run the server:

Segmentation fault (core dumped)

I have tried different kernel versions, messing about with libaries, reinstalling the game, revalidating, but even just running ./srcds_linux just crashes the same way as above.

I have tried using -debug in the command and it doesn’t change anything. No logs or anything are created. All I get is this in dmesg:


I don’t think I can fix it. I will post this into the steam forums and see if anybody else is having the same issue. If you are, please tell me that you’re getting something similar just so I won’t have an aneurysm trying to find fixes!


Ubuntu Server 15.04: Bridging Two Connections!

I have covered setting up a personal hotspot in this post, but how do you do the opposite? That is, to send your wireless connection down through your ethernet connection to another PC or a switch. In this episode, I will cover this!

I am using Ubuntu Server 15.04 to do this, but under Ubuntu Desktop, it is very simple. All you have to do is connect to WiFi and set your ethernet connection as “Shared to other computers“.

Under Server, you have to make a couple of changes.

Firstly, make sure you have bridge-utils installed:

sudo apt-get install bridge-utils

Open your /etc/network/interfaces file and add the following to the bottom:

# Bridge
iface br0 inet static
bridge_ports eth0
bridge_fd 0
bridge_maxwait 0
post-up iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE

That will initialize the bridge from eth0 (or whatever your ethernet interface is). Change wlan0 in the bottom line to whatever your wireless interface is. The address line needs to be different from the network that your wireless is running on. If your existing network uses 192.168.1.xxx then use, etc. Mine uses 192.168.0.xxx.

So that’s the bridging and firewall done. That last line allows packets to be transferred between wlan0 and br0, which is bridged to eth0. Now, we need to make sure that whatever gets connected to the ethernet jack gets an IP address from DHCP. To do that, we need to use isc-dhcp-server:

sudo apt-get install isc-dhcp-server

This will install the DHCP server. We need to make sure this runs on eth0 and nothing else. Edit /etc/default/isc-dhcp-server and make sure it only has the following line:


This will let the DHCP server run on the bridge (which is bridged to eth0). Next, we need to configure the server to hand out IP’s. Edit /etc/dhcp/dhcpd.conf and add the following to the bottom:

option routers;
default-lease-time 600;
max-lease-time 7200;
option subnet-mask;
option broadcast-address;
option domain-name-servers;
# Bridge
subnet netmask {

This will set up the DHCP server on the network (the same network that br0 is running on). I have it configured to assign between .10 and .100, but you can put anything between .2 and .254 in the range line. You can use whatever DNS server you like, I just used Google for simplicity. Look here to enable your server to cache NSave and close the file.

Now, reboot the server. This should apply all of the settings we have changed. Your connected system should receive an IP and have full internet access. This is great for stopping your WiFi becoming cluttered if you have multiple systems in close proximity.

And that’s it! I have ran 1 gigabit through a bridge and the CPU usage is very low since the overhead is minimal. You can connect to your connected devices from the wireless network just by using the IP that they were given. Happy bridging!


WordPress caching: Worth it?

My Intel NUC DN2820FYKH isn’t the most powerful server in the world; I have it for its very low power draw. I enabled web page caching to try to reduce load on the server, and these are the munin graphs I have for the last few days:



Very little load as it seems (average “Load” is 0.17). WordPress caching does not reduce the amount of data traffic each request generates (minifying CSS and stuff helps), but rather it is intended to reduce the load on the server when many requests are made of the same page at once by, instead of reprocessing the page for each request, just generating the page once and sending that to everybody. This reduces CPU load on the server.

The question I want to know is: is it necessary?

So for a week, I will disable the WordPress cache and see what the long term difference is. I will let you know what my findings are next Friday!


BTRFS USB Array: Errors Found!

So I ran a scrub on my USB drives in a BTRFS RAID-1 mode (more details here), and I got the following output:


1 error was detected! Fortunately, this error was corrected for me though! But, which drive was this on? You can find this out too on the main page of the Webmin module:


The module also gave me this information:

[ 1431.445495] BTRFS: checksum error at logical 374177792 on dev /dev/sdb, sector 730816: metadata leaf (level 0) in tree 5

Hmm, drive sdb was corrupted. This was the smaller of the two sticks (the top Integral one in this image):


It’s a good job I decided to go for BTRFS: these drives contain very important data and I am glad that I have it there to protect me against corruption! I’m not relying solely on these USB drives though: the data is replicated on my RAID-5 array and also on other machines that I own, so I am pretty well protected! If I see more errors in the future, I will be replacing these drives with larger ones (since I am running out of space).

So, in conclusion: don’t use mdadm for RAID-1 with critical data. There is no protection from data corruption or bit-rot. For that, you need a modern filesystem that stores checksums alongside the data, and constantly checks the data for errors as it is read by the OS. I do not know if I would have lost any data with mdadm in this situation, but its better to be safe than sorry!


The NUC gets upgraded to 8GB

Now that I am running a Minecraft server on the NUC, 4GB of RAM wasn’t enough to run that and everything else. So, I have got a stick HyperX Impact 8GB DDR3L RAM to put in the system:


And there you have it! Bit overkill as the RAM can do DDR3-2400 and the NUC will only do DDR3-1066… Oh well!


Minecraft Server Munin Plugin: Strange behaviour

I decided to use Munin to monitor the Minecraft Server but there is some strange behaviour:





As you can see, only the users plugin works! Strange, I will post the fix to this in the future once I figure out what’s going on!