Compile a 8.10 Kernel
The purpose of this tutorial is to show you how to set up a kernel that is highly tuned for your CPU, in this case a dual core Pentium for a workstation.
Caution: If you do something wrong..it happens…be sure to reboot and select an alternative kernel. You should always have several kernels in case of trouble.
Step #1: Download and install the necessary tools.
Download the necessary tools so that you have everything ready.
# apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
You must have the source available to create a new kernel.
# apt-get install linux-source
You must be in the /usr/src directory to work or copy the source,
linux-source-2.6.27.tar.bz2, to the directory you want to work in. Either move into the /usr/src directory to work or into the alternative directory you will make the build in.
# cd /usr/src
This directory will contain the necessary headers to build the kernel. These are the source files.
You need to unpack the source that was downloaded.
# bzip2 -d linux-source-2.6.27.tar.bz2
# tar xvf linux-source-2.6.27.tar
Now you should have a directory that looks like this:
Create a symbolic link to this source directory and name it linux.
# ln -s linux-source-2.6.27 linux
Move into the directory, you can use the term linux as it is now a link to that folder.
# cd linux
The config file is a hidden file that has the configuration from the kernel that is installed. You will need to copy that because it has already determined your hardware devices.
# cp /boot/config-`uname -r` ./.config
When you copy this config file over, it is a file represents the hardware that the kernel discovered at boot and set up. It also reflects many default settings.
Step #2: Now the fun begins….
You are ready to start menuconfig which will allow you to choose your kernel specifics.
This opens the menu to start configuration.
Here you see it detected the .config file.
Now work your way through the menus and make the selections that you want to add or subtract. For example, here Reiserfs was originally a module that could be added, it had a “M” to indicate module that could be loaded. Bu it has been unchecked so modular support will not be available, thus saving space in your kernel. The “*” indicates that it will be loaded into the kernel and an empty option means that no support for that option will be placed in the kernel.
Once you have all of your modifications complete save the new .config file.
Run this command to clean up.
# make-kpkg clean
The next thing you want to do is create a kernel extension so that as you make kernels you are able to tell the versions apart. What I usually do is place my initials and a number so that I can keep track.
# fakeroot make-kpkg – -initrd – -append-to-version=-mw1 kernel_image kernel_headers
After –append-to-version= you write a string that will help you keep track of your kernel changes, it must begin with a minus (-) and must not contain whitespace.
This will take awhile.
After the successful kernel build, you can find two .deb packages in the directory you built the kernel in. If you were located in the linux directory, look in the directory above for the two .deb packages.
Now you can install and create .deb files so you can take your kernel to another machine with similar hardware. Run these commands as root in order to install them into the boot directory and modify your /boot/grub/menu.lst.
# dpkg -i linux-image-22.214.171.124-mw1_126.96.36.199-mw1-10.00.Custom_i386.deb
# dpkg -i linux-headers-188.8.131.52-mw1_184.108.40.206-mw1-10.00.Custom_i386.deb
You should now be able to select and test the new kernel when you reboot.
Now when I look in /boot/grub/menu.lst I see listed my new kernel:
## ## End Default Options ##
title Ubuntu 8.10, kernel 220.127.116.11-mw1
kernel /vmlinuz-18.104.22.168-mw1 root=UUID=b1c96812-724b-407d-a8b4-9aad3628540e ro quiet splash crashkernel=384M-2G:64M@16M,2G-:128M@16M
title Ubuntu 8.10, kernel 22.214.171.124-mw1 (recovery mode)
kernel /vmlinuz-126.96.36.199-mw1 root=UUID=b1c96812-724b-407d-a8b4-9aad3628540e ro crashkernel=384M-2G:64M@16M,2G-:128M@16M single
title Ubuntu 8.10, kernel 2.6.27-7-generic
kernel /vmlinuz-2.6.27-7-generic root=UUID=b1c96812-724b-407d-a8b4-9aad3628540e ro quiet splash crashkernel=384M-2G:64M@16M,2G-:128M@16M
Caution: You will need space in the /boot directory to save kernels as you build them. I typically build my /boot directory with 500 MBs of space.
Edit your timeout in the /boot/grub/menu.lst and increase it when you are building and trying kernels. That way it will not fly by so fast.
## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
Comment out the hiddenmenu so that you will see the menu on boot. For more info check out our Building Linux Kernels online course.
As an administrator you may be face with the task of constantly monitoring web servers, mail servers, ftp servers, etc. Basically, your organization wants all of their servers up and running all of the time. Nagios 3 offers an easy set up and configuration to make this happen so that you can monitor multiple servers and have Nagios alert you to problems. Nagios can notify you by email, pager or phone. This will allow you to have a life and count on Nagios to contact you when problems develop.
In the past Nagios has been a real difficult set up and configure job. Many have just given up and moved on. However, using Ubuntu 8.10 and the new Nagios 3 this is a breeze to set up and use effectively. Here are some key links to get you going:
Nagios is based on Objects. Objects are hosts, services, contacts and timeperiods. A host is a physical device on your network like a server, router, switch or printer. Each of these hosts has an IP Address or MAC Address that you can use to monitor it with. A service is an attribute of the host. For example a service might be CPU load, disk usage, or uptime. A service might also be something that the host provides like HTTP, FTP, or POP3. Once you have set up a host and as service, Nagios will begin to monitor that service on the host. The contacts are the administrators that should get notified and how they should get notified when there are problems. Finally, timeperiods are blocks of time that determine when an administrator should get notified by Nagios. Put this all together, and you have a sophisticated monitoring process that will make your life easier.
Nagios has a web interface that you may log into so that you can see various hosts and services that you are monitoring. Here is an example.
Ubuntu 8.10 offers a way to create a USB drive from the Live CD or an .iso. The question is, how well does this really work. In order to test we created several of these USB drive installs. The first thing to note is that the process is easy to do. Here is a step by step in create a USB Pen Drive disk.
Insert the USB Pen Drive once you have booted the Live CD. Now go to System/Administration and Create USB startup disk in the menu. You will see it has detected the 2 GB San Disk. You can use as small as 1 GB for the disk. You will also need to indicate the location of the Live CD or an .iso so the system can build the disk. Here we used the Live CD.
It provides you with the option to decide how much free space to allow for files that you create. What this does is give you a way to move this Pen Drive from computer to computer and save your files. A mobile Pen Drive.
Installation process is quick.
Now remove the USB drive and boot from the USB drive. On most computers at boot time you will have an option to choose your boot drive by selecting F12 at boot. Then select boot from USB drive. If all is well the Ubuntu USB drive should boot and you will see the same thing as the Live CD. Your computer must be able to boot from a USB drive, if it does not have that capability it will not work.
Results Were Mixed:
We tried it on a Lenovo T60p and it would not work at all. Error message ” No operating system”. So for some reason it could not read the disk. On a Dell Inspiron 1100 it booted fine. A little slow but you have to remember it is creating the whole operating system off the USB drive initially.
Here you can see the default login screen for Ubuntu 8.10. You simply add username and password and you have access to the Desktop. Simple, however, as you will see there are many options that can go with this login process.
If you will go to System/Administration and select Login Window you will find that you have a lot of options available for login. You will need to supply the administrator password to gain access to the Login Window Preferences. You can see that it has 6 tabs for options.
The General tab allows you to hide black dots when you type your password in the login. By making the password invisible, no one can guess the length of your password. By default users can only login once at a time. The Default session will determine your which Desktop you will use. The default is the Gnome Desktop. However you can add many different Desktops inclduing KDE, OpenBox, BlackBox, etc. Actually, some of these are just window managers but the look and feel is much different. If you wanted all users on your machine to use a lighter weight Desktop like BlackBox you could set that here. Automatically Ubuntu 8.10 uses the 24 hour clock.
Your local login has a number of options which you can set with the Local tab. You are able to set the theme, colors and determine the Menu bar.
The Remote tab by default will disable the graphical login. This is surely a security decision as you will want to be careful if you enable this option. You still can login using SSH for example, this option only controls the login for the Xwindow.
Ubuntu 8.10 has a stronger focus on Accessibility features which is a great enhancement. Having worked with individuals who have disabilities this is surely a focus that should be made by every Linux distro…thanks. The options are clear and easy to modify.
The Security tab allows you to automatically login, which is a nice feature if you are not worried about intruders on your desktop. You can place a timeout so that a user has limited time to login to stop people trying to hack into the system. The Login Delay is one second….you could increase this if you have a problem with others trying to get into your box. The minimal UID is a security option that will only allow normal users to login, not system users that are created by programs or daemons on the machine. Users are created by default with UID or User Ids over 1000. By default you can only login if you have a home directory. This may sound strange but many times users are created for mail services who do not have home directories as a security feature, they only pick up mail from the server with no local account.
The face browser can be used to choose a user when you login. With this tab you can select who is able to login with the face browser. You can add pictures of users in the face browser.
The update process in Ubuntu has …. well it has gotten out of control. There is no doubt that updates are a necessity for security patches and bug fixes…no argument there. However, Ubuntu seems to want to build the operating system as they go… having you download huge numbers of updates, often daily. Many users have complained bitterly about this as they do not have the bandwidth to justify the updates and they do not enjoy the experience being forced to update almost daily.
I believe this whole issue is forced on the developers because of the release schedule which is rigid. Now Canonical may be proud that they release on time but they should be ashamed in releasing too soon.
Take a look at the LTS version of the server. When it released it did not have LVM2, it did not have all of the updated software raid tools, it did not have acls installed either. Each of these is a standard option that any administrator would want available, especially in the LTS version. They could be installed manually once you installed 8.04 but they were later installed via the update process. The point is, Ubuntu should have released a solid up to date server version in 8.04, not build it as you go with updates. Administrators depend on their servers being up to speed when they install. In addition, adding LVM2, raid tools and acls at a later date after the installation are problematic.
The LTS version of the Desktop was even worse. In fact, there were so many updates that the 8.04.1 version had to be released. Canonical created many angry users over the fact that since 8.04.1 many users thought it was a whole new version so they wiped out there system and installed new. The process was confusing to users and unpleasant. In fact, if users kept up with the updates they had 8.04.1 already installed.
The 8.04 or now 8.04.1 version was supposed to be the long term support version that was more stable and would be a solid foundation for a long time. Unfortunately the constant updates has put that in question.