Tag: custom PC

After planning and building a Ubuntu-based fileserver, it’s time to add software to the mix, so that the computer does the work it was originally meant for. In the case with my command-line only server, the software I added was for file sharing and media serving.

The software I’m explaining here was all installed via the command line. To do any of this with the GUI of Ubuntu, simply open a terminal window.


The priority of my project was that the media on the computer would be accessible on my PS3 via wireless network. To do that, I researched a number of software projects, and settled on MediaTomb because I had heard good things about it. MediaTomb has lots of great features including, but not limited to: web administration, daemon operation, transcoding and instantaneous library additions.

After finding an excellent tutorial on adding all the necessary and optional libraries to get every feature working, I had a good setup. I highly recommend reading that blog post and others on it to find out about all that MediaTomb can do. Essentially, the task involves downloading and compiling MediaTomb to use all the features. While initially the MediaTomb daemon did not run, I was able to fix the problem and got everything working. I’ll be sharing the process in an upcoming post.


Using the command-line doesn’t really bother me, but I wanted another way to administer the server over the network and a browser. To do that, I used Webmin, which enables users to change many aspects of the system, without using the terminal.

Installing Webmin is quite easy, because it is included in the Ubuntu repositories. Simply open a terminal window and type

sudo apt-get install webmin

Enter your admin password when prompted, and Webmin will be downloaded and installed automatically. Once it is installed, open a new browser window and navigate to https://ip_of_server:10000 then enter your user credentials. Once logged in, you can do many operations without using the terminal. I have found the best benefit so far to be local disk management — after all, mess that up, and your data vanishes.


Ffmpeg is a suite of libraries and applications for operating on videos and multimedia. Once installed with all the add-ons, nearly every type of video can be modified and converted. Once again, the blog of Julien Simon has an excellent tutorial about making the program work with Ubuntu. Following his instructions, you’ll have a fully operational ffmpeg installation for other applications to use.

The only thing I’ll add to his tutorial is a fix for ffmpegthumbnailer, which is necessary for MediaTomb thumbnails. Install ffmpegthumbnailer by running

sudo apt-get install libffmpegthumbnailer2

then make an addition to the ffmpeg configure code. Add the text --enable-libffmpegthumbnailer2 to the configure stage, and you should see ffmpegthumbnailer — yes when the configuration has finished.


Netatalk is an open-source file server that can be configured to use the Apple File Protocol. To do this, I followed these instructions, and was up and running in no time. Once installed, Netatalk is very easy to administer from the command line. I was able to create multiple shares for guest and user access and can now access my files from any Mac in the house.

To enable guest access, an additional element must be added to the /etc/netatalk/afpd.conf file. Add the following text


so that the entire line is

- -transall -uamlist uams_randnum.so,uams_dhx.so,uams_guest.so - nosavepassword -advertise_ssh

This will enable you to access shares without entering a password, provided the shares themselves are open to the use nobody.

rtorrent + screen

Torrents are a convenient way to download large files like Linux distributions, and a media server is a perfect platform for unattended downloads. rTorrent is a powerful but easy to use command line client that can be customized for any situation. On its own, rTorrent will not run as a daemon, but coupled with screen, it can run in the background.

Install rTorrent and screen by executing the following commands in the Terminal.

sudo apt-get install rtorrent
sudo apt-get install screen

Once installed, start screen and attach rTorrent to it.

screen -S torrents

Detach the screen session by pressing ctrl + a, d and you’ll be back to the main prompt. Now rtorrent will remain running even when you disconnect from SSH.

To rejoin the rTorrent session, you must attach to it.

screen -r torrents


Avidemux is set of audio/video tools for the command line that can do many operations. So far I’ve used it to shift audio inside video tracks. Like most other programs, it simply requires a few arguments to do whichever job you need.

sudo apt-get install avidemux


Slightly different than ffmpeg, mencoder is another suite of video conversion for a variety of formats. This is an excellent tool to use for converting MKV or OGM files to AVI (video does not need to be converted). Again, it requires basic command line arguments, and can be used in a screen session to work in the background.

sudo apt-get install mencoder


An important part of running a headless media server is making sure the hardware is operating within its temperature restraints. A tool do monitor that is called lm-sensors and must be set up with the specific hardware in your computer. I could explain the system, but a post on the Ubuntu forums does a much better job. Once installed, simply issue the command sensors to see the temperature of various compontents, and — if your motherboard supports it — the chassis fan speed.

Of course, this only begins to scratch the surface of possible software for a Ubuntu fileserver, but I think the applications shown are important for running a system without local input. Set them up, and enjoy central storage for all the computers in your house.

Tagged with: , , , ,

With the planning of a new computer done, it’s time to begin the process of buying and assembling the parts together. The more you read about compatibility and user satisfaction, the better your final product will be. I highly suggest perusing Newegg.com (or .ca in Canada) to read about other users’ experiences with a prospective part. I used this site to read about parts, then sourced them locally to get instant gratification.

The components

While I won’t talk about physically assembling the computer (there are hundreds of articles like that across the web for that), I will explain what parts are necessary and which ones I bought.

The Choices

I purchased these parts because each met very specific needs for a fileserver. The case includes 4 internal 3.5″ drive bays, with 3 5.25″ and 2 3.5″ external bays. This leaves plenty of space for expansion. Additionally, the case includes a 120 mm chassis fan, meaning it will blow a lot of air, but will remain quiet. The cooling and noise factor is especially important for computers that will be on constantly.

The Intel E5200 was picked because the 45nm manufacturing process means it will require less power and cooling that comparable processors. The fairly high clock speed is just a bonus, but one that allows this computer to work as a video processing station. Remember, a few extra dollars spent at the outset means your system will likely satisfy your needs for much longer.

The hard drive choice is largely a matter of budget and ambitions, but I highly recommend a separate drive for the OS and main storage. Originally I didn’t really want a 500 GB boot drive, but my local store had a sale. The separate drives mean you can upgrade or even replace the operating system without touching your media files. It also means you can create filesystems like RAID or LVM without modifying your home folder.

The motherboard is perhaps the most important component in the build, and requires the most research. As previously mentioned in the planning post, the motherboard will make or break the connectivity of your machine, both to internal components and the network. The ASUS unit I chose has 4 SATA connectors and Gigabit Ethernet. It was one of the few — if not the only — motherboard I found that has both of these features and a MicroATX form factor. The gigabit connection means I can transfer data across the network at speeds of 40 MB/s!

A central storage database can make using multiple computers much simpler and convenient, and with properly chosen components, it can be built with a fairly small investment.

Newegg provides a small affiliate payout for items purchased through these links. I recommend Newegg because of their rapid shipping, low prices and excellent customer service.
Tagged with: , , ,

If you have multiple computers in the house, you can probably benefit from a single system with centralized storage. A fileserver, as it is usually known, is a computer with multiple hard drives that often sits unattended somewhere and simply gives file access to other computers. This can be an older model, with a minimal amount of computing power, or a fairly up to date system with dual cores and lots of memory.

I decided to build myself one of these systems, so what I hope to do here is explain what I did to get up and running, and hopefully help you solve some of the same problems I encountered on the way.

The Hardware

Since this computer will mostly work as a file server, a high end system is not really necessary. In fact, an old computer sitting in your basement with Windows 98 on it will probably do just fine.

There are things to remember, however, that might swing you in favour of building a new system.

  • Processing power for other jobs
  • Expandability
  • Network connectivity
  • Cooling/Noise

If you want to be able to do other tasks with the system outside of serving files, you might want some more power. For instance, I’ve set up my box to act as a video conversion system, which frees my MacBook from churning through videos all night.

Disk drives will always be improving, so don’t limit yourself to a case with only 1 or 2 3.5″ drive bays. Look for something with at least 3 or maybe 4. For example, my original plan was to use the shell of a Dell computer, so that I wouldn’t need a new case, but I quickly learned there was very little internal storage, which would have crippled the setup right out of the box.

You’ll definitely not want to go wireless with a server like this. Wired ethernet is the only way to go, and Gigabit is certainly preferable. This of course means you’ll either have to put the computer near your main network station, or run a cable to another part of the house.

Finally, you must take into account the cooling/noise requirements for a system like this. It will be on 24 hours per day, 7 days a week, unless manually shut down, so you won’t want a case that makes living next to it unbearable. Look for a case with 120mm case fans, and use a high quality CPU heat sink that dissipates heat with a large fan that moves air while turning slowly.

The Software

The second half of the equation is the software to run the hardware, and do what you want it to do. I suggest using a Linux variant: it is free, very stable, and has a very enthusiastic support community. From there, depending on your level of knowledge, you need to choose a GUI version, or command line version. The benefit of a GUI is that configuration and usage is significantly easier, but it also means you more or less need to physically be at the computer to make changes. A command line version, however, allows complete control over all aspects of the system, but can be done remotely via SSH (the terminal).

I chose to use the command line server version of Ubuntu Jaunty Jackalope, because it had come out just days before I set up my system. It is available at Ubuntu.com in 64 or 32 bit versions. The command line ensures that all processing power available to the computer is used for productive computing instead of running the interface. With the OS in place, you must plan what software you’ll run to do the serving.

Ubuntu Server contains numerous packages that can be configured out of the box to create a working server. This is a list of packages I installed immediately after setting up the computer (* denotes a package installed after the build):

  • SSH
  • LAMP (Linux Apache MySQL PHP web server)
  • SAMBA (Windows file sharing)
  • Mediatomb* (UPnP media sharing)
  • Netatalk* (Apple file sharing)
  • Webmin* (Web interface for administering computer)
  • ProFTPD* (FTP server)

These servers provide services to the entire network, which means I need to do little or no interaction with the server once they’re running.

A Ubuntu file server can provide centralized storage for a large network and provide many other services to all the computers connected. It can store and stream media, backup important files and even process files, all while sitting unattended under a desk or in a closet.

Tagged with: , ,

Early last week I was working on my MacBook, with a USB hard drive, FireWire Time Machine drive built from my old iBook, and keyboard connected. Suddenly, my computer shut off, and I smelled burnt plastic — clearly two events you don’t want to see in quick succession. Fearing the worst, I pressed the power button again, and the MacBook came to live. When it was back at the desktop, I set about determining where the smell had come from.

It turns out that it was my 4 year old iBook drive, which had vanished from the desktop and would not mount regardless of the steps I performed on it. So I did what any curious nerd would do: I took it apart then put it on eBay. Who would buy a broken hard drive, I do not know, but I’ll soon find out. I knew that the data couldn’t be salvaged, and since it was a backup drive, I wasn’t concerned about the loss. Keep in mind that if, for some reason, you’d like to do something similar, your data will be destroyed.

The results of the destruction are shown here. While I couldn’t see any significant damage when I opened it up (I was hoping for mangled and burnt plastic), the drive is surely dead now after my finger prints slipped onto the platter.

So if you’ve ever been curious as to what goes on inside a 40GB iBook drive, behold the wonders!

The platter

The mechanism

Update: It turns out that no one buys broken hard drives. Maybe I’ll try again.

Tagged with: , , ,

This is part 1 of upgrading your MacBook. Part 2 is moving the data to the new drive.

When you purchase a MacBook, the options for hard drive space are 80GB, 120GB, or now, 250GB. I went with the stock 80, but now, more than a year later, I want more. What to do? Why, install your own hard drive, of course! I picked up a 250 GB drive at a local store for $100, and am now in the process of moving all my extra items on this ginormous (for a laptop) drive.

Since I am certain there are more people interested in doing this, here is part 1 of a two part tutorial on what you need to do to get your MacBook up and running with a larger drive (part 2 is moving the data).

The first thing you will need, naturally, is a hard drive. As I mentioned, I picked up a 2.5″ SATA drive with 250 GB and 5400 RPM at a local store for $100. This is a very good price, in my mind, and it fits the bill nicely. Just remember that those are the specs you need to get: 2.5″ laptop drive, 5400 RPM, SATA connection. 7200 RPM drives also work.

With a hard drive available, you are now ready to begin replacing the innards to your computer.
Read More »

Tagged with: , , , , ,