How to make you own Linux distro

Not happy with the Linux distros out there?? You would like to have the program X, the desktop environment Y and the kernel  Z, but can not find a way to do this?? Easy, look no further, your problems are over: Linux allows you to build your own customized distribution. And with more than one option for this.
I will illustrate some ways you can build your own Linux distribution. In fact, some are just ways to do a remaster of a Linux distribution, while an option is to create a completely different distro from scratch.
Options for Building a Linux Distro:
  • Reconstructor (For distros based on Debian / Ubuntu)
  • Suse Studio (For distros based on Open Suse, RPM package format)
  • Slax (For distros based on Slackware)
  • NimbleX (for distros based on Slackware)
  • Linux From Scratch (Create a Linux distribution from scratch, and compile all packages)
Reconstructor is a tool for customizing and creating Linux distributions. Allows customization of the distributions Ubuntu and Debian GNU / Linux. Customizations include: picture of the logo in the boot, text color, wallpaper, themes, icons, applications and more.
Reconstructor recently became compatible with the Ubuntu distribution 10.04. It has been compatible with Debian Lenny for some time now.
To use the Reconstructor, you only need a modern browser (Firefox, Safari, Chrome, etc.) with Javascript enabled. Internet Explorer is not recommended, but if you should use it, Reconstructor is only guaranteed to work with Internet Explorer 8.
You need to create an account with Reconstructor before you can proceed. The account is free and requires only about five fields of information to be filled by you. Then log in the website. Start by creating a new project. Give your project a good name, description and version. You can then choose the distro you want to base your project, and with just a few clicks, you’ll begin building your customized distribution.
The Reconstructor Build Service is free to use up a certain amount.
The fees are as follows:
  • Load and store a project file: $ 0.02 per MB per month
  • Create a project: $ 0.30
  • Download a project: U.S. $ 0.45 per GB
Project Hosting
  • File Storage: $ 0.45 per GB per month
  • Download: $ 0.35
Reconstructor also has a local stand alone application for remastering the distributions that were built using the web interface.
Suse Studio
SUSE Studio is a free hosting service that enables to create custom software appliances, combining the software with the operating system SUSE Linux Enterprise.
SUSE Studio is an online Linux creative tool by Novell, Inc..
Users can develop their own Linux operating system, mainly choose which applications they want on their custom Linux distros and what will be their appearance.
Also, the base distro may be chosen from the Home or Enterprise versions, GNOME, KDE, and a multitude of other resources.
You can create a fully functional system with Firefox, 3D graphics, and all applications you can find on the list. SUSE Studio is the engine behind the fan-made “Chrome OS”, which was a semi functional, loaded with a version for developers of Google Chrome, Google links, web applications and OpenOffice.
SUSE Studio supports the following boot options:
  • Live CD / DVDs
  • VMware Image
  • Hard Drive / USB image
  • Xen image
Like Reconstructor, you must create an account to start working on creating Linux distributions, this time based on Suse Linux.
Slax is a Linux LiveCD distribution based on Slackware, currently being developed by Tomas Matejicek. Its slogan is “The pocket Operating System”
The latest version of Slax is 6.1.2, which was launched on August 4, 2009.
The developer has stated that work on Slax 7 will begin once a stable kernel (version 2.6.34) is released with LZMA support for squashFS.
One  key benefit of the distribution Slax is its ease of customization.
Extra software can be added and removed, using the packages from Slackware and Slax modules.
A traditional package manager, such as Debian’s APT, is not necessary to load additional software; Slax modules are entirely self-contained.
Users can also modify the image of the CD or USB standard installation to customize the packages available on disk / image installation.
Slax also lets you use the Slackware packages, being necessary to convert to Slax modules with the command tgz2lzm.
The Slax homepage offers a software repository for downloading user created modules and uploading new ones. In Slax, modules can be easily added to the distribution, without requiring the use of a package manager, just double-clicking the module file to activate it.
NimbleX is a small distribution based on Slackware Linux, optimized to run from a CD, USB drive or a network environment.
NimbleX has been praised for its rapid boot, as well as for its little disk consumption, which is surprising for a distribution using KDE as desktop environment. NimbleX also is notable for allowing users to generate custom boot images from the site of the distro, using only a web browser.
It was celebrated by the Romanian press for being the first major Linux distribution created and maintained by a Romanian, Bogdan Radulescu.
NimbleX uses a 2.6 kernel. The default GUI is KDE, but for slower computers, the standard desktop environment can be switched for one with less use of resources such as Fluxbox or Xfce.
Typical office applications, web browsing and instant messaging components are included, but hardly NimbleX offers all the graphical administration tools – most administration tasks, such as adding a new user, have to be done from the command line . This feature allows NimbleX to have a small disk consumption on the installation – a typical installation takes less than 400 megabytes of hard disk.
Additional applications can be installed using the graphical installer, Gslapt (or slapt-get command line), which brings the automatic resolution of dependencies for Slackware packages.
NimbleX allows the construction of a Linux distribution, custom Slackware based,  at this address:
Linux From Scratch (LFS)
Last but not least, is Linux From Scratch (LFS)
Linux From Scratch (LFS) is a type of a Linux installation and the name of a book written by Gerard Beekmans and others. The book instructs readers on how to build a Linux system from source code.
The book is available free from the Linux From Scratch website and is currently at version 6.6.
To keep LFS  small and focused, the book Beyond Linux From Scratch (BLFS) was created, which provides instructions on how to develop the basic Linux system that was created in LFS.
It introduces and guides the reader through improvements to the system, including networking, X server, sound, printer and scanner support. Since version 5.0, the version of the book BLFS match the version of the LFS book.
After the initial two books, two more were released, covering other aspects, Cross Linux From Scratch (CLFS) describes   cross-compilation and Hardened Linux From Scratch (HLFS) focuses on security enhancements, Stack-smashing protection, PaX and Address space layout randomization using grsecurity.
Cross Linux From Scratch provide the necessary instructions to build a basic Linux distribution, command line only. While LFS is limited to x86 architecture, CLFS supports a wide range of processors. CLFS covers advanced techniques not included in the LFS, as cross-build toolchains, multi-library (32 and 64-bit side by side), and alternative instruction sets of  architectures such as x86-64, Itanium, SPARC, MIPS, and Alpha.
Hardened Linux From Scratch focuses on creating a more secure version of Linux From Scratch  as its main goal, including embedded systems.
Linux From Scratch is a way to install a full Linux system through the construction of all components manually. This is obviously a longer process than installing a pre-compiled Linux distribution .
According to Linux From Scratch website, the advantages of this method are: a compact system, flexible and secure and a better way to understand  the inner works of operating systems based on Linux.
There is no package manager or upgrade scripts, leaving to the user all tasks: maintenance , upgrade, installation of programs and services.
It is a teaching distribution, but by no means easy, since all the tools to work with it must be compiled from source code.

Font Management on Linux

When you think of scalable fonts in Linux (True Type and Open Type/Post Script), are there any acceptable options? Or Linux still suffers in the font management department?
Gone are the days when Linux was limited in dealing with TTF fonts. Today, support for scalable fonts is very good, allowing Linux to be a viable option for Desktop Publishing.
Fontmatrix (TTF Font Manager)
Font management is relatively easy in KDE. With the integration of the font installer with Konqueror, it is very easy to control the fonts on your system. But in other DE’s, management is somewhat more laborious. With Font Matrix, it is very easy to manage TTF fonts in any DE.
Fontmatrix is aimed at adventurous graphic designers and typesetters who need to manage hundreds and even thousands of fonts for their work – avoiding the need to browse overly long lists in dialogs.
Basically, Fontmatrix helps you to do three things:
  • Activating and deactivating fonts
  • Tagging fonts with sets
  • Generating font “books” as PDF.
Fontmatrix lets the user label a font with multiple tags (similar to Gmail labels), which may be activated or deactivated as sets. It also allows the user to toggle features of OpenType fonts for testing purposes. As of November 2008, the PANOSE classification present in fonts may also be used to select them by similarity. Fontmatrix is included in Debian, Ubuntu, and Fedora Linux.
Font management is done in a per user basis, activating or deactivating fonts for each user that is running Fontmatrix at the moment.
If Fontmatrix is executed as root, it will allow the manipulation of the fonts installed in the system. Be very careful if you do this, to do not delete necessary fonts for the system’s applications, and get a weird appearance in your system.

Opcion Font Viewer( Viewer/Font Manager)
Opcion font viewer is a free and open source font viewer written in Java. It allows you to view both installed and uninstalled fonts and makes selecting the right font for your project quick and easy.
For viewing fonts, seeing how they would appear applied to your name/logo/tagline, and keeping track of which fonts best suit the job is the purpose of Opcion Font Viewer. Opcion allows you to view both installed and uninstalled fonts in different views depending on your needs. Written in Java, Opcion will work on all platforms that the Java Runtime Environment supports (which includes Windows, Mac, Solaris & Linux).
Opcion needs at least the Java Runtime Environment version 1.4.0+ to run.
  • Viewing of installed/uninstalled fonts.
  • List view of installed/uninstalled fonts.
  • Adding/removing of favourite fonts.
  • Saving of favourite fonts.
  • Customizable sample/display text.
  • Customizable font size.
  • Customizable font properties (bold, italic, etc.) in sample text area.
  • Changeable fonts displayed per page in List View.

FontForge(Scalable Font Editor)
FontForge (formerly known as PfaEdit) is a typeface (font) editor program developed by George Williams. Fontforge is free software and is distributed under the BSD license. FontForge is available for several operating systems and is localized in several languages.
What’s FontForge ? FontForge is a program designed to create and modify fonts.
The most obvious aspect is that it is a drawing program like FreeHand, Inkscape or Illustrator which lets you draw the outlines of your letters. Unlike other drawing programs it expects you to draw many pictures at once (one or more for each letter) and collects them into a database.
It allows you to describe the way these pictures interact with each other (if you put one picture after the other then they should normally be separated by a certain distance — the font’s metrics, or if these two pictures are placed adjacent to one another then they turn into a third — the font’s ligatures, and so on).
Finally a font editor will bundle up all the pictures you have drawn, and all the metadata about how those pictures fit together, and will turn that bundle of stuff into a font that your computer can use to display text.
Fontforge supports many font formats, including TrueType, PostScript, OpenType, and SVG. It can convert fonts from one format to another, or can store fonts in its native “spline font database” format (.sfd file name extension), which has the advantage of being text-based. This format facilitates designer collaboration, because difference files can be easily created, but users usually need to use the same Fontforge version, otherwise the .sfd text representation can differ too much to be useful for difference reviewing.
To facilitate automated format conversions and other transformations, Fontforge implements two scripting languages—its own legacy language, and more recently Python. FontForge can be built as a python module to be loaded from python scripts.
Supported font formats
  • SFD (Fontforge’s native file format)
  • TTF (TrueType font)
  • (PostScript, Type 1 font)
  • (TeX Bitmap Fonts)
  • OTB (X11 bitmap only sfnt)
  • BDF (Glyph Bitmap Distribution Format)
  • FON (Windows)
  • FNT (Windows)
  • OTF (OpenType)
  • SVG
  • TTC (TrueType Collection)
  • WOFF (Web Open Font Format)

Many free fonts were developed with FontForge. Here is a list:

  • Free UCS Outline Fonts (freefont)
  • Linux Libertine
  • DejaVu Fonts
  • Asana-Math
  • Beteckna
  • Inconsolata
  • Junicode
  • OCR-A
  • Rufscript
  • M+ FONTS
  • Jura
  • AtariSmall
  • Engadget
  • Fonts included with Fontforge
  • Open Din Schriften Engschrift
  • OSP foundry
And, last but not least, how to install TTF fonts in the command line (CLI).
First, download, copy, move the TTF fonts you want to a temporary folder in your /home. The Desktop would be acceptable.
Next step is to create a folder inside /usr/share/fonts that will hold the fonts you want to install.
Lets say, testfonts
$ sudo mkdir /usr/share/fonts/testfonts
Then open your terminal to install them:
$ sudo cp /home/user/Desktop/*.ttf /usr/share/fonts/testfonts/
and refresh your font cache like this:
$ sudo fc-cache -f
Now open Open Office Writer or Gimp, and your fonts should be available! You can access your new true type fonts in any graphics, design, text based document application that uses fonts.
Hope you enjoyed. In upcoming articles, I’ll discuss a fine piece of desktop publishing software for Linux, Scribbus. Until there, bye!

Remote Terminals With Linux – An Introduction

One of the most interesting features of Linux is its versatility. Being able to make complicated configurations out-of-the box. You do not need to buy the ultimate hyper business version  to have the ability to set up  a complex client / server system with dumb terminals and a remote application server.

Creating a client / server network is relatively easy, since the multi-task / multi-user architecture is a native feature of Linux.

But in order to understand this process, it is necessary to work with some theory, where we will see what is a client / server network   with remote dumb terminals, what are its advantages, in which cases it can be used and in what ways it can be implemented on Linux.

A little history

Remote terminals, formerly known as dumb terminals, are in the IT arena for a long time. They were called dumb terminals, because little or no processing was done on the client side. They simply showed the output of the server and communicate user input via keyboard and / or mouse back to the server. The main system was centralized with all data and applications being stored and managed by a single server or a cluster of servers.

The central processing concept has been widely adopted by several companies during the 70’s, due to advantages such as fault tolerance, central administration and security.

However, as the cost of PCs dropped a lot  in 80’s , the decentralization of the system with individual PCs gained popularity. In addition, PCs introduced several features that dumb terminals did not have , such as a graphical user interface and environment customization by the user.

Decentralization, on the other hand, made the management, maintenance and system upgrade an arduous task, as it should be run locally on each machine.

Since the late 80’s to mid 90’s, a hybrid of both systems, known as client / server began to dominate computer networking.

The server handles the processing of information in a centralized database, while the client PC runs applications and user interface. Data can be easily preserved and performance was better than sharing files on a common PC.

The problem of maintenance, management and updating (both applications and the operating system) on individual PC’s remains one of the main drawbacks of computing with fat/robust clients, since  the most critical parts happen on the client side.

A solution turning the eyes to the past

To solve various problems of distributed computing, with the model of robust client, the lean/thin client concept was created.

The term thin client was coined in 1993 by Tim Negris, VP of Server Marketing at Oracle Corp., while working with the company’s founder Larry Ellison on the release of Oracle 7.

At the time, Oracle wished to differentiate their server-oriented software from Microsoft’s desktop-oriented products. The term of Negris was then popularized by its frequent use in speeches and interviews by Larry Ellison about Oracle’s products. It is from this time the famous internet terminal, the US$500 computer, which Oracle then started to advertise and advocate.

The term stuck for several reasons. The earlier term “graphical terminal” was chosen to contrast such terminals with text-based terminals, and thus puts the emphasis on graphics. The term was also not well-established among IT professionals, most of whom had been working on fat-client systems. It also conveys better the fundamental hardware difference: thin clients can be designed with much more modest hardware, because they perform much more modest operations.

The Hardware Options

Several companies entered the segment of thin clients  offering hardware solutions for the implementation of networks with thin clients:

  • ChipPC
  • Fujitsu
  • HP
  • Igel
  • OpenThinClient
  • Sun Microsystems
  • Wyse
  • Thinvent

Enter Linux

The Icon of “X”, The graphical environment of Linux

Linux, by its very nature, was designed with the paradigm of the network, the client terminal and a server providing services and capacity over the network, inherited from its father figure, Unix.

And, from Unix, Linux has inherited the paradigm of graphical environment X.

The graphical environment X began to be developed in 1984 by Bob Scheifler and Jim Gettys.

There was a joint effort to develop a graphical environment for Unix and several companies were interested: IBM, DEC, SUN and HP, to name a few. On the academic side, the universities involved were: MIT, Carnegie Mellon University, Stanford University and Brown University.

The development of the graphical environment of Unix, X, would create a client server paradigm for the graphical interface that works as follows:

X uses a client–server model: an X server communicates with various client programs. The server accepts requests for graphical output (windows) and sends back user input (from keyboard, mouse, or touchscreen). The server may function as:

  • an application displaying to a window of another display system
  • a system program controlling the video output of a PC
  • a dedicated piece of hardware.

And, most important of this architecture is that the X server environment and clients can be on separate machines, communicating through the X protocol even from a local network.

A graphic representation of How the X protocol works

As the discussion about the X graphical environment and its history is a long and complex subject, we will not address it here now.

The interesting aspect of the architecture of the X graphical environment, which was later inherited by Linux, is that with it, it is very easy to create networks of computers, dumb terminals connected to a central server.
What interests us here is the protocol XDMPC, which was developed for the X11R4 version in 1989 and introduced the protocol as it is used today in  Linux and other *NIX.


Reducing the cost of network ownership. Understand the cost of ownership as the sum of the purchase price of the computer, maintenance, licenses for the use of software, the power consumption etc..;

  • Remote administration of each terminal;
  • Flexibility. If there is any hardware failure of the terminal, just ask the user to start a new graphical session from another. So there will be no loss of information because they are centralized on the server;
  • High scalability. To increase the number of terminals in the network, just increase the processing capacity and the amount of RAM in the server;
  • You can customize a graphical session for each user releasing or restricting access to certain features or applications server;
  • The configuration and generation of the operating system which will be used on the terminals can be done easily, respecting each machine capabilities and limitations;
  • Allows the reuse of obsolete computers to be used as terminals, reducing network costs and reducing the environmental impact of such equipment.


  • High data traffic generated by the communication between the server and the network terminals;
  • The server becomes the critical point of the network, ie if it stops working, all users are unable to work;
  • The server is more vulnerable to attack if an attacker has access to the XDMCP network .

Where the network server / client XDMCP can be used:

Client / server networks XDMCP can be deployed successfully in: reading rooms, libraries, schools, universities, internet access centers, Cyber cafes, offices, in short, in all situations where the data processing, input and output, can be done in batches and synchronously.

Where the XDMCP network can not be used:

Multimedia processing, asynchronous data processing, real-time processing and games. In short, video editing, sound, 3D modeling, gaming, do not have good performance on a XDMCP network.

In coming articles, I will detail how to implement a XDMCP network  with Linux, using outdated computers that no longer fit for everyday use.

Until then! – Your personalized internet clipboard.

Using your local computer clipboard is a very easy and convenient way to transfer data from one application to the other. However, there come times when you need to transfer tiny bits of information from one computer to the other. Not in every case would you want to use a flash drive or any other removable storage media right? In steps is a simple service where you paste your “text, links, etc” on your personalized internet clipboard and then view it on any other computer through your browser. Here’s how it works
  1. Enter a URL that starts with (Where customize is  your choice of words)
  2. Paste in anything you want
  3. Open the url you entered in step 1 using any browser and tada tada, you have your data. 
It’s that simple and the best part is that it’s free to use. You don’t need to sign up to anything whatsoever. Enter your customized url and have your personal internet clipboard that can be accessed with all browsers and OS.
It’s also good for collaboration and sending info to friends without the need for sending a mail. Go on, give it a try and let me know what you think.

How to install Xbox Media Center on Ubuntu

XMBC is a cross platform, open source (GPL) media player and  entertainment hub for your digital media.  XBMC is a non-profit project run and developed by volunteers located around the world. More than 50 software developers have contributed to XBMC, and 100-plus translators have worked to expand its reach, making it available in more than 30 languages.

While XBMC functions very well as a standard media player application for your computer, it has been designed to be the perfect companion for your HTPC. Supporting an almost endless range of remote controls, and combined with its beautiful interface and powerful skinning engine, XBMC feels very natural to use from the couch and is the ideal solution for your home theater.

Currently XBMC can be used to play almost all popular audio and video formats around. It was designed for network playback, so you can stream your multimedia from anywhere in the house or directly from the internet using practically any protocol available. Use your media as: XBMC can play CDs and DVDs directly from the disk or image file, almost all popular archive formats from your hard drive, and even files inside ZIP and RAR archives.

It will even scan all of your media and automatically create a personalized library complete with box covers, descriptions, and fanart. There are playlist and slideshow functions, a weather forecast feature and many audio visualizations. Once installed, your computer will become a fully functional multimedia jukebox.

Follow the following steps to install it on your Ubuntu system

Step 1

Add the software source to your sources by going to System->Administration->Software Sources
Click Third Party Software tab
Click on the Add tab
Enter the following line substituting Jaunty with your release name

deb jaunty main

Close the Window. Ignore any error message that pops up

Step 2
Copy and paste the following key into the Text Editor


Version: SKS 1.0.10

Save it in your home folder as xbmc-ppa.key
Go back to the Software Sources you opened in step 1 above and click on the Authentication tab.
Choose Import Key File and and select the file you created above (xbmc-ppa.key)
Click OK.

Step 3

Now go to Synaptic Package Manager found at System->Administration->Synaptic Package Manager
Click on the Reload button
After is has reloaded, search for XBMC
Select it and Mark for Installation together with any dependencies.
Click Apply. Done.

XBMC is now installed. Enjoy.

Easily deploy Ubuntu on Windows systems easily.

If you are a system administrator, have heard of Ubuntu as being a powerful free alternative to Windows and want to give it a try, then do so with these simple tools without affecting your current Windows installation.
This application makes it easy to run both Ubuntu and Windows on the same computer while sharing the same desktop. It runs on Windows Xp, Vista and 7. Ubuntu runs as a native Windows application and gives you the ability to cross edit documents in both OSs. You enjoy incredible speeds and flexibility. You would not need to alter your existing partition to get Portable Ubuntu to work. Try it out.
Ubuntu can run on Windows without the need for visualization through andLinux. It allows you to run a full featured install of Ubuntu Linux alongside Windows giving you native speeds without the need for any visualization.
This is a Windows application that automatically creates a bootable Ubuntu  usb drive.You can also run Ubuntu and Windows simultaneously without the need for any installation on your PC. Try it out.
Wubi is an officially supported Windows Ubuntu installer. It gives the option of booting into either Ubuntu or Windows on start up. Try it. 
Let me know what you think of the above tools for making Ubuntu isntalltion on Windows as easy as it can get.

How to install VLC 1 (Goldeneye) in Ubuntu.

VLC media player is one player to rule all the rest. It is one of the best efforts of the  Open Source movement. It gives most of its commercial counterparts a good run for their money. It is in short all you will need to enjoy your digital media.

It is free, open sourced, cross platform, uses its own built in codecs and plays virtually every media format you can think of. Just give it a try and you will be glad you did. If you are using Ubuntu 9.04 or 8.10, the following steps will get it installed on your system.

1)  Edit /etc/apt/sources.list file with this command at the terminal

              gksudo gedit /etc/apt/sources.list

2) Add the following line (Januty)

             deb jaunty main
For Intrepid users use this line instead 
             deb intrepid main

3) Save and exit.

4) Install GPG key with this command

            sudo apt-key adv –recv-keys –keyserver 7613768D

5) Update your sources’ list with this command

           sudo apt-get update

6) Now install VLC with this command

      sudo apt-get install vlc mozilla-plugin-vlc

7) Enjoy your VLC and digital media without sweat.