Debian Time Machine Server

As usual, a little background for perspective. This the second time I have had to do this and to get it working I had to go scouring the Internet a little bit. This involved taking bits and pieces from a few sites then keeping my fingers crossed that it would work in the end.

There are two Macs in my household. I configured this at first so that both would dump their backups into one folder. This worked well but I noticed a few weird stuff from time to time and I remembered also reading were some people suggested keeping them separated because of issues that, I guess, could cause the stuff I was noticing. Because of this an a few other cosmetic factors, I decided to move the service to a different server and assign both computers to separate folders (I used separate LVM volumes so that they will have no effect on each other and I have flexibility to grow)

Installing Packages

The newer releases of OS X requires Netatalk 2.2.x+. However, Debian 6.0 (Squeeze) comes with 2.1, which won’t work with Mac OS X 10.8 “Mountain Lion”. If you are still running Debian 6.0 you can get netatalk 2.2 from Debian 7.0 (Wheezy) by doing the following as root.
First add the following line to /etc/apt/sources.list:

deb wheezy main contrib non-free

Then run the following commands:

 aptitude update
 aptitude install netatalk avahi-daemon avahi-utils

You can revert the changes to /etc/apt/sources.list now and run “aptitude update” again. Obviously if you were already on Wheezy you won’t have to worry about this.

Setting up Netatalk
Let’s do some configs…

Change your /etc/netatalk/AppleVolumes.default file to export the Time Machine volume.

Look for the following line:

 #:DEFAULT: options:upriv,usedots 

And change it to something like this.  Also remove the hash sign:

 #:DEFAULT: cnidscheme:dbd options:upriv,usedots 

At the end of the file you’ll find a line that reads:

~/                     "Home Directory"

Add something like this below it:

/mnt/timemachine  "Time Machine"  allow:username cnidscheme:dbd volsizelimit:250000 options:usedots,upriv,tm
  • /mnt/timemachine is your backup folder.
  • “Time Machine” is a random label to identify your Time Machine volume.

The rest of the line contains various parameters to allow the Mac to “play nice” with this server as a Time Machine target. It’s important to add the options:tm at the end of the line so that Netatalk enables various special options for Time Machine. You can also add fancy options to restrict access to users logging in with specified accounts. But I have decided to keep it simple, at least for this round 😉

The next config file is /etc/netatalk/afpd.conf. Comment the last line like this:

# - -tcp -noddp -uamlist, -nosavepassword

…and add this:

- -tcp -noddp -uamlist, -nosavepassword

I guess you could also just replace it but I like an easy rollback path, just in case.

I am not sure if this command is actually needed for it to work but it didn’t cause it not work 🙂

touch /mnt/timemachine/

Restart netatalk for the new configuration to take effect:

sudo service netatalk restart

For an additional layer of security I decided to create a dedicated user account that will only have access to the write to the backup folder. Time Machine will ask for this information on initial setup.

 sudo useradd -s /bin/false timemachine
 sudo passwd timemachine
 sudo chown -R timemachine:timemachine /mnt/timemachine

This takes care of the server side.

Client Setup
Now configure your OS X installation so it sees unsigned time machine volumes. Open the terminal app and execute the following command:

defaults write TMShowUnsupportedNetworkVolumes 1

Older articles refer to creating a /etc/avahi/services/afpd.service file. With netatalk 2.2, this file is redundant: you do not need to create it.


RaspBerry Pi – 1st Encounter

Back Story
I have wanted one of these boards to replace my Apple TV2 running XBMC for a long while now but as everybody knows the first version sold out almost immediately and the average price for one on the after-market is sometimes 3-4 times what the Element14 sells it for. They announced the second version and I decided to try get my hand on one before it hit the after-market. Long story short, after about a month of waiting on order fulfillment, I have it.
What to do?
At my office a couple of the guys have these configured as HTPCs (XBMC of course). I couple have positive feedback while others are so-so. The number one complaint I have heard it the speed. and digging further, I find a couple of them attribute it to slow SD cards. So I was worried that I might have to purchase another SD even though I already have one laying around. Of course I decided to try what I have on hand first, and I am happy with the results so far.
Here is what I have:
  • Installed with python script ( from the site with a downloaded image
  • Install NTP
  • sudo dpkg-reconfigure tzdata for America/Montreal
  • Inside XBMC (Settings > Appearance > International) set location to Canada/Montreal
  • I use NFS shares, so I add those with the appropriate scrapers and allow it to scan the library
This is not my final setup but I think this gets me back to where I was before and I am okay with that. The main thing I wanted to test here is the performance of the SD card with RaspBMC and that seem to be working out. I don’t know if Class 4 would be too slow or if the doubling of the RAM from the previous model is making all the difference here (512MB vs 256MB). I don’t have a class 4 to test the difference, so all I know is this setup works…..for now 😀

HTC Evo 3D – Charging Issues

It’s not like my expertise, or lack thereof, will influence the decisions others make but since I made it public that, based on my experience, the Evo 3D might be flawed it is only fitting that I comeback here and withdraw the statement.

The original statement was made in a Google+ post where I basically made it known that people should think twice about buy HTC phones. This was basically the anger talking after I found my phone refusing to charge after I had allowed the battery to run completely dry. I called Rogers and got a replacement but I was reluctant to make the exchange because, even though it was just ~$30, it would mean I would have to spend it again to redo the carrier unlock the phone & get a proper screen protector.

So, I did some work on the phone over this last weekend and it turned out that ClockWorkMod, which I had installed since forever (at least 4-5mths), has a bug which causes it not to charge when your battery is totally dead. So the short version of the story is that I downgraded to and it is all good now. But this also showed that there might be other issues with version 5 of CWM too. I say this because, when I was running it, I couldn’t install the OTA updates for my phone and I thought it was the fact that it was rooted which caused me not to be able to install these patches. But once I downgraded the CWM it worked like a charm.

I learnt a lot from this experience though:

  • How to relock the bootloader and reflash the factory ROM (Downloading the ROM was the hardest part)
  • How to setup ADB on Ubuntu 11.110 (I have always used it from Windows)
  • Most importantly, when a forum is 60+ pages long try to read and understand all of it before trying the things recommended. I might be working perfectly on page 5 but someone on page 40 is saying you better watch out for “this” really big nasty bug which will bite you in the ass 5 months down the road.

Moving Ringtones To Internal Memory – HTC EVO 3D

I just started my dance with the “Android” a couple weeks ago on the HTC Evo 3D and it has been a learning experience from typing on the on-screen keyboard to rooting. As is the purpose of this blog I try to post my learning experiences for later reference.

Ever since I got the phone I noticed that whenever I mounted the mircoSD to a computer, the ringtones would go back to the default/stock tones. Basically what was happening is, when the memory is mounted to the computer it is not accessible to the phone therefore no tones and it reverts to the settings it came with. This can be a bit annoying so I set out to do something about it. In this quest I discovered that the internal memory (/system to be exact) is mounted as read only therefore writing to that partition (read: placing files there) is not possible. So I couldn’t simply copy files onto it even though the phone was rooted.

I want this post to be as clear as possible so the the next person needing to do this wont have to go hunting around the web for bits and pieces like I had to. In order to do that though, and remain on topic, I will have to do a second post about how to get the adb stuff working. It took me a couple weeks, on and off, to get it but the crazy part is that I had it working from day 1 and didn’t even know. So I will put that together in another post as I said before.

I have pre-edited mp3s that I use as ringtones stored in my music folder on the mircoSD and what we will need to do is copy those to the Continue reading

vsFTPd – Install and Configure

In this post I will go over how to install and configure one of my favorite FTP servers, vsFTPd. It’s a linux application which is known within the IT circles as being feature-rich, fast and secure, so I have adopted it as my tool of choice when the ‘job’ requires a FTP service.

Installing vsFTPd

I am using Ubuntu linux therefore my installation command is as follows:

 sudo apt-get install vsftpd



To configure vsftpd to authenticate system users and allow them to upload files edit



Now when system users login to FTP they will start in their home directories where they can download, upload, create directories, etc. Similarly, by default, the anonymous users are not allowed to upload files to FTP server. To change this setting, you should uncomment the following line, and restart vsftpd:


The configuration file consists of many configuration parameters. The information about each parameter is available in the configuration file. Alternatively, you can refer to the man page, man 5 vsftpd.conf for details of each parameter. There are
options in /etc/vsftpd.conf to help make vsftpd more secure. For example users can be limited to their home directories by uncommenting:


Restart the service

sudo service vsftpd restart

Related reading:
Creating Dummy FTP Users

Create Dummy FTP Users

So it happens time and time again, I research and learn how to do stuff and after couple months (read: days) when I want to do it again I can’t remember how. This is one of those things.

I don’t like the idea of FTP users having an actual login account on my servers. (It isn’t best practice either). It’s just a door way to break into your server waiting to be explored. To get around that on Linux, users with no privileges to login to the shell are created with their home folder being wherever I want FTP to access.

So let’s get going:
First, we define the “dummy” shell environment by editing ‘/etc/shells‘ with this command. (You can replace nano for your preferred text editor)

    sudo nano /etc/shells

Add the following line to the end of the file


Create the user

    sudo useradd dummyuser –p crypticpwd –d /ftp/folder/path –s /bin/false

That’s it.

DIY HeadPhone Amplilfier


I have always been interested in building something like this since my second year at university. But apart from repairing small things like re-soldering a power cord, my adventures down this alley have normally resulted in failure. The most memorable was my attempt at building an FM transmitter from an internet schematic (I can’t even tell what was wrong with this, it just did not work). Recently though, I was encouraged by my “success” in replacing the bulb in my flashlight with LEDs. I put success in quotes because there was no notable increase in the illumination from the torch but it was at least not worse than it was before. So I count it “success”…….. 🙂

This project came back to the forefront a few months ago when I decided to learn the bass guitar but as you might expect, this was not kind on the ears of the people who had to listen while I slowly and painfully attempted to get to the skill level of the likes of Fred Hammond. So I thought this was a great opportunity to convince my wife why it was necessary for me to get a headphone amplifier 😉


And so the journey begins. I did quite a bit of research on my options (to build or to buy??). I ended up striking the middle ground by buying this kit off eBay and try to recreate my recent success in the field of DIY electronics. It basically contains a printed circuit board and all the parts needed (that was another reason I got a kit as opposed to buying individual parts. It is hard to get exact parts locally and as a beginner it is not easy to substitute parts). Anyway, 6 weeks later the package arrived and I dove into the construction.

The first thing I noticed was that the schematic referred to a  pair of capacitors which were not in the package.

Kit as shown on eBay....notice the 2 blue capacitors beside the board?

I decided to put it together anyway even though all internet references to the project showed that a couple of capacitors should be in the mix.

Other than that the process was mostly without event. But it was a huge learning experience with regards to soldering. For instance, I don’t know the differences between the type of solders (need to read up on that shortly) but the one that was included in the kit had a tendency to “blot up” more than the one I had. It was as if it was harder to melt and I had to be making a special effort to get clean, neat solder-points. When I started using the one I had before, as soon as I touched it with the soldering iron it just melted and it was like it formed the perfect shape all by itself (as opposed to spreading out all over the board). Also, the opamp chip should be removed from socket before the socket is soldered….it will burn :-D.

Pics of the process and the finished product can be seen here.

I carved a housing for it out of an extra power brick which I had lying around in a box. This was quite a challenge though because I didn’t have any of  the tools to make the holes or properly mark out the spots to be cut. As you can see it wasn’t a total disaster.


Apparently the capacitors weren’t needed as the completed amp worked perfectly without it. As a-matter-of-fact when I added some capacitors of values which some other sites were recommending for their projects, it sounded significantly weaker.

So, as is, the amplifier sounds loud and clear with even my cheap/free BB earbuds and does enough to let me hear the guitar without disturbing anyone else. Overall this experience is worth far more than the $25 I spent on this project.