December 25, 2014

Compile and use custom Linux kernel on Ubuntu 14.10

Introduction

Everything you do on your Ubuntu operating system is controlled and managed by Linux kernel. Your system's performance, stability and hardware support all relies on the kernel being used. Ubuntu ships it's own custom Linux kernel which supports variety of hardware and has a standard performance and stability across different computers. Sometimes, you need to build your own Linux kernel for using with your Ubuntu operating system. Some of the reasons for doing so are listed below

  • Your need to use a hardware which is not supported with default kernel shipped by Ubuntu but supported with newer Linux kernel or kernel from other sources
  • You need maximum performance and stability for your specific hardware
  • You want to know how Linux kernel perform for specific kernel configuration

Preparation

Getting the Linux kernel


There are many options for choosing a Linux kernel. The first option is to use a standard Linux kernel, which can be downloaded from


https://www.kernel.org/


You can find three different kernel on the website tagged with Mainline, Stable, Longterm. As the tagging suggests, mainline kernels are the ones with latest commits and patches but needs testing and verification, stable kernels are for production use and longterm kernels come with more security patches than stable kernels.


Other, Linux Kernels such as Zen Kernel


https://github.com/zen-kernel/zen-kernel


and PF Kernel


https://pf.natalenko.name/


have more features and performance tweaking than standard (Vanilla) Linux kernel.


Now, download Linux kernel sources from one of the sites listed above.


Installation of dependencies


To compile and build packages for Linux kernel you will need to install some dependencies. Open up the terminal and put the following commands:


sudo apt-get install kernel-package libncurses5-dev build-essential


sudo apt-get build-dep linux-image-`uname -r`


Compile and Build

First move the downloaded Linux kernel file to the Home folder and open up a terminal. In the terminal put the following commands:


enter root mode:


sudo -s


change the current directory to /usr/src:


cd /usr/src


move the downloaded kernel file to /usr/src

mv /home/[username]/[kernel filename]


extract kernel file to /usr/src:


if kernel file is tar.gz file then put:


tar xvf [kernel filename]


if kernel file is tar.bz2 file then put:


tar xjvf [kernel filename]


if kernel file is tar.xz file then put:

tar xJvf [kernel filename]


if kernel file is zip file then put:


unzip [kernel filename]


create a link to extracted folder


ln -s [extracted folder] linux


change the current directory to /usr/src/linux:


cd linux

configure kernel to your needs (Very important!). To select a feature press keyboard Spacebar key, and press Esc key twice to move back a menu. Press Esc key twice in the main menu to exit and select yes to save configuration.

make menuconfig


compile and build kernel deb packages:


make-kpkg clean


make-kpkg kernel_image kernel_headers


This will take a while depending on your CPU speed, so relax or have a break or do other work.


If there were no errors in compiling and building then you will find newly created deb files in the /usr/src folder.


Now, Install the deb files, update initramfs, update grub:

cd ..


dpkg -i *.deb


update-initramfs -c -k [kernel version, press tab to see installed linux kernels and choose the one you just installed]


update-grub

exit


All done, now you can reboot your computer and select Advance from the grub boot menu and select your kernel. After booting into the new kernel check the kernel being used from the terminal:


uname -r


If you encounter any problems during booting new kernel, do not panic. Just reboot the system and from the Advance grub menu select previous working kernel!


To remove non working kernel put the following command in the terminal:

sudo apt-get remove linux-image-[kernel version]
sudo apt-get remove linux-header-[kernel version]


If you do not know exact name in the above command for example, linux-image-3.17, press Tab key after entering linux-image. This will show installed kernels in the system.


Cheers!

December 20, 2014

Use CDEmu CD/DVD device emulator on Kubuntu and Ubuntu 14.10

Introduction


If you have CD/DVD disk image files such as files with .mds, .cue, .iso extensions then you can use CDEmu daemon from CDEmu suite http://cdemu.sourceforge.net/about/ to mount them on your Linux without burning to physical disks. CDEmu suite is a collection of programs to facilitate virtual optical drive on the Linux operative systems. CDEmu suite provides the following components:

 - VHBA module; a linux kernel module which exposes a virtual SCSI Host bus adapter

- libMirage; a library which can be used access data stored in different image files

- CDEmu daemon; a daemon which implements the virtual devices by passing the data between VHBA kernel module and CDEmu client back and forth.

- CDEmu client; a command line application for controlling CDEmu daemon which can be used to actually perform tasks on the virtual devices such as mounting, unmounting image files as well as checking status of virtual devices.

- gCDEmu; a graphical version of command line CDEmu client.

We will be using CDEmu client to utilize the CDEmu virtual devices.

Installation on Kubuntu and Ubuntu 14.10 64-bit distribution

Please install the following five deb files in order:





Usage on Kubuntu; command line client (use similar approach for Ubuntu)

Mounting image files

I have two image files for two different Linux games: Creatures_3_Internet_Edition.iso and majesty.iso

Now I am going to mount them in two different virtual devices

steps:

navigate to the folder containing the iso files


open a terminal in the current folder by pressing keyboard Shift and F4 keys together.

To mount majesty.iso, type:

cdemu load 0 majesty.iso 

on the terminal and press enter. This will load majesty.iso on the first virtual device and you can navigate to the mounted device by clicking on the Majesty_Linux just showed up on the Places panel.


Now, to mount Creatures_3_Internet_Edition.iso, put the following command first:

cdemu add-device 

This will create one more virtual device. Now, just put the same command as with mounting majesty.iso but with different load number, type:

cdemu load 1 Creatures_3_Internet_Edition.iso

The number followed by load parameter indicates the virtual device you are going to use for mounting purposes. Now, you should see both devices showed up on the file manager's device panel.



And finally you can check the virtual devices status by putting the following command:

cdemu status

Unmounting image files

To unmount the iso files just put the following commands:

cdemu unload 0
cdemu unload 1

You can know more usage of cdemu command by putting the following command in the terminal:

man cdemu

Scroll the manual window using Up and  Down arrow keys and press q to exit from the manual. Type exit and press enter in the terminal to close the terminal window.


Usage of Graphical client

follow the similar procedure for the graphical client.

Find and run gCDEmu from the application launcher; Kickoff->Applications->System->gCDEmu



Right click on the on the System Tray gCDEmu icon and click New device from the pop-up menu.



And now select Device #00 from the pop-up menu and this will give Device properties dialog window.



From the Status tab click Load button and select your image from the file browser.

Now check the file manager for image loaded device to mount and browse it. Use device properties dialog to unload and remove devices.

Cheers!

December 18, 2014

Run executable files on Ubuntu Linux

Introduction

Ubuntu by default uses the gnome file manager. And by default the Ubuntu file manager gives you options to either open a file or execute a file. There are basically two kinds of files on Linux which are executable; Binary files and Script files. To run these files, first you have to make them executable by setting the necessary file permissions and second you have to run them from file manager or terminal or any other third party applications.


Now lets go through the process of running a executable file by Ubuntu file manager.


I have downloaded Maniadrive; a free game from http://maniadrive.raydium.org/
to my Home folder. After extracting the downloaded file and going into the newly extracted folder, I find two files where both file names end with .sh. The sh files are shell script files which can be opened with a text editor as well as can be run. So, to run the game I have to run the mania_drive.sh file.

extracted ManiaDrive folder

First, I make sure the mania_drive.sh file is executable by setting the executable permission. To do that I right click on the file and select Properties from the menu. When the Properties window shows up, I go to the permissions tab and make sure Allow executing file as program is ticked.

file properties window

Now that, I have set the file permission to executable, I can run the file either from the terminal or from the file manager.


To run the file from the Ubuntu file manager, first I have to check the file manager's settings. From the file manager, I go to edit menu and then select Preferences. This will bring up Files Preference Window. I select the Behaviour tab and tick Run executable text files when they are opened. Now, I can run the mania_drive.sh file by just double clicking it!


File manager Preferences window

December 17, 2014

Install Ubuntu Linux

Introduction

Ubuntu is a Debian derived Linux distribution. It comes with famous GNOME desktop environment with some special elements exclusive to Ubuntu. It uses Unity shell which emphasizes on screen space saving and simplicity. Ubuntu is suitable for broad range of applications from workstation to development and from gaming to server purposes.


Desktop


Ubuntu uses Unity Dash for launching your applications. It is not a traditional menu driven interface where you go through different menu items to find and run an application program. In Dash you actually see all applications available to you for running whether its installed or not.


Unity Dash applications section

Obviously, you can filter out installed and non-installed applications for easier searching using Filter results of the interface. Your applications and files are listed on the different sections so to not confuse a user. Dash also features searching online contents which you can always disable from System Settings->Security & Privacy->Search->Include online search results for performance reasons.

Dash online search feature

Unity launcher is another neat dock holding your favorite and running applications. When you have a ton of applications running on your desktop unity launcher will let you scroll through all the application icons easily.

Unity launcher

Ubuntu is optimized for saving desktop space for running applications. Its top panel will hold application menu and window control buttons if you maximize your application. Top panel also shows global system menu button and different notification indicators.


Ubuntu top panel

Unity shell has one cool feature which you will rarely see on other desktop environments, Unity HUD. Unity HUD lets you search application menu items. Just Focus your application window and press Alt key on your keyboard and this will bring up HUD interface. Type the menu item you are searching for and it will give you the result if there is any. Then you can activate the menu command from the HUD result.


Unity HUD showing similar application menu items from searching "file"

With Ubuntu desktop you can increase your productivity and multitasking speed. With the awesome Workspace Switcher on the Unity launcher you can easily organize your applications into different desktops. To enable Workspace Switcher go to System Settings->Appearance->Behavior and tick Enable workspaces.


Ubuntu showing 4 different desktops accessible via Workspace Switcher

You also have better application window management. For example, if you want an application window to always be on top of others then you just right click on application window title bar and select Always On Top. This is specially useful if you are reading contents from one window while both window overlapping each other. Also, if you have multiple windows open for an application then you can easily switch among them by just clicking the application icon on the Unity launcher.


Software


Ubuntu Software Center is all in one application where you can browse huge collection of proprietary and open source programs and games available for Ubuntu. In Ubuntu Software Center you can search for an application, monitor application installation history, remove existing application, review your favorite applications and see others feedbacks on the applications.


Ubuntu Software Center

Ubuntu has power terminal emulator like other Linux environments. In the terminal, you do not have to remember whole commands since you can easily get commands suggestions by pressing the Tab key on the keyboard. This will work for most commands and their respective command arguments. But, you can always read the command manual just by putting "man command-name" in the terminal.


Overall, Ubuntu's default desktop applications are slick looking and promote simplicity.


Download and Installation


Just head over to http://www.ubuntu.com/desktop to download the operating system iso file. You may download 32-bit or 64-bit file depending on your system and then burn the iso file on a DVD and then boot your computer from the DVD and then install Ubuntu by following the online instructions.


First Boot

After you finished installation of Ubuntu and boot your computer into Ubuntu, the first thing you should do getting the Internet connection on the Ubuntu. Because, the system as with it's default state does not come with enough software installed to run all different files and programs. So, you need working Internet connection for downloading all necessary additional packages to the system. To make life easier I have created a package which will install all the necessary files and also configure the system with necessary permissions. Just download the package from the following link


Download


This package is designed for just installed Ubuntu 14.10 system with Internet connection.

But, you can also use this package if you want to make sure everything is installed.

follow this for running executable files on Ubuntu

http://onthim.blogspot.com/2014/12/run-executable-files-on-ubuntu-linux.html


After downloading the package, extract the package by right clicking on the file->Extract Here. This will create a SConfiguration folder. Into the SConfiguration folder just follow the instructions from ReadMe.txt file to start the setup. If everything went well you should see the following message.



Now, you have a fully working Ubuntu 14.10 system!

December 1, 2014

Install Broadcom wireless network adapter driver on Kubuntu 14.10 and Ubuntu 14.10

Introduction
 
Kubuntu does not come with Broadcom wifi driver pre-installed due to license issues. However you can easily install by going to Kickoff->Computer->System Settings->Driver Manager and selecting appropriate option and clicking on the Apply button. But this method will only work if you already have Internet connection on Kubuntu by other means such as wired connection. 

Driver Manager


Wifi Driver
 
To make life easier, just download the following package from other computer with Internet connection and copy the file to a 64 bit Kubuntu system. 

Download

for Ubuntu 14.10 64 bit

Download


Once you have the package on your Kubuntu system, extract the package by right clicking on the file->Extract->Extract Archive Here, Autodetect Subfolder. This will create a bcmw folder. Into the bcmw folder just follow the instructions from ReadMe.txt file to start the setup.

follow this for running executable files on Ubuntu


http://onthim.blogspot.com/2014/12/run-executable-files-on-ubuntu-linux.html


If you have followed everything correctly, the setup will install wifi driver on your system and you should see wifi network available on the Kubuntu System Tray panel.

KDE System Tray