0.2 release

My 0.2 release consisted of a lot of research and playing around with a few virtual machines that I had setup.

I first wanted to see if it was possible to mount the log files as temporary files.  There are some advantages and disadvantages to this; one advantage is that if the log files are mounted as temporary files, they will be mounted a lot quicker and there is less data to process.  The disadvantage of this is that the logs will be erased on every start up.  I mounted the log files as temporary files and I found that there was about one second difference in the boot. Below is a screen shot of my /etc/fstab file.

As you can see, in the above screenshot I have set the /var/log, /tmp and /var/tmp files to be mounted as tmpfs.

Another tool that I have been experimenting and benchmarking with is the hdparm command. This command has been giving me some trouble in the virtual environment.  Once I get my partition up and running on the actual Raspberry Pi then I will play around with it more.  I would like to use hdparm to determine if i can see what speed the disk is operating at and If I can increase the speed.  The commands I will use will be similar to the following:

  • Test Speed: hdparm -tT /dev/hda
  • Increase Speed: hdparm -d1 -c3 -u1 /dev/hda

I should have more to say about this command/utility in my 0.3 release when I have more time to test it.

Another service that I have recently just started researching and working on is the readahead service.  For those of you who don’t know, readahead is a service normally installed by default on Fedora that prefetches files into system memory before being needed.  So when a file is accessed, the contents are read from the physical memory rather than the disk, which is much faster. If configured correctly, readahead can be used to speed up boot times substantially.  This is another utility that I would like to implement on the Raspberry Pi within the next few days.  I am currently doing research on how to configure readahead to start at boot.

I should also mention that I copied a Virtual Machine from my laptop to my desktop computer.  After opening it up in VMware 8 I quickly noticed how much faster the boot times are.  On my laptop which has 4GB of ram and an Intel i7 CPU, the VM boot is approximately 20.1 seconds, which isn’t bad; however, when I copied it to my desktop which also has 4GB of ram and an AMD Phenom II X6 CPU the VM boots in 11 seconds! I did not expect this. The link below is a short video that I took of the Virtual Machine booting on m desktop.

Raspberry Pi Virtual Machine Boot

This is why I want to move from the virtual machines to the actual Raspberry Pi device, it will allow me to try the things that I want in real time and my results won’t be different; unlike virtual machines where one could be booting a lot faster than another even when they have the exact same configuration.

0.1 Update

As I mentioned in my previous post my goal is to make the Raspberry Pi boot in approximately 15 seconds.  I am on my way to reach this goal, currently I have a few Virtual Machines with the same hardware specs as the Raspberry Pi booting in 20.1 seconds.  I did this by limiting the services that are running at boot.  Below is a list of the services that are currently running:

These services that are running are the same services that the Raspberry Pi is currently running.  By using a program called Bootchart I can visually see what components and modules are taking longer to boot.  In my next release I plan on incorporating a few more services that will speed up the boot process, I also plan on looking into init scripts and seeing if i can make any changes there. Stay tuned!


0.1 Overview

For my project I chose to work on optimizing and tweaking the boot process of the Raspberry Pi. For those of you not familiar with the Raspberry Pi, let me explain. The Raspberry Pi Foundation is a charity in the UK that’s promoting computer science and other related fields. They’re currently developing and manufacturing a ridiculously low cost computer that’s designed to teach computer programming to children;  however, this is not the only use for this device.  The Raspberry Pi can be used for many things such as programming, web development, robotics, administration and of course, personal use such as browsing the internet and emailing.  The best feature of this  device is that it sells for $25. This will allow for anyone to purchase the device once available. The cost also reduces the chances of it  stolen.   Below is a picture of the Raspberry Pi:

As you can see there isn’t much on this little  device. It’s equipped with HDMI  and Composite video output, 2 USB ports, general purpose I/0, 10/100 ethernet and it boots off an SD card which is located on the bottom.

The current boot process of the device that Seneca has is roughly 25 – 30 seconds.  My goal, for the end of the semester, is to have device booting in approximately 15 seconds.

For more information on other projects you can click the following link:Potential Projects