Lesson One was relatively simple and to sum it all up we installed VirtualBox and downloaded a pre-built virtual Linux system by pointing a new virtual machine to the VirtualRails .vdi file, wherever you decided to save it. Now we continue with the strange, dorky computing. This is not a waste of time. This tutorial brings the most bang-for-the-buck for your time invested. Virtual computing is a good idea for a number of reasons, especially the fact that you get to save your system in a zipped backup file that can be restored quickly on other PC's or after rebuilding your system. Learning is the opposite of depression and helplessness. You may now consider yourself a Subgenius Computer Scientist, as long you pay them the $30. Make the most out of your computer and your brain. Learning provides a path of growth through time. Dive right in and learn by contextual reference within sentences when you don't understand it all!
Download of the Android image requires setup of a free SugarSync 5GB on-line storage account, which you can then use or ignore. It is especially recommended with virtual Android that you turn off the networking to isolate this sucker to your 'workbench'. When we enable networking, a DHCP IP address can be assigned by your router and then the virtual system truly becomes another computer on your network. You're able to temporarily enable the networking once it's running using the menu item Devices->Network Adapters. This applies to all virtual systems.
You can trust this tutorial. None of these virtual systems can hurt your host PC with the networking turned off. That's another reason why I recommend turning the networking off for your virtual system, to show that we have no reason to use the system except as an isolated tool for learning.
Next, you can download and install Eclipse java development environment in Windows or Linux and the Android SDK (Software Development Kit) and develop your own Android 'Hello World' graphical user interface in Java.
In my dorky opinion, the best way to use a PC is running Ubuntu Linux 64-bit and install the free VMware player, then pop in your Windows XP cd to install it into a new virtual machine.
You can use our link or grab the latest version and substitute the version number in all of the commands we're going to type.
Start Mint Linux virtualrails by opening VirtualBox and selecting the system we installed in Lesson One then press 'Start'. Enable networking so we can download a new kernel.
Next, you should be looking at the Linux desktop. Open a terminal window by Pressing the "Menu" in the lower left corner of the screen, and then choose Terminal, four items up.
This is the most powerful computer command prompt in the world, the Linux bash shell.
Type uname -a
This will list your current Linux kernel version and build date. The kernel in virtualrails is a couple years old, from 2009. Let's update our kernel.
The best part about compiling your own Linux kernel is that you learn tons about Linux' capabilities from the menu-based configuration options. We could fetch a pre-built kernel from Mint Linux even faster.
UPDATED MARCH 2012: Follow this link for excellent instructions from explodingpenguin on how to compile the new Linux 3.0 kernel
You'll need to download the kernel source file to the virtual Linux system using its Firefox browser pointed to http://www.kernel.org/pub/linux/kernel/v2.6/linux-126.96.36.199.tar.bz2
Learning the Unix command prompt is really easy. The commands are short and it all makes sense. In the screen shot above we change working directory from home to home/Downloads, using 'cd'.
To see what's in the Downloads folder, type 'ls' then hit enter. To copy the filename of the Linux kernel source file, double click on it to select it then right click and choose copy.
From this point onward many of the commands require administrative/root privileges. Entering 'sudo' before a command will run it as root, and we'll be prompted for the password 'virtualrails'.
sudo tar -xjvf linux-188.8.131.52.tar.bz2 -C /usr/src
The command above unzips the kernel source code into the system's src folder. By pressing the up-arrow button on your keyboard, you can recall previously entered commands, in case you need to redo the steps or see what was done.
sudo ln -s linux-184.108.40.206 linux
sudo make menuconfig
The Linux kernel configuration menu is one of the most interesting pieces of software in all of computing. We can leave the settings as they are, but browse the options with the up and down arrow on your keyboard and press enter to read the items beneath that category, and press enter once again for each individual item. Press '?' key for a FULL EXPLANATION of each item.
Since this is the source code for Linux that we've downloaded and unpacked into our /usr/src directory, you're able to view all of the C programming behind Linux and make your own edits and patches. Compiling the source turns it into an executable binary that your Linux system runs on.
sudo makeThese steps do the actual compiling and are another opportunity to watch and learn about Linux, but optimally leave this running when you go to bed.
sudo make modules
sudo make modules_install
sudo make install
sudo mkinitramfs -o initrd.img-220.127.116.11 18.104.22.168
sudo make me a sandwich! (Would you run this? Why not?)
Now you can reboot your system and eagerly await the opportunity to run 'uname -a' again to see the new kernel details. If something fails and the kernel will not boot, send a Ctrl-Alt-Del command from the VirtualBox menu and press Esc repeatedly as the system reboots. This should bring up the grub boot loader menu and allow you to boot using the previous kernel. Grub can also help you install dual boot systems on different partitions of your hard drive, the next step for you hooked geeks.
virtualrails@jay ~ $ uname -a
Linux jay 22.214.171.124 #1 SMP Sat Apr 16 08:53:24 CEST 2011 i686 GNU/Linux
On my system, there were some actual noticeable improvements. Sound suddenly worked in the virtual system and it seemed a little faster. You should also update your VirtualBox guest additions for optimal performance.