Table of contents
- 1. Boot options
- 2. Citrix XenServer
- 3. Custom packages
- 4. Modified packages
- 5. New packages
- 6. Developing Live CDs
- 7. Background
- 8. Creating a Live CD appliance from scratch
- 9. Other tools for hacking a Live CD
- 10. OpenVZ templates (community)
- 11. Using Git and GitHub
Reference material useful that should be useful to developers, or anyone else that likes to peek under the hood. We're just getting started here so show the wiki your love and add your notes!
Boot options are used to configure and influence the systems initialization. TurnKey appliances are based very closely on Ubuntu, so the please refer to the Ubuntu Boot Options documentation for detailed information.
TurnKey appliances do however have some custom boot options whichi configure how the system loads from Live CD:
|di-live||Start the installer automatically|
|toram=XXX||Load the system into memory if XXX (reserved RAM size in MB) is available|
|noautologin||Don't arrange shells on virtual consoles (rather login prompts)|
|noconfconsole||Don't launch configuration console when system starts|
Below are directions for converting a Ubuntu 10.04 LTS-based Turnkey Linux appliance from running on Citrix XenServer in HVM-mode to PV-mode, enabling the install of Xen Tools. Instructions assume the TKL Appliance is already installed with the Ext3 filesystem and running on Citrix XenServer.
Please note, directions were adapted from those used to convert the mainstream Ubuntu 10.04 LTS distribution. However, the TKL appliance is modified slightly, so it is unknown still what the official conversion method should be. Appliances appear to be stable.
Comments are in parenthesis below.
Ubuntu Guest Console (Configure Guest):
- apt-get update && apt-get install linux-image-generic-pae
- cp /etc/init/tty1.conf /etc/init/hvc0.conf
- nano -w /etc/init/hvc0.conf (replace all tty1 with hvc0)
- shutdown -P now
Citrix XenServer Console (Configure XenServer):
- xe vm-list power-state=halted (write down UUID for TKL VM)
- xe vm-param-set uuid=<UUID> HVM-boot-policy= (leave blank after equals sign)
- xe vm-param-set uuid=<UUID> PV-bootloader=pygrub
- xe vm-disk-list uuid=<UUID> (find VB disk UUID)
- xe vbd-param-set uuid=<VBD UUID> bootable=true
- Start appliance and restart XenCenter Manager
Ubuntu Guest Console (Install XenTools)
- mount /dev/xvdd /mnt (OR mount /dev/cdrom /mnt)
- dpkg -i /mnt/Linux/xe-guest-utilities*i386.deb (OR dpkg -i /mnt/Linux/xe-guest-utilities*amd64.deb for 64-bit appliances)
- umount /mnt
- sudo reboot
Any package that isn't taken straight from Ubuntu's repositories can be found at our mini-repository at archive.turnkeylinux.org, and the corresponding source can be found at code.turnkeylinux.org. New packages have READMEs in them. For example:
Modified packages are labeled in the package management system (e.g., casper is versioned 1.131-turnkey+15+g0374506).
- casper: We had to modify casper because Ubuntu's casper hardwires various behaviors that don't need to happen in a server Live CD type scenario (e.g., X configuration).
Ubuntu's developers did that because currently only Ubuntu runs the desktop versions (Ubuntu/Kubuntu/Xubuntu) "live".
Ubuntu server can't run live and doesn't use casper, but TurnKey Linux appliances are mostly
built for server tasks so we had to change that.
- busybox-initramfs: The patches to busybox-initramfs change the built busybox configuration slightly to better serve TurnKey's different usage scenario (compared to Ubuntu).
- webmin: repackaged webmin in order to...
- eliminate clutter: webmin modules that aren't being used aren't included and don't clutter up the interface
- ease of package maintenance: updating webmin is as easy as updating the tarballs that make up the source of the package
- improve look and feel: we've integrated the most visually appealing webmin theme as our default (Mac OS X theme)
- tklbam: smart automated backup and erstore software.
- turnkey-sysinfo: provides a nice summary of system information (e.g., memory usage, free space, IP address, etc.) on login.
- turnkey-pylib: a library of Python modules shared amongst TurnKey packages.
- inithooks: a set of configuration scripts that run on first boot (e.g., configure applications, install security updates)
- turnkey-keyring: this contains the keyring for our package archive, to allow for cryptographic authentication that improves the security of package updatess/
- di-live: We wrote di-live as glue code that would allow debian-installer to run from a live CD usage scenario without a GUI (which Ubiquity needs)
- confconsole: ncurses-based configuration console, which we wrote from scratch in Python
- provides usage information (urls and network addresses to the appliance's interfaces)
- menu for basic operations such as network configuration, installation, reboot and shutdown
- shellinabox: a Web / AJAX based secure shell terminal.
- Joomla15: we had to package joomla ourselves because nobody else from Ubuntu or Debian would touch it due to frequent security issues.
Developing Live CDs
We encourage the open source community to get involved and contribute at every level to TurnKey Linux. The more the everybody pitches in the faster we can progress.
On the other hand we recognize that not everyone is a technical expert with a lot of free time on their hands and that besides development there are many other ways to make a valuable contribution to an open source project!
Most users will find it easiest to get involved via testing, bug reporting, and participating in discussions on the forums.
We've also developed TKLPatch - a simple applicance customization mechanism.
Creating a Live CD appliance from scratch
The development process for creating a Live CD from scratch is a bit complicated and that can raise the bar for involvement quite high. There is nothing secret about it though, it is pretty well documented:
And If you're looking for a more automated approach:
Other tools for hacking a Live CD
Hacking an existing appliance is much easier than building one from scratch and besides TKLPatch there are many tools available to help you do that that should be fully compatible with TurnKey Linux:
OpenVZ templates (community)
While we get to officially supported OpenVZ templates for TurnkeyLinux, there are some community efforts into bringging support for the format to the project. This page is a compilation of information and tips to make templates work.
|TKL Core v11.1||Download|
Using Git and GitHub
A lot of the code that goes into creating TKL appliances is posted in the TKL GitHub account : https://github.com/turnkeylinux
You can simply browse this content. But the easiest way to use it as the basis for further development is to 'fork' the specific GitHub repo. To do this you need a GitHub account (free). Then browse to the code that you would like to adapt/change/build on/etc and look for the 'fork' button at the top-right of the page. This then copies the code to your own GitHub account.
You can then download the code to your local TKL dev appliance.
Dikkatlice hazırladığımız en güzel oyunları siz çocuklar için keyifli bir eğlence haline gelmesini temenni ediyoruz. Sizin için en eğitici ve eğlendirici ben 10 oyunları ve kısa bir çok kral oyunları bir araya getiriyoruz.