openSUSE is one of the best Linux distribution. openSUSE gaining it’s popularity as beautiful distro with good hardware detection, great configuration tools, and acceptable default setup. openSUSE 11.0 released with 3 CD/DVD main schema : DVD install with such desktop environment (KDE3, KDE 4, Gnome, XFCE, Icewm etc) and server application, LiveCD with applicable desktop application and separated on desktop environment (KDE & Gnome), Net Install CD for networking and online installation and the last one is delta CD or DVD, for incremental update from previous version.
Although all of these option fulfill with our requirement, it would be nice if we can build openSUSE based distro with our specification. Just an example, it would be nice if I can build openSUSE based distro with minimal desktop application, contains wifi driver by default, contains 3rd party application that suitable with our requirement, etc.
Novell catch this idea byÂ providing a great tools to easily make all of above requirement with theirÂ SUSE Studio. The screencast promises a nice tools. Unfortunately, the project currently on alpha stage and we must wait before reached final version
However, we could build all these process by ourself with great tools provided by openSUSE, KIWI Imaging System.
The openSUSE KIWI Image System provides a complete operating system image solution for Linux supported hardware platforms as well as for virtualization systems like Xen. The KIWI architecture was designed as a two level system. The first stage, based on a valid software package source, creates a so called physical extend according to the provided image description. The second stage creates from a required physical extend an operating system image. The result of the second stage is called a logical extend or short an image
You can find more information about KIWI from the documentation.
I will post the tutorial about creating openSUSE based distro in a few days. The tutorial will be divided into some blog article. After reading overall post, I hope everyone could make their openSUSE LiveCD or LiveUSB with their specified application and configuration easily.
Now, the first one, preparing KIWI in your system.
- Add the KIWI repositories (included on openSUSE tools repositories) with YAST | Software | Software Repositories or from konsole. Replace the URL with your local mirror :
- Refresh the repo
- Install KIWI tools
[code language=’cpp’]zypper ar http://ftp5.gwdg.de/pub/opensuse/repositories/openSUSE:/Tools/openSUSE_11.0 kiwi[/code]
[code language=’cpp’]zypper ref[/code]
[code language=’cpp’]zypper in kiwi-desc-isoboot kiwi-desc-usbboot kiwi-tools kiwi-pxeboot kiwi-desc-oemboot kiwi-desc-netboot createrepo[/code]
After installing kiwi tools as described we could find kiwi configuration on /usr/share/kiwi. Please navigate into /usr/share/kiwi/image, you must find some sub folder like usbboot and isoboot.Â /usr/share/kiwi/image folder contains all of configuration schema for developing openSUSE based distro on any media referring by their names, e.g : isoboot is configuration schema for building bootable iso image, usbboot is configuration schema for building bootable LiveUSB, etc. You may create another schema as described on kiwi configuration hand book or take another easy solution, by copying and modifying existing kiwi schema.
Kiwi configuration schema is plain xml file, named as config.xml. If we browse the isoboot folder (/usr/share/kiwi/image/isoboot/), we can find some configuration schema for some openSUSE version, e.g : suse10.1, suse10.2 and so on. Remember to always used correct version of kiwi configuration schema as stated on your running openSUSE. I used openSUSE version 11.0 so I will take the configuration schema on /usr/share/kiwi/image/isoboot/suse-11.0/config.xml.
It’s not too difficult to understand the schema, because the content itself is quiet straight-forward. Let’s see an example, open the file /usr/share/kiwi/image/isoboot/suse-11.0/config.xml with your text editor.
The schema divided into some portion of code. The header described about author, version, contact, preferences, etc. We will not change overall configuration, because most of them are specified by default and will not produce any error if we leave them unchanged. Off course we could change the configuration and adjust the code with our purpose.
Below is the portion of configuration schema, contains the repositories address. The address will be used as based source for installing application while generating iso image.
We must adjust the address with our correct repositories. Beside the local repos as displayed on the schema, we could used http, ftp, nfs, samba or any YAST repositories address (find it on YAST | Software | Software Repositories)
We will learn more about kiwi configuration schema on next tutorial : How to Build openSUSE Minimal System liveCD
Credit : Thanks to Marcus Schaffer, Francis Giannaros and Cyborg for great assistance on kiwi-user mailing list.