<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://doc.lunar-linux.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://doc.lunar-linux.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Engelsman</id>
		<title>Lunar Linux - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://doc.lunar-linux.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Engelsman"/>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Special:Contributions/Engelsman"/>
		<updated>2026-04-04T08:08:19Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.18.1</generator>

	<entry>
		<id>http://doc.lunar-linux.org/Installation:lfirsttime.8.manpage</id>
		<title>Installation:lfirsttime.8.manpage</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Installation:lfirsttime.8.manpage"/>
				<updated>2012-12-11T17:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* WARNING: Here be Dragons! */  - link to temporary install guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=WARNING: Here be Dragons!=&lt;br /&gt;
&lt;br /&gt;
The 1.6.5 ISO is now almost two years old, and there have been major updates of the kernel, gcc, glibc, and a host of other key modules. The development team is currently in the middle of the switch from sysvinit to systemd in preparation for the next ISO image. In addition, the single project repository is being split to provide improved system integrity and cohesion, and re-hosted at github, so you might find that your favourite utility is not yet available in the new configuration.&lt;br /&gt;
&lt;br /&gt;
''If you can't wait a couple of months for the new ISO, and really do want to install 1.6.5, please make sure that you connect to [irc://irc.freenode.net/lunar #Lunar] on [http://freenode.net/ Freenode.net] and ask for the latest guide to installation. This [https://gist.github.com/d867a58f9d0373051f47 temporary guide from 2012-09-23] may quickly become outdated.'' '''Be warned: you may break your box!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Disclaimer: ===&lt;br /&gt;
&lt;br /&gt;
This page may not be in synchronization with the man pages available on a Lunar-Linux system.&lt;br /&gt;
&lt;br /&gt;
The initial version was a cut'n'paste from the man command, which produces weird wiki formatting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
lfirsttime(8)                           Lunar Linux for the first time                           lfirsttime(8)&lt;br /&gt;
&lt;br /&gt;
NAME&lt;br /&gt;
       lfirsttime - or 'What to do after a successful installation?'&lt;br /&gt;
&lt;br /&gt;
SYNOPSIS&lt;br /&gt;
       This manual page has been written in order to ease the life of the system administrator after the&lt;br /&gt;
       installation part of Lunar Linux.&lt;br /&gt;
&lt;br /&gt;
DO NOT PANIC!&lt;br /&gt;
       These are the suggested tasks you should accomplish immediately after the first boot of a newly&lt;br /&gt;
       installed Lunar box.&lt;br /&gt;
&lt;br /&gt;
       All of the lunar related commands mentioned below either feature a whole manpage or at least a very&lt;br /&gt;
       useful helpscreen. If you need immediate assistance regarding any of those commands, issue:&lt;br /&gt;
&lt;br /&gt;
       man 'command' or 'command' --help&lt;br /&gt;
&lt;br /&gt;
       at your console.&lt;br /&gt;
&lt;br /&gt;
       The operations described below follow a strict logic and they should be executed in sequence.&lt;br /&gt;
&lt;br /&gt;
       Please remember that the Lunar Install/Rescue ISO is not a full featured system.&lt;br /&gt;
&lt;br /&gt;
NETWORK SETTINGS&lt;br /&gt;
       This step is crucial to your future success with Lunar Linux. If you haven't set up your network card&lt;br /&gt;
       yet try it with lnet. Remember, you need to know about your current network card's driver and have the&lt;br /&gt;
       kernel build the appropriate modules for it.&lt;br /&gt;
&lt;br /&gt;
       Check your network settings&lt;br /&gt;
&lt;br /&gt;
       Once you've set up your network card correctly, try to ping out.&lt;br /&gt;
&lt;br /&gt;
       Example: ping google.com&lt;br /&gt;
&lt;br /&gt;
       If it doesn't work you may be having a name resolution problem, try pinging to the IP address instead&lt;br /&gt;
       of the name.&lt;br /&gt;
&lt;br /&gt;
       Example: ping 216.239.57.99&lt;br /&gt;
&lt;br /&gt;
       If pinging to IP is working but pinging to name fails, check the /etc/resolv.conf file and see if the&lt;br /&gt;
       nameserver entries are there. You may also want to check the man page, man resolv.conf if you are not&lt;br /&gt;
       familiar with the entries which should be in that file.&lt;br /&gt;
&lt;br /&gt;
       Check the network device&lt;br /&gt;
&lt;br /&gt;
       If pinging the IP address fails, check to see if your network interface is up and running. You may use&lt;br /&gt;
       the command ifconfig to see the interface's status. You must be able to see the details of your network&lt;br /&gt;
       interface in the output of ifconfig.&lt;br /&gt;
&lt;br /&gt;
       If you cannot, then check if your NIC (network interface card) module is loaded (assuming you are using&lt;br /&gt;
       a modular kernel); use the command lsmod to see the already loaded modules and see wether the module&lt;br /&gt;
       for your network card is already loaded.&lt;br /&gt;
&lt;br /&gt;
       If you do not know for sure what type of network card you have try executing the command: cat&lt;br /&gt;
       /proc/pci|grep Ethernet or lspci.  This should give the manufacturer and model name of your ethernet&lt;br /&gt;
       card.&lt;br /&gt;
&lt;br /&gt;
       If your NIC module is there but your interface is not up, reconfigure the interface with lnet and test&lt;br /&gt;
       again.  If your NIC module is still not listed in the output of lsmod, the chances are you have miscon-&lt;br /&gt;
       figured the kernel or misconfigured your network.  To check the kernel modules, try ls -l /lib/mod-&lt;br /&gt;
       ules/`uname -r`/kernel/drivers/net to see the network modules available with the current kernel. If the&lt;br /&gt;
       your NIC's kernel module doesn't show up you probably have to reconfigure and recompile your current&lt;br /&gt;
       kernel to include the appropriate module(s).&lt;br /&gt;
&lt;br /&gt;
       lnet or manual configuration&lt;br /&gt;
&lt;br /&gt;
       Your network setting can be configured completely using lnet; just make sure you set up your interface&lt;br /&gt;
       correctly as needed. If you encounter problems after having configured your network with lnet you prob-&lt;br /&gt;
       ably want to adjust the configuration manually.&lt;br /&gt;
&lt;br /&gt;
       The network configuration file for your Lunar installation may be found in /etc/config.d/net-&lt;br /&gt;
       work/'interface' (f.e. 'eth0' -&amp;gt; /etc/config.d/network/eth0). Any time you adjust your interface's con-&lt;br /&gt;
       figuration manually or through lnet you will have to restart the network to make use of any changes&lt;br /&gt;
       that have been done in the meantime. The init script used to start/stop/restart network is&lt;br /&gt;
       /etc/init.d/network.&lt;br /&gt;
&lt;br /&gt;
       Example: /etc/init.d/network restart&lt;br /&gt;
&lt;br /&gt;
       Good luck and please remember that you have to to be able to ping f.e. 'google.com' to install any&lt;br /&gt;
       other packages or update your system!&lt;br /&gt;
&lt;br /&gt;
CORE UPDATES AND SETUP&lt;br /&gt;
       Since Lunar Linux is a source based distribution, some of the binaries and/or modules on the CD may&lt;br /&gt;
       have been upgraded to newer versions already. Here are the first steps you should take to get an&lt;br /&gt;
       up-to-date, smoothly running and fast system:&lt;br /&gt;
&lt;br /&gt;
       Update your coretools&lt;br /&gt;
&lt;br /&gt;
       You need to get the most recent version of the available coretools. The coretools are the heart of&lt;br /&gt;
       every Lunar Linux system. They provide you with all the necessary commands to maintain a working&lt;br /&gt;
       installation thus it's always recommended to have the latest version installed. There are two different&lt;br /&gt;
       choices:&lt;br /&gt;
&lt;br /&gt;
       lunar or theedge&lt;br /&gt;
&lt;br /&gt;
       lunar is the stable branch of the lunar coretools. It's meant to run with stable production environ-&lt;br /&gt;
       ments. theedge is the unstable branch. It might occasionally contain bugs, however it's generally used&lt;br /&gt;
       to test out new features and bugfixes before they're migrated to the stable branch. If you'd like to&lt;br /&gt;
       help out with the lunar development or you discovered a bug in lunar you might want to give theedge a&lt;br /&gt;
       try.&lt;br /&gt;
&lt;br /&gt;
       Since the ISO ships with theedge preinstalled you have to update theedge before you do anything else --&lt;br /&gt;
       even if you're planning to use lunar later on!&lt;br /&gt;
&lt;br /&gt;
       Execute: lin theedge&lt;br /&gt;
&lt;br /&gt;
       If you want to keep Lunar Linux as stable as possible you need to install the stable coretools branch&lt;br /&gt;
       now by running&lt;br /&gt;
&lt;br /&gt;
       Execute: lin lunar&lt;br /&gt;
&lt;br /&gt;
       Core Components&lt;br /&gt;
&lt;br /&gt;
       A very brief explanation of the most important coretool components. For further information regarding&lt;br /&gt;
       the referenced parts please refer to their manpages (i.e. man &amp;lt;part&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
       lin; usage: lin &amp;lt;module&amp;gt;&lt;br /&gt;
           Install a package/module.&lt;br /&gt;
&lt;br /&gt;
       lvu; usage: lvu &amp;lt;options&amp;gt; &amp;lt;module&amp;gt;&lt;br /&gt;
           Gather information about a package/module.&lt;br /&gt;
&lt;br /&gt;
       lrm; usage: lrm &amp;lt;module&amp;gt;&lt;br /&gt;
           Remove a package/module.&lt;br /&gt;
&lt;br /&gt;
       lunar; usage: lunar &amp;lt;options&amp;gt;&lt;br /&gt;
           Lunar configuration utility&lt;br /&gt;
&lt;br /&gt;
       Update your moonbase&lt;br /&gt;
&lt;br /&gt;
       The package repository from where the coretools gather their package information is called moonbase.&lt;br /&gt;
       Also, packages are usually referred to as modules. Since the moonbase on your installation is probably&lt;br /&gt;
       outdated it's strongly recommended to update your moonbase right after your coretools.&lt;br /&gt;
&lt;br /&gt;
       Execute: lin moonbase&lt;br /&gt;
&lt;br /&gt;
       Set your preferences&lt;br /&gt;
&lt;br /&gt;
       Lunar Linux can easily be customized and is highly configurable. For changing the options that affect&lt;br /&gt;
       your system you may use the menu driven lunar configuration utility. It's based upon ncurses which&lt;br /&gt;
       means you can even run it in the console of your choice. You need to become root to use it.&lt;br /&gt;
&lt;br /&gt;
       Optimizations&lt;br /&gt;
           Set the right optimizations for your computer. Be aware that changing your optimizations to the&lt;br /&gt;
           wrong values might actually break your whole installation so be really careful about what you're&lt;br /&gt;
           choosing. The ISO has been built with a minimum of available optimizations to ensure the highest&lt;br /&gt;
           amount of flexibility. To see whether or not your processor supports a certain feature try a cat&lt;br /&gt;
           /proc/cpu. It usually shows the available settings that suit your machine.&lt;br /&gt;
&lt;br /&gt;
       Integrity checking&lt;br /&gt;
           Lunar is performing a range of security checks on tarballs and installed packages to prevent faulty&lt;br /&gt;
           tarballs and possible intruders from taking over your system. It also ensures that none of your&lt;br /&gt;
           currently installed packages is broken.&lt;br /&gt;
&lt;br /&gt;
           You may select the amount of checks from the Integrity checking submenu at the Options menu. It's&lt;br /&gt;
           generally recommended to at least chose FIND_CHECK and LDD_CHECK.&lt;br /&gt;
&lt;br /&gt;
       Feature menu&lt;br /&gt;
           As mentioned before, Lunar is highly configurable. Thus you have a whole menu to select its fea-&lt;br /&gt;
           tures from. It's strongly advised to at least take a look at it and get used to them. Explanations&lt;br /&gt;
           are usually displayed as soon as you select an item.&lt;br /&gt;
&lt;br /&gt;
       Apart from that&lt;br /&gt;
           Take a look at the lunar configuration tool. It can be a powerful companion while achieving the&lt;br /&gt;
           goal of setting up your system.&lt;br /&gt;
&lt;br /&gt;
GENERAL UPDATES&lt;br /&gt;
       Right now you're set to update your whole system. Before you do that make sure you have the most recent&lt;br /&gt;
       coretools and moonbase installed.&lt;br /&gt;
&lt;br /&gt;
       The next step can be omitted -- however, it is highly recommended that you rebuild the following mod-&lt;br /&gt;
       ules in the right order to ensure that your system is working right.&lt;br /&gt;
&lt;br /&gt;
       Here we go:&lt;br /&gt;
&lt;br /&gt;
       Execute: lin -cr gcc glibc gcc bash coreutils tar wget&lt;br /&gt;
&lt;br /&gt;
       Explanation:&lt;br /&gt;
&lt;br /&gt;
       lin is obviously used to install a module. It also accepts multiple modules in a row. The '-cr' switch&lt;br /&gt;
       means 'compile (c)' and 'reconfigure (r)'. They're explained at the manpage. One needs to update gcc&lt;br /&gt;
       thus the first gcc statement. Right after that one should recompile glibc to ensure that it's working&lt;br /&gt;
       well with the latest compiled gcc. And finally gcc again to make use of the newly compiled glibc. The&lt;br /&gt;
       modules right afterwards are used by Lunar Linux itself thus they need to be up-to-date and compiled&lt;br /&gt;
       against the latest available gcc and glibc.&lt;br /&gt;
&lt;br /&gt;
       A complete update&lt;br /&gt;
&lt;br /&gt;
       Now, to update your whole system you need to issue the following&lt;br /&gt;
&lt;br /&gt;
       Execute: lunar update&lt;br /&gt;
&lt;br /&gt;
       It's going to compare your system's installed modules against the moonbases' definitions and update the&lt;br /&gt;
       installed modules accordingly. It's going to give you a list of modules that are going to be updated.&lt;br /&gt;
       If you're not sure wether you want a certain module to be updated remove it from the list. Once you're&lt;br /&gt;
       done the coretools are going to start the update which usually is going to take a very long time on a&lt;br /&gt;
       freshly installed system since most of its components will probably be outdated. So grab a coffee&lt;br /&gt;
       and/or a book and wait for it to finish ;-)&lt;br /&gt;
&lt;br /&gt;
       Once it is done it is going to present you with a summary about how many module where successfully&lt;br /&gt;
       updated and which of them failed. lvu ('lvu activity') is going to show you which of them failed and&lt;br /&gt;
       usually why. lvu ('lvu compile &amp;lt;module&amp;gt;') is also going to show you the compilation's logfile which&lt;br /&gt;
       should clearly point you to the error that led to the failure of the module's compilation.&lt;br /&gt;
&lt;br /&gt;
       The first thing to do would be to 're'lin' (i.e. execute lin -c once more. It is always advised to use&lt;br /&gt;
       the -c and the -r switch in case a module fails to compile) all the failed modules by hand. If you&lt;br /&gt;
       think you will not be able to resolve the matter on your own you can still file a bugreport at the&lt;br /&gt;
       Lunar Linux bugtracker http://bugs.lunar-linux.org or report the error to the Lunar Linux mailinglist.&lt;br /&gt;
       However, you will have to subscribe to the list at http://foo-projects.org/mailman/listinfo/lunar&lt;br /&gt;
       before being able to post any mail to it.&lt;br /&gt;
&lt;br /&gt;
       Once the update has been completed successfully you may go ahead and customize your installation to&lt;br /&gt;
       suit your own needs. Well done!&lt;br /&gt;
&lt;br /&gt;
HINTS&lt;br /&gt;
       TAB-completion&lt;br /&gt;
           All of the coretools are able to do tab-completion. Say, you want to install the module&lt;br /&gt;
           'xfce4-panel' just go ahead and type 'lin xfce4-p&amp;lt;TAB&amp;gt;' and lin is going to append the rest of the&lt;br /&gt;
           module's name to the command. Once there are too few characters to resolve the name into one single&lt;br /&gt;
           module you just need to hit TAB twice to get a list of all the modules starting with the characters&lt;br /&gt;
           you just typed i.e. 'lin xfce&amp;lt;TAB&amp;gt;&amp;lt;TAB&amp;gt;' is going to give you a list of all modules starting with&lt;br /&gt;
           'xfce'.&lt;br /&gt;
&lt;br /&gt;
       Leftovers&lt;br /&gt;
           In case of a compilation failure the sources of the failed module are left in $BUILD_DIRECTORY&lt;br /&gt;
           (usually /usr/src/). Moreover, a few tracking files lunar creates to monitor the running installa-&lt;br /&gt;
           tion process might be left in /tmp. Make sure you tidy up these two locations from time to time.&lt;br /&gt;
&lt;br /&gt;
           CAUTION: Directories like 'linux-2.x' are kernel source directories and _must_ be left intact. Oth-&lt;br /&gt;
           erwise your system is going to break! Only delete them if you're absolutely sure that they don't&lt;br /&gt;
           belong to your currently running kernel.&lt;br /&gt;
&lt;br /&gt;
       Running coretools processes&lt;br /&gt;
           If you're interrupting a module installation process (f.e. by pressing 'CTRL-C) you should check if&lt;br /&gt;
           there are any running coretools processes running in the background as another try to install the&lt;br /&gt;
           module might fail because of them. Have a closer look at ps aux and kill/killall all the remaining&lt;br /&gt;
           coretools instances of a failed installation attempt.&lt;br /&gt;
&lt;br /&gt;
           CAUTION: Lunar allows you to run multiple installations independently. Be sure about the processes'&lt;br /&gt;
           purpose you're terminating!&lt;br /&gt;
&lt;br /&gt;
       IRC channel&lt;br /&gt;
           The fastest help you get is by chatting with the developers directly. Join the Lunar Linux IRC&lt;br /&gt;
           channel at freenode&lt;br /&gt;
&lt;br /&gt;
           irc://irc.freenode.net/#lunar&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
       This is merely an introduction to what should be done to get a ready-to-go Lunar system. Please consult&lt;br /&gt;
       the documentation at the Lunar website for more information.&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
       Documentation at the Lunar Linux website at http://lunar-linux.org&lt;br /&gt;
&lt;br /&gt;
       lunar(8), moonbase(1), lin(8), lvu(1), lget(8), lrm(8), lnet(8)&lt;br /&gt;
&lt;br /&gt;
DISCLAIMER&lt;br /&gt;
       The information and examples given here are for illustrative purposes. If you encounter any inaccura-&lt;br /&gt;
       cies please send an email to the authors.&lt;br /&gt;
&lt;br /&gt;
COPYRIGHT&lt;br /&gt;
       This document is originally Copyrighted Kagan Kongar 2002.&lt;br /&gt;
&lt;br /&gt;
       Portions of this document Copyrighted (C) 2003-2004 Terry Chan&lt;br /&gt;
&lt;br /&gt;
       It has been almost completely rewritten by Moritz Heiber for the Lunar Linux development team under the&lt;br /&gt;
       Creative Commons License, (C) 2005&lt;br /&gt;
&lt;br /&gt;
AUTHORS&lt;br /&gt;
       Kagan Kongar  &amp;lt;kongar@tsrsb.org.tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       Terry Chan    &amp;lt;tchan@lunar-linux.org&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       Moritz Heiber &amp;lt;moe@lunar-linux.org&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moritz Heiber                                     2005-03-09                                     lfirsttime(8)&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5</id>
		<title>Lunar Linux:Installation/1.6.5</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5"/>
				<updated>2012-09-23T13:08:52Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* WARNING: Here be Dragons! */  - link to temporary install guide&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is a revolutionary Linux distribution in that it is not binary based, as are most distributions, but is instead built entirely by compiling source code, using your own custom optimizations. &lt;br /&gt;
&lt;br /&gt;
Essentially, it installs a complete bootstrap development system on your machine, and then you tell the Lunar package manager what tools you want, and it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward your specific needs.&lt;br /&gt;
&lt;br /&gt;
The result is a leaner, meaner, refreshingly uncluttered, and strikingly faster operating system than most Linux distributions.&lt;br /&gt;
&lt;br /&gt;
This installation guide is designed to get you through the installation process as painlessly as possible. It assumes that you have some experience with Linux or another Unix variant, and have a general idea of what you are doing. If you are unfamiliar with such things as partitions, or have never used Linux before, Lunar may not be the best introduction for you into the world of open source. There are always Lunar gods available on irc.freenode.net in the #lunar channel to answer any questions that this manual may not make quite clear enough.&lt;br /&gt;
&lt;br /&gt;
With that said, we hope you enjoy using Lunar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=WARNING: Here be Dragons!=&lt;br /&gt;
&lt;br /&gt;
The 1.6.5 ISO is now almost two years old, and there have been major updates of the kernel, gcc, glibc, and a host of other key modules. The development team is currently in the middle of the switch from sysvinit to systemd in preparation for the next ISO image. In addition, the single project repository is being split to provide improved system integrity and cohesion, and re-hosted at github, so you might find that your favourite utility is not yet available in the new configuration.&lt;br /&gt;
&lt;br /&gt;
''If you can't wait a couple of months for the new ISO, and really do want to install 1.6.5, please make sure that you connect to [irc://irc.freenode.net/lunar #Lunar] on [http://freenode.net/ Freenode.net] and ask for the latest guide to installation. This [https://gist.github.com/d867a58f9d0373051f47 temporary guide from 2012-09-23] may quickly become outdated.'' '''Be warned: you may break your box!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About this installation manual==&lt;br /&gt;
&lt;br /&gt;
Although this manual is not intended to be a full and complete overview of any situation you may be confronted with, given the wide diversity of hardware available these days, it is intended to be an introduction to the world of Lunar Linux. You will see examples that are not tailored towards your to-be built server or workstation, optimizations that are overly broad or too specific, and examples that don't apply to any real situations. We tried hard to give you the idea of how much power you have over how you can setup your system, but we are forgetting to tell you how to run your own server or desktop (or other system) at all. That means that the examples and steps taken most probably do not apply to your situation at all.&lt;br /&gt;
	&lt;br /&gt;
Do not despair: if you understand what is going on and you get the idea, the installer will allow you to do pretty much everything you want to do with your system. There are really (almost) no limits.&lt;br /&gt;
&lt;br /&gt;
* A note: please read &amp;quot;Jump to 3.X kernel + Tips&amp;quot; section which belongs to &amp;quot;Known Problem&amp;quot; chapter. It would help you make Lunar Linux recognize the latest hardware&lt;br /&gt;
&lt;br /&gt;
==Getting the ISO==&lt;br /&gt;
&lt;br /&gt;
The primary site for retrieving the ISO is [http://www.lunar-linux.org/ lunar-linux.org]. There, you will find links to our US, EU, and Internet2 mirrors, as well as a Bittorrent link. As of this writing, the current version of the Lunar ISO is version 1.6.5-rc1, codename Mare Ingenii (20100709). (''Check the main site for the actual latest version!'')&lt;br /&gt;
&lt;br /&gt;
Locate and retrieve the file lunar-1.6.5-rc1-i686.iso.bz2 (or lunar-1.6.5-rc1-x86_64.iso.bz2 if you have a 64-bit system). After downloading this file, you will need to unpack the ISO using bzip2. Windows users will need a program that can extract bzip2 archives, like WinZip (also capable of extracting bzip2 archives under windows are IZarc, Winrar, powerarchiver and 7-Zip). Mac should unzip the file by itself. Then all that is left to do is use your favorite program to burn the ISO to a cdrom and begin the installation. Lunar can also be installed without using a CD. If you need to do it this way, our [[FAQ]] provides simple instructions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO and Lunar use udev for device management. The devfs system, and the &amp;quot;old-school&amp;quot; method of manually installing devices, are no longer supported.&lt;br /&gt;
&lt;br /&gt;
We are assuming the you are installing Lunar as your primary OS. Make sure you have a backup of any important data that you need to retain. The Lunar Linux Project and its developers are not responsible in any way for any loss of data on your system!&lt;br /&gt;
&lt;br /&gt;
==Booting the ISO==&lt;br /&gt;
&lt;br /&gt;
Upon booting the ISO, the first thing you will see are options for booting the ISO kernel, or for performing RAM tests [Note: MemTest is not available on x86_64]. There is even a safe mode which will disable DMA, MTRR, RAID, LVM, USB keyboards, NTFS, HPFS, Advanced Partitions, and Firewire. Most folks, however, will be just fine pressing enter at the boot prompt and loading the default kernel.&lt;br /&gt;
&lt;br /&gt;
To boot the iso with support for your usb keyboard:&lt;br /&gt;
''linux uhci-hcd ehci-hcd''&lt;br /&gt;
&lt;br /&gt;
After loading the kernel, the first screen presents you with a few options. If there are extra modules you need to load in order continue with the install, they can be loaded here. There is also a shell option. However, if you are using this ISO for rescue purposes, you do not want to shell out here; rather continue booting and shell out in the next section. Most people will select &amp;quot;continue booting&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO tries to autodetect some hardware (mostly scsi drivers and network interfaces) during this stage. This will help you establish a network connection if you desire so during installation. For this reason the programs 'dhcpcd' and 'ftp' are already available at this stage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Consoles==&lt;br /&gt;
&lt;br /&gt;
Once the ISO has booted into the installer, you can immediately shell out or switch to one of the other virtual consoles. These will have ready to go root shells and are available throughout the installer sequence. With these you can start rescue actions, setup networking or double check the install progress and make manual adjustments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Language and keyboard interface Settings==&lt;br /&gt;
&lt;br /&gt;
After reading the introduction, you will be presented with options for choosing the proper font, keymap, and language for your install.&lt;br /&gt;
You will also need to choose an editor, as you are going to need one later on in the installation for setting up your lilo or grub configuration. The choices available are e3, [e3/emacs], joe, nano, vi, and zile. If you have never used a text editor in Linux before, nano is the best choice for you. If you skip the Native Language Support option, the system will install the default editor, nano, for you. When you have finished setting up your options, press cancel to return to the main setup menu.&lt;br /&gt;
Less important for most people is the ability to choose the console font, although it may help display some non-English characters. Most people will want to set the system-default language variable and editor though. All these values are unset by default, so make sure you set them now.&lt;br /&gt;
The keymap table allows people to use azerty and dvorak keyboards, and much more. This is especially required for non-English keyboards which provide many accented characters.&lt;br /&gt;
All these language and keymap settings might not apply to the lunar code itself, which (currently) does not have any international support, but most programs that run during the installer sequence, and after booting into your new system, will be affected properly.&lt;br /&gt;
&lt;br /&gt;
Warning: the keymap entry appears to default to ANSI-dvorak so make sure that you really select what you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating or editing Partitions==&lt;br /&gt;
&lt;br /&gt;
The next step is to set up partitions on your hard drive. Upon selecting the &amp;quot;Partition Drive&amp;quot; option, you will be shown a list of all the discs the kernel has detected. For this guide, we will assume that you have one hard drive connected via an IDE channel, which will show up in the menu as &amp;quot;disc0&amp;quot;. After selecting the disc to partition, you are given the option of using one of three partitioning programs. They are:&lt;br /&gt;
&lt;br /&gt;
* cfdisk -- A menu driven partitioner, and very easy to use. If you are unfamiliar with various partitioning programs, this is the best option for you.&lt;br /&gt;
* fdisk -- Text based partitioner that requires a little more know-how than cfdisk. More experienced users will probably use this program. However new users should not be daunted, as it does have help offered at every step.&lt;br /&gt;
* parted -- Text based partitioner that is good for advanced users. Parted is excellent for resizing current partitions on your hard disk, however be forewarned that resizing partitions is an excellent way to hose your entire disc.&lt;br /&gt;
&lt;br /&gt;
Note: under the &amp;amp;lt;Settings&amp;amp;gt; option on the main menu there is an option to configure the fstab mount style as DEV, LABEL or UUID. The first is the traditional Linux method, but can sometimes give problems if a kernel update causes the disk to be renamed. The default is UUID, which uses a unique marker on the partition to avoid this problem.&lt;br /&gt;
&lt;br /&gt;
For our example, we have a 40GB IDE drive and we'll set up six partitions; /, /boot, /home, /usr, /var, and a swap partition. It's a good idea to keep certain directories, such as /var and /usr on separate partitions, as this can save you a lot of headache in the future in case your disk ever completely fails on you and you need to recover data (God forbid!). Also, when you have a separate /boot partition as we have in our example, you need to have your partitioning program mark that partition as active or bootable. In our example, if we were using fdisk, you would press &amp;quot;a&amp;quot; at the command line, and then select part1 as the active partition.&lt;br /&gt;
&lt;br /&gt;
You might also want to install a /tmp partition. By default, Lunar will create a tempfs filesystem mounted on /tmp (tempfs minimizes filesystem fragmentation because it resides in volatile memory). This can be a good choice if you have a lot of memory on your machine. If memory is tight, we recommend creating a /tmp partition to minimize filesystem fragmentation.&lt;br /&gt;
&lt;br /&gt;
It is important to note that you &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''can not''&amp;lt;/span&amp;gt; mount the directories /etc, /bin, /sbin, /dev, /lib and /proc on separate partitions. These directories need to be contained within the root (&amp;quot;/&amp;quot;) directory. The installation program should block you from doing this, but it's best not to try.&lt;br /&gt;
&lt;br /&gt;
Here's our partition setup:&lt;br /&gt;
&lt;br /&gt;
  1 /boot 100MB&lt;br /&gt;
  2 / 4GB&lt;br /&gt;
  3 swap 1GB&lt;br /&gt;
  5 /usr 10GB&lt;br /&gt;
  6 /var 10GB&lt;br /&gt;
  7 /home 15GB&lt;br /&gt;
&lt;br /&gt;
(''If you're wondering about this choice of partitions: it's really just an example. Read the [[FAQ#So_how_should_I_partition_my_disk.3F|FAQ]] on what makes sense in the real world''))&lt;br /&gt;
&lt;br /&gt;
You'll notice that there is no fourth partition in our list above. In order for you to have more than four partitions on a single drive, the fourth partition is made into what is known as an extended or logical partition in which the fifth, sixth, and seventh (etc, etc) partitions reside. For our example above, if we were using fdisk, we would make the fourth partition an extended/logical partition that was 35GB, and then the fifth, sixth, and seventh partitions in our scheme resided within it. However, if we used cfdisk, we would just worry about creating six partitions, making sure that the first three are the primary type, and the last three logical.&lt;br /&gt;
&lt;br /&gt;
Note that the names and mount points for these partitions will be assigned during the next step of this process, when you mount the partitions. Write down exactly what partitions you are planning to create because it can otherwise get confusing!&lt;br /&gt;
&lt;br /&gt;
Lunar offers two choices when it comes to swap. You can set up a swap partition, as we have in our example, or you can set up a swapfile in the root directory. We recommend setting up a swap partition, as you will get better performance with it than with the swapfile. However, there may be a need for you to set up the swapfile instead, which can be setup and activated after you have mounted your other partitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Partitions and Filesystems==&lt;br /&gt;
&lt;br /&gt;
After creating your partitions, you need to select them and assign file systems. Select the menu option &amp;quot;Select Filesystems&amp;quot; and verify that you are indeed done creating partitions.&lt;br /&gt;
&lt;br /&gt;
The partitions can be selected in random order with the new installer. First select the partition and then assign a filesystem and mountpoint to it. The installer will add this to the job queue and formatting and mounting takes place later so you can edit your selection. Here's a list of filesystems that are currently supported:&lt;br /&gt;
&lt;br /&gt;
* ''ext4'' (Fourth Extended File System) -- Version 4 of the Extended File System, which was ... TO BE COMPLETED.&lt;br /&gt;
* ''ext3'' (Third Extended File System) -- Version 3 of the Extended File System, which is essentially just the journaled version of ext2. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''ext2'' (Second Extended File System) -- Version 2 of the Extended File System, which was designed for linux as a replacement for the Minix Filesystem. Ext2 is not a journaled filesystem, which means that you'll need to perform disc recovery operations after a power failure or other such system crash. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''reiserfs'' (Reiser Filesystem) -- Journaled filesystem created by Hans Reiser that is excellent for use with extremely small files. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''xfs'' -- Created by SGI for IRIX, SGI's brand of Unix, and later ported to linux under the GPL. A journaled filesystem that SGI claims is better than any other at handling extremely large files and sparse files. This filesystem is only available with the lunar or grsec patched kernels, which we will come to in a few steps.&lt;br /&gt;
* ''jfs'' (Journaled File System) -- Created by IBM for AIX, IBM's brand of Unix, and later ported to linux by IBM under the GPL. A journaled filesystem that is very good at handling high throughput issues. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''swap'' Swap (Virtual memory or paging filesystem) for swap partitions only!&lt;br /&gt;
&lt;br /&gt;
After selecting the filesystem type you wish to use, you will be prompted through a series of steps to initialize the partition. You'll notice that the prompts are quite redundant in nature in order to be absolutely positive that you will not inadvertantly erase crucial data that you might have on a working filesystem. In addition, if you have more than four partitions, as we do in our example, you don't want to select any file systems on the fourth partition, as it is the extended partition that houses the fifth, sixth (and so on) partitions. (The installer will try to detect this and skip the extended partition from the list).&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, there is an option in the installation process to set up a swap file in the root partition instead of a swap partition as we have done in our example. The next option after selecting your filesystems is to select a swapfile if you so desire. &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''If you have set up a swap partition already, as we have done, you can skip this step.''&amp;lt;/span&amp;gt; Otherwise, you can set up your swap file here, and the only thing you need to tell the installer is how large you want the file to be. Running without swap completely is also possible of course.&lt;br /&gt;
&lt;br /&gt;
'''Please note during this step, no modifications are made to your filesystem!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar==&lt;br /&gt;
&lt;br /&gt;
Next, we need to ''format'' your partitions, ''mount'' them in the right place, create ''swap'' and transfer the entire Lunar system to the partitions that you now have created. This happens all in one single step.&lt;br /&gt;
&lt;br /&gt;
Select ''Install Lunar'', and the system will proceed to transfer all of the necessary files for you. The installer will display progress as packages are transferred to your system and you'll have some idea how long it will take. On normal machines, this should take about 5 minutes.&lt;br /&gt;
&lt;br /&gt;
At the end of this step, the installer sets various system parameters like language, timezone and vital package configuration files in order for your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting Up Your Compiler Optimizations==&lt;br /&gt;
&lt;br /&gt;
The compiler optimizations is a crucial step, since what you choose will make your system fly! However, it is important that you do not overdo it on you optimization settings, as certain selections can, in some instances, break code while compiling.&lt;br /&gt;
&lt;br /&gt;
The first step is to choose your preferred compiler. There is only one version on the 1.6.5 ISO, so the only option here is GCC 4.4. However, once the main system installation is complete, it is possible to install GCC 3.x -- and even the deprecated GCC 2.x! If you don't intend to install those, you should go to the GCC_4_4 submenu now and set GCC 4.4 as the default compiler. &lt;br /&gt;
&lt;br /&gt;
The GCC_4_4 menu also allows you to change other options:&lt;br /&gt;
&lt;br /&gt;
* ''safe'' : allows you to turn off optimization safety, so you should leave this well alone unless you really know what you are doing. Turning this off will result in many more options appearing than are described below.&lt;br /&gt;
* ''bopt'' : allows you to change the base compile-time optimization. Your choice depends on what your needs are. Most folks will want to use -O2 here, as it is the wisest choice. More advanced users may want to use the -O3 option, but it's not for everyone. If you're short on disk space, you would take the -Os Small option. (As an example, we used -Os for the ISO since we were working within a confined amount of disc space.) Those of you with older or slower systems that wouldn't be able to take advantage of faster optimizations may choose a more conservative setting like -O1. For our example system, we will choose -O2.&lt;br /&gt;
* ''cpu'' : allows you to set your processor type. This may seem unimportant, but the GCC 4.x [and GCC 3.x] compiler has ways of optimizing code for certain processors&lt;br /&gt;
* ''cc_opt'' : allows you to set some limited C/C++ compiler settings. Very few people, if any, would need to turn off the -pipe option.&lt;br /&gt;
&lt;br /&gt;
The unsafe optimizations are:&lt;br /&gt;
* ''xtra'' : CPU extensions&lt;br /&gt;
* ''spd'' : Specialized optimizations&lt;br /&gt;
* ''fpm'' : Floating point optimizations&lt;br /&gt;
* ''stack'' : Stack optimizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding Other Compiler Toolchain Optimizations==&lt;br /&gt;
&lt;br /&gt;
'''You can safely SKIP this entire step!'''&lt;br /&gt;
&lt;br /&gt;
The GNU_LD menu shows the screen for linker options, where you will find that &amp;quot;-s Strip&amp;quot; has already been checked off. Very few people will want to uncheck this option, so we will leave this screen as is.&lt;br /&gt;
&lt;br /&gt;
The GNU_MAKE menu allows you to set the number of concurrent makes. As the hint mentions on the &amp;quot;Concurrent Makes&amp;quot; screen, you'll want to enter in the number of cpu's your machine has. Unless you have a machine with more than one processor, you'll want to leave this field blank.&lt;br /&gt;
&lt;br /&gt;
We are now finished setting up our GCC optimizations! When you have you lunar system up and running, you can always change and tweak these GCC settings by typing &amp;quot;lunar&amp;quot; at the commandline prompt, and going to &amp;quot;Optimization Settings&amp;quot;. In addition, if you aren't that familiar with what your processor is capable of using for optimizations, you can go to the shell out option on the ISO and type&lt;br /&gt;
&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
at the prompt and the system will show you all the optimizations that the processor reports it can handle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuring Your Bootloader==&lt;br /&gt;
&lt;br /&gt;
=== Configuring LILO ===&lt;br /&gt;
&lt;br /&gt;
If you chose to use lilo and also said yes to automatically configuring and running lilo, then most of the work is done for you. If you chose not to hand edit lilo.conf, however, be warned that the default configuration has the system set up to be password protected on boot. You can change this by selecting the option from the menu &amp;quot;Reconfigure LILO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To turn off password protection, you will need to comment out (with the symbol &amp;quot;#&amp;quot;) or delete two lines in your lilo.conf file. The first is &amp;quot;password=lunar&amp;quot;, which is found in the top section of the file, and the other is &amp;quot;restricted&amp;quot; which is found right below the name of your kernel in the second section.&lt;br /&gt;
&lt;br /&gt;
The other item of note is whether you want lilo to reside in your MBR (Master Boot Record) or on the first sector of your /boot partition. The line in your lilo.conf file to edit for this purpose is&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda1&lt;br /&gt;
&lt;br /&gt;
To make lilo get installed on the first sector of your /boot partition, you would leave this line as it is. If you want lilo to be written to your MBR, which is the recommended method, you would change the line to read&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda&lt;br /&gt;
&lt;br /&gt;
Of course, these examples are pertinent to our setup that we have been using thoughout this manual. Your actual lilo.conf file may be different.&lt;br /&gt;
&lt;br /&gt;
=== Configuring GRUB ===&lt;br /&gt;
&lt;br /&gt;
If you chose grub as your bootloader, you will need to set up the configuration file entirely on your own. An example would be:&lt;br /&gt;
&lt;br /&gt;
  default 0&lt;br /&gt;
  timeout 30&lt;br /&gt;
  color white/blue white/black&lt;br /&gt;
  title linux-2.4.25&lt;br /&gt;
  root (hd0,0)&lt;br /&gt;
  kernel /vmlinubz-2.4.25-r5.0.0 root=/dev/sda2 devfs=nomount&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier in the partitioning section, you would want to mark your /boot partition as active. With grub it is ''imperative'' that you mark your /boot partition as active, otherwise grub will not work at all when you are finished with the installation and reboot to your new system.&lt;br /&gt;
&lt;br /&gt;
NOTE: The option to install grub is not available on the 1.6.5-rc1-x86_64 ISO because grub is not yet fully stable on 64-bit systems. If you really know what you are doing, the source tarball is saved to disk, so you can configure it manually once the main installation is complete.&lt;br /&gt;
==Installing kernels==&lt;br /&gt;
&lt;br /&gt;
===Installing a precompiled kernel===&lt;br /&gt;
&lt;br /&gt;
The ISO comes with a selection of precompiled kernels and modules that should work for most people. If you have problems getting your kernel to compile, install or getting the right drivers, or just want to get a quick start at lunar, we ''suggest'' that you use this option instead of compiling your own kernel. You can later of course compile as many kernels as you want, and indeed the first ''lunar update'' after the main installation might ask whether you want to update the kernel too. Why do it twice if you don't need to?&lt;br /&gt;
&lt;br /&gt;
There are several kernels for you to choose from. They are:&lt;br /&gt;
&lt;br /&gt;
* ''2.6.34.1'' -- Normal kernel (SMP, 4GB memory max) (RECOMMENDED). &lt;br /&gt;
* ''2.6.34.1-safe'' -- Very safe non-optimized minimal kernel (no ACPI, DMA, SMP, 1GB).&lt;br /&gt;
* ''2.6.34.1-server'' -- Server optimized (SELINUX, SMP, 64GB, no preempt).&lt;br /&gt;
&lt;br /&gt;
===Building Your Customized Linux Kernel===&lt;br /&gt;
&lt;br /&gt;
We have now come to the most important part of the installation; the configuration of the kernel. The kernel is the heart of Linux, and without it, nothing would work. Configuration is, actually, a rather simple process. All you need to remember is to not panic, and that lunar is going to do most of the work for you. Here are a few pointers that will make the configuration a breeze for you.&lt;br /&gt;
&lt;br /&gt;
* Help is a click away! The people working on creating and maintaining the Linux kernel have help placed throughout the entire configuration process. If you're not sure what something does, just look at the help file for whatever item you're on, and it will almost certainly explain what it is and what it does. The most handy thing is that every help file will suggest whether you should really use the item or not. Many help files end with &amp;quot;If you're not sure, it is safe to say N here&amp;quot;, thus letting you know that it is safe to leave that particular item out of the kernel.&lt;br /&gt;
* You can use the ISO kernel! The configuration used to make the kernel for the ISO is the same configuration you'll see when you start your kernel customization. If you leave the configuration the way it is, the only thing you truly have to worry about is your network and, if you want it, sound. There are also two additional default configurations available on the ISO that are available to you called &amp;quot;config.safe&amp;quot; and &amp;quot;config.server&amp;quot;. We'll show you how to load these configurations in just a little bit. [TODO: check these files]&lt;br /&gt;
* Never build filesystems or core components as modules! Make sure that whatever filesystems you decided to use for your partitions earlier are built into the kernel, and are not separate modules. Likewise, make sure that certain crucial things like ide and scsi drivers are not modules, as this will make your machine unbootable. (This rule doesn't apply to the scsi low level drivers though; they can be modules.) Modules are kernel drivers that can be manually activated and deactivated after the system has been booted, but not during boot time. The kernel from the ISO already has all the filesystems available during the installation built into the kernel, so if you don't change anything there, you will be fine.&lt;br /&gt;
&lt;br /&gt;
You will be shown two screens of information before you actually begin you kernel configuration, letting you know that you are going to need a few things built into the kernel in order to have Lunar run properly, and what options you have for boot loaders. Lunar comes with both lilo (LInux LOader) and grub (GRand Unified Bootloader).&lt;br /&gt;
&lt;br /&gt;
If you don't have much experience with bootloaders, we suggest using lilo for now, as the installation program will set up the configuration file for you. If you would prefer to use grub, and we encourage folks to learn how to use it, be forewarned that the installation program does not set up any configuration at all for you.&lt;br /&gt;
&lt;br /&gt;
[On the 1.6.5-rc1-x86_64 ISO] There is only one kernel available for you to choose from:&lt;br /&gt;
&lt;br /&gt;
* ''linux-2.6.'' -- Latest 2.6 kernel with minor patchlevel patches (2.6.x.Y)&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use linux-2.6. &lt;br /&gt;
&lt;br /&gt;
Before you begin is which type of configuration method you would like to use.&lt;br /&gt;
&lt;br /&gt;
* ''config'' -- The original way to configure the linux kernel. It is completely text based, and assumes you know what everything is. Unless you've been using linux since its inception, you probably don't want to use this method.&lt;br /&gt;
* ''menuconfig'' -- As the name implies, a menu driven version of the kernel configuration. This is the easiest, and by far the most popular way of configurating your kernel.&lt;br /&gt;
* ''xconfig'' -- If you have an X server running, you can use this option to configure your kernel using a nifty GUI interface. You won't be able to use this on the ISO, but once your system is up and running with X, you can use this option. If you do choose this option while installing from the ISO, the system will fall back to next available configuration method, in this case menuconfig, so there is no harm in selecting it if you do.&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use menuconfig. Once Lunar is finished applying the patches for the kernel, which can take a minute or two, you'll be brought to the configuration screen for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, the configuration that was used to build the kernel for the ISO is the same configuration that you'll be presented with when you start. However, as we also mentioned earlier, there are two alternate kernel configurations available to you that you may want to use; config.safe and config.server. Both of these configurations can be found on the ISO, along with the original default config file, in /etc/lunar/local. When you are looking at the kernel menuconfig main page, scroll all the way to bottom, and you will find an option called &amp;quot;Load an Alternate Configuration File&amp;quot;. Select this and then give the absolute path to the alternate configuration file, i.e. /etc/lunar/local/.config.server. As with all kernel configuration files, they are hidden files preceded with a &amp;quot;.&amp;quot;, so make sure to not forget it.&lt;br /&gt;
&lt;br /&gt;
Once you have completed configuring your kernel, you'll get one more prompt from the installer asking if you want to go back to the configuration in case you exited by mistake or forgot something. If everything is good to go, say no here and sit back for a few minutes while your kernel compiles.&lt;br /&gt;
&lt;br /&gt;
==Setting Up Networking==&lt;br /&gt;
&lt;br /&gt;
The final step is to set up networking. When you select the &amp;quot;Set Up Networking&amp;quot; option, you'll be prompted by a series of questions as to what kind of card you have (only needed if you built your networking device as a module, and not part of the kernel), if you need to set up wireless or not, and whether you'll need to use dhcp or not. You should be familiar enough with your network to set this up on your own, as the questions put to you are very straightforward.&lt;br /&gt;
&lt;br /&gt;
* if you use dhcp, you don't need to set up the default gateway or DNS because dhcp will take care of them for you.&lt;br /&gt;
* you are using a wireless connection with wpa_supplicant, you might want to run &amp;quot;wpa_passphrase&amp;quot; to set up a simple /etc/wpa_supplicant.conf rather than try to edit the example file.&lt;br /&gt;
&lt;br /&gt;
==Other settings==&lt;br /&gt;
&lt;br /&gt;
The installer will prompt you now for some more settings. You should set a root password and generate ssh host keys to identify your box uniquely for later. You might also want to administrate services on the newly installed machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reboot!==&lt;br /&gt;
&lt;br /&gt;
Once you have completed setting up your networking, you are finished installing Lunar Linux! Congratulations! Select the option &amp;quot;Done&amp;quot; and remove the cd from the drive when it ejects. Your Lunar system is now ready to go!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Moonbase==&lt;br /&gt;
&lt;br /&gt;
After the initial installation and reboot, please follow the instructions given in '''man lfirsttime''' to bring your system up-to-date.&lt;br /&gt;
&lt;br /&gt;
Congratulations! You now have a minimal system as a foundation on which to build.&lt;br /&gt;
&lt;br /&gt;
==KNOWN PROBLEMS==&lt;br /&gt;
&lt;br /&gt;
=== You need to run 'lin linux-2.6' explicitly before running 'lunar update' ===&lt;br /&gt;
&lt;br /&gt;
  WARNING: the pre-compiled 2.6.35.3 kernel on the ISO is now out-of-date compared to the ''linux-2.6'' module in the moonbase, but you will&lt;br /&gt;
  need to build it explicitly using '''lin linux-2.6''' because it won't be rebuilt as part of the first '''lunar update'''. If you didn't&lt;br /&gt;
  recompile the kernel as part of the ISO installation, or if you experience problems with ALSA or NVIDIA, you should run '''lin linux-2.6'''&lt;br /&gt;
  to rebuild the kernel explicitly. After you have built the kernel once, '''lunar update''' should then detect and install a newer versions&lt;br /&gt;
  of the kernel as they become available in the moonbase.&lt;br /&gt;
&lt;br /&gt;
=== configure: error: C compiler cannot create executables ===&lt;br /&gt;
&lt;br /&gt;
  WARNING: the ISO installs gcc-4.4 on your system, but gcc-4.6 will be installed as part of the '''man lfirsttime''' and '''lunar update'''&lt;br /&gt;
  process. You will then need to run '''lunar''', select the '''Options / Optimize Architecture''' menu and set the gcc-4.5 options. Failure&lt;br /&gt;
  to do so may result in ''&amp;quot;configure: error: C compiler cannot create executables&amp;quot;'' messages when building modules later.&lt;br /&gt;
&lt;br /&gt;
=== Jump to 3.X kernel + Tips ===&lt;br /&gt;
&lt;br /&gt;
  These are some problems you'll encounter with the outdated 1.6.5 installation ISO of Lunar Linux. For example:&lt;br /&gt;
  - Lunar Linux doesn't recognize the most recent network hardware correctly, but it still recognizes a few USB tethering from your smartphone&lt;br /&gt;
    (e.g. hTC Evo 4G+). The tricky part is that lin(package installer) tries to connect via dial-up modem if it doesn't find any ethX.&lt;br /&gt;
  - If you try to use Linux kernel 3.X udev would not start because Lunar's initscript would treat it as 2.4 kernel. &lt;br /&gt;
    It is due to initscript design pitfall then where there was no 3.X kernels.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  Of course these issues are all resolved with current updates. To solve the issues following modules should be updated:&lt;br /&gt;
  - &amp;lt;b&amp;gt;linux&amp;lt;/b&amp;gt;: Of course, Linux kernel, to support the most recent hardware. Please refer to [[Moonbase]] for details.&lt;br /&gt;
  - &amp;lt;b&amp;gt;lunar / theedge&amp;lt;/b&amp;gt;: Lunar Linux utilities(including &amp;quot;package managers&amp;quot;), for lin(module installer) to work in any network condition(e.g. connected to the Internet without ethX)&lt;br /&gt;
  - &amp;lt;b&amp;gt;lunar-init&amp;lt;/b&amp;gt;: the initscript of Lunar Linux to correctly recognize and work &lt;br /&gt;
  - Though deprecated, module-init-tools would work with 3.X kernels anyway. Or you can replace it with kmod.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  Or, if you prefer, you can just recompile Linux kernel with built-in drivers so that you don't have to be concerned with kernel modules.&lt;br /&gt;
&lt;br /&gt;
==Where to go from here==&lt;br /&gt;
To install a desktop environment check out this page. [[Lunar_Linux:DesktopEnvironments]]&lt;br /&gt;
&lt;br /&gt;
''Have Phun!!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/copyleft/ Copyleft] 2004-2010 [http://lunar-linux.org/ The Lunar Penguin Team]&lt;br /&gt;
&lt;br /&gt;
Lunar Installation Manual and Harassment of Lunar Developers by Drew Swayze (drew AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Edits and Nitpicking by Suzanne Burns (sburns AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Initial update for the 1.6.5 ISO by Duncan Gibson (engelsman AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Update for &amp;quot;Jump to 3.X kernel + Tips&amp;quot; by Robert Teminian(individual contributor).&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/GitForLunarDevs</id>
		<title>GitForLunarDevs</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/GitForLunarDevs"/>
				<updated>2012-08-02T07:39:09Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: WARNING: move from doppio to github&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==WARNING: move from doppio to github==&lt;br /&gt;
&lt;br /&gt;
The single project repository is being split to provide improved system integrity and cohesion, and re-hosted at github, so the workflow described here is obsolete.Ask on the [irc://irc.freenode.net/lunar #lunar] IRC channel on [http://freenode.net/ Freenode.net] for the latest details.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
&lt;br /&gt;
This is a skeleton page based on a discussion with Ratler on #lunar. Git can be easier than the man pages would suggest as long as someone shows you the way.&lt;br /&gt;
&lt;br /&gt;
The page name is a bit naff - how about [[Git 101 for Lunar Developers]] or [[Sharing Git Repositories with Lunar Developers]]? Other ideas?&lt;br /&gt;
&lt;br /&gt;
Some git basics are also described in [[Module Submission for developers]].&lt;br /&gt;
&lt;br /&gt;
Please feel free to add comments/corrections both here and there - engelsman&lt;br /&gt;
&lt;br /&gt;
=== Creating a local copy of the central moonbase repository ===&lt;br /&gt;
&lt;br /&gt;
Git convention requires user name and e-mail address to appear in commit messages, etc. Note that the first two commands set these for all your repositories.&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  satellite$  git config --global user.email &amp;quot;username@domain.name&amp;quot;&lt;br /&gt;
  satellite$  git clone git://lunar-linux.org/lunar/moonbase.git&lt;br /&gt;
&lt;br /&gt;
If you are already a true Lunar developer, rather than an enthusiastic helper, you will need to do things slightly differently so that you can propagate your changes back to the central moonbase repository using your Lunar username and password ''[*]'':&lt;br /&gt;
&lt;br /&gt;
 satellite$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
 satellite$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
 satellite$  git clone ssh://username@lunar-linux.org/var/git/lunar/moonbase.git&lt;br /&gt;
&lt;br /&gt;
''[*] Or is there a better way for setting the ssh username after the initial 'git clone git://...' ?''&lt;br /&gt;
&lt;br /&gt;
=== Tracking a Lunar developer's moonbase repository ===&lt;br /&gt;
&lt;br /&gt;
Some developers have made their copies of their personal repositories, with branches, available at a central URL. ''[How?]'' If you wanted to access florin's repository, for example, you would first have to tell your own moonbase repository about it:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd moonbase.git &lt;br /&gt;
  satellite$  git remote add florin git://foo-projects.org/florin/moonbase.git&lt;br /&gt;
  satellite$  git fetch florin&lt;br /&gt;
&lt;br /&gt;
=== Creating a local branch copy of a Lunar developer's branch ===&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd moonbase.git&lt;br /&gt;
  satellite$  git branch -a               # should show remote/*/* branches&lt;br /&gt;
  satellite$  git checkout -b florin remotes/florin/florin&lt;br /&gt;
&lt;br /&gt;
If you look in .git/config you should now see:&lt;br /&gt;
# You have a new remote section pointing at florin's url;&lt;br /&gt;
# You have a new branch named florin that refer to refs/heads/florin.   &lt;br /&gt;
&lt;br /&gt;
=== Copying/updating files from a remote Lunar developer's branch ===&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd moonbase.git&lt;br /&gt;
  satellite$  git checkout florin&lt;br /&gt;
  satellite$  git pull                    &lt;br /&gt;
&lt;br /&gt;
=== Adding a new branch from a remote Lunar developer's repository ===&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd moonbase,git&lt;br /&gt;
  satellite$  git checkout florin&lt;br /&gt;
  satellite$  git remote update florin     &lt;br /&gt;
  satellite$  git branch -a               # should now show new 'xyz' branch&lt;br /&gt;
  satellite$  git checkout -b florin_xyz remotes/florin/xyz&lt;br /&gt;
&lt;br /&gt;
=== Using your moonbase.git with the lunar tools ===&lt;br /&gt;
&lt;br /&gt;
You can configure the package management tools to work with your moonbase.git instead of /var/lib/lunar/moonbase by setting an environment variable:&lt;br /&gt;
&lt;br /&gt;
  satellite$  lunar set MOONBASE /path/to/moonbase.git&lt;br /&gt;
&lt;br /&gt;
The package management tools can't auto-detect that you are using a moonbase.git, so if you want to work with your moonbase.git, you will need to change your working habits slightly:&lt;br /&gt;
&lt;br /&gt;
* you need to run '''git pull''' in moonbase.git instead of '''lin moonbase''' to download a new version;&lt;br /&gt;
* '''lunar update''' won't work, so you need to run '''git pull ; lunar renew''' in moonbase.git;&lt;br /&gt;
* you shouldn't have a '''zlocal''' directory in moonbase.git, but you can have a '''zlocal''' branch instead&lt;br /&gt;
&lt;br /&gt;
If at any point you need to go back to using the standard non-git moonbase, simply reset the environment variable:&lt;br /&gt;
&lt;br /&gt;
  satellite$  lunar set MOONBASE /var/lib/lunar/moonbase&lt;br /&gt;
  satellite$  lin moonbase&lt;br /&gt;
&lt;br /&gt;
Depending on your workflow, or your level of expertise and confidence with git, you may find it easier or safer to maintain a hybrid system where you use moonbase.git to share test versions with other developers, but keep the standard &amp;quot;vanilla&amp;quot; moonbase. Don't forget that you can always restore a &amp;quot;vanilla&amp;quot; moonbase at any time by running '''lin moonbase'''. If you wait an hour, there might even be updated modules...&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Module_Submission_for_developers</id>
		<title>Module Submission for developers</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Module_Submission_for_developers"/>
				<updated>2012-08-02T07:37:25Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: WARNING: move from doppio to github&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
==WARNING: move from doppio to github==&lt;br /&gt;
&lt;br /&gt;
The single project repository is being split to provide improved system integrity and cohesion, and re-hosted at github, so the workflow described here is obsolete.Ask on the [irc://irc.freenode.net/lunar #lunar] IRC channel on [http://freenode.net/ Freenode.net] for the latest details.&lt;br /&gt;
&lt;br /&gt;
===Module Submission for developers===&lt;br /&gt;
&lt;br /&gt;
Why and how users should submit modules is described on the [[Module_Submission]] page. This page describes what a developer needs to do to handle these submissions. Or rather, it describes what works for me.&lt;br /&gt;
&lt;br /&gt;
I'm no expert by any means and this is not intended to be a comprehensive guide to git. There is just enough information to get started, and to describe my workflow.&lt;br /&gt;
&lt;br /&gt;
====Developer access====&lt;br /&gt;
&lt;br /&gt;
Before you will be able to save anything back to the central git repository holding the [[Moonbase]], you will obviously need to apply for a username and password on the central machine. You will need to have been a regular, constructive contributor to the [irc://irc.freenode.net/lunar #lunar] IRC channel on [http://freenode.net/ Freenode.net], or the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List] or have successfully submitted modules in the past.&lt;br /&gt;
&lt;br /&gt;
====Cloning your own moonbase.git====&lt;br /&gt;
&lt;br /&gt;
Just like other source code management systems, git uses the concepts of a repository and working files. In the past git has allowed the repository and the working files to exist within the same top level directory structure. It seems that this has lead to some problems, so work is under way to separate out the repository and the working files. At the moment certain operations generate warning messages if you try to save to a combined repository and working directory. In the future you will need to have a &amp;quot;bare&amp;quot; repository and a separate working version. This article describes how to set up and use such a future-proof system.&lt;br /&gt;
&lt;br /&gt;
I don't have a public server of my own on which I can make a repository available for sharing, testing and cherry-picking by others. Therefore I use a multi-stage repository and working directory system. If you have a public server, you may be able to work with just one.&lt;br /&gt;
&lt;br /&gt;
I have three repositories: a remote copy of the main [[Lunar Linux]] [[Moonbase]] repository; a remote working copy; and a local working copy. The first one is optional, but it allows me to share files between the working copies without having to commit them to the main [[Moonbase]] repository first.&lt;br /&gt;
&lt;br /&gt;
First of all I login to the main [[Lunar Linux]] machine, '''doppio''', using ssh, and set two important global git defaults:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  doppio$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then I create the remote &amp;quot;bare&amp;quot; copy of the main [[Moonbase]] repository and configure two useful properties:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone '''--bare''' git://lunar-linux.org/lunar/moonbase.git moonbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
Next I create a remote &amp;quot;working&amp;quot; repository that shadows the remote &amp;quot;bare&amp;quot; one, again on '''doppio''':&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone moonbase.git workbase.git&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
The second git config command tells git that the default action for the &amp;quot;push&amp;quot; command is to push changes from the master branch of the current repository to the master branch of the parent repository. Otherwise you need to provide that information on the command line every time.&lt;br /&gt;
&lt;br /&gt;
I have a local &amp;quot;working&amp;quot; repository on my private machine that also shadows the remote &amp;quot;bare&amp;quot; one. I shall call my local machine '''satellite''' so that it matches the instructions given in [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT With 20 Commands Or So] but see the Note at the end of the section.&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  satellite$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  satellite$  git clone ssh://username@lunar-linux.org/~username/moonbase.git workbase.git&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  satellite$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
This repository setup allows the following workflow:&lt;br /&gt;
&lt;br /&gt;
* first ensure that the my central repo is up to date:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch               # note: fetch not pull&lt;br /&gt;
&lt;br /&gt;
* then, either work in the remote working directory:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git pull&lt;br /&gt;
  doppio$  git checkout -b testing master&lt;br /&gt;
  doppio$  ... edit files and commit ...&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git merge testing&lt;br /&gt;
  doppio$  git branch -D testing&lt;br /&gt;
  doppio$  git push&lt;br /&gt;
&lt;br /&gt;
* or work on the local working directory:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
  satellite$  ... edit files and commit ...&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
* Finally I can update the central [[Moonbase]] repository, although I'm sure there must be a better way:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
* I can only share files back and forth between the local and remote working repositories using this method. I can't pull from the working directory on satellite to the working directory on doppio because satellite is private and can only call out. I can't push from the working directory on satellite to the working directory on doppio either because it is not a bare repository.&lt;br /&gt;
&lt;br /&gt;
''Note that [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT...] recommends having the following line instead:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config remote.origin.push master:refs/remotes/satellite/master&lt;br /&gt;
&lt;br /&gt;
but this doesn't work with the bare repository system. Or rather, it does something, but I haven't worked out how to use the information in the remote repository.''&lt;br /&gt;
&lt;br /&gt;
====Reviewing module submissions====&lt;br /&gt;
&lt;br /&gt;
There is a neat script on '''doppio''' called '''review''' that you can use to view and apply the module submission patches directly to the current working copy of '''moonbase.git'''. The '''review''' script assumes that the submitter has already tested the patch and that if it applies cleanly it will be accepted, otherwise it will be rejected. One really cool feature of '''review''' is that the submitter gets the credit in the commit message. Unfortunately, if there are any problems in your  working copy of '''moonbase.git''' - and there often were in mine - the script can delete the patch.&lt;br /&gt;
&lt;br /&gt;
By default '''review''' will work through all of the modules in the [http://foo-projects.org/~sofar/queue.php submission queue] so it's best to specify the module that you are interested in. '''review''' will open an editor session containing the module patch file so that you can view the changes, and remove &amp;quot;Subject: &amp;quot; from the subject line and annotate what will become the text of the commit message. After you leave the editor, '''review''' checks whether the patch will apply to the current working copy of '''moonbase.git''' without problems, suggests what should be done with the patch, and waits for your input. If the patch applies cleanly, the default action is to ''accept'' it. You could still ''reject'' it for some other reason; because it does not conform to the [[Module_Guidelines]] for example. If the patch can't be applied - and that might mean that the submission was valid but that a developer has already updated that module in the moonbase - the action is to ''reject'' and another editor session will open so that you can explain why. The two other possible actions are ''defer'' and ''quit''.&lt;br /&gt;
&lt;br /&gt;
You can also use ''/home/engelsman/review.new'' which gives the added option to ''thank'' someone for a submission that was valid but can no longer be applied because another developer has beaten them to it. It's a little less harsh than ''reject''.&lt;br /&gt;
&lt;br /&gt;
  doppio$ cd moonbase.git&lt;br /&gt;
  doppio$ git fetch                      # make sure we are up to date&lt;br /&gt;
  doppio$ cd ../workbase.git&lt;br /&gt;
  doppio$ git pull                       # make sure working copy is also up to date&lt;br /&gt;
  doppio$ git checkout -b testing master # create a test branch in case of problems&lt;br /&gt;
  doppio$ review submitted_module        # view patch in editor, then accept,reject,defer,quit&lt;br /&gt;
&lt;br /&gt;
  # if accepted:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git merge testing&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
  doppio$ git push&lt;br /&gt;
  doppio$ cd ../moonbase.git&lt;br /&gt;
  doppio$ git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
  # else:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
&lt;br /&gt;
If all has gone smoothly, '''git status''' won't show any added, deleted or modified files. Take care to clean up if there are.&lt;br /&gt;
&lt;br /&gt;
====Testing the submission locally before committing====&lt;br /&gt;
&lt;br /&gt;
If you want to be really thorough - or paranoid - you should really check that the patch applies and builds on your own machine first. That takes a little more effort, because you will first need to grab the patch file, apply and test locally:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch                      # make sure up to date before pulling working copy&lt;br /&gt;
&lt;br /&gt;
Make sure that your local moonbase is up-to-date before you try dealing with the patch:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd moonbase.git&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
&lt;br /&gt;
and then use the method of your choice to grab the patch and apply it:&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 1&lt;br /&gt;
  satellite$  scp username@doppio.lunar-linux.org:/var/anonymous/submissions/submitted_module.patch /tmp&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 2&lt;br /&gt;
  satellite$  wget -q &amp;lt;nowiki&amp;gt;&amp;quot;http://foo-projects.org/~sofar/queue.php?p=submitted_module&amp;quot;&amp;lt;/nowiki&amp;gt; -O - | git am&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 3&lt;br /&gt;
  satellite$  # browse to &amp;quot;http://foo-projects.org/~sofar/queue.php&amp;quot;&lt;br /&gt;
  satellite$  # right click on patch and &amp;quot;save link as&amp;quot; /tmp/submitted_module.patch&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # check '''lin submitted_module''' works as expected&lt;br /&gt;
&lt;br /&gt;
At this point, if you want the submitter to get a feel-good &amp;quot;Your patch was accepted&amp;quot; message:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
&lt;br /&gt;
  doppio$     # use '''git''' and '''review''' as described earlier&lt;br /&gt;
&lt;br /&gt;
Otherwise, just continue with the usual git workflow:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git merge satellite/testing    # see '''git config''' tip earlier&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
  doppio$  review                         # patch already applied, so use '''review''' thank option&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, run '''git status''', tidy up if required, and run '''git pull''' again.&lt;br /&gt;
&lt;br /&gt;
===Is there a better way?===&lt;br /&gt;
&lt;br /&gt;
I'm an apprentice rather than a wizard level developer, and I've just about understood git-101, but diagnosing git problems makes my head hurt.&lt;br /&gt;
&lt;br /&gt;
So if you can see a better way of doing things, please add a section at the bottom and describe your workflow.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5</id>
		<title>Lunar Linux:Installation/1.6.5</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5"/>
				<updated>2012-08-02T07:30:20Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: Here be Dragons!&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is a revolutionary Linux distribution in that it is not binary based, as are most distributions, but is instead built entirely by compiling source code, using your own custom optimizations. &lt;br /&gt;
&lt;br /&gt;
Essentially, it installs a complete bootstrap development system on your machine, and then you tell the Lunar package manager what tools you want, and it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward your specific needs.&lt;br /&gt;
&lt;br /&gt;
The result is a leaner, meaner, refreshingly uncluttered, and strikingly faster operating system than most Linux distributions.&lt;br /&gt;
&lt;br /&gt;
This installation guide is designed to get you through the installation process as painlessly as possible. It assumes that you have some experience with Linux or another Unix variant, and have a general idea of what you are doing. If you are unfamiliar with such things as partitions, or have never used Linux before, Lunar may not be the best introduction for you into the world of open source. There are always Lunar gods available on irc.freenode.net in the #lunar channel to answer any questions that this manual may not make quite clear enough.&lt;br /&gt;
&lt;br /&gt;
With that said, we hope you enjoy using Lunar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=WARNING: Here be Dragons!=&lt;br /&gt;
&lt;br /&gt;
The 1.6.5 ISO is now almost two years old, and there have been major updates of the kernel, gcc, glibc, and a host of other key modules. The development team is currently in the middle of the switch from sysvinit to systemd in preparation for the next ISO image. In addition, the single project repository is being split to provide improved system integrity and cohesion, and re-hosted at github, so you might find that your favourite utility is not yet available in the new configuration.&lt;br /&gt;
&lt;br /&gt;
''If you can't wait a couple of months for the new ISO, and really do want to install 1.6.5, please make sure that you connect to [irc://irc.freenode.net/lunar #Lunar] on [http://freenode.net/ Freenode.net] and ask for the latest guide to installation.'' '''Be warned: you may break your box!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About this installation manual==&lt;br /&gt;
&lt;br /&gt;
Although this manual is not intended to be a full and complete overview of any situation you may be confronted with, given the wide diversity of hardware available these days, it is intended to be an introduction to the world of Lunar Linux. You will see examples that are not tailored towards your to-be built server or workstation, optimizations that are overly broad or too specific, and examples that don't apply to any real situations. We tried hard to give you the idea of how much power you have over how you can setup your system, but we are forgetting to tell you how to run your own server or desktop (or other system) at all. That means that the examples and steps taken most probably do not apply to your situation at all.&lt;br /&gt;
	&lt;br /&gt;
Do not despair: if you understand what is going on and you get the idea, the installer will allow you to do pretty much everything you want to do with your system. There are really (almost) no limits.&lt;br /&gt;
&lt;br /&gt;
* A note: please read &amp;quot;Jump to 3.X kernel + Tips&amp;quot; section which belongs to &amp;quot;Known Problem&amp;quot; chapter. It would help you make Lunar Linux recognize the latest hardware&lt;br /&gt;
&lt;br /&gt;
==Getting the ISO==&lt;br /&gt;
&lt;br /&gt;
The primary site for retrieving the ISO is [http://www.lunar-linux.org/ lunar-linux.org]. There, you will find links to our US, EU, and Internet2 mirrors, as well as a Bittorrent link. As of this writing, the current version of the Lunar ISO is version 1.6.5-rc1, codename Mare Ingenii (20100709). (''Check the main site for the actual latest version!'')&lt;br /&gt;
&lt;br /&gt;
Locate and retrieve the file lunar-1.6.5-rc1-i686.iso.bz2 (or lunar-1.6.5-rc1-x86_64.iso.bz2 if you have a 64-bit system). After downloading this file, you will need to unpack the ISO using bzip2. Windows users will need a program that can extract bzip2 archives, like WinZip (also capable of extracting bzip2 archives under windows are IZarc, Winrar, powerarchiver and 7-Zip). Mac should unzip the file by itself. Then all that is left to do is use your favorite program to burn the ISO to a cdrom and begin the installation. Lunar can also be installed without using a CD. If you need to do it this way, our [[FAQ]] provides simple instructions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO and Lunar use udev for device management. The devfs system, and the &amp;quot;old-school&amp;quot; method of manually installing devices, are no longer supported.&lt;br /&gt;
&lt;br /&gt;
We are assuming the you are installing Lunar as your primary OS. Make sure you have a backup of any important data that you need to retain. The Lunar Linux Project and its developers are not responsible in any way for any loss of data on your system!&lt;br /&gt;
&lt;br /&gt;
==Booting the ISO==&lt;br /&gt;
&lt;br /&gt;
Upon booting the ISO, the first thing you will see are options for booting the ISO kernel, or for performing RAM tests [Note: MemTest is not available on x86_64]. There is even a safe mode which will disable DMA, MTRR, RAID, LVM, USB keyboards, NTFS, HPFS, Advanced Partitions, and Firewire. Most folks, however, will be just fine pressing enter at the boot prompt and loading the default kernel.&lt;br /&gt;
&lt;br /&gt;
To boot the iso with support for your usb keyboard:&lt;br /&gt;
''linux uhci-hcd ehci-hcd''&lt;br /&gt;
&lt;br /&gt;
After loading the kernel, the first screen presents you with a few options. If there are extra modules you need to load in order continue with the install, they can be loaded here. There is also a shell option. However, if you are using this ISO for rescue purposes, you do not want to shell out here; rather continue booting and shell out in the next section. Most people will select &amp;quot;continue booting&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO tries to autodetect some hardware (mostly scsi drivers and network interfaces) during this stage. This will help you establish a network connection if you desire so during installation. For this reason the programs 'dhcpcd' and 'ftp' are already available at this stage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Consoles==&lt;br /&gt;
&lt;br /&gt;
Once the ISO has booted into the installer, you can immediately shell out or switch to one of the other virtual consoles. These will have ready to go root shells and are available throughout the installer sequence. With these you can start rescue actions, setup networking or double check the install progress and make manual adjustments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Language and keyboard interface Settings==&lt;br /&gt;
&lt;br /&gt;
After reading the introduction, you will be presented with options for choosing the proper font, keymap, and language for your install.&lt;br /&gt;
You will also need to choose an editor, as you are going to need one later on in the installation for setting up your lilo or grub configuration. The choices available are e3, [e3/emacs], joe, nano, vi, and zile. If you have never used a text editor in Linux before, nano is the best choice for you. If you skip the Native Language Support option, the system will install the default editor, nano, for you. When you have finished setting up your options, press cancel to return to the main setup menu.&lt;br /&gt;
Less important for most people is the ability to choose the console font, although it may help display some non-English characters. Most people will want to set the system-default language variable and editor though. All these values are unset by default, so make sure you set them now.&lt;br /&gt;
The keymap table allows people to use azerty and dvorak keyboards, and much more. This is especially required for non-English keyboards which provide many accented characters.&lt;br /&gt;
All these language and keymap settings might not apply to the lunar code itself, which (currently) does not have any international support, but most programs that run during the installer sequence, and after booting into your new system, will be affected properly.&lt;br /&gt;
&lt;br /&gt;
Warning: the keymap entry appears to default to ANSI-dvorak so make sure that you really select what you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating or editing Partitions==&lt;br /&gt;
&lt;br /&gt;
The next step is to set up partitions on your hard drive. Upon selecting the &amp;quot;Partition Drive&amp;quot; option, you will be shown a list of all the discs the kernel has detected. For this guide, we will assume that you have one hard drive connected via an IDE channel, which will show up in the menu as &amp;quot;disc0&amp;quot;. After selecting the disc to partition, you are given the option of using one of three partitioning programs. They are:&lt;br /&gt;
&lt;br /&gt;
* cfdisk -- A menu driven partitioner, and very easy to use. If you are unfamiliar with various partitioning programs, this is the best option for you.&lt;br /&gt;
* fdisk -- Text based partitioner that requires a little more know-how than cfdisk. More experienced users will probably use this program. However new users should not be daunted, as it does have help offered at every step.&lt;br /&gt;
* parted -- Text based partitioner that is good for advanced users. Parted is excellent for resizing current partitions on your hard disk, however be forewarned that resizing partitions is an excellent way to hose your entire disc.&lt;br /&gt;
&lt;br /&gt;
Note: under the &amp;amp;lt;Settings&amp;amp;gt; option on the main menu there is an option to configure the fstab mount style as DEV, LABEL or UUID. The first is the traditional Linux method, but can sometimes give problems if a kernel update causes the disk to be renamed. The default is UUID, which uses a unique marker on the partition to avoid this problem.&lt;br /&gt;
&lt;br /&gt;
For our example, we have a 40GB IDE drive and we'll set up six partitions; /, /boot, /home, /usr, /var, and a swap partition. It's a good idea to keep certain directories, such as /var and /usr on separate partitions, as this can save you a lot of headache in the future in case your disk ever completely fails on you and you need to recover data (God forbid!). Also, when you have a separate /boot partition as we have in our example, you need to have your partitioning program mark that partition as active or bootable. In our example, if we were using fdisk, you would press &amp;quot;a&amp;quot; at the command line, and then select part1 as the active partition.&lt;br /&gt;
&lt;br /&gt;
You might also want to install a /tmp partition. By default, Lunar will create a tempfs filesystem mounted on /tmp (tempfs minimizes filesystem fragmentation because it resides in volatile memory). This can be a good choice if you have a lot of memory on your machine. If memory is tight, we recommend creating a /tmp partition to minimize filesystem fragmentation.&lt;br /&gt;
&lt;br /&gt;
It is important to note that you &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''can not''&amp;lt;/span&amp;gt; mount the directories /etc, /bin, /sbin, /dev, /lib and /proc on separate partitions. These directories need to be contained within the root (&amp;quot;/&amp;quot;) directory. The installation program should block you from doing this, but it's best not to try.&lt;br /&gt;
&lt;br /&gt;
Here's our partition setup:&lt;br /&gt;
&lt;br /&gt;
  1 /boot 100MB&lt;br /&gt;
  2 / 4GB&lt;br /&gt;
  3 swap 1GB&lt;br /&gt;
  5 /usr 10GB&lt;br /&gt;
  6 /var 10GB&lt;br /&gt;
  7 /home 15GB&lt;br /&gt;
&lt;br /&gt;
(''If you're wondering about this choice of partitions: it's really just an example. Read the [[FAQ#So_how_should_I_partition_my_disk.3F|FAQ]] on what makes sense in the real world''))&lt;br /&gt;
&lt;br /&gt;
You'll notice that there is no fourth partition in our list above. In order for you to have more than four partitions on a single drive, the fourth partition is made into what is known as an extended or logical partition in which the fifth, sixth, and seventh (etc, etc) partitions reside. For our example above, if we were using fdisk, we would make the fourth partition an extended/logical partition that was 35GB, and then the fifth, sixth, and seventh partitions in our scheme resided within it. However, if we used cfdisk, we would just worry about creating six partitions, making sure that the first three are the primary type, and the last three logical.&lt;br /&gt;
&lt;br /&gt;
Note that the names and mount points for these partitions will be assigned during the next step of this process, when you mount the partitions. Write down exactly what partitions you are planning to create because it can otherwise get confusing!&lt;br /&gt;
&lt;br /&gt;
Lunar offers two choices when it comes to swap. You can set up a swap partition, as we have in our example, or you can set up a swapfile in the root directory. We recommend setting up a swap partition, as you will get better performance with it than with the swapfile. However, there may be a need for you to set up the swapfile instead, which can be setup and activated after you have mounted your other partitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Partitions and Filesystems==&lt;br /&gt;
&lt;br /&gt;
After creating your partitions, you need to select them and assign file systems. Select the menu option &amp;quot;Select Filesystems&amp;quot; and verify that you are indeed done creating partitions.&lt;br /&gt;
&lt;br /&gt;
The partitions can be selected in random order with the new installer. First select the partition and then assign a filesystem and mountpoint to it. The installer will add this to the job queue and formatting and mounting takes place later so you can edit your selection. Here's a list of filesystems that are currently supported:&lt;br /&gt;
&lt;br /&gt;
* ''ext4'' (Fourth Extended File System) -- Version 4 of the Extended File System, which was ... TO BE COMPLETED.&lt;br /&gt;
* ''ext3'' (Third Extended File System) -- Version 3 of the Extended File System, which is essentially just the journaled version of ext2. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''ext2'' (Second Extended File System) -- Version 2 of the Extended File System, which was designed for linux as a replacement for the Minix Filesystem. Ext2 is not a journaled filesystem, which means that you'll need to perform disc recovery operations after a power failure or other such system crash. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''reiserfs'' (Reiser Filesystem) -- Journaled filesystem created by Hans Reiser that is excellent for use with extremely small files. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''xfs'' -- Created by SGI for IRIX, SGI's brand of Unix, and later ported to linux under the GPL. A journaled filesystem that SGI claims is better than any other at handling extremely large files and sparse files. This filesystem is only available with the lunar or grsec patched kernels, which we will come to in a few steps.&lt;br /&gt;
* ''jfs'' (Journaled File System) -- Created by IBM for AIX, IBM's brand of Unix, and later ported to linux by IBM under the GPL. A journaled filesystem that is very good at handling high throughput issues. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''swap'' Swap (Virtual memory or paging filesystem) for swap partitions only!&lt;br /&gt;
&lt;br /&gt;
After selecting the filesystem type you wish to use, you will be prompted through a series of steps to initialize the partition. You'll notice that the prompts are quite redundant in nature in order to be absolutely positive that you will not inadvertantly erase crucial data that you might have on a working filesystem. In addition, if you have more than four partitions, as we do in our example, you don't want to select any file systems on the fourth partition, as it is the extended partition that houses the fifth, sixth (and so on) partitions. (The installer will try to detect this and skip the extended partition from the list).&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, there is an option in the installation process to set up a swap file in the root partition instead of a swap partition as we have done in our example. The next option after selecting your filesystems is to select a swapfile if you so desire. &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''If you have set up a swap partition already, as we have done, you can skip this step.''&amp;lt;/span&amp;gt; Otherwise, you can set up your swap file here, and the only thing you need to tell the installer is how large you want the file to be. Running without swap completely is also possible of course.&lt;br /&gt;
&lt;br /&gt;
'''Please note during this step, no modifications are made to your filesystem!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar==&lt;br /&gt;
&lt;br /&gt;
Next, we need to ''format'' your partitions, ''mount'' them in the right place, create ''swap'' and transfer the entire Lunar system to the partitions that you now have created. This happens all in one single step.&lt;br /&gt;
&lt;br /&gt;
Select ''Install Lunar'', and the system will proceed to transfer all of the necessary files for you. The installer will display progress as packages are transferred to your system and you'll have some idea how long it will take. On normal machines, this should take about 5 minutes.&lt;br /&gt;
&lt;br /&gt;
At the end of this step, the installer sets various system parameters like language, timezone and vital package configuration files in order for your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting Up Your Compiler Optimizations==&lt;br /&gt;
&lt;br /&gt;
The compiler optimizations is a crucial step, since what you choose will make your system fly! However, it is important that you do not overdo it on you optimization settings, as certain selections can, in some instances, break code while compiling.&lt;br /&gt;
&lt;br /&gt;
The first step is to choose your preferred compiler. There is only one version on the 1.6.5 ISO, so the only option here is GCC 4.4. However, once the main system installation is complete, it is possible to install GCC 3.x -- and even the deprecated GCC 2.x! If you don't intend to install those, you should go to the GCC_4_4 submenu now and set GCC 4.4 as the default compiler. &lt;br /&gt;
&lt;br /&gt;
The GCC_4_4 menu also allows you to change other options:&lt;br /&gt;
&lt;br /&gt;
* ''safe'' : allows you to turn off optimization safety, so you should leave this well alone unless you really know what you are doing. Turning this off will result in many more options appearing than are described below.&lt;br /&gt;
* ''bopt'' : allows you to change the base compile-time optimization. Your choice depends on what your needs are. Most folks will want to use -O2 here, as it is the wisest choice. More advanced users may want to use the -O3 option, but it's not for everyone. If you're short on disk space, you would take the -Os Small option. (As an example, we used -Os for the ISO since we were working within a confined amount of disc space.) Those of you with older or slower systems that wouldn't be able to take advantage of faster optimizations may choose a more conservative setting like -O1. For our example system, we will choose -O2.&lt;br /&gt;
* ''cpu'' : allows you to set your processor type. This may seem unimportant, but the GCC 4.x [and GCC 3.x] compiler has ways of optimizing code for certain processors&lt;br /&gt;
* ''cc_opt'' : allows you to set some limited C/C++ compiler settings. Very few people, if any, would need to turn off the -pipe option.&lt;br /&gt;
&lt;br /&gt;
The unsafe optimizations are:&lt;br /&gt;
* ''xtra'' : CPU extensions&lt;br /&gt;
* ''spd'' : Specialized optimizations&lt;br /&gt;
* ''fpm'' : Floating point optimizations&lt;br /&gt;
* ''stack'' : Stack optimizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding Other Compiler Toolchain Optimizations==&lt;br /&gt;
&lt;br /&gt;
'''You can safely SKIP this entire step!'''&lt;br /&gt;
&lt;br /&gt;
The GNU_LD menu shows the screen for linker options, where you will find that &amp;quot;-s Strip&amp;quot; has already been checked off. Very few people will want to uncheck this option, so we will leave this screen as is.&lt;br /&gt;
&lt;br /&gt;
The GNU_MAKE menu allows you to set the number of concurrent makes. As the hint mentions on the &amp;quot;Concurrent Makes&amp;quot; screen, you'll want to enter in the number of cpu's your machine has. Unless you have a machine with more than one processor, you'll want to leave this field blank.&lt;br /&gt;
&lt;br /&gt;
We are now finished setting up our GCC optimizations! When you have you lunar system up and running, you can always change and tweak these GCC settings by typing &amp;quot;lunar&amp;quot; at the commandline prompt, and going to &amp;quot;Optimization Settings&amp;quot;. In addition, if you aren't that familiar with what your processor is capable of using for optimizations, you can go to the shell out option on the ISO and type&lt;br /&gt;
&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
at the prompt and the system will show you all the optimizations that the processor reports it can handle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuring Your Bootloader==&lt;br /&gt;
&lt;br /&gt;
=== Configuring LILO ===&lt;br /&gt;
&lt;br /&gt;
If you chose to use lilo and also said yes to automatically configuring and running lilo, then most of the work is done for you. If you chose not to hand edit lilo.conf, however, be warned that the default configuration has the system set up to be password protected on boot. You can change this by selecting the option from the menu &amp;quot;Reconfigure LILO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To turn off password protection, you will need to comment out (with the symbol &amp;quot;#&amp;quot;) or delete two lines in your lilo.conf file. The first is &amp;quot;password=lunar&amp;quot;, which is found in the top section of the file, and the other is &amp;quot;restricted&amp;quot; which is found right below the name of your kernel in the second section.&lt;br /&gt;
&lt;br /&gt;
The other item of note is whether you want lilo to reside in your MBR (Master Boot Record) or on the first sector of your /boot partition. The line in your lilo.conf file to edit for this purpose is&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda1&lt;br /&gt;
&lt;br /&gt;
To make lilo get installed on the first sector of your /boot partition, you would leave this line as it is. If you want lilo to be written to your MBR, which is the recommended method, you would change the line to read&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda&lt;br /&gt;
&lt;br /&gt;
Of course, these examples are pertinent to our setup that we have been using thoughout this manual. Your actual lilo.conf file may be different.&lt;br /&gt;
&lt;br /&gt;
=== Configuring GRUB ===&lt;br /&gt;
&lt;br /&gt;
If you chose grub as your bootloader, you will need to set up the configuration file entirely on your own. An example would be:&lt;br /&gt;
&lt;br /&gt;
  default 0&lt;br /&gt;
  timeout 30&lt;br /&gt;
  color white/blue white/black&lt;br /&gt;
  title linux-2.4.25&lt;br /&gt;
  root (hd0,0)&lt;br /&gt;
  kernel /vmlinubz-2.4.25-r5.0.0 root=/dev/sda2 devfs=nomount&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier in the partitioning section, you would want to mark your /boot partition as active. With grub it is ''imperative'' that you mark your /boot partition as active, otherwise grub will not work at all when you are finished with the installation and reboot to your new system.&lt;br /&gt;
&lt;br /&gt;
NOTE: The option to install grub is not available on the 1.6.5-rc1-x86_64 ISO because grub is not yet fully stable on 64-bit systems. If you really know what you are doing, the source tarball is saved to disk, so you can configure it manually once the main installation is complete.&lt;br /&gt;
==Installing kernels==&lt;br /&gt;
&lt;br /&gt;
===Installing a precompiled kernel===&lt;br /&gt;
&lt;br /&gt;
The ISO comes with a selection of precompiled kernels and modules that should work for most people. If you have problems getting your kernel to compile, install or getting the right drivers, or just want to get a quick start at lunar, we ''suggest'' that you use this option instead of compiling your own kernel. You can later of course compile as many kernels as you want, and indeed the first ''lunar update'' after the main installation might ask whether you want to update the kernel too. Why do it twice if you don't need to?&lt;br /&gt;
&lt;br /&gt;
There are several kernels for you to choose from. They are:&lt;br /&gt;
&lt;br /&gt;
* ''2.6.34.1'' -- Normal kernel (SMP, 4GB memory max) (RECOMMENDED). &lt;br /&gt;
* ''2.6.34.1-safe'' -- Very safe non-optimized minimal kernel (no ACPI, DMA, SMP, 1GB).&lt;br /&gt;
* ''2.6.34.1-server'' -- Server optimized (SELINUX, SMP, 64GB, no preempt).&lt;br /&gt;
&lt;br /&gt;
===Building Your Customized Linux Kernel===&lt;br /&gt;
&lt;br /&gt;
We have now come to the most important part of the installation; the configuration of the kernel. The kernel is the heart of Linux, and without it, nothing would work. Configuration is, actually, a rather simple process. All you need to remember is to not panic, and that lunar is going to do most of the work for you. Here are a few pointers that will make the configuration a breeze for you.&lt;br /&gt;
&lt;br /&gt;
* Help is a click away! The people working on creating and maintaining the Linux kernel have help placed throughout the entire configuration process. If you're not sure what something does, just look at the help file for whatever item you're on, and it will almost certainly explain what it is and what it does. The most handy thing is that every help file will suggest whether you should really use the item or not. Many help files end with &amp;quot;If you're not sure, it is safe to say N here&amp;quot;, thus letting you know that it is safe to leave that particular item out of the kernel.&lt;br /&gt;
* You can use the ISO kernel! The configuration used to make the kernel for the ISO is the same configuration you'll see when you start your kernel customization. If you leave the configuration the way it is, the only thing you truly have to worry about is your network and, if you want it, sound. There are also two additional default configurations available on the ISO that are available to you called &amp;quot;config.safe&amp;quot; and &amp;quot;config.server&amp;quot;. We'll show you how to load these configurations in just a little bit. [TODO: check these files]&lt;br /&gt;
* Never build filesystems or core components as modules! Make sure that whatever filesystems you decided to use for your partitions earlier are built into the kernel, and are not separate modules. Likewise, make sure that certain crucial things like ide and scsi drivers are not modules, as this will make your machine unbootable. (This rule doesn't apply to the scsi low level drivers though; they can be modules.) Modules are kernel drivers that can be manually activated and deactivated after the system has been booted, but not during boot time. The kernel from the ISO already has all the filesystems available during the installation built into the kernel, so if you don't change anything there, you will be fine.&lt;br /&gt;
&lt;br /&gt;
You will be shown two screens of information before you actually begin you kernel configuration, letting you know that you are going to need a few things built into the kernel in order to have Lunar run properly, and what options you have for boot loaders. Lunar comes with both lilo (LInux LOader) and grub (GRand Unified Bootloader).&lt;br /&gt;
&lt;br /&gt;
If you don't have much experience with bootloaders, we suggest using lilo for now, as the installation program will set up the configuration file for you. If you would prefer to use grub, and we encourage folks to learn how to use it, be forewarned that the installation program does not set up any configuration at all for you.&lt;br /&gt;
&lt;br /&gt;
[On the 1.6.5-rc1-x86_64 ISO] There is only one kernel available for you to choose from:&lt;br /&gt;
&lt;br /&gt;
* ''linux-2.6.'' -- Latest 2.6 kernel with minor patchlevel patches (2.6.x.Y)&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use linux-2.6. &lt;br /&gt;
&lt;br /&gt;
Before you begin is which type of configuration method you would like to use.&lt;br /&gt;
&lt;br /&gt;
* ''config'' -- The original way to configure the linux kernel. It is completely text based, and assumes you know what everything is. Unless you've been using linux since its inception, you probably don't want to use this method.&lt;br /&gt;
* ''menuconfig'' -- As the name implies, a menu driven version of the kernel configuration. This is the easiest, and by far the most popular way of configurating your kernel.&lt;br /&gt;
* ''xconfig'' -- If you have an X server running, you can use this option to configure your kernel using a nifty GUI interface. You won't be able to use this on the ISO, but once your system is up and running with X, you can use this option. If you do choose this option while installing from the ISO, the system will fall back to next available configuration method, in this case menuconfig, so there is no harm in selecting it if you do.&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use menuconfig. Once Lunar is finished applying the patches for the kernel, which can take a minute or two, you'll be brought to the configuration screen for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, the configuration that was used to build the kernel for the ISO is the same configuration that you'll be presented with when you start. However, as we also mentioned earlier, there are two alternate kernel configurations available to you that you may want to use; config.safe and config.server. Both of these configurations can be found on the ISO, along with the original default config file, in /etc/lunar/local. When you are looking at the kernel menuconfig main page, scroll all the way to bottom, and you will find an option called &amp;quot;Load an Alternate Configuration File&amp;quot;. Select this and then give the absolute path to the alternate configuration file, i.e. /etc/lunar/local/.config.server. As with all kernel configuration files, they are hidden files preceded with a &amp;quot;.&amp;quot;, so make sure to not forget it.&lt;br /&gt;
&lt;br /&gt;
Once you have completed configuring your kernel, you'll get one more prompt from the installer asking if you want to go back to the configuration in case you exited by mistake or forgot something. If everything is good to go, say no here and sit back for a few minutes while your kernel compiles.&lt;br /&gt;
&lt;br /&gt;
==Setting Up Networking==&lt;br /&gt;
&lt;br /&gt;
The final step is to set up networking. When you select the &amp;quot;Set Up Networking&amp;quot; option, you'll be prompted by a series of questions as to what kind of card you have (only needed if you built your networking device as a module, and not part of the kernel), if you need to set up wireless or not, and whether you'll need to use dhcp or not. You should be familiar enough with your network to set this up on your own, as the questions put to you are very straightforward.&lt;br /&gt;
&lt;br /&gt;
* if you use dhcp, you don't need to set up the default gateway or DNS because dhcp will take care of them for you.&lt;br /&gt;
* you are using a wireless connection with wpa_supplicant, you might want to run &amp;quot;wpa_passphrase&amp;quot; to set up a simple /etc/wpa_supplicant.conf rather than try to edit the example file.&lt;br /&gt;
&lt;br /&gt;
==Other settings==&lt;br /&gt;
&lt;br /&gt;
The installer will prompt you now for some more settings. You should set a root password and generate ssh host keys to identify your box uniquely for later. You might also want to administrate services on the newly installed machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reboot!==&lt;br /&gt;
&lt;br /&gt;
Once you have completed setting up your networking, you are finished installing Lunar Linux! Congratulations! Select the option &amp;quot;Done&amp;quot; and remove the cd from the drive when it ejects. Your Lunar system is now ready to go!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Moonbase==&lt;br /&gt;
&lt;br /&gt;
After the initial installation and reboot, please follow the instructions given in '''man lfirsttime''' to bring your system up-to-date.&lt;br /&gt;
&lt;br /&gt;
Congratulations! You now have a minimal system as a foundation on which to build.&lt;br /&gt;
&lt;br /&gt;
==KNOWN PROBLEMS==&lt;br /&gt;
&lt;br /&gt;
=== You need to run 'lin linux-2.6' explicitly before running 'lunar update' ===&lt;br /&gt;
&lt;br /&gt;
  WARNING: the pre-compiled 2.6.35.3 kernel on the ISO is now out-of-date compared to the ''linux-2.6'' module in the moonbase, but you will&lt;br /&gt;
  need to build it explicitly using '''lin linux-2.6''' because it won't be rebuilt as part of the first '''lunar update'''. If you didn't&lt;br /&gt;
  recompile the kernel as part of the ISO installation, or if you experience problems with ALSA or NVIDIA, you should run '''lin linux-2.6'''&lt;br /&gt;
  to rebuild the kernel explicitly. After you have built the kernel once, '''lunar update''' should then detect and install a newer versions&lt;br /&gt;
  of the kernel as they become available in the moonbase.&lt;br /&gt;
&lt;br /&gt;
=== configure: error: C compiler cannot create executables ===&lt;br /&gt;
&lt;br /&gt;
  WARNING: the ISO installs gcc-4.4 on your system, but gcc-4.6 will be installed as part of the '''man lfirsttime''' and '''lunar update'''&lt;br /&gt;
  process. You will then need to run '''lunar''', select the '''Options / Optimize Architecture''' menu and set the gcc-4.5 options. Failure&lt;br /&gt;
  to do so may result in ''&amp;quot;configure: error: C compiler cannot create executables&amp;quot;'' messages when building modules later.&lt;br /&gt;
&lt;br /&gt;
=== Jump to 3.X kernel + Tips ===&lt;br /&gt;
&lt;br /&gt;
  These are some problems you'll encounter with the outdated 1.6.5 installation ISO of Lunar Linux. For example:&lt;br /&gt;
  - Lunar Linux doesn't recognize the most recent network hardware correctly, but it still recognizes a few USB tethering from your smartphone&lt;br /&gt;
    (e.g. hTC Evo 4G+). The tricky part is that lin(package installer) tries to connect via dial-up modem if it doesn't find any ethX.&lt;br /&gt;
  - If you try to use Linux kernel 3.X udev would not start because Lunar's initscript would treat it as 2.4 kernel. &lt;br /&gt;
    It is due to initscript design pitfall then where there was no 3.X kernels.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  Of course these issues are all resolved with current updates. To solve the issues following modules should be updated:&lt;br /&gt;
  - &amp;lt;b&amp;gt;linux&amp;lt;/b&amp;gt;: Of course, Linux kernel, to support the most recent hardware. Please refer to [[Moonbase]] for details.&lt;br /&gt;
  - &amp;lt;b&amp;gt;lunar / theedge&amp;lt;/b&amp;gt;: Lunar Linux utilities(including &amp;quot;package managers&amp;quot;), for lin(module installer) to work in any network condition(e.g. connected to the Internet without ethX)&lt;br /&gt;
  - &amp;lt;b&amp;gt;lunar-init&amp;lt;/b&amp;gt;: the initscript of Lunar Linux to correctly recognize and work &lt;br /&gt;
  - Though deprecated, module-init-tools would work with 3.X kernels anyway. Or you can replace it with kmod.&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
  Or, if you prefer, you can just recompile Linux kernel with built-in drivers so that you don't have to be concerned with kernel modules.&lt;br /&gt;
&lt;br /&gt;
==Where to go from here==&lt;br /&gt;
To install a desktop environment check out this page. [[Lunar_Linux:DesktopEnvironments]]&lt;br /&gt;
&lt;br /&gt;
''Have Phun!!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/copyleft/ Copyleft] 2004-2010 [http://lunar-linux.org/ The Lunar Penguin Team]&lt;br /&gt;
&lt;br /&gt;
Lunar Installation Manual and Harassment of Lunar Developers by Drew Swayze (drew AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Edits and Nitpicking by Suzanne Burns (sburns AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Initial update for the 1.6.5 ISO by Duncan Gibson (engelsman AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Update for &amp;quot;Jump to 3.X kernel + Tips&amp;quot; by Robert Teminian(individual contributor).&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/TestingLunarStable</id>
		<title>TestingLunarStable</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/TestingLunarStable"/>
				<updated>2012-03-29T10:05:15Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: initial draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Testing Lunar Stable ===&lt;br /&gt;
&lt;br /&gt;
==== Introduction ====&lt;br /&gt;
&lt;br /&gt;
Lunar has always been a bit of a bleeding edge distro, where some devs are keen to keep up-to-date with key packages as soon as new versions are released. However, while they may have successfully compiled and tested these packages on their own systems, there are some packages that require more extensive testing to make sure that they run on a wider range of systems, with different video or sound cards for example. In addition, while a major release of a package might add some important feature, it may take a couple of follow-up patch releases to iron out new problems which might have been introduced.&lt;br /&gt;
&lt;br /&gt;
Users new to Lunar might experience problems if they install from the ISO and then update while such wrinkles are being sorted out. Therefore some of the Lunar developers would like to introduce &amp;quot;stable&amp;quot; and &amp;quot;unstable&amp;quot; versions of the Moonbase. The &amp;quot;stable&amp;quot; version would contain only modules that had been tested and approved by three developers, or where no obvious teething problems had been reported on the modules' mailing lists during the first month. New users would download modules from &amp;quot;stable&amp;quot; and developers would work with &amp;quot;unstable&amp;quot; to get the bleeding edge, just as before.&lt;br /&gt;
&lt;br /&gt;
That's the theory. Now we have to set it up and see how it works in practice.&lt;br /&gt;
&lt;br /&gt;
==== How to proceed ====&lt;br /&gt;
&lt;br /&gt;
* Install from the ISO as usual&lt;br /&gt;
* '''lin moonbase'''&lt;br /&gt;
* '''lin theedge'''&lt;br /&gt;
* run '''lunar''' and make sure you select the stable branch, although it should be the default&lt;br /&gt;
* continue with a normal installation as described in '''man lfirsttime'''&lt;br /&gt;
** '''lin -cr gcc glibc gcc bash coreutil tar wget&lt;br /&gt;
** etc&lt;br /&gt;
&lt;br /&gt;
You can report any problems via&lt;br /&gt;
the [http://bugs.lunar-linux.org/view_all_bug_page.php Bug Tracker],&lt;br /&gt;
the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List], or discuss them on&lt;br /&gt;
the [irc://irc.freenode.net/lunar #Lunar] IRC channel on [http://freenode.net/ Freenode.net]&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:FAQ</id>
		<title>Lunar Linux:FAQ</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:FAQ"/>
				<updated>2011-07-30T11:08:20Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* How do I safely remove an optional module? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the '''F'''requently '''A'''sked '''Q'''uestions for Lunar Linux. You have a question about Lunar? You might get your answer below.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
===What is Lunar Linux?===&lt;br /&gt;
What exactly is Lunar Linux?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
* Please read [[Lunar Linux:About|About Lunar Linux]].&lt;br /&gt;
&lt;br /&gt;
===Can I run Lunar Linux in 64-bit mode?===&lt;br /&gt;
Can I run Lunar Linux on my new 64-bit system?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Yes you can. You can run Lunar Linux in '''either''' 64-bit '''or''' 32-bit mode, but there is no multi-lib mode. Be aware that some applications are still only available for 32-bit mode!&lt;br /&gt;
&lt;br /&gt;
===Where can I find how to ...?===&lt;br /&gt;
Where can I find how to customize the kernel under Lunar Linux? Or the desktop...&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The Lunar Wiki only offers details specific to Lunar Linux. Many other resources already exist for general Linux problem solving. For example, information on how to customize the Linux kernel can be found at:&lt;br /&gt;
* http://kernelnewbies.org/&lt;br /&gt;
* http://en.wikipedia.org/wiki/Linux_kernel_mailing_list&lt;br /&gt;
&lt;br /&gt;
==Optimizations==&lt;br /&gt;
&lt;br /&gt;
===How do I set optimizations?===&lt;br /&gt;
How do I set these optimizations for my machine?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt;lunar optimize&amp;lt;/code&amp;gt;. You'll be taken through an interactive menu that explains all the options. Remember to optimize safely.&lt;br /&gt;
&lt;br /&gt;
===What are safe optimizations?===&lt;br /&gt;
What are the recomended safe optimizations for [[Lunar Linux]]?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The default sure fire optimizations that are recommended are:&lt;br /&gt;
&lt;br /&gt;
* '''C'''&lt;br /&gt;
** &amp;lt;code&amp;gt;-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''C++'''&lt;br /&gt;
** &amp;lt;code&amp;gt;-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''CPU Architecture'''&lt;br /&gt;
** You should pick the correct architecture for your own system (defaults to x86 for most people).&lt;br /&gt;
* '''Basic Optimzations'''&lt;br /&gt;
** Faster (-O2, the default).&lt;br /&gt;
* '''CPU'''&lt;br /&gt;
** This, of course, should be set to your own cpu, or the cpu of the machine you plan to run this install on. If you want to be able to run this install on many machines, you should be safe with I686.&lt;br /&gt;
* '''Speed Optimizations'''&lt;br /&gt;
** If you want to be 100% sure that there won't be optimization problems you shouldn't select any of these.&lt;br /&gt;
* '''Extra features'''&lt;br /&gt;
** It is not recommended to use any of these optimizations, even for modules known to be able to handle them, since they cause many apps to break.&lt;br /&gt;
* '''Floating Point Math'''&lt;br /&gt;
** None. If your architecture is x86 and you don't own a 386SX and 486SX, it's safe to select x387.&lt;br /&gt;
* '''Linker Options'''&lt;br /&gt;
** Strip.&lt;br /&gt;
* '''Addon Program Support'''&lt;br /&gt;
** CCache. Make sure to install it first.&lt;br /&gt;
&lt;br /&gt;
These settings should work for almost everyone, and there is a lot room for pushing these optimizations more, at the risk of problems with some applications. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations may cause problems?===&lt;br /&gt;
What optimizations are known to cause problems in some setups?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Some optimizations that are known to cause problems on x86 with many applications, and even a entire system:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-funroll-loops&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-fstrict-aliasing&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-ffast-math&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-ffloat-store&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are sorted from the least unstable to most unstable. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations can give some speed without issues?===&lt;br /&gt;
What optimizations can I use to gain some speed but without major risks?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Start with the basic optimizations in [[Lunar Linux:FAQ#What_are_safe_optimizations.3F|FAQ #2.2]] and change the Basic Optimizations to Faster or Fastest if you know that gcc will generate correct code for that cpu. -O2 obviously takes more compile time than -O1, and -O3 takes the most time to compile. Then select the cpu you will run it on. Some of the speed optimizations that should be decent and shouldn't cause too many problems, if any, are: -fomit-frame-pointer. A safe bet for floating point math on a x86 would be x387, if you know your cpu has a floating point unit. Check &amp;lt;code&amp;gt;cat /proc/cpuinfo&amp;lt;/code&amp;gt; to see if your cpu supports SSE or SSE2. If your cpu does have sse or sse2 then you can also add that to the math optimizations.&lt;br /&gt;
&lt;br /&gt;
Your results may vary. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations should I avoid?===&lt;br /&gt;
What optimizations should I stay away from?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
All the ones listed in the [[Lunar Linux:FAQ#What_optimizations_may_cause_problems.3F|FAQ #2.3]] plus:&lt;br /&gt;
* &amp;lt;code&amp;gt;-fprofile-arcs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-fbranching-probabilities&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it. The Lunar developers will not respond to bug reports of broken compiles by users with risky optimizations.&lt;br /&gt;
&lt;br /&gt;
==Installing modules==&lt;br /&gt;
&lt;br /&gt;
===Can I compile several modules at once?===&lt;br /&gt;
Is it possible to install multiple modules at the same time without breaking things?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Yes, Lunar even promotes it. However doing so will cause installs compile slower of course. Lunar will not install core system modules like gcc and glibc while something else is installing and will wait until the rest is finished. Also, you cannot install applications while those major modules are installing, they will wait their turn until it's safe and continue to install them automatically.&lt;br /&gt;
&lt;br /&gt;
===error : download failed - broken URL===&lt;br /&gt;
I tried to install a module, but the download failed due to a broken URL. What do I do now?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
There are three possible reasons why the download failed:&lt;br /&gt;
# You are trying to download from one of a set of mirror sites, and the mirror you are using is either busy or incomplete.&lt;br /&gt;
#* Run &amp;quot;lunar&amp;quot; as root, select Options / Software Mirrors, and change the mirror to something closer to you.&lt;br /&gt;
#* Note: there seems to be a consistent problem with the SFORGE mirror: http://osdn.dl.sourceforge.net&lt;br /&gt;
# You are trying to download from a particular site, but the location of the file has changed [or the site is temporarily off-line].&lt;br /&gt;
#* Browse the module's website (see &amp;quot;lvu website&amp;quot;) [or search the web for the tarball],&lt;br /&gt;
#* Download it manually, copy it to /var/spool/lunar, and try to run &amp;quot;lin&amp;quot; again,&lt;br /&gt;
#* Run &amp;quot;lvu edit&amp;quot; to create a [[zlocal]] copy, and edit that copy with the new location [or secondary URL]&lt;br /&gt;
# You are trying to download a version that has been removed because a newer version exists.&lt;br /&gt;
#* Browse the module's website to discover the new version number,&lt;br /&gt;
#* Run &amp;quot;lvu edit&amp;quot; to create a [[zlocal]] copy, and edit that copy with the new location, version number, sha1sum, etc.&lt;br /&gt;
#* Note: you could first try to run &amp;quot;lin -w newVersion&amp;quot; and hope that it builds without problems.&lt;br /&gt;
If you do create your own [[zlocal]] copy, please consider submitting it using &amp;quot;lvu submit&amp;quot;. (See [[Module Submission]])&lt;br /&gt;
&lt;br /&gt;
===error : C compiler cannot create executables===&lt;br /&gt;
What does this error mean and how can I fix it?&lt;br /&gt;
* &amp;lt;code&amp;gt;C compiler cannot create executables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Read the next topic - this is basically the same problem: There are kernel headers missing that are vital to compilation. You will have to restore them. Below is explained how to do that.&lt;br /&gt;
&lt;br /&gt;
===configure: error: C preprocessor &amp;quot;/lib/cpp&amp;quot; fails sanity check===&lt;br /&gt;
What does this error mean and how can I fix it?&lt;br /&gt;
* &amp;lt;code&amp;gt;configure: error: C preprocessor &amp;quot;/lib/cpp&amp;quot; fails sanity check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
This is an include file problem. Sometimes ''/usr/include/gnu/stubs.h'' is missing, this can be found in the glibc source tarball. Most of the time the following applies:&lt;br /&gt;
&lt;br /&gt;
Your kernel headers are missing from &amp;lt;code&amp;gt;/usr/include&amp;lt;/code&amp;gt;. This means the C PreProcessor cannot verify that it has the proper cached copies of those vital header files. You need to install the proper ones manually. Here's how:&lt;br /&gt;
&lt;br /&gt;
 lin kernel-headers-2.4&lt;br /&gt;
&lt;br /&gt;
This might work for you! (Use the 2.6 version if needed of course)&lt;br /&gt;
&lt;br /&gt;
Otherwise:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /usr/include/{linux,asm}&lt;br /&gt;
&lt;br /&gt;
to create the two target dirs, if needed. Then execute:&lt;br /&gt;
&lt;br /&gt;
 cp -av /usr/src/linux/include/linux /usr/include/&lt;br /&gt;
 cp -av /usr/src/linux/include/asm/* /usr/include/asm/&lt;br /&gt;
&lt;br /&gt;
to copy the files manually. Be warned that the second command has to be done this way since &amp;lt;code&amp;gt;/usr/src/linux/include/asm&amp;lt;/code&amp;gt; is a softlink to your arch asm header files, asm points to asm-i386, on x86 machines. So if, on the other hand, you had copied&lt;br /&gt;
&lt;br /&gt;
 cp -av /usr/src/linux/include/asm /usr/include/&lt;br /&gt;
&lt;br /&gt;
you would then get a softlink to nowhere under &amp;lt;code&amp;gt;/usr/include/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Last, you can always try to unpack the kernel tarball you have into &amp;lt;code&amp;gt;/usr/src/linux&amp;lt;/code&amp;gt; and manaully link or copy the headers over yourself.&lt;br /&gt;
&lt;br /&gt;
===Can I add more window managers to gdm?===&lt;br /&gt;
How do I add other window managers to the sessions list on gdm?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Copy the desktop startup files to &amp;lt;code&amp;gt;/etc/X11/dm/Sessions/&amp;lt;/code&amp;gt;. That works with gdm. For kdm you will have to copy them to &amp;lt;code&amp;gt;$KDE_PREFIX/share/apps/kdm/sessions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How do I get Flash to work in Mozilla or Firefox?===&lt;br /&gt;
How do I get Flash to work in Mozilla or Firefox?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
If you are using Mozilla or Firefox, then you can simply do a &amp;lt;code&amp;gt;lin flash-plugin&amp;lt;/code&amp;gt; and that will download and install the Macromedia Flash plugin that works with a gtk+ based mozilla through the old abi wrappers.&lt;br /&gt;
&lt;br /&gt;
The flash plugin does ''not'' work with Galeon. The Galeon developers have declined to provide the &amp;quot;old&amp;quot; abi wrappers needed for the plugin to work.&lt;br /&gt;
&lt;br /&gt;
===How do I install Java?===&lt;br /&gt;
How do I get Java for my Lunar box?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
You will have to download the Java source code from Sun yourself and you have to &amp;quot;click&amp;quot; to agree on their license. You have to compile it yourself too. We don't have a Sun Java module as we currently have no way to automate the &amp;quot;click&amp;quot; to agree to the Sun Java license. See this URL for some handy info:&lt;br /&gt;
&lt;br /&gt;
http://www.linuxfromscratch.org/~tushar/hints/javafromscratch.txt&lt;br /&gt;
&lt;br /&gt;
There is a j2sdk module in moonbase which is the Blackdown port of Sun's Java Virtual Machine.&lt;br /&gt;
&lt;br /&gt;
==Removing modules==&lt;br /&gt;
&lt;br /&gt;
===How do I remove a module?===&lt;br /&gt;
How do I remove a module?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
If you have just installed a module for the first time using ''lin'' then it is usually safe to remove it using ''lrm''.&lt;br /&gt;
&lt;br /&gt;
However, if you have built or rebuilt other modules that depend on it, you will need to be careful. Use ''lvu eert'' to identify these modules, and then remove them too, or rebuild them using ''lin -rc'' to change the optional dependency. You should run ''lunar nofix'' to make sure that some hidden dependency has not been affected.&lt;br /&gt;
&lt;br /&gt;
You can also use ''lrm -p'' to purge all modules that depend on it, but this is not recommended in general because it is easy to break your system.&lt;br /&gt;
&lt;br /&gt;
===How do I safely remove an optional module?===&lt;br /&gt;
How do I safely remove an optional module, especially one that is now deprecated or obsolete but lots of other modules use it?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
There are three ways, ranging from 'time-consuming but safe' to 'possibly quick but dangerous'.&lt;br /&gt;
&lt;br /&gt;
1. You can use the ''lvu eert'' approach described above.&lt;br /&gt;
&lt;br /&gt;
2a. You can use ''lsh'' to access the the lunar internal functions to find the other modules that have a known dependency on theModule and rebuild them. If you ''lrm theModule'' first, the rebuilds and ''lunar fix'' can not silently reuse the module again.&lt;br /&gt;
&lt;br /&gt;
 for i in `lsh list_installed_depending theModule` ; do  lin -cr &amp;quot;$i&amp;quot; ; done&lt;br /&gt;
 lunar fixdepends&lt;br /&gt;
 lunar fix&lt;br /&gt;
&lt;br /&gt;
2b. If you want to rebuild the modules in dependency order, you will need to do a bit more work.&lt;br /&gt;
&lt;br /&gt;
 MODULES=&amp;quot;&amp;quot;&lt;br /&gt;
 for i in `lsh list_installed_depending theModule`&lt;br /&gt;
 do&lt;br /&gt;
  VAR=$(echo &amp;quot;$MODULES&amp;quot; | grep &amp;quot;$i&amp;quot;)&lt;br /&gt;
  if [ -z &amp;quot;$VAR&amp;quot; ]&lt;br /&gt;
  then&lt;br /&gt;
   MODULES=&amp;quot;$MODULES $i&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
 done&lt;br /&gt;
 lin -cr &amp;quot;$MODULES&amp;quot;&lt;br /&gt;
 lunar fixdepends&lt;br /&gt;
 lunar fix&lt;br /&gt;
&lt;br /&gt;
3. Run ''lrm theModule''. Use ''lunar nofix'' to identify problems. Run ''lin -cr'' for each problem. Rinse and repeat.&lt;br /&gt;
&lt;br /&gt;
==Lunar core tools==&lt;br /&gt;
&lt;br /&gt;
===How can I recompile my module with new options?===&lt;br /&gt;
How do I force lunar to recompile my modules with different options?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Try:&lt;br /&gt;
&lt;br /&gt;
 lin -r ''MODULE''&lt;br /&gt;
&lt;br /&gt;
The -r switch will allow you to select new configuration and dependencies for modules.&lt;br /&gt;
&lt;br /&gt;
===How can I make modules recompile instead of resurrecting?===&lt;br /&gt;
How do I tell lunar to recompile my application instead of resurrecting it?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Try doing:&lt;br /&gt;
&lt;br /&gt;
 lin -c ''MODULE''&lt;br /&gt;
&lt;br /&gt;
The -c option means tells &amp;lt;code&amp;gt;lin&amp;lt;/code&amp;gt; to compile this module even if there is an install cache copy available in &amp;lt;code&amp;gt;/var/cache/lunar&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How can I tell lunar that module X no longer depends on module Y?===&lt;br /&gt;
Module X no longer depends on module Y, but lunar insists on reinstalling module Y too. How can I get tell lunar to remove that dependency?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Lunar adds a module's dependencies to a cache when you install it. You can't remove a dependency automatically, but you can rebuild the dependency cache to reflect the current dependencies of the modules that are now installed.&lt;br /&gt;
&lt;br /&gt;
 lsh create_module_index&lt;br /&gt;
 lsh create_depends_cache&lt;br /&gt;
 lunar fixdepends&lt;br /&gt;
&lt;br /&gt;
Note: Dependencies of modules in [[zlocal]] are ignored. If module X in the main moonbase depends on module Y then the dependency cache will still contain that dependency.&lt;br /&gt;
&lt;br /&gt;
===My moonbase is gone and I can't install anything.===&lt;br /&gt;
How do I fix problems with my moonbase when it's missing or damaged?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Simple solution to this is just running:&lt;br /&gt;
&lt;br /&gt;
 lin moonbase&lt;br /&gt;
&lt;br /&gt;
This will download the latest moonbase from the internet, and restore it to working order.&lt;br /&gt;
&lt;br /&gt;
===What is a module?===&lt;br /&gt;
What is a [[module]] and what does it do??&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
A [[module]] is a set of files that tell the core tools the following:&lt;br /&gt;
&lt;br /&gt;
* What name, version, and other properties a package has&lt;br /&gt;
* Where to download all needed source files&lt;br /&gt;
* What other modules are required, or conflict with this one&lt;br /&gt;
* How to unpack the source files, how to patch&lt;br /&gt;
* How to configure the code&lt;br /&gt;
* How to compile&lt;br /&gt;
* How to install everything&lt;br /&gt;
* What else to do with it&lt;br /&gt;
&lt;br /&gt;
The [[module]] is coded in a set of files in a directory structure, and scripted in bash.&lt;br /&gt;
&lt;br /&gt;
===What is the Moonbase?===&lt;br /&gt;
What is that thing you call [[Moonbase]]?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The [[Moonbase]] is a database with [[modules]]. In this database there are description of packages that tell the core tools where to download, how to compile, and how install a [[module]]. You can consider this the lunar equivalent of portage, grimoire, ports, etc.&lt;br /&gt;
&lt;br /&gt;
===What is theedge?===&lt;br /&gt;
What is theedge?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
[[theedge]] is the same as lunar, and also known as the core code. Theedge is just another version of lunar. These two pieces of code install your packages, but they do not contain package descriptions. Those are defined in moonbase.&lt;br /&gt;
&lt;br /&gt;
[[Theedge]] is a development version of [[lunar]]. Often there are much more features in theedge, and bugs are fixed quicker as well. However, if you do not like all this tweaking on your system, we advice you to use the stable lunar core tools instead on your system.&lt;br /&gt;
&lt;br /&gt;
You can install [[theedge]] by issuing:&lt;br /&gt;
&lt;br /&gt;
 lin theedge&lt;br /&gt;
&lt;br /&gt;
Theedge is automatically updated if you do a &amp;lt;code&amp;gt;lunar renew&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;lunar update&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Lunar-Linux Installation==&lt;br /&gt;
&lt;br /&gt;
===My usb keyboard is not recognized===&lt;br /&gt;
At the boot prompt type ''linux uhci-hcd ehci-hcd'' to make sure those modules are loaded during startup. Those will then enable your usb keyboard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===So how should I partition my disk?===&lt;br /&gt;
I'm setting up lunar from scratch, but how should I partition my disk for a server or desktop system?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Server systems have very different demands than desktops. It's all about flexibility. First desktops:&lt;br /&gt;
&lt;br /&gt;
''desktops'' commonly have one hard disk. You don't want to reformat or repartition often, so you just want to be done with it at once. The easiest is just to setup 2 (two) partitions: one root filesystem big enough for all lunar software, and the rest for &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt;. Typically, lunar occupies between 4 and 12 gb based on how many applications you install. If you clean up often you can manage with 8gb, but you should keep some extra space. I certainly advise to use a swapfile instead of a swap partition: you can always later delete the swap, or move the swapfile to another disk or partition. A swap partition is harder to relocate.&lt;br /&gt;
&lt;br /&gt;
''Servers'' have different needs. First of all &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt; doesn't need to be that large, but you will want to setup space for logfiles that cannot cause problems if they grow too fast. Putting &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/var/log&amp;lt;/code&amp;gt; on separate partitions is quite normal. &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; can be abused similarly, and is mostly run in [[tmpfs]] to avoid cluttering and give fast access times. Then &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; will be separate and the usual separate &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt;. As you can see this list is already getting quite big! Most users will actually want to make the &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; quite small (as small as 200mb sometimes!) and thus &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt; also needs to be on a separate partition.&lt;br /&gt;
&lt;br /&gt;
===Kernel features, built-in or module?===&lt;br /&gt;
When I compile a kernel, should I compile drivers that I need in the kernel image or as module?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
There are many schools of thought on kernel compiling. One is to build everything into the main kernel without modules. The other one takes building modules to the extreme. Here is a suggestion, if it's not needed to boot it's a module. Thus usb, input, sound, mice ACPI, network, and also cdrom, floppy, and all the non boot file systems, all get built as modules. This reduces the size of the main kernel so it can be put on a floppy. Another thing to consider is that not everything works perfectly, and some features can cause your kernel to misbehave, so if some feature is built-in, the bad behavior is practically inevitible. Instead, with a module you can choose not to load it and thus be left with a working system.&lt;br /&gt;
&lt;br /&gt;
Please note that some people need to make some features built into their kernel and vice versa, do whatever works best for you.&lt;br /&gt;
&lt;br /&gt;
===QEMU and Lunar ISO testing===&lt;br /&gt;
How do I use qemu to try out lunar ISO's?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Just a quick note on how to use qemu for testing a Lunar Linux installation. See &amp;lt;code&amp;gt;/var/lib/lunar/moonbase/devel/qemu/DETAILS&amp;lt;/code&amp;gt; for a description of qemu. Think of it as a low-cost (''read: free'') version of a virtual machine, that has quite a few useful features and is under active development.&lt;br /&gt;
&lt;br /&gt;
A very simple way to just test a Lunar ISO for booting purposes is:&lt;br /&gt;
&lt;br /&gt;
 qemu -cdrom lunar-1.5.0-i686.iso -boot d&lt;br /&gt;
&lt;br /&gt;
If you want to test a full install, then create a 512 megabyte sparse root_fs image with this &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=hda.img bs=$((1024 * 1024)) count=0 seek=512&lt;br /&gt;
&lt;br /&gt;
Now invoke qemu:&lt;br /&gt;
&lt;br /&gt;
 qemu -cdrom lunar-1.5.0-i686.iso -boot d -hda hda.img&lt;br /&gt;
&lt;br /&gt;
You can then proceed to test your Lunar install. Refer the qemu homepage for further tips and tricks. qemu can also be quite easily used to test if your brand new kernel is bootable or not, which is quite neat.&lt;br /&gt;
&lt;br /&gt;
Note that you should say yes to using SDL as an optional_depends. The gui version of qemu is ''very'' nice in its own little X11 window.&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
===How do I unpack an .RPM file in lunar?===&lt;br /&gt;
How do I install RPM files in lunar? Is that possible?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The easiest way to unpack a rpm file is to use the module called &amp;lt;code&amp;gt;rpmunpack&amp;lt;/code&amp;gt;. Simply run &amp;lt;code&amp;gt;rpmupack ''XYZ''.rpm&amp;lt;/code&amp;gt; for your RPM. This will create a cpio file (''XYZ.cpio.gz'' and ''XYZ.cpio.bz2'' are not uncommon). Once you perform any additional uncompression with &amp;lt;code&amp;gt;gunzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;bunzip2&amp;lt;/code&amp;gt;, you can then extract it using &amp;lt;code&amp;gt;cpio -i -d &amp;amp;lt; XYZ.cpio&amp;lt;/code&amp;gt; -- After all that you should be all done. If you are trying to rpmunpack a source RPM (i.e. .src.rpm) file then ''XYZ.cpio'' may further contain a tar.bz2 or tar.gz source tarball.&lt;br /&gt;
&lt;br /&gt;
In the zbeta section of moonbase, there is an '''''unsupported''''' module called &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; for those of you that are really desperate.&lt;br /&gt;
&lt;br /&gt;
You might want to do &amp;lt;code&amp;gt;man cpio&amp;lt;/code&amp;gt;, to check out additional cpio parameters that may interest you, such as the -L switch.&lt;br /&gt;
&lt;br /&gt;
===What is that in the Lunar-Linux logo?===&lt;br /&gt;
What is that logo of yours? It looks like a &amp;lt;nowiki&amp;gt;[cat|ferret|dog|owl|insert nutty animal here]&amp;lt;/nowiki&amp;gt;!&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The logo is a [[wikipedia:Southern Rockhopper Penguin|Rockhopper Penguin]]. It's a kind of nasty penguin, the one that crowd up in thousands to take over the continent. They have a few long feathers sticking out at their &amp;quot;ears&amp;quot; sideway, just like some owl species do.&lt;br /&gt;
&lt;br /&gt;
You can check out [http://images.google.com/images?q=Rockhopper+Penguin Google Images] for lots of Rockhopper Penguin pictures!&lt;br /&gt;
&lt;br /&gt;
The current logo has been designed by Michael Schindler in 2003 and appeared as the official logo of the Lunar Linux project in 2004.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:FAQ</id>
		<title>Lunar Linux:FAQ</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:FAQ"/>
				<updated>2011-07-30T10:23:49Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Removing modules */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the '''F'''requently '''A'''sked '''Q'''uestions for Lunar Linux. You have a question about Lunar? You might get your answer below.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
===What is Lunar Linux?===&lt;br /&gt;
What exactly is Lunar Linux?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
* Please read [[Lunar Linux:About|About Lunar Linux]].&lt;br /&gt;
&lt;br /&gt;
===Can I run Lunar Linux in 64-bit mode?===&lt;br /&gt;
Can I run Lunar Linux on my new 64-bit system?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Yes you can. You can run Lunar Linux in '''either''' 64-bit '''or''' 32-bit mode, but there is no multi-lib mode. Be aware that some applications are still only available for 32-bit mode!&lt;br /&gt;
&lt;br /&gt;
===Where can I find how to ...?===&lt;br /&gt;
Where can I find how to customize the kernel under Lunar Linux? Or the desktop...&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The Lunar Wiki only offers details specific to Lunar Linux. Many other resources already exist for general Linux problem solving. For example, information on how to customize the Linux kernel can be found at:&lt;br /&gt;
* http://kernelnewbies.org/&lt;br /&gt;
* http://en.wikipedia.org/wiki/Linux_kernel_mailing_list&lt;br /&gt;
&lt;br /&gt;
==Optimizations==&lt;br /&gt;
&lt;br /&gt;
===How do I set optimizations?===&lt;br /&gt;
How do I set these optimizations for my machine?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt;lunar optimize&amp;lt;/code&amp;gt;. You'll be taken through an interactive menu that explains all the options. Remember to optimize safely.&lt;br /&gt;
&lt;br /&gt;
===What are safe optimizations?===&lt;br /&gt;
What are the recomended safe optimizations for [[Lunar Linux]]?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The default sure fire optimizations that are recommended are:&lt;br /&gt;
&lt;br /&gt;
* '''C'''&lt;br /&gt;
** &amp;lt;code&amp;gt;-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''C++'''&lt;br /&gt;
** &amp;lt;code&amp;gt;-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''CPU Architecture'''&lt;br /&gt;
** You should pick the correct architecture for your own system (defaults to x86 for most people).&lt;br /&gt;
* '''Basic Optimzations'''&lt;br /&gt;
** Faster (-O2, the default).&lt;br /&gt;
* '''CPU'''&lt;br /&gt;
** This, of course, should be set to your own cpu, or the cpu of the machine you plan to run this install on. If you want to be able to run this install on many machines, you should be safe with I686.&lt;br /&gt;
* '''Speed Optimizations'''&lt;br /&gt;
** If you want to be 100% sure that there won't be optimization problems you shouldn't select any of these.&lt;br /&gt;
* '''Extra features'''&lt;br /&gt;
** It is not recommended to use any of these optimizations, even for modules known to be able to handle them, since they cause many apps to break.&lt;br /&gt;
* '''Floating Point Math'''&lt;br /&gt;
** None. If your architecture is x86 and you don't own a 386SX and 486SX, it's safe to select x387.&lt;br /&gt;
* '''Linker Options'''&lt;br /&gt;
** Strip.&lt;br /&gt;
* '''Addon Program Support'''&lt;br /&gt;
** CCache. Make sure to install it first.&lt;br /&gt;
&lt;br /&gt;
These settings should work for almost everyone, and there is a lot room for pushing these optimizations more, at the risk of problems with some applications. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations may cause problems?===&lt;br /&gt;
What optimizations are known to cause problems in some setups?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Some optimizations that are known to cause problems on x86 with many applications, and even a entire system:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-funroll-loops&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-fstrict-aliasing&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-ffast-math&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-ffloat-store&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are sorted from the least unstable to most unstable. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations can give some speed without issues?===&lt;br /&gt;
What optimizations can I use to gain some speed but without major risks?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Start with the basic optimizations in [[Lunar Linux:FAQ#What_are_safe_optimizations.3F|FAQ #2.2]] and change the Basic Optimizations to Faster or Fastest if you know that gcc will generate correct code for that cpu. -O2 obviously takes more compile time than -O1, and -O3 takes the most time to compile. Then select the cpu you will run it on. Some of the speed optimizations that should be decent and shouldn't cause too many problems, if any, are: -fomit-frame-pointer. A safe bet for floating point math on a x86 would be x387, if you know your cpu has a floating point unit. Check &amp;lt;code&amp;gt;cat /proc/cpuinfo&amp;lt;/code&amp;gt; to see if your cpu supports SSE or SSE2. If your cpu does have sse or sse2 then you can also add that to the math optimizations.&lt;br /&gt;
&lt;br /&gt;
Your results may vary. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations should I avoid?===&lt;br /&gt;
What optimizations should I stay away from?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
All the ones listed in the [[Lunar Linux:FAQ#What_optimizations_may_cause_problems.3F|FAQ #2.3]] plus:&lt;br /&gt;
* &amp;lt;code&amp;gt;-fprofile-arcs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-fbranching-probabilities&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it. The Lunar developers will not respond to bug reports of broken compiles by users with risky optimizations.&lt;br /&gt;
&lt;br /&gt;
==Installing modules==&lt;br /&gt;
&lt;br /&gt;
===Can I compile several modules at once?===&lt;br /&gt;
Is it possible to install multiple modules at the same time without breaking things?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Yes, Lunar even promotes it. However doing so will cause installs compile slower of course. Lunar will not install core system modules like gcc and glibc while something else is installing and will wait until the rest is finished. Also, you cannot install applications while those major modules are installing, they will wait their turn until it's safe and continue to install them automatically.&lt;br /&gt;
&lt;br /&gt;
===error : download failed - broken URL===&lt;br /&gt;
I tried to install a module, but the download failed due to a broken URL. What do I do now?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
There are three possible reasons why the download failed:&lt;br /&gt;
# You are trying to download from one of a set of mirror sites, and the mirror you are using is either busy or incomplete.&lt;br /&gt;
#* Run &amp;quot;lunar&amp;quot; as root, select Options / Software Mirrors, and change the mirror to something closer to you.&lt;br /&gt;
#* Note: there seems to be a consistent problem with the SFORGE mirror: http://osdn.dl.sourceforge.net&lt;br /&gt;
# You are trying to download from a particular site, but the location of the file has changed [or the site is temporarily off-line].&lt;br /&gt;
#* Browse the module's website (see &amp;quot;lvu website&amp;quot;) [or search the web for the tarball],&lt;br /&gt;
#* Download it manually, copy it to /var/spool/lunar, and try to run &amp;quot;lin&amp;quot; again,&lt;br /&gt;
#* Run &amp;quot;lvu edit&amp;quot; to create a [[zlocal]] copy, and edit that copy with the new location [or secondary URL]&lt;br /&gt;
# You are trying to download a version that has been removed because a newer version exists.&lt;br /&gt;
#* Browse the module's website to discover the new version number,&lt;br /&gt;
#* Run &amp;quot;lvu edit&amp;quot; to create a [[zlocal]] copy, and edit that copy with the new location, version number, sha1sum, etc.&lt;br /&gt;
#* Note: you could first try to run &amp;quot;lin -w newVersion&amp;quot; and hope that it builds without problems.&lt;br /&gt;
If you do create your own [[zlocal]] copy, please consider submitting it using &amp;quot;lvu submit&amp;quot;. (See [[Module Submission]])&lt;br /&gt;
&lt;br /&gt;
===error : C compiler cannot create executables===&lt;br /&gt;
What does this error mean and how can I fix it?&lt;br /&gt;
* &amp;lt;code&amp;gt;C compiler cannot create executables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Read the next topic - this is basically the same problem: There are kernel headers missing that are vital to compilation. You will have to restore them. Below is explained how to do that.&lt;br /&gt;
&lt;br /&gt;
===configure: error: C preprocessor &amp;quot;/lib/cpp&amp;quot; fails sanity check===&lt;br /&gt;
What does this error mean and how can I fix it?&lt;br /&gt;
* &amp;lt;code&amp;gt;configure: error: C preprocessor &amp;quot;/lib/cpp&amp;quot; fails sanity check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
This is an include file problem. Sometimes ''/usr/include/gnu/stubs.h'' is missing, this can be found in the glibc source tarball. Most of the time the following applies:&lt;br /&gt;
&lt;br /&gt;
Your kernel headers are missing from &amp;lt;code&amp;gt;/usr/include&amp;lt;/code&amp;gt;. This means the C PreProcessor cannot verify that it has the proper cached copies of those vital header files. You need to install the proper ones manually. Here's how:&lt;br /&gt;
&lt;br /&gt;
 lin kernel-headers-2.4&lt;br /&gt;
&lt;br /&gt;
This might work for you! (Use the 2.6 version if needed of course)&lt;br /&gt;
&lt;br /&gt;
Otherwise:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /usr/include/{linux,asm}&lt;br /&gt;
&lt;br /&gt;
to create the two target dirs, if needed. Then execute:&lt;br /&gt;
&lt;br /&gt;
 cp -av /usr/src/linux/include/linux /usr/include/&lt;br /&gt;
 cp -av /usr/src/linux/include/asm/* /usr/include/asm/&lt;br /&gt;
&lt;br /&gt;
to copy the files manually. Be warned that the second command has to be done this way since &amp;lt;code&amp;gt;/usr/src/linux/include/asm&amp;lt;/code&amp;gt; is a softlink to your arch asm header files, asm points to asm-i386, on x86 machines. So if, on the other hand, you had copied&lt;br /&gt;
&lt;br /&gt;
 cp -av /usr/src/linux/include/asm /usr/include/&lt;br /&gt;
&lt;br /&gt;
you would then get a softlink to nowhere under &amp;lt;code&amp;gt;/usr/include/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Last, you can always try to unpack the kernel tarball you have into &amp;lt;code&amp;gt;/usr/src/linux&amp;lt;/code&amp;gt; and manaully link or copy the headers over yourself.&lt;br /&gt;
&lt;br /&gt;
===Can I add more window managers to gdm?===&lt;br /&gt;
How do I add other window managers to the sessions list on gdm?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Copy the desktop startup files to &amp;lt;code&amp;gt;/etc/X11/dm/Sessions/&amp;lt;/code&amp;gt;. That works with gdm. For kdm you will have to copy them to &amp;lt;code&amp;gt;$KDE_PREFIX/share/apps/kdm/sessions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How do I get Flash to work in Mozilla or Firefox?===&lt;br /&gt;
How do I get Flash to work in Mozilla or Firefox?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
If you are using Mozilla or Firefox, then you can simply do a &amp;lt;code&amp;gt;lin flash-plugin&amp;lt;/code&amp;gt; and that will download and install the Macromedia Flash plugin that works with a gtk+ based mozilla through the old abi wrappers.&lt;br /&gt;
&lt;br /&gt;
The flash plugin does ''not'' work with Galeon. The Galeon developers have declined to provide the &amp;quot;old&amp;quot; abi wrappers needed for the plugin to work.&lt;br /&gt;
&lt;br /&gt;
===How do I install Java?===&lt;br /&gt;
How do I get Java for my Lunar box?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
You will have to download the Java source code from Sun yourself and you have to &amp;quot;click&amp;quot; to agree on their license. You have to compile it yourself too. We don't have a Sun Java module as we currently have no way to automate the &amp;quot;click&amp;quot; to agree to the Sun Java license. See this URL for some handy info:&lt;br /&gt;
&lt;br /&gt;
http://www.linuxfromscratch.org/~tushar/hints/javafromscratch.txt&lt;br /&gt;
&lt;br /&gt;
There is a j2sdk module in moonbase which is the Blackdown port of Sun's Java Virtual Machine.&lt;br /&gt;
&lt;br /&gt;
==Removing modules==&lt;br /&gt;
&lt;br /&gt;
===How do I remove a module?===&lt;br /&gt;
How do I remove a module?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
If you have just installed a module for the first time using ''lin'' then it is usually safe to remove it using ''lrm''.&lt;br /&gt;
&lt;br /&gt;
However, if you have built or rebuilt other modules that depend on it, you will need to be careful. Use ''lvu eert'' to identify these modules, and then remove them too, or rebuild them using ''lin -rc'' to change the optional dependency. You should run ''lunar nofix'' to make sure that some hidden dependency has not been affected.&lt;br /&gt;
&lt;br /&gt;
You can also use ''lrm -p'' to purge all modules that depend on it, but this is not recommended in general because it is easy to break your system.&lt;br /&gt;
&lt;br /&gt;
===How do I safely remove an optional module?===&lt;br /&gt;
How do I safely remove an optional module, especially one that is now deprecated or obsolete but lots of other modules use it?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
There are three ways, ranging from 'time-consuming but safe' to 'possibly quick but dangerous'.&lt;br /&gt;
&lt;br /&gt;
1. You can use the ''lvu eert'' approach described above.&lt;br /&gt;
&lt;br /&gt;
2a. You can use ''lsh'' to access the the lunar internal functions to find the other modules that have a known dependency on theModule and rebuild them. If you ''lrm theModule'' first, the rebuilds and ''lunar fix'' can not silently reuse the module again.&lt;br /&gt;
&lt;br /&gt;
 for i in `lsh list_installed_depending theModule` ; do  lin -cr &amp;quot;$i&amp;quot; ; done&lt;br /&gt;
 lunar fixdepends&lt;br /&gt;
 lunar fix&lt;br /&gt;
&lt;br /&gt;
2b. If you want to rebuild the modules in dependency order, you will need to do a bit more work.&lt;br /&gt;
&lt;br /&gt;
 MODULES=&amp;quot;&amp;quot;&lt;br /&gt;
 for i in `lsh list_installed_depending theModule`&lt;br /&gt;
 do&lt;br /&gt;
  VAR=$(echo &amp;quot;$MODULES&amp;quot; | grep &amp;quot;$i&amp;quot;)&lt;br /&gt;
  if [ -z &amp;quot;$VAR&amp;quot; ]&lt;br /&gt;
  then&lt;br /&gt;
   MODULES=&amp;quot;$MODULES $i&amp;quot;&lt;br /&gt;
  fi&lt;br /&gt;
 done&lt;br /&gt;
 for i in $MODULES ; do lin -cr &amp;quot;$i&amp;quot; ; done&lt;br /&gt;
 lunar fixdepends&lt;br /&gt;
 lunar fix&lt;br /&gt;
&lt;br /&gt;
3. Run ''lrm theModule''. Use ''lunar nofix'' to identify problems. Run ''lin -cr'' for each problem. Rinse and repeat.&lt;br /&gt;
&lt;br /&gt;
==Lunar core tools==&lt;br /&gt;
&lt;br /&gt;
===How can I recompile my module with new options?===&lt;br /&gt;
How do I force lunar to recompile my modules with different options?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Try:&lt;br /&gt;
&lt;br /&gt;
 lin -r ''MODULE''&lt;br /&gt;
&lt;br /&gt;
The -r switch will allow you to select new configuration and dependencies for modules.&lt;br /&gt;
&lt;br /&gt;
===How can I make modules recompile instead of resurrecting?===&lt;br /&gt;
How do I tell lunar to recompile my application instead of resurrecting it?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Try doing:&lt;br /&gt;
&lt;br /&gt;
 lin -c ''MODULE''&lt;br /&gt;
&lt;br /&gt;
The -c option means tells &amp;lt;code&amp;gt;lin&amp;lt;/code&amp;gt; to compile this module even if there is an install cache copy available in &amp;lt;code&amp;gt;/var/cache/lunar&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How can I tell lunar that module X no longer depends on module Y?===&lt;br /&gt;
Module X no longer depends on module Y, but lunar insists on reinstalling module Y too. How can I get tell lunar to remove that dependency?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Lunar adds a module's dependencies to a cache when you install it. You can't remove a dependency automatically, but you can rebuild the dependency cache to reflect the current dependencies of the modules that are now installed.&lt;br /&gt;
&lt;br /&gt;
 lsh create_module_index&lt;br /&gt;
 lsh create_depends_cache&lt;br /&gt;
 lunar fixdepends&lt;br /&gt;
&lt;br /&gt;
Note: Dependencies of modules in [[zlocal]] are ignored. If module X in the main moonbase depends on module Y then the dependency cache will still contain that dependency.&lt;br /&gt;
&lt;br /&gt;
===My moonbase is gone and I can't install anything.===&lt;br /&gt;
How do I fix problems with my moonbase when it's missing or damaged?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Simple solution to this is just running:&lt;br /&gt;
&lt;br /&gt;
 lin moonbase&lt;br /&gt;
&lt;br /&gt;
This will download the latest moonbase from the internet, and restore it to working order.&lt;br /&gt;
&lt;br /&gt;
===What is a module?===&lt;br /&gt;
What is a [[module]] and what does it do??&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
A [[module]] is a set of files that tell the core tools the following:&lt;br /&gt;
&lt;br /&gt;
* What name, version, and other properties a package has&lt;br /&gt;
* Where to download all needed source files&lt;br /&gt;
* What other modules are required, or conflict with this one&lt;br /&gt;
* How to unpack the source files, how to patch&lt;br /&gt;
* How to configure the code&lt;br /&gt;
* How to compile&lt;br /&gt;
* How to install everything&lt;br /&gt;
* What else to do with it&lt;br /&gt;
&lt;br /&gt;
The [[module]] is coded in a set of files in a directory structure, and scripted in bash.&lt;br /&gt;
&lt;br /&gt;
===What is the Moonbase?===&lt;br /&gt;
What is that thing you call [[Moonbase]]?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The [[Moonbase]] is a database with [[modules]]. In this database there are description of packages that tell the core tools where to download, how to compile, and how install a [[module]]. You can consider this the lunar equivalent of portage, grimoire, ports, etc.&lt;br /&gt;
&lt;br /&gt;
===What is theedge?===&lt;br /&gt;
What is theedge?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
[[theedge]] is the same as lunar, and also known as the core code. Theedge is just another version of lunar. These two pieces of code install your packages, but they do not contain package descriptions. Those are defined in moonbase.&lt;br /&gt;
&lt;br /&gt;
[[Theedge]] is a development version of [[lunar]]. Often there are much more features in theedge, and bugs are fixed quicker as well. However, if you do not like all this tweaking on your system, we advice you to use the stable lunar core tools instead on your system.&lt;br /&gt;
&lt;br /&gt;
You can install [[theedge]] by issuing:&lt;br /&gt;
&lt;br /&gt;
 lin theedge&lt;br /&gt;
&lt;br /&gt;
Theedge is automatically updated if you do a &amp;lt;code&amp;gt;lunar renew&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;lunar update&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Lunar-Linux Installation==&lt;br /&gt;
&lt;br /&gt;
===My usb keyboard is not recognized===&lt;br /&gt;
At the boot prompt type ''linux uhci-hcd ehci-hcd'' to make sure those modules are loaded during startup. Those will then enable your usb keyboard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===So how should I partition my disk?===&lt;br /&gt;
I'm setting up lunar from scratch, but how should I partition my disk for a server or desktop system?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Server systems have very different demands than desktops. It's all about flexibility. First desktops:&lt;br /&gt;
&lt;br /&gt;
''desktops'' commonly have one hard disk. You don't want to reformat or repartition often, so you just want to be done with it at once. The easiest is just to setup 2 (two) partitions: one root filesystem big enough for all lunar software, and the rest for &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt;. Typically, lunar occupies between 4 and 12 gb based on how many applications you install. If you clean up often you can manage with 8gb, but you should keep some extra space. I certainly advise to use a swapfile instead of a swap partition: you can always later delete the swap, or move the swapfile to another disk or partition. A swap partition is harder to relocate.&lt;br /&gt;
&lt;br /&gt;
''Servers'' have different needs. First of all &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt; doesn't need to be that large, but you will want to setup space for logfiles that cannot cause problems if they grow too fast. Putting &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/var/log&amp;lt;/code&amp;gt; on separate partitions is quite normal. &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; can be abused similarly, and is mostly run in [[tmpfs]] to avoid cluttering and give fast access times. Then &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; will be separate and the usual separate &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt;. As you can see this list is already getting quite big! Most users will actually want to make the &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; quite small (as small as 200mb sometimes!) and thus &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt; also needs to be on a separate partition.&lt;br /&gt;
&lt;br /&gt;
===Kernel features, built-in or module?===&lt;br /&gt;
When I compile a kernel, should I compile drivers that I need in the kernel image or as module?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
There are many schools of thought on kernel compiling. One is to build everything into the main kernel without modules. The other one takes building modules to the extreme. Here is a suggestion, if it's not needed to boot it's a module. Thus usb, input, sound, mice ACPI, network, and also cdrom, floppy, and all the non boot file systems, all get built as modules. This reduces the size of the main kernel so it can be put on a floppy. Another thing to consider is that not everything works perfectly, and some features can cause your kernel to misbehave, so if some feature is built-in, the bad behavior is practically inevitible. Instead, with a module you can choose not to load it and thus be left with a working system.&lt;br /&gt;
&lt;br /&gt;
Please note that some people need to make some features built into their kernel and vice versa, do whatever works best for you.&lt;br /&gt;
&lt;br /&gt;
===QEMU and Lunar ISO testing===&lt;br /&gt;
How do I use qemu to try out lunar ISO's?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Just a quick note on how to use qemu for testing a Lunar Linux installation. See &amp;lt;code&amp;gt;/var/lib/lunar/moonbase/devel/qemu/DETAILS&amp;lt;/code&amp;gt; for a description of qemu. Think of it as a low-cost (''read: free'') version of a virtual machine, that has quite a few useful features and is under active development.&lt;br /&gt;
&lt;br /&gt;
A very simple way to just test a Lunar ISO for booting purposes is:&lt;br /&gt;
&lt;br /&gt;
 qemu -cdrom lunar-1.5.0-i686.iso -boot d&lt;br /&gt;
&lt;br /&gt;
If you want to test a full install, then create a 512 megabyte sparse root_fs image with this &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=hda.img bs=$((1024 * 1024)) count=0 seek=512&lt;br /&gt;
&lt;br /&gt;
Now invoke qemu:&lt;br /&gt;
&lt;br /&gt;
 qemu -cdrom lunar-1.5.0-i686.iso -boot d -hda hda.img&lt;br /&gt;
&lt;br /&gt;
You can then proceed to test your Lunar install. Refer the qemu homepage for further tips and tricks. qemu can also be quite easily used to test if your brand new kernel is bootable or not, which is quite neat.&lt;br /&gt;
&lt;br /&gt;
Note that you should say yes to using SDL as an optional_depends. The gui version of qemu is ''very'' nice in its own little X11 window.&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
===How do I unpack an .RPM file in lunar?===&lt;br /&gt;
How do I install RPM files in lunar? Is that possible?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The easiest way to unpack a rpm file is to use the module called &amp;lt;code&amp;gt;rpmunpack&amp;lt;/code&amp;gt;. Simply run &amp;lt;code&amp;gt;rpmupack ''XYZ''.rpm&amp;lt;/code&amp;gt; for your RPM. This will create a cpio file (''XYZ.cpio.gz'' and ''XYZ.cpio.bz2'' are not uncommon). Once you perform any additional uncompression with &amp;lt;code&amp;gt;gunzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;bunzip2&amp;lt;/code&amp;gt;, you can then extract it using &amp;lt;code&amp;gt;cpio -i -d &amp;amp;lt; XYZ.cpio&amp;lt;/code&amp;gt; -- After all that you should be all done. If you are trying to rpmunpack a source RPM (i.e. .src.rpm) file then ''XYZ.cpio'' may further contain a tar.bz2 or tar.gz source tarball.&lt;br /&gt;
&lt;br /&gt;
In the zbeta section of moonbase, there is an '''''unsupported''''' module called &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; for those of you that are really desperate.&lt;br /&gt;
&lt;br /&gt;
You might want to do &amp;lt;code&amp;gt;man cpio&amp;lt;/code&amp;gt;, to check out additional cpio parameters that may interest you, such as the -L switch.&lt;br /&gt;
&lt;br /&gt;
===What is that in the Lunar-Linux logo?===&lt;br /&gt;
What is that logo of yours? It looks like a &amp;lt;nowiki&amp;gt;[cat|ferret|dog|owl|insert nutty animal here]&amp;lt;/nowiki&amp;gt;!&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The logo is a [[wikipedia:Southern Rockhopper Penguin|Rockhopper Penguin]]. It's a kind of nasty penguin, the one that crowd up in thousands to take over the continent. They have a few long feathers sticking out at their &amp;quot;ears&amp;quot; sideway, just like some owl species do.&lt;br /&gt;
&lt;br /&gt;
You can check out [http://images.google.com/images?q=Rockhopper+Penguin Google Images] for lots of Rockhopper Penguin pictures!&lt;br /&gt;
&lt;br /&gt;
The current logo has been designed by Michael Schindler in 2003 and appeared as the official logo of the Lunar Linux project in 2004.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Module_Submission</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Module_Submission"/>
				<updated>2011-04-22T19:03:22Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: Added a header for the acceptance/rejection criteria&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Submitting modules to the official Moonbase===&lt;br /&gt;
&lt;br /&gt;
====Why would I want to?====&lt;br /&gt;
&lt;br /&gt;
The official [[Moonbase]] is maintained and updated by the [[Lunar Linux]] developers.&lt;br /&gt;
But what if there isn't a module in the [[Moonbase]] for the package that you want,&lt;br /&gt;
or it is not the latest version, or it is out-of-date in some other way?&lt;br /&gt;
&lt;br /&gt;
Well obviously you can report the problem via&lt;br /&gt;
the [http://bugs.lunar-linux.org/view_all_bug_page.php Bug Tracker],&lt;br /&gt;
the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List], or discuss it on&lt;br /&gt;
the [irc://irc.freenode.net/lunar #Lunar] IRC channel on [http://freenode.net/ Freenode.net]&lt;br /&gt;
and hope that someone can help you.&lt;br /&gt;
&lt;br /&gt;
Or you can scratch your itch the open source way and create or update the module yourself using the information in&lt;br /&gt;
the articles:&lt;br /&gt;
[[Module Basics|A basic module outline]] and&lt;br /&gt;
[[Module Writing|Writing Lunar-Linux Modules]].&lt;br /&gt;
''Remember to work in the [[zlocal]] section so that your updates are not lost the next time you download a new Moonbase.''&lt;br /&gt;
&lt;br /&gt;
And then what?&lt;br /&gt;
Maybe other people could benefit from your module.&lt;br /&gt;
Maybe other people could improve your module.&lt;br /&gt;
So why not submit it to the Lunar developers so they can decide whether to commit it to the [[Moonbase]]?&lt;br /&gt;
&lt;br /&gt;
====What are the acceptance/rejection criteria for submissions?====&lt;br /&gt;
&lt;br /&gt;
* In general, module submissions will probably be accepted if they:&lt;br /&gt;
: + introduce a new or missing module into the moonbase;&lt;br /&gt;
: + provide an updated version of a module;&lt;br /&gt;
: + provide updated download and website URLs;&lt;br /&gt;
: + provide missing dependencies required to build the module;&lt;br /&gt;
: + add BUILD options that enable a failing module to build.&lt;br /&gt;
&lt;br /&gt;
* However, module submissions are likely to be rejected if they:&lt;br /&gt;
: - do not follow the formatting guidelines given on the wiki;&lt;br /&gt;
: - fail to download sources correctly, or fail to build;&lt;br /&gt;
: - introduce system specific changes that not all users will want;&lt;br /&gt;
: - remove explicit dependencies in favour of implicit ones;&lt;br /&gt;
: - form part part of a larger suite of modules that need to be updated and tested together, such as an X, KDE or GNOME component;&lt;br /&gt;
: - introduce an svn or git development version of a module that already has a recent, stable version;&lt;br /&gt;
: - change a core module, or one which is known to cause update problems for other tools.&lt;br /&gt;
&lt;br /&gt;
====How do I create a new module?====&lt;br /&gt;
&lt;br /&gt;
The easiest way is to run '''lvu new''' ''theModule''. It will ask for URLs for the source tarball and the website, and for short and long description entries, and then create a basic [[DETAILS]] file for you. Then follow the guidelines below.&lt;br /&gt;
&lt;br /&gt;
====How do I update a module?====&lt;br /&gt;
&lt;br /&gt;
Let's assume that you have found the ''theModule'' no longer downloads and installs properly and you want to fix it.&lt;br /&gt;
&lt;br /&gt;
* run '''lvu edit''' '''''theModule''''' to copy the existing ''theModule'' files to [[zlocal]].&lt;br /&gt;
* run '''lvu cd''' '''''theModule''''' or manually change into the directory given by ''lvu edit''&lt;br /&gt;
* edit the [http://wiki.lunar-linux.org/index.php/Module_Basics#The_DETAILS_script DETAILS] file&lt;br /&gt;
* if you are updating because there is a new release:&lt;br /&gt;
** modify the version number to the latest one available&lt;br /&gt;
** edit the ''UPDATED'' date to today's date&lt;br /&gt;
** run '''lget''' '''''theModule''''' and see if the new version downloads OK&lt;br /&gt;
** run '''sha1sum /var/spool/lunar/theModule-(whatever the new file name is)'''&lt;br /&gt;
** insert this checksum in the ''SOURCE_VFY'' field in the [http://wiki.lunar-linux.org/index.php/Module_Basics#The_DETAILS_script DETAILS] file&lt;br /&gt;
* if you are correcting a broken link or sha1sum without changing the version:&lt;br /&gt;
** leave the ''UPDATED'' field as it was so that people will not be forced to download and re-install &lt;br /&gt;
* run '''lin''' '''''theModule''''' and test, test and test again&lt;br /&gt;
** run '''lvu install''' '''''theModule''''' to make sure that it has not installed files where it shouldn't&lt;br /&gt;
** run '''lvu links''' '''''theModule''''' and check whether you need to create or update [[DEPENDS]]&lt;br /&gt;
&lt;br /&gt;
Many modules only require a [[DETAILS]] file. Others may also need [[DEPENDS]], [[BUILD]], etc. or require '''x86_64''' versions of the files. See [[Module_Basics]] for more information.&lt;br /&gt;
&lt;br /&gt;
====How do I submit the module?====&lt;br /&gt;
&lt;br /&gt;
Once you have successfully installed the module using '''lin -rc''' ''theModule'':&lt;br /&gt;
&lt;br /&gt;
* '''subscribe to the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List].''' Not sure if this is still required, but why not do it now anyway? Other users might have feedback about the module.&lt;br /&gt;
&lt;br /&gt;
* if you haven't already done so, you will need run '''lunar set ADMIN''' '''''your@e-mail.adress''''', or run '''lunar''' and follow the menus, before the next step in order for the submission script to work (it requires a valid e-mail address).&lt;br /&gt;
&lt;br /&gt;
* run '''lvu submit''' '''''theModule''''' and provide a meaningful message (see Note below).&lt;br /&gt;
* you should receive e-mail feedback whether your submission was accepted or the reasons for rejection but remember that:&lt;br /&gt;
# the Lunar development team is quite small,&lt;br /&gt;
# they are all working in their spare time, and have real lives and other commitments,&lt;br /&gt;
# some of the submissions require specific hardware/software environments to be able to install and test them properly&lt;br /&gt;
&lt;br /&gt;
'''Note''': The first line of the message will be visible on the on-line [http://foo-projects.org/~sofar/queue.php Submission queue]. Give the reasons why the module has been updated, and what you have changed. This message can then be used directly when submitting the changes to the central [[moonbase]].&lt;br /&gt;
&lt;br /&gt;
====The view from the developers' side!====&lt;br /&gt;
&lt;br /&gt;
For an idea of how the developers process the submissions, see [[Module_Submission_for_developers]] and [[GitForLunarDevs]]&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Module_Submission</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Module_Submission"/>
				<updated>2011-04-22T19:01:20Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: Removed old note about possible module rejection&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Submitting modules to the official Moonbase===&lt;br /&gt;
&lt;br /&gt;
====Why would I want to?====&lt;br /&gt;
&lt;br /&gt;
The official [[Moonbase]] is maintained and updated by the [[Lunar Linux]] developers.&lt;br /&gt;
But what if there isn't a module in the [[Moonbase]] for the package that you want,&lt;br /&gt;
or it is not the latest version, or it is out-of-date in some other way?&lt;br /&gt;
&lt;br /&gt;
Well obviously you can report the problem via&lt;br /&gt;
the [http://bugs.lunar-linux.org/view_all_bug_page.php Bug Tracker],&lt;br /&gt;
the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List], or discuss it on&lt;br /&gt;
the [irc://irc.freenode.net/lunar #Lunar] IRC channel on [http://freenode.net/ Freenode.net]&lt;br /&gt;
and hope that someone can help you.&lt;br /&gt;
&lt;br /&gt;
Or you can scratch your itch the open source way and create or update the module yourself using the information in&lt;br /&gt;
the articles:&lt;br /&gt;
[[Module Basics|A basic module outline]] and&lt;br /&gt;
[[Module Writing|Writing Lunar-Linux Modules]].&lt;br /&gt;
''Remember to work in the [[zlocal]] section so that your updates are not lost the next time you download a new Moonbase.''&lt;br /&gt;
&lt;br /&gt;
And then what?&lt;br /&gt;
Maybe other people could benefit from your module.&lt;br /&gt;
Maybe other people could improve your module.&lt;br /&gt;
So why not submit it to the Lunar developers so they can decide whether to commit it to the [[Moonbase]]?&lt;br /&gt;
&lt;br /&gt;
* In general, module submissions will probably be accepted if they:&lt;br /&gt;
: + introduce a new or missing module into the moonbase;&lt;br /&gt;
: + provide an updated version of a module;&lt;br /&gt;
: + provide updated download and website URLs;&lt;br /&gt;
: + provide missing dependencies required to build the module;&lt;br /&gt;
: + add BUILD options that enable a failing module to build.&lt;br /&gt;
&lt;br /&gt;
* However, module submissions are likely to be rejected if they:&lt;br /&gt;
: - do not follow the formatting guidelines given on the wiki;&lt;br /&gt;
: - fail to download sources correctly, or fail to build;&lt;br /&gt;
: - introduce system specific changes that not all users will want;&lt;br /&gt;
: - remove explicit dependencies in favour of implicit ones;&lt;br /&gt;
: - form part part of a larger suite of modules that need to be updated and tested together, such as an X, KDE or GNOME component;&lt;br /&gt;
: - introduce an svn or git development version of a module that already has a recent, stable version;&lt;br /&gt;
: - change a core module, or one which is known to cause update problems for other tools.&lt;br /&gt;
&lt;br /&gt;
====How do I create a new module?====&lt;br /&gt;
&lt;br /&gt;
The easiest way is to run '''lvu new''' ''theModule''. It will ask for URLs for the source tarball and the website, and for short and long description entries, and then create a basic [[DETAILS]] file for you. Then follow the guidelines below.&lt;br /&gt;
&lt;br /&gt;
====How do I update a module?====&lt;br /&gt;
&lt;br /&gt;
Let's assume that you have found the ''theModule'' no longer downloads and installs properly and you want to fix it.&lt;br /&gt;
&lt;br /&gt;
* run '''lvu edit''' '''''theModule''''' to copy the existing ''theModule'' files to [[zlocal]].&lt;br /&gt;
* run '''lvu cd''' '''''theModule''''' or manually change into the directory given by ''lvu edit''&lt;br /&gt;
* edit the [http://wiki.lunar-linux.org/index.php/Module_Basics#The_DETAILS_script DETAILS] file&lt;br /&gt;
* if you are updating because there is a new release:&lt;br /&gt;
** modify the version number to the latest one available&lt;br /&gt;
** edit the ''UPDATED'' date to today's date&lt;br /&gt;
** run '''lget''' '''''theModule''''' and see if the new version downloads OK&lt;br /&gt;
** run '''sha1sum /var/spool/lunar/theModule-(whatever the new file name is)'''&lt;br /&gt;
** insert this checksum in the ''SOURCE_VFY'' field in the [http://wiki.lunar-linux.org/index.php/Module_Basics#The_DETAILS_script DETAILS] file&lt;br /&gt;
* if you are correcting a broken link or sha1sum without changing the version:&lt;br /&gt;
** leave the ''UPDATED'' field as it was so that people will not be forced to download and re-install &lt;br /&gt;
* run '''lin''' '''''theModule''''' and test, test and test again&lt;br /&gt;
** run '''lvu install''' '''''theModule''''' to make sure that it has not installed files where it shouldn't&lt;br /&gt;
** run '''lvu links''' '''''theModule''''' and check whether you need to create or update [[DEPENDS]]&lt;br /&gt;
&lt;br /&gt;
Many modules only require a [[DETAILS]] file. Others may also need [[DEPENDS]], [[BUILD]], etc. or require '''x86_64''' versions of the files. See [[Module_Basics]] for more information.&lt;br /&gt;
&lt;br /&gt;
====How do I submit the module?====&lt;br /&gt;
&lt;br /&gt;
Once you have successfully installed the module using '''lin -rc''' ''theModule'':&lt;br /&gt;
&lt;br /&gt;
* '''subscribe to the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List].''' Not sure if this is still required, but why not do it now anyway? Other users might have feedback about the module.&lt;br /&gt;
&lt;br /&gt;
* if you haven't already done so, you will need run '''lunar set ADMIN''' '''''your@e-mail.adress''''', or run '''lunar''' and follow the menus, before the next step in order for the submission script to work (it requires a valid e-mail address).&lt;br /&gt;
&lt;br /&gt;
* run '''lvu submit''' '''''theModule''''' and provide a meaningful message (see Note below).&lt;br /&gt;
* you should receive e-mail feedback whether your submission was accepted or the reasons for rejection but remember that:&lt;br /&gt;
# the Lunar development team is quite small,&lt;br /&gt;
# they are all working in their spare time, and have real lives and other commitments,&lt;br /&gt;
# some of the submissions require specific hardware/software environments to be able to install and test them properly&lt;br /&gt;
&lt;br /&gt;
'''Note''': The first line of the message will be visible on the on-line [http://foo-projects.org/~sofar/queue.php Submission queue]. Give the reasons why the module has been updated, and what you have changed. This message can then be used directly when submitting the changes to the central [[moonbase]].&lt;br /&gt;
&lt;br /&gt;
====The view from the developers' side!====&lt;br /&gt;
&lt;br /&gt;
For an idea of how the developers process the submissions, see [[Module_Submission_for_developers]] and [[GitForLunarDevs]]&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Module_Submission</id>
		<title>Module Submission</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Module_Submission"/>
				<updated>2011-04-22T18:59:44Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: Added general module submission acceptance/rejection criteria&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Submitting modules to the official Moonbase===&lt;br /&gt;
&lt;br /&gt;
====Why would I want to?====&lt;br /&gt;
&lt;br /&gt;
The official [[Moonbase]] is maintained and updated by the [[Lunar Linux]] developers.&lt;br /&gt;
But what if there isn't a module in the [[Moonbase]] for the package that you want,&lt;br /&gt;
or it is not the latest version, or it is out-of-date in some other way?&lt;br /&gt;
&lt;br /&gt;
Well obviously you can report the problem via&lt;br /&gt;
the [http://bugs.lunar-linux.org/view_all_bug_page.php Bug Tracker],&lt;br /&gt;
the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List], or discuss it on&lt;br /&gt;
the [irc://irc.freenode.net/lunar #Lunar] IRC channel on [http://freenode.net/ Freenode.net]&lt;br /&gt;
and hope that someone can help you.&lt;br /&gt;
&lt;br /&gt;
Or you can scratch your itch the open source way and create or update the module yourself using the information in&lt;br /&gt;
the articles:&lt;br /&gt;
[[Module Basics|A basic module outline]] and&lt;br /&gt;
[[Module Writing|Writing Lunar-Linux Modules]].&lt;br /&gt;
''Remember to work in the [[zlocal]] section so that your updates are not lost the next time you download a new Moonbase.''&lt;br /&gt;
&lt;br /&gt;
And then what?&lt;br /&gt;
Maybe other people could benefit from your module.&lt;br /&gt;
Maybe other people could improve your module.&lt;br /&gt;
So why not submit it to the Lunar developers so they can decide whether to commit it to the [[Moonbase]]?&lt;br /&gt;
&lt;br /&gt;
* In general, module submissions will probably be accepted if they:&lt;br /&gt;
: + introduce a new or missing module into the moonbase;&lt;br /&gt;
: + provide an updated version of a module;&lt;br /&gt;
: + provide updated download and website URLs;&lt;br /&gt;
: + provide missing dependencies required to build the module;&lt;br /&gt;
: + add BUILD options that enable a failing module to build.&lt;br /&gt;
&lt;br /&gt;
* However, module submissions are likely to be rejected if they:&lt;br /&gt;
: - do not follow the formatting guidelines given on the wiki;&lt;br /&gt;
: - fail to download sources correctly, or fail to build;&lt;br /&gt;
: - introduce system specific changes that not all users will want;&lt;br /&gt;
: - remove explicit dependencies in favour of implicit ones;&lt;br /&gt;
: - form part part of a larger suite of modules that need to be updated and tested together, such as an X, KDE or GNOME component;&lt;br /&gt;
: - introduce an svn or git development version of a module that already has a recent, stable version;&lt;br /&gt;
: - change a core module, or one which is known to cause update problems for other tools,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&lt;br /&gt;
'''Important Note:''' Just because you can submit a module does not mean that it will be accepted! For example, if the module is part of a larger suite of modules that all need to be updated and tested together, such as an X, GNOME or KDE module, your submission might be rejected. If you submit an svn or git development version of a module that already has a recent, stable version, your submission might be rejected. If you submit an update for a core module, or one which is known to cause update problems for other tools, your submission might be rejected.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====How do I create a new module?====&lt;br /&gt;
&lt;br /&gt;
The easiest way is to run '''lvu new''' ''theModule''. It will ask for URLs for the source tarball and the website, and for short and long description entries, and then create a basic [[DETAILS]] file for you. Then follow the guidelines below.&lt;br /&gt;
&lt;br /&gt;
====How do I update a module?====&lt;br /&gt;
&lt;br /&gt;
Let's assume that you have found the ''theModule'' no longer downloads and installs properly and you want to fix it.&lt;br /&gt;
&lt;br /&gt;
* run '''lvu edit''' '''''theModule''''' to copy the existing ''theModule'' files to [[zlocal]].&lt;br /&gt;
* run '''lvu cd''' '''''theModule''''' or manually change into the directory given by ''lvu edit''&lt;br /&gt;
* edit the [http://wiki.lunar-linux.org/index.php/Module_Basics#The_DETAILS_script DETAILS] file&lt;br /&gt;
* if you are updating because there is a new release:&lt;br /&gt;
** modify the version number to the latest one available&lt;br /&gt;
** edit the ''UPDATED'' date to today's date&lt;br /&gt;
** run '''lget''' '''''theModule''''' and see if the new version downloads OK&lt;br /&gt;
** run '''sha1sum /var/spool/lunar/theModule-(whatever the new file name is)'''&lt;br /&gt;
** insert this checksum in the ''SOURCE_VFY'' field in the [http://wiki.lunar-linux.org/index.php/Module_Basics#The_DETAILS_script DETAILS] file&lt;br /&gt;
* if you are correcting a broken link or sha1sum without changing the version:&lt;br /&gt;
** leave the ''UPDATED'' field as it was so that people will not be forced to download and re-install &lt;br /&gt;
* run '''lin''' '''''theModule''''' and test, test and test again&lt;br /&gt;
** run '''lvu install''' '''''theModule''''' to make sure that it has not installed files where it shouldn't&lt;br /&gt;
** run '''lvu links''' '''''theModule''''' and check whether you need to create or update [[DEPENDS]]&lt;br /&gt;
&lt;br /&gt;
Many modules only require a [[DETAILS]] file. Others may also need [[DEPENDS]], [[BUILD]], etc. or require '''x86_64''' versions of the files. See [[Module_Basics]] for more information.&lt;br /&gt;
&lt;br /&gt;
====How do I submit the module?====&lt;br /&gt;
&lt;br /&gt;
Once you have successfully installed the module using '''lin -rc''' ''theModule'':&lt;br /&gt;
&lt;br /&gt;
* '''subscribe to the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List].''' Not sure if this is still required, but why not do it now anyway? Other users might have feedback about the module.&lt;br /&gt;
&lt;br /&gt;
* if you haven't already done so, you will need run '''lunar set ADMIN''' '''''your@e-mail.adress''''', or run '''lunar''' and follow the menus, before the next step in order for the submission script to work (it requires a valid e-mail address).&lt;br /&gt;
&lt;br /&gt;
* run '''lvu submit''' '''''theModule''''' and provide a meaningful message (see Note below).&lt;br /&gt;
* you should receive e-mail feedback whether your submission was accepted or the reasons for rejection but remember that:&lt;br /&gt;
# the Lunar development team is quite small,&lt;br /&gt;
# they are all working in their spare time, and have real lives and other commitments,&lt;br /&gt;
# some of the submissions require specific hardware/software environments to be able to install and test them properly&lt;br /&gt;
&lt;br /&gt;
'''Note''': The first line of the message will be visible on the on-line [http://foo-projects.org/~sofar/queue.php Submission queue]. Give the reasons why the module has been updated, and what you have changed. This message can then be used directly when submitting the changes to the central [[moonbase]].&lt;br /&gt;
&lt;br /&gt;
====The view from the developers' side!====&lt;br /&gt;
&lt;br /&gt;
For an idea of how the developers process the submissions, see [[Module_Submission_for_developers]] and [[GitForLunarDevs]]&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Module_Submission_for_developers</id>
		<title>Module Submission for developers</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Module_Submission_for_developers"/>
				<updated>2011-04-16T18:19:33Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: corrected wget | git am command line&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Module Submission for developers===&lt;br /&gt;
&lt;br /&gt;
Why and how users should submit modules is described on the [[Module_Submission]] page. This page describes what a developer needs to do to handle these submissions. Or rather, it describes what works for me.&lt;br /&gt;
&lt;br /&gt;
I'm no expert by any means and this is not intended to be a comprehensive guide to git. There is just enough information to get started, and to describe my workflow.&lt;br /&gt;
&lt;br /&gt;
====Developer access====&lt;br /&gt;
&lt;br /&gt;
Before you will be able to save anything back to the central git repository holding the [[Moonbase]], you will obviously need to apply for a username and password on the central machine. You will need to have been a regular, constructive contributor to the [irc://irc.freenode.net/lunar #lunar] IRC channel on [http://freenode.net/ Freenode.net], or the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List] or have successfully submitted modules in the past.&lt;br /&gt;
&lt;br /&gt;
====Cloning your own moonbase.git====&lt;br /&gt;
&lt;br /&gt;
Just like other source code management systems, git uses the concepts of a repository and working files. In the past git has allowed the repository and the working files to exist within the same top level directory structure. It seems that this has lead to some problems, so work is under way to separate out the repository and the working files. At the moment certain operations generate warning messages if you try to save to a combined repository and working directory. In the future you will need to have a &amp;quot;bare&amp;quot; repository and a separate working version. This article describes how to set up and use such a future-proof system.&lt;br /&gt;
&lt;br /&gt;
I don't have a public server of my own on which I can make a repository available for sharing, testing and cherry-picking by others. Therefore I use a multi-stage repository and working directory system. If you have a public server, you may be able to work with just one.&lt;br /&gt;
&lt;br /&gt;
I have three repositories: a remote copy of the main [[Lunar Linux]] [[Moonbase]] repository; a remote working copy; and a local working copy. The first one is optional, but it allows me to share files between the working copies without having to commit them to the main [[Moonbase]] repository first.&lt;br /&gt;
&lt;br /&gt;
First of all I login to the main [[Lunar Linux]] machine, '''doppio''', using ssh, and set two important global git defaults:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  doppio$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then I create the remote &amp;quot;bare&amp;quot; copy of the main [[Moonbase]] repository and configure two useful properties:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone '''--bare''' git://lunar-linux.org/lunar/moonbase.git moonbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
Next I create a remote &amp;quot;working&amp;quot; repository that shadows the remote &amp;quot;bare&amp;quot; one, again on '''doppio''':&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone moonbase.git workbase.git&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
The second git config command tells git that the default action for the &amp;quot;push&amp;quot; command is to push changes from the master branch of the current repository to the master branch of the parent repository. Otherwise you need to provide that information on the command line every time.&lt;br /&gt;
&lt;br /&gt;
I have a local &amp;quot;working&amp;quot; repository on my private machine that also shadows the remote &amp;quot;bare&amp;quot; one. I shall call my local machine '''satellite''' so that it matches the instructions given in [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT With 20 Commands Or So] but see the Note at the end of the section.&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  satellite$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  satellite$  git clone ssh://username@lunar-linux.org/~username/moonbase.git workbase.git&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  satellite$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
This repository setup allows the following workflow:&lt;br /&gt;
&lt;br /&gt;
* first ensure that the my central repo is up to date:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch               # note: fetch not pull&lt;br /&gt;
&lt;br /&gt;
* then, either work in the remote working directory:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git pull&lt;br /&gt;
  doppio$  git checkout -b testing master&lt;br /&gt;
  doppio$  ... edit files and commit ...&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git merge testing&lt;br /&gt;
  doppio$  git branch -D testing&lt;br /&gt;
  doppio$  git push&lt;br /&gt;
&lt;br /&gt;
* or work on the local working directory:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
  satellite$  ... edit files and commit ...&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
* Finally I can update the central [[Moonbase]] repository, although I'm sure there must be a better way:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
* I can only share files back and forth between the local and remote working repositories using this method. I can't pull from the working directory on satellite to the working directory on doppio because satellite is private and can only call out. I can't push from the working directory on satellite to the working directory on doppio either because it is not a bare repository.&lt;br /&gt;
&lt;br /&gt;
''Note that [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT...] recommends having the following line instead:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config remote.origin.push master:refs/remotes/satellite/master&lt;br /&gt;
&lt;br /&gt;
but this doesn't work with the bare repository system. Or rather, it does something, but I haven't worked out how to use the information in the remote repository.''&lt;br /&gt;
&lt;br /&gt;
====Reviewing module submissions====&lt;br /&gt;
&lt;br /&gt;
There is a neat script on '''doppio''' called '''review''' that you can use to view and apply the module submission patches directly to the current working copy of '''moonbase.git'''. The '''review''' script assumes that the submitter has already tested the patch and that if it applies cleanly it will be accepted, otherwise it will be rejected. One really cool feature of '''review''' is that the submitter gets the credit in the commit message. Unfortunately, if there are any problems in your  working copy of '''moonbase.git''' - and there often were in mine - the script can delete the patch.&lt;br /&gt;
&lt;br /&gt;
By default '''review''' will work through all of the modules in the [http://foo-projects.org/~sofar/queue.php submission queue] so it's best to specify the module that you are interested in. '''review''' will open an editor session containing the module patch file so that you can view the changes, and remove &amp;quot;Subject: &amp;quot; from the subject line and annotate what will become the text of the commit message. After you leave the editor, '''review''' checks whether the patch will apply to the current working copy of '''moonbase.git''' without problems, suggests what should be done with the patch, and waits for your input. If the patch applies cleanly, the default action is to ''accept'' it. You could still ''reject'' it for some other reason; because it does not conform to the [[Module_Guidelines]] for example. If the patch can't be applied - and that might mean that the submission was valid but that a developer has already updated that module in the moonbase - the action is to ''reject'' and another editor session will open so that you can explain why. The two other possible actions are ''defer'' and ''quit''.&lt;br /&gt;
&lt;br /&gt;
You can also use ''/home/engelsman/review.new'' which gives the added option to ''thank'' someone for a submission that was valid but can no longer be applied because another developer has beaten them to it. It's a little less harsh than ''reject''.&lt;br /&gt;
&lt;br /&gt;
  doppio$ cd moonbase.git&lt;br /&gt;
  doppio$ git fetch                      # make sure we are up to date&lt;br /&gt;
  doppio$ cd ../workbase.git&lt;br /&gt;
  doppio$ git pull                       # make sure working copy is also up to date&lt;br /&gt;
  doppio$ git checkout -b testing master # create a test branch in case of problems&lt;br /&gt;
  doppio$ review submitted_module        # view patch in editor, then accept,reject,defer,quit&lt;br /&gt;
&lt;br /&gt;
  # if accepted:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git merge testing&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
  doppio$ git push&lt;br /&gt;
  doppio$ cd ../moonbase.git&lt;br /&gt;
  doppio$ git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
  # else:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
&lt;br /&gt;
If all has gone smoothly, '''git status''' won't show any added, deleted or modified files. Take care to clean up if there are.&lt;br /&gt;
&lt;br /&gt;
====Testing the submission locally before committing====&lt;br /&gt;
&lt;br /&gt;
If you want to be really thorough - or paranoid - you should really check that the patch applies and builds on your own machine first. That takes a little more effort, because you will first need to grab the patch file, apply and test locally:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch                      # make sure up to date before pulling working copy&lt;br /&gt;
&lt;br /&gt;
Make sure that your local moonbase is up-to-date before you try dealing with the patch:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd moonbase.git&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
&lt;br /&gt;
and then use the method of your choice to grab the patch and apply it:&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 1&lt;br /&gt;
  satellite$  scp username@doppio.lunar-linux.org:/var/anonymous/submissions/submitted_module.patch /tmp&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 2&lt;br /&gt;
  satellite$  wget -q &amp;lt;nowiki&amp;gt;&amp;quot;http://foo-projects.org/~sofar/queue.php?p=submitted_module&amp;quot;&amp;lt;/nowiki&amp;gt; -O - | git am&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 3&lt;br /&gt;
  satellite$  # browse to &amp;quot;http://foo-projects.org/~sofar/queue.php&amp;quot;&lt;br /&gt;
  satellite$  # right click on patch and &amp;quot;save link as&amp;quot; /tmp/submitted_module.patch&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # check '''lin submitted_module''' works as expected&lt;br /&gt;
&lt;br /&gt;
At this point, if you want the submitter to get a feel-good &amp;quot;Your patch was accepted&amp;quot; message:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
&lt;br /&gt;
  doppio$     # use '''git''' and '''review''' as described earlier&lt;br /&gt;
&lt;br /&gt;
Otherwise, just continue with the usual git workflow:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git merge satellite/testing    # see '''git config''' tip earlier&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
  doppio$  review                         # patch already applied, so use '''review''' thank option&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, run '''git status''', tidy up if required, and run '''git pull''' again.&lt;br /&gt;
&lt;br /&gt;
===Is there a better way?===&lt;br /&gt;
&lt;br /&gt;
I'm an apprentice rather than a wizard level developer, and I've just about understood git-101, but diagnosing git problems makes my head hurt.&lt;br /&gt;
&lt;br /&gt;
So if you can see a better way of doing things, please add a section at the bottom and describe your workflow.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Template:Main_Page:About</id>
		<title>Template:Main Page:About</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Template:Main_Page:About"/>
				<updated>2011-03-25T14:10:10Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: right; padding-top: 0.1em; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
{{ed|Main_Page:About|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Lunar Linux:About|'''About Lunar Linux''']]==&lt;br /&gt;
&lt;br /&gt;
'''Lunar Linux''' is a [[wikipedia:source code|source]] based [[wikipedia:Linux distribution|Linux distribution]]. It is built entirely by [[wikipedia:compiler|compiling]] [[wikipedia:source code|source code]], using custom [[wikipedia:Optimization (computer_science)|optimizations]]. &lt;br /&gt;
&lt;br /&gt;
It installs a complete [[wikipedia:Bootstrap#Computing|bootstrap]] development system first. After telling the Lunar package manager which software will be required, it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward the users specific needs.&lt;br /&gt;
This should result in a lean and optimized [[wikipedia:operating system|operating system]]. On the downside, compiling a whole distribution from scratch may be time-consuming and complicate the task of keeping the packages up to date.&lt;br /&gt;
&lt;br /&gt;
Currently, Lunar only supports the [[wikipedia:X86|x86]] and [[wikipedia:X86-64|x86-64]] architectures.&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is licensed under the GPLv2.&lt;br /&gt;
&lt;br /&gt;
'''2011-03-25''': Despite appearances, Lunar Linux is still very much alive. The official 1.6.5 ISO was released on 2010-08-22, and work on a beta release of the next ISO is currently in progress. The Forums and Wiki are inactive because they were locked after prolonged spam-bot vandalism. If you require help, simply go to the #lunar irc channel and ask!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right; font-variant: small-caps; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Lunar Linux:About|More Information]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5</id>
		<title>Lunar Linux:Installation/1.6.5</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5"/>
				<updated>2011-03-16T20:37:03Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* KNOWN PROBLEMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is a revolutionary Linux distribution in that it is not binary based, as are most distributions, but is instead built entirely by compiling source code, using your own custom optimizations. &lt;br /&gt;
&lt;br /&gt;
Essentially, it installs a complete bootstrap development system on your machine, and then you tell the Lunar package manager what tools you want, and it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward your specific needs.&lt;br /&gt;
&lt;br /&gt;
The result is a leaner, meaner, refreshingly uncluttered, and strikingly faster operating system than most Linux distributions.&lt;br /&gt;
&lt;br /&gt;
This installation guide is designed to get you through the installation process as painlessly as possible. It assumes that you have some experience with Linux or another Unix variant, and have a general idea of what you are doing. If you are unfamiliar with such things as partitions, or have never used Linux before, Lunar may not be the best introduction for you into the world of open source. There are always Lunar gods available on irc.freenode.net in the #lunar channel to answer any questions that this manual may not make quite clear enough.&lt;br /&gt;
&lt;br /&gt;
With that said, we hope you enjoy using Lunar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About this installation manual==&lt;br /&gt;
&lt;br /&gt;
Although this manual is not intended to be a full and complete overview of any situation you may be confronted with, given the wide diversity of hardware available these days, it is intended to be an introduction to the world of Lunar Linux. You will see examples that are not tailored towards your to-be built server or workstation, optimizations that are overly broad or too specific, and examples that don't apply to any real situations. We tried hard to give you the idea of how much power you have over how you can setup your system, but we are forgetting to tell you how to run your own server or desktop (or other system) at all. That means that the examples and steps taken most probably do not apply to your situation at all.&lt;br /&gt;
	&lt;br /&gt;
Do not despair: if you understand what is going on and you get the idea, the installer will allow you to do pretty much everything you want to do with your system. There are really (almost) no limits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting the ISO==&lt;br /&gt;
&lt;br /&gt;
The primary site for retrieving the ISO is [http://www.lunar-linux.org/ lunar-linux.org]. There, you will find links to our US, EU, and Internet2 mirrors, as well as a Bittorrent link. As of this writing, the current version of the Lunar ISO is version 1.6.5-rc1, codename Mare Ingenii (20100709). (''Check the main site for the actual latest version!'')&lt;br /&gt;
&lt;br /&gt;
Locate and retrieve the file lunar-1.6.5-rc1-i686.iso.bz2 (or lunar-1.6.5-rc1-x86_64.iso.bz2 if you have a 64-bit system). After downloading this file, you will need to unpack the ISO using bzip2. Windows users will need a program that can extract bzip2 archives, like WinZip (also capable of extracting bzip2 archives under windows are IZarc, Winrar, powerarchiver and 7-Zip). Mac should unzip the file by itself. Then all that is left to do is use your favorite program to burn the ISO to a cdrom and begin the installation. Lunar can also be installed without using a CD. If you need to do it this way, our [[FAQ]] provides simple instructions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO and Lunar use udev for device management. The devfs system, and the &amp;quot;old-school&amp;quot; method of manually installing devices, are no longer supported.&lt;br /&gt;
&lt;br /&gt;
We are assuming the you are installing Lunar as your primary OS. Make sure you have a backup of any important data that you need to retain. The Lunar Linux Project and its developers are not responsible in any way for any loss of data on your system!&lt;br /&gt;
&lt;br /&gt;
==Booting the ISO==&lt;br /&gt;
&lt;br /&gt;
Upon booting the ISO, the first thing you will see are options for booting the ISO kernel, or for performing RAM tests [Note: MemTest is not available on x86_64]. There is even a safe mode which will disable DMA, MTRR, RAID, LVM, USB keyboards, NTFS, HPFS, Advanced Partitions, and Firewire. Most folks, however, will be just fine pressing enter at the boot prompt and loading the default kernel.&lt;br /&gt;
&lt;br /&gt;
To boot the iso with support for your usb keyboard:&lt;br /&gt;
''linux uhci-hcd ehci-hcd''&lt;br /&gt;
&lt;br /&gt;
After loading the kernel, the first screen presents you with a few options. If there are extra modules you need to load in order continue with the install, they can be loaded here. There is also a shell option. However, if you are using this ISO for rescue purposes, you do not want to shell out here; rather continue booting and shell out in the next section. Most people will select &amp;quot;continue booting&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO tries to autodetect some hardware (mostly scsi drivers and network interfaces) during this stage. This will help you establish a network connection if you desire so during installation. For this reason the programs 'dhcpcd' and 'ftp' are already available at this stage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Consoles==&lt;br /&gt;
&lt;br /&gt;
Once the ISO has booted into the installer, you can immediately shell out or switch to one of the other virtual consoles. These will have ready to go root shells and are available throughout the installer sequence. With these you can start rescue actions, setup networking or double check the install progress and make manual adjustments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Language and keyboard interface Settings==&lt;br /&gt;
&lt;br /&gt;
After reading the introduction, you will be presented with options for choosing the proper font, keymap, and language for your install.&lt;br /&gt;
You will also need to choose an editor, as you are going to need one later on in the installation for setting up your lilo or grub configuration. The choices available are e3, [e3/emacs], joe, nano, vi, and zile. If you have never used a text editor in Linux before, nano is the best choice for you. If you skip the Native Language Support option, the system will install the default editor, nano, for you. When you have finished setting up your options, press cancel to return to the main setup menu.&lt;br /&gt;
Less important for most people is the ability to choose the console font, although it may help display some non-English characters. Most people will want to set the system-default language variable and editor though. All these values are unset by default, so make sure you set them now.&lt;br /&gt;
The keymap table allows people to use azerty and dvorak keyboards, and much more. This is especially required for non-English keyboards which provide many accented characters.&lt;br /&gt;
All these language and keymap settings might not apply to the lunar code itself, which (currently) does not have any international support, but most programs that run during the installer sequence, and after booting into your new system, will be affected properly.&lt;br /&gt;
&lt;br /&gt;
Warning: the keymap entry appears to default to ANSI-dvorak so make sure that you really select what you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating or editing Partitions==&lt;br /&gt;
&lt;br /&gt;
The next step is to set up partitions on your hard drive. Upon selecting the &amp;quot;Partition Drive&amp;quot; option, you will be shown a list of all the discs the kernel has detected. For this guide, we will assume that you have one hard drive connected via an IDE channel, which will show up in the menu as &amp;quot;disc0&amp;quot;. After selecting the disc to partition, you are given the option of using one of three partitioning programs. They are:&lt;br /&gt;
&lt;br /&gt;
* cfdisk -- A menu driven partitioner, and very easy to use. If you are unfamiliar with various partitioning programs, this is the best option for you.&lt;br /&gt;
* fdisk -- Text based partitioner that requires a little more know-how than cfdisk. More experienced users will probably use this program. However new users should not be daunted, as it does have help offered at every step.&lt;br /&gt;
* parted -- Text based partitioner that is good for advanced users. Parted is excellent for resizing current partitions on your hard disk, however be forewarned that resizing partitions is an excellent way to hose your entire disc.&lt;br /&gt;
&lt;br /&gt;
Note: under the &amp;amp;lt;Settings&amp;amp;gt; option on the main menu there is an option to configure the fstab mount style as DEV, LABEL or UUID. The first is the traditional Linux method, but can sometimes give problems if a kernel update causes the disk to be renamed. The default is UUID, which uses a unique marker on the partition to avoid this problem.&lt;br /&gt;
&lt;br /&gt;
For our example, we have a 40GB IDE drive and we'll set up six partitions; /, /boot, /home, /usr, /var, and a swap partition. It's a good idea to keep certain directories, such as /var and /usr on separate partitions, as this can save you a lot of headache in the future in case your disk ever completely fails on you and you need to recover data (God forbid!). Also, when you have a separate /boot partition as we have in our example, you need to have your partitioning program mark that partition as active or bootable. In our example, if we were using fdisk, you would press &amp;quot;a&amp;quot; at the command line, and then select part1 as the active partition.&lt;br /&gt;
&lt;br /&gt;
You might also want to install a /tmp partition. By default, Lunar will create a tempfs filesystem mounted on /tmp (tempfs minimizes filesystem fragmentation because it resides in volatile memory). This can be a good choice if you have a lot of memory on your machine. If memory is tight, we recommend creating a /tmp partition to minimize filesystem fragmentation.&lt;br /&gt;
&lt;br /&gt;
It is important to note that you &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''can not''&amp;lt;/span&amp;gt; mount the directories /etc, /bin, /sbin, /dev, /lib and /proc on separate partitions. These directories need to be contained within the root (&amp;quot;/&amp;quot;) directory. The installation program should block you from doing this, but it's best not to try.&lt;br /&gt;
&lt;br /&gt;
Here's our partition setup:&lt;br /&gt;
&lt;br /&gt;
  1 /boot 100MB&lt;br /&gt;
  2 / 4GB&lt;br /&gt;
  3 swap 1GB&lt;br /&gt;
  5 /usr 10GB&lt;br /&gt;
  6 /var 10GB&lt;br /&gt;
  7 /home 15GB&lt;br /&gt;
&lt;br /&gt;
(''If you're wondering about this choice of partitions: it's really just an example. Read the [[FAQ#So_how_should_I_partition_my_disk.3F|FAQ]] on what makes sense in the real world''))&lt;br /&gt;
&lt;br /&gt;
You'll notice that there is no fourth partition in our list above. In order for you to have more than four partitions on a single drive, the fourth partition is made into what is known as an extended or logical partition in which the fifth, sixth, and seventh (etc, etc) partitions reside. For our example above, if we were using fdisk, we would make the fourth partition an extended/logical partition that was 35GB, and then the fifth, sixth, and seventh partitions in our scheme resided within it. However, if we used cfdisk, we would just worry about creating six partitions, making sure that the first three are the primary type, and the last three logical.&lt;br /&gt;
&lt;br /&gt;
Note that the names and mount points for these partitions will be assigned during the next step of this process, when you mount the partitions. Write down exactly what partitions you are planning to create because it can otherwise get confusing!&lt;br /&gt;
&lt;br /&gt;
Lunar offers two choices when it comes to swap. You can set up a swap partition, as we have in our example, or you can set up a swapfile in the root directory. We recommend setting up a swap partition, as you will get better performance with it than with the swapfile. However, there may be a need for you to set up the swapfile instead, which can be setup and activated after you have mounted your other partitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Partitions and Filesystems==&lt;br /&gt;
&lt;br /&gt;
After creating your partitions, you need to select them and assign file systems. Select the menu option &amp;quot;Select Filesystems&amp;quot; and verify that you are indeed done creating partitions.&lt;br /&gt;
&lt;br /&gt;
The partitions can be selected in random order with the new installer. First select the partition and then assign a filesystem and mountpoint to it. The installer will add this to the job queue and formatting and mounting takes place later so you can edit your selection. Here's a list of filesystems that are currently supported:&lt;br /&gt;
&lt;br /&gt;
* ''ext4'' (Fourth Extended File System) -- Version 4 of the Extended File System, which was ... TO BE COMPLETED.&lt;br /&gt;
* ''ext3'' (Third Extended File System) -- Version 3 of the Extended File System, which is essentially just the journaled version of ext2. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''ext2'' (Second Extended File System) -- Version 2 of the Extended File System, which was designed for linux as a replacement for the Minix Filesystem. Ext2 is not a journaled filesystem, which means that you'll need to perform disc recovery operations after a power failure or other such system crash. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''reiserfs'' (Reiser Filesystem) -- Journaled filesystem created by Hans Reiser that is excellent for use with extremely small files. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''xfs'' -- Created by SGI for IRIX, SGI's brand of Unix, and later ported to linux under the GPL. A journaled filesystem that SGI claims is better than any other at handling extremely large files and sparse files. This filesystem is only available with the lunar or grsec patched kernels, which we will come to in a few steps.&lt;br /&gt;
* ''jfs'' (Journaled File System) -- Created by IBM for AIX, IBM's brand of Unix, and later ported to linux by IBM under the GPL. A journaled filesystem that is very good at handling high throughput issues. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''swap'' Swap (Virtual memory or paging filesystem) for swap partitions only!&lt;br /&gt;
&lt;br /&gt;
After selecting the filesystem type you wish to use, you will be prompted through a series of steps to initialize the partition. You'll notice that the prompts are quite redundant in nature in order to be absolutely positive that you will not inadvertantly erase crucial data that you might have on a working filesystem. In addition, if you have more than four partitions, as we do in our example, you don't want to select any file systems on the fourth partition, as it is the extended partition that houses the fifth, sixth (and so on) partitions. (The installer will try to detect this and skip the extended partition from the list).&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, there is an option in the installation process to set up a swap file in the root partition instead of a swap partition as we have done in our example. The next option after selecting your filesystems is to select a swapfile if you so desire. &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''If you have set up a swap partition already, as we have done, you can skip this step.''&amp;lt;/span&amp;gt; Otherwise, you can set up your swap file here, and the only thing you need to tell the installer is how large you want the file to be. Running without swap completely is also possible of course.&lt;br /&gt;
&lt;br /&gt;
'''Please note during this step, no modifications are made to your filesystem!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar==&lt;br /&gt;
&lt;br /&gt;
Next, we need to ''format'' your partitions, ''mount'' them in the right place, create ''swap'' and transfer the entire Lunar system to the partitions that you now have created. This happens all in one single step.&lt;br /&gt;
&lt;br /&gt;
Select ''Install Lunar'', and the system will proceed to transfer all of the necessary files for you. The installer will display progress as packages are transferred to your system and you'll have some idea how long it will take. On normal machines, this should take about 5 minutes.&lt;br /&gt;
&lt;br /&gt;
At the end of this step, the installer sets various system parameters like language, timezone and vital package configuration files in order for your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting Up Your Compiler Optimizations==&lt;br /&gt;
&lt;br /&gt;
The compiler optimizations is a crucial step, since what you choose will make your system fly! However, it is important that you do not overdo it on you optimization settings, as certain selections can, in some instances, break code while compiling.&lt;br /&gt;
&lt;br /&gt;
The first step is to choose your preferred compiler. There is only one version on the 1.6.5 ISO, so the only option here is GCC 4.4. However, once the main system installation is complete, it is possible to install GCC 3.x -- and even the deprecated GCC 2.x! If you don't intend to install those, you should go to the GCC_4_4 submenu now and set GCC 4.4 as the default compiler. &lt;br /&gt;
&lt;br /&gt;
The GCC_4_4 menu also allows you to change other options:&lt;br /&gt;
&lt;br /&gt;
* ''safe'' : allows you to turn off optimization safety, so you should leave this well alone unless you really know what you are doing. Turning this off will result in many more options appearing than are described below.&lt;br /&gt;
* ''bopt'' : allows you to change the base compile-time optimization. Your choice depends on what your needs are. Most folks will want to use -O2 here, as it is the wisest choice. More advanced users may want to use the -O3 option, but it's not for everyone. If you're short on disk space, you would take the -Os Small option. (As an example, we used -Os for the ISO since we were working within a confined amount of disc space.) Those of you with older or slower systems that wouldn't be able to take advantage of faster optimizations may choose a more conservative setting like -O1. For our example system, we will choose -O2.&lt;br /&gt;
* ''cpu'' : allows you to set your processor type. This may seem unimportant, but the GCC 4.x [and GCC 3.x] compiler has ways of optimizing code for certain processors&lt;br /&gt;
* ''cc_opt'' : allows you to set some limited C/C++ compiler settings. Very few people, if any, would need to turn off the -pipe option.&lt;br /&gt;
&lt;br /&gt;
The unsafe optimizations are:&lt;br /&gt;
* ''xtra'' : CPU extensions&lt;br /&gt;
* ''spd'' : Specialized optimizations&lt;br /&gt;
* ''fpm'' : Floating point optimizations&lt;br /&gt;
* ''stack'' : Stack optimizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding Other Compiler Toolchain Optimizations==&lt;br /&gt;
&lt;br /&gt;
'''You can safely SKIP this entire step!'''&lt;br /&gt;
&lt;br /&gt;
The GNU_LD menu shows the screen for linker options, where you will find that &amp;quot;-s Strip&amp;quot; has already been checked off. Very few people will want to uncheck this option, so we will leave this screen as is.&lt;br /&gt;
&lt;br /&gt;
The GNU_MAKE menu allows you to set the number of concurrent makes. As the hint mentions on the &amp;quot;Concurrent Makes&amp;quot; screen, you'll want to enter in the number of cpu's your machine has. Unless you have a machine with more than one processor, you'll want to leave this field blank.&lt;br /&gt;
&lt;br /&gt;
We are now finished setting up our GCC optimizations! When you have you lunar system up and running, you can always change and tweak these GCC settings by typing &amp;quot;lunar&amp;quot; at the commandline prompt, and going to &amp;quot;Optimization Settings&amp;quot;. In addition, if you aren't that familiar with what your processor is capable of using for optimizations, you can go to the shell out option on the ISO and type&lt;br /&gt;
&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
at the prompt and the system will show you all the optimizations that the processor reports it can handle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuring Your Bootloader==&lt;br /&gt;
&lt;br /&gt;
=== Configuring LILO ===&lt;br /&gt;
&lt;br /&gt;
If you chose to use lilo and also said yes to automatically configuring and running lilo, then most of the work is done for you. If you chose not to hand edit lilo.conf, however, be warned that the default configuration has the system set up to be password protected on boot. You can change this by selecting the option from the menu &amp;quot;Reconfigure LILO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To turn off password protection, you will need to comment out (with the symbol &amp;quot;#&amp;quot;) or delete two lines in your lilo.conf file. The first is &amp;quot;password=lunar&amp;quot;, which is found in the top section of the file, and the other is &amp;quot;restricted&amp;quot; which is found right below the name of your kernel in the second section.&lt;br /&gt;
&lt;br /&gt;
The other item of note is whether you want lilo to reside in your MBR (Master Boot Record) or on the first sector of your /boot partition. The line in your lilo.conf file to edit for this purpose is&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda1&lt;br /&gt;
&lt;br /&gt;
To make lilo get installed on the first sector of your /boot partition, you would leave this line as it is. If you want lilo to be written to your MBR, which is the recommended method, you would change the line to read&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda&lt;br /&gt;
&lt;br /&gt;
Of course, these examples are pertinent to our setup that we have been using thoughout this manual. Your actual lilo.conf file may be different.&lt;br /&gt;
&lt;br /&gt;
=== Configuring GRUB ===&lt;br /&gt;
&lt;br /&gt;
If you chose grub as your bootloader, you will need to set up the configuration file entirely on your own. An example would be:&lt;br /&gt;
&lt;br /&gt;
  default 0&lt;br /&gt;
  timeout 30&lt;br /&gt;
  color white/blue white/black&lt;br /&gt;
  title linux-2.4.25&lt;br /&gt;
  root (hd0,0)&lt;br /&gt;
  kernel /vmlinubz-2.4.25-r5.0.0 root=/dev/sda2 devfs=nomount&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier in the partitioning section, you would want to mark your /boot partition as active. With grub it is ''imperative'' that you mark your /boot partition as active, otherwise grub will not work at all when you are finished with the installation and reboot to your new system.&lt;br /&gt;
&lt;br /&gt;
NOTE: The option to install grub is not available on the 1.6.5-rc1-x86_64 ISO because grub is not yet fully stable on 64-bit systems. If you really know what you are doing, the source tarball is saved to disk, so you can configure it manually once the main installation is complete.&lt;br /&gt;
==Installing kernels==&lt;br /&gt;
&lt;br /&gt;
===Installing a precompiled kernel===&lt;br /&gt;
&lt;br /&gt;
The ISO comes with a selection of precompiled kernels and modules that should work for most people. If you have problems getting your kernel to compile, install or getting the right drivers, or just want to get a quick start at lunar, we ''suggest'' that you use this option instead of compiling your own kernel. You can later of course compile as many kernels as you want, and indeed the first ''lunar update'' after the main installation might ask whether you want to update the kernel too. Why do it twice if you don't need to?&lt;br /&gt;
&lt;br /&gt;
There are several kernels for you to choose from. They are:&lt;br /&gt;
&lt;br /&gt;
* ''2.6.34.1'' -- Normal kernel (SMP, 4GB memory max) (RECOMMENDED). &lt;br /&gt;
* ''2.6.34.1-safe'' -- Very safe non-optimized minimal kernel (no ACPI, DMA, SMP, 1GB).&lt;br /&gt;
* ''2.6.34.1-server'' -- Server optimized (SELINUX, SMP, 64GB, no preempt).&lt;br /&gt;
&lt;br /&gt;
===Building Your Customized Linux Kernel===&lt;br /&gt;
&lt;br /&gt;
We have now come to the most important part of the installation; the configuration of the kernel. The kernel is the heart of Linux, and without it, nothing would work. Configuration is, actually, a rather simple process. All you need to remember is to not panic, and that lunar is going to do most of the work for you. Here are a few pointers that will make the configuration a breeze for you.&lt;br /&gt;
&lt;br /&gt;
* Help is a click away! The people working on creating and maintaining the Linux kernel have help placed throughout the entire configuration process. If you're not sure what something does, just look at the help file for whatever item you're on, and it will almost certainly explain what it is and what it does. The most handy thing is that every help file will suggest whether you should really use the item or not. Many help files end with &amp;quot;If you're not sure, it is safe to say N here&amp;quot;, thus letting you know that it is safe to leave that particular item out of the kernel.&lt;br /&gt;
* You can use the ISO kernel! The configuration used to make the kernel for the ISO is the same configuration you'll see when you start your kernel customization. If you leave the configuration the way it is, the only thing you truly have to worry about is your network and, if you want it, sound. There are also two additional default configurations available on the ISO that are available to you called &amp;quot;config.safe&amp;quot; and &amp;quot;config.server&amp;quot;. We'll show you how to load these configurations in just a little bit. [TODO: check these files]&lt;br /&gt;
* Never build filesystems or core components as modules! Make sure that whatever filesystems you decided to use for your partitions earlier are built into the kernel, and are not separate modules. Likewise, make sure that certain crucial things like ide and scsi drivers are not modules, as this will make your machine unbootable. (This rule doesn't apply to the scsi low level drivers though; they can be modules.) Modules are kernel drivers that can be manually activated and deactivated after the system has been booted, but not during boot time. The kernel from the ISO already has all the filesystems available during the installation built into the kernel, so if you don't change anything there, you will be fine.&lt;br /&gt;
&lt;br /&gt;
You will be shown two screens of information before you actually begin you kernel configuration, letting you know that you are going to need a few things built into the kernel in order to have Lunar run properly, and what options you have for boot loaders. Lunar comes with both lilo (LInux LOader) and grub (GRand Unified Bootloader).&lt;br /&gt;
&lt;br /&gt;
If you don't have much experience with bootloaders, we suggest using lilo for now, as the installation program will set up the configuration file for you. If you would prefer to use grub, and we encourage folks to learn how to use it, be forewarned that the installation program does not set up any configuration at all for you.&lt;br /&gt;
&lt;br /&gt;
[On the 1.6.5-rc1-x86_64 ISO] There is only one kernel available for you to choose from:&lt;br /&gt;
&lt;br /&gt;
* ''linux-2.6.'' -- Latest 2.6 kernel with minor patchlevel patches (2.6.x.Y)&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use linux-2.6. &lt;br /&gt;
&lt;br /&gt;
Before you begin is which type of configuration method you would like to use.&lt;br /&gt;
&lt;br /&gt;
* ''config'' -- The original way to configure the linux kernel. It is completely text based, and assumes you know what everything is. Unless you've been using linux since its inception, you probably don't want to use this method.&lt;br /&gt;
* ''menuconfig'' -- As the name implies, a menu driven version of the kernel configuration. This is the easiest, and by far the most popular way of configurating your kernel.&lt;br /&gt;
* ''xconfig'' -- If you have an X server running, you can use this option to configure your kernel using a nifty GUI interface. You won't be able to use this on the ISO, but once your system is up and running with X, you can use this option. If you do choose this option while installing from the ISO, the system will fall back to next available configuration method, in this case menuconfig, so there is no harm in selecting it if you do.&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use menuconfig. Once Lunar is finished applying the patches for the kernel, which can take a minute or two, you'll be brought to the configuration screen for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, the configuration that was used to build the kernel for the ISO is the same configuration that you'll be presented with when you start. However, as we also mentioned earlier, there are two alternate kernel configurations available to you that you may want to use; config.safe and config.server. Both of these configurations can be found on the ISO, along with the original default config file, in /etc/lunar/local. When you are looking at the kernel menuconfig main page, scroll all the way to bottom, and you will find an option called &amp;quot;Load an Alternate Configuration File&amp;quot;. Select this and then give the absolute path to the alternate configuration file, i.e. /etc/lunar/local/.config.server. As with all kernel configuration files, they are hidden files preceded with a &amp;quot;.&amp;quot;, so make sure to not forget it.&lt;br /&gt;
&lt;br /&gt;
Once you have completed configuring your kernel, you'll get one more prompt from the installer asking if you want to go back to the configuration in case you exited by mistake or forgot something. If everything is good to go, say no here and sit back for a few minutes while your kernel compiles.&lt;br /&gt;
&lt;br /&gt;
==Setting Up Networking==&lt;br /&gt;
&lt;br /&gt;
The final step is to set up networking. When you select the &amp;quot;Set Up Networking&amp;quot; option, you'll be prompted by a series of questions as to what kind of card you have (only needed if you built your networking device as a module, and not part of the kernel), if you need to set up wireless or not, and whether you'll need to use dhcp or not. You should be familiar enough with your network to set this up on your own, as the questions put to you are very straightforward.&lt;br /&gt;
&lt;br /&gt;
* if you use dhcp, you don't need to set up the default gateway or DNS because dhcp will take care of them for you.&lt;br /&gt;
* you are using a wireless connection with wpa_supplicant, you might want to run &amp;quot;wpa_passphrase&amp;quot; to set up a simple /etc/wpa_supplicant.conf rather than try to edit the example file.&lt;br /&gt;
&lt;br /&gt;
==Other settings==&lt;br /&gt;
&lt;br /&gt;
The installer will prompt you now for some more settings. You should set a root password and generate ssh host keys to identify your box uniquely for later. You might also want to administrate services on the newly installed machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reboot!==&lt;br /&gt;
&lt;br /&gt;
Once you have completed setting up your networking, you are finished installing Lunar Linux! Congratulations! Select the option &amp;quot;Done&amp;quot; and remove the cd from the drive when it ejects. Your Lunar system is now ready to go!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Moonbase==&lt;br /&gt;
&lt;br /&gt;
After the initial installation and reboot, please follow the instructions given in '''man lfirsttime''' to bring your system up-to-date.&lt;br /&gt;
&lt;br /&gt;
Congratulations! You now have a minimal system as a foundation on which to build.&lt;br /&gt;
&lt;br /&gt;
==KNOWN PROBLEMS==&lt;br /&gt;
&lt;br /&gt;
=== You need to run 'lin linux-2.6' explicitly before running 'lunar update' ===&lt;br /&gt;
&lt;br /&gt;
  WARNING: the pre-compiled 2.6.35.3 kernel on the ISO is now out-of-date compared to the ''linux-2.6'' module in the moonbase, but you will&lt;br /&gt;
  need to build it explicitly using '''lin linux-2.6''' because it won't be rebuilt as part of the first '''lunar update'''. If you didn't&lt;br /&gt;
  recompile the kernel as part of the ISO installation, or if you experience problems with ALSA or NVIDIA, you should run '''lin linux-2.6'''&lt;br /&gt;
  to rebuild the kernel explicitly. After you have built the kernel once, '''lunar update''' should then detect and install a newer versions&lt;br /&gt;
  of the kernel as they become available in the moonbase.&lt;br /&gt;
&lt;br /&gt;
=== configure: error: C compiler cannot create executables ===&lt;br /&gt;
&lt;br /&gt;
  WARNING: the ISO installs gcc-4.4 on your system, but gcc-4.5 will be installed as part of the '''man lfirsttime''' and '''lunar update'''&lt;br /&gt;
  process. You will then need to run '''lunar''', select the '''Options / Optimize Architecture''' menu and set the gcc-4.5 options. Failure&lt;br /&gt;
  to do so may result in ''&amp;quot;configure: error: C compiler cannot create executables&amp;quot;'' messages when building modules later.&lt;br /&gt;
&lt;br /&gt;
==Where to go from here==&lt;br /&gt;
To install a desktop environment check out this page. [[Lunar_Linux:DesktopEnvironments]]&lt;br /&gt;
&lt;br /&gt;
''Have Phun!!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/copyleft/ Copyleft] 2004-2010 [http://lunar-linux.org/ The Lunar Penguin Team]&lt;br /&gt;
&lt;br /&gt;
Lunar Installation Manual and Harassment of Lunar Developers by Drew Swayze (drew AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Edits and Nitpicking by Suzanne Burns (sburns AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Initial update for the 1.6.5 ISO by Duncan Gibson (engelsman AT lunar-linux DOT org).&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Module_Basics</id>
		<title>Module Basics</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Module_Basics"/>
				<updated>2011-02-20T17:17:34Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* The BUILD script */  warning about prepare_install&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
In ''Lunar'' parlance, software packages are called [[modules]]. The collection of all modules is the [[moonbase]], which is simply a directory (usually &amp;lt;code&amp;gt;/var/lib/lunar/moonbase/&amp;lt;/code&amp;gt;) containing ''sections'' (i.e. directories) which in turn contain the [[module]] directories.&lt;br /&gt;
&lt;br /&gt;
A module is simply a directory containing the scripts necessary to build a software package, and optionally configuration files which may be needed in &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;. Some modules require only a [[DETAILS]] file, however this is only the case for a few of the modules in the entire moonbase. In each case, after [[DETAILS]], [[DEPENDS]], and [[CONFIGURE]], where a module can use lunar's default internal function(s), there is no need for a module-specific script.&lt;br /&gt;
&lt;br /&gt;
* [[DETAILS]] sets version, source URL(s) and other critical data&lt;br /&gt;
* [[CONFLICTS]] specifies modules which must (will) be removed by module&lt;br /&gt;
* [[CONFIGURE]] interactive script where build options can be set&lt;br /&gt;
* [[DEPENDS]] specifies required and optional packages&lt;br /&gt;
* [[PRE_REMOVE]] used by [[lrm]]; actions which must preceed removal&lt;br /&gt;
* [[PRE_BUILD]] most often used for patching, unpacking addional source tarballs&lt;br /&gt;
* [[BUILD]] runs necessary variations on: configure; make; make install&lt;br /&gt;
* [[POST_BUILD]] install configuration scripts and data.&lt;br /&gt;
* [[POST_INSTALL]] messages, notes more cleanups, configuration fixes&lt;br /&gt;
* [[POST_REMOVE]] used by [[lrm]]; actions which must follow removal&lt;br /&gt;
&lt;br /&gt;
'''Note:''' modules that require changes for 64-bit systems may also have DETAILS.x86_64, etc.&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
== Package Build and Install Scripts ==&lt;br /&gt;
&lt;br /&gt;
The following scripts are used by [[Tools:lin|lin]] or indirectly by [[lunar]] when building modules.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The DETAILS script ===&lt;br /&gt;
&lt;br /&gt;
Every module is required to have at least a [[DETAILS]] file. A minimal [[DETAILS]] may appear as follows: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/editors/emacs/DETAILS&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
           MODULE=emacs&lt;br /&gt;
          VERSION=21.3&lt;br /&gt;
           SOURCE=$MODULE-$VERSION.tar.gz&lt;br /&gt;
       SOURCE_URL=$GNU_URL/$MODULE&lt;br /&gt;
       SOURCE_URL=&amp;lt;nowiki&amp;gt;ftp://ftp.gnu.org/pub/gnu/$MODULE&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
       SOURCE_VFY=sha1:94d7ae9cb3aef05159cfff148265fc9ce0973980&lt;br /&gt;
         WEB_SITE=&amp;lt;nowiki&amp;gt;http://www.gnu.org/software/emacs&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
          ENTERED=20010922&lt;br /&gt;
          UPDATED=20020529&lt;br /&gt;
            SHORT=&amp;quot;the extensible, self-documenting real-time display editor&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Emacs is the extensible, customizable, self-documenting real-time&lt;br /&gt;
 display editor. &lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
Other SOURCE_URLS in lunar :&lt;br /&gt;
* $GNOME_URL : GNOME mirrors&lt;br /&gt;
* $GNU_URL : GNU mirrors&lt;br /&gt;
* $KDE_URL : KDE mirrors&lt;br /&gt;
* $SFORGE_URL : SourceForge mirrors&lt;br /&gt;
* $LRESORT_URL : lunar-linux mirrors&lt;br /&gt;
* $XFREE86_URL : XFree86 mirrors&lt;br /&gt;
* $XORG_URL : x.org packages mirrors&lt;br /&gt;
* $KERNEL_URL : kernel, kernel tools mirrors&lt;br /&gt;
* $PATCH_URL : the place for *.patch or *.diff files which are not downloadable from other public hosts.&lt;br /&gt;
** See [[Module Guidelines]] about creating patches for use in the BUILD file.&lt;br /&gt;
** Such patches may be sent unpacked to Lunar developers mailing list: lunar-dev (at) lunar-linux (dot) org so that a Lunar developer can check it, pack it as *.bz2 archive then upload it to $PATCH_URL server.&lt;br /&gt;
** Otherwise it may be copied to the module directory to be included as part of the '''lvu submit'''&lt;br /&gt;
&lt;br /&gt;
The use of _URL mirrors is very important because:&lt;br /&gt;
* downloads are faster because mirror is usually very close to user&lt;br /&gt;
* if any mirror server fails there is another one on list so user is not left with broken download&lt;br /&gt;
* international Internet connections are less blocked&lt;br /&gt;
&lt;br /&gt;
Other optional fields :&lt;br /&gt;
* If the application does not compile on more than one thread, add: PSAFE=&amp;quot;no&amp;quot; or PSAFE=no&lt;br /&gt;
* If the tarball is not extracting into the default $MODULE-$VERSION (e.g. emacs-21.7), add: SOURCE_DIRECTORY=$BUILD_DIRECTORY/&amp;quot;$MODULE&amp;quot;_&amp;quot;$VERSION&amp;quot;_src&lt;br /&gt;
* If you want your name in the module and be listed as maintainer and like to be notified when somebody modifies the module, add : MAINTAINER=youremailadress&lt;br /&gt;
* If you have more than one SOURCE_URL, list them as: SOURCE_URL=, SOURCE_URL[1]=, SOURCE_URL[2]=, ...&lt;br /&gt;
* If you have more than one SOURCE, list them as: SOURCE ,SOURCE2, SOURCE3, ... (don't forget to tell the BUILD script what to do with it...) and add a SOURCE1_URL as well...&lt;br /&gt;
* If you want to force lunar to use the gcc4 compiler for this module, add: LUNAR_COMPILER=GCC_4_0 or GCC_3_4 for gcc3&lt;br /&gt;
&lt;br /&gt;
Update the UPDATED field only when you have added something that will change the compile behaviour, updated the version or you added configure options... don't change it just for outlining the DETAILS or BUILD or... file, so in general don't force ppl to recompile if all you did what tweaking around a bit...&lt;br /&gt;
* Check [[Module_Guidelines]] for special handling of UPDATED for ''*-cvs'' or ''*-svn'' modules in '''zbeta'''.&lt;br /&gt;
&lt;br /&gt;
The SOURCE_VFY field can be used to check that the downloaded source file has not been corrupted, or changed, since the module was last updated. It should be omitted for modules that download snapshots of sources from svn, cvs, git repositories or similar because the sources could change between downloads.&lt;br /&gt;
sha1 checksums are preferred, md5sums can be listed as SOURCE_VFY=md5: &lt;br /&gt;
&lt;br /&gt;
If you find a MAINTAINER field please respect this and notify the person listed there that you will or have updated his module.&lt;br /&gt;
&lt;br /&gt;
With comments, default values:&lt;br /&gt;
&lt;br /&gt;
           MODULE=emacs                                       # Module name, yes it's redundant&lt;br /&gt;
          VERSION=21.3                                        # Version, changes *often*&lt;br /&gt;
           SOURCE=$MODULE-$VERSION.tar.gz                     # Source filename&lt;br /&gt;
 SOURCE_DIRECTORY=$BUILD_DIRECTORY/$MODULE-$VERSION           # Where source unpacks&lt;br /&gt;
                                                              # ($BUILD_DIRECTORY=/usr/src)&lt;br /&gt;
    SOURCE_URL[0]=$GNU_URL/$MODULE                            # Download URL&lt;br /&gt;
    SOURCE_URL[1]=&amp;lt;nowiki&amp;gt;ftp://ftp.gnu.org/pub/gnu/$MODULE&amp;lt;/nowiki&amp;gt;   # Alternate URL(s)&lt;br /&gt;
       SOURCE_VFY=sha1:94d7ae9cb3aef05159cfff148265fc9ce0973980 # Sets sha1 hash or pgp/gpg sig url&lt;br /&gt;
         WEB_SITE=&amp;lt;nowiki&amp;gt;http://www.gnu.org/software/emacs&amp;lt;/nowiki&amp;gt;           # where to learn more&lt;br /&gt;
          ENTERED=20010922                                    # First appearance in moonbase&lt;br /&gt;
          UPDATED=20020529                                    # Date of latest change.&lt;br /&gt;
                                                              # Force update by setting this&lt;br /&gt;
 &lt;br /&gt;
 # The remaining lines are used for input to the 'lvu what' command&lt;br /&gt;
 # and are best copied from the source-maintainer's own description.&lt;br /&gt;
 &lt;br /&gt;
            SHORT=&amp;quot;the extensible, self-documenting real-time display editor&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 cat &amp;lt;&amp;lt; EOF&lt;br /&gt;
 Emacs is the extensible, customizable, self-documenting real-time&lt;br /&gt;
 display editor. &lt;br /&gt;
 EOF&lt;br /&gt;
&lt;br /&gt;
=== The DEPENDS script ===&lt;br /&gt;
&lt;br /&gt;
The [[DEPENDS]] script is essential to configuration management, and is the key to the overall operation of lunar. Dependencies should be exactly specified, preferably not assuming the presence of any other modules, while knowing the sub-dependencies of the modules which are added and not adding those explictly where not needed.&lt;br /&gt;
&lt;br /&gt;
'''Warning''' - Getting this right is difficult. Because the state of installed packages may vary widely, it's important to have a good understanding of what might be or not be installed on a target system.&lt;br /&gt;
&lt;br /&gt;
'''Note''' - By convention Lunar does not include the X Window System, xfree86 or XOrg, in any dependency. There are two reasons for this choice. First we expect that users must understand that to use a graphical application locally, the X Window System must be installed. Second, due to the sligtly unusual definition of client and server used by X11, it is often in fact possible to build graphical applications and tools for remote display, without the server components locally installed. At some future date we may elect to provide a client-only installation of xfree86.&lt;br /&gt;
&lt;br /&gt;
[[DEPENDS]] may include both required and optional dependencies. The '''depends()''' function statement simply determines one required package. The optional_depends function is a little more complex. It consists of the required package, necessary --options to give to &amp;lt;code&amp;gt;./configure&amp;lt;/code&amp;gt; for yes and no respectively, and an explanatory comment telling the user the purpose of the option being presented. A typical [[DEPENDS]] file might appear as follows: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/devel/subversion/DEPENDS&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 depends zlib&lt;br /&gt;
 depends openssl&lt;br /&gt;
 optional_depends &amp;quot;db4&amp;quot; &amp;quot;--with-berkeley-db&amp;quot;  &amp;quot;&amp;quot;   &amp;quot;for creating local repositories&amp;quot;&lt;br /&gt;
 #                  ^            ^            ^                  ^&lt;br /&gt;
 #                  |            |            |                  |&lt;br /&gt;
 #     optional package       if &amp;quot;Y&amp;quot;       if &amp;quot;N&amp;quot;       explanatory comment&lt;br /&gt;
 #                        { ./configure strings }&lt;br /&gt;
&lt;br /&gt;
Many old modules use '&amp;amp;&amp;amp;' in [[DEPENDS]] to be consistent with [[BUILD]] files, but the '&amp;amp;&amp;amp;' delimiter is not required and new [[DEPENDS]] files should not use it.&lt;br /&gt;
&lt;br /&gt;
* '''Important''' - You may not use '''if module_installed...''' or other general bash programming in the [[DEPENDS]] file to handle conditional dependencies. This is to keep the dependency tracking code in the lunar tools as simple and fast as possible.&lt;br /&gt;
&lt;br /&gt;
'''Aliases'''&lt;br /&gt;
&lt;br /&gt;
Aliases are a mean to select a generic module. When you need a functionnality that can be provided by two or more softwares, you can select one of them to provide a correct dependency.&lt;br /&gt;
&lt;br /&gt;
Example /var/lib/lunar/moonbase/aliases:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 %APACHE:apache apache2 apache-mod_ssl&lt;br /&gt;
 %FAM:fam gamin&lt;br /&gt;
 %GECKO_RENDERER: firefox thunderbird mozilla&lt;br /&gt;
 %GHOSTSCRIPT:espgs ghostscript&lt;br /&gt;
 %MTA:postfix exim sendmail esmtp&lt;br /&gt;
 %SLANG:slang slang2&lt;br /&gt;
 %X:XOrg XOrg-test xfree86 xfree86-beta&lt;br /&gt;
 %XMLRENDERER: libxml2 expat&lt;br /&gt;
 %XSCREENSAVER:xscreensaver xscreensaver-gtk1 xscreensaver-kde&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For example you can choose %X instead of XOrg in a module that would depends on any X server:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
 depends %X&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== The CONFLICTS script ===&lt;br /&gt;
&lt;br /&gt;
This script is simply used to specify modules which will be removed when a given module is installed. An example would be: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/editors/elvis/CONFLICTS&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 conflicts vim&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The CONFIGURE script ===&lt;br /&gt;
&lt;br /&gt;
The [[CONFIGURE]] script is used to collect interactive input from the user on optional parameters for the software build. use the '''query''' function and provide a default answer to each question. The results of the answers are then used to store configuration variables needed in configuration state files. An a simple example might be: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/crypto/gnupg/CONFIGURE&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 if ! grep -q CONFIGURED $MODULE_CONFIG ; then&lt;br /&gt;
   if query &amp;quot;Enable experimental external HKP keyserver interface? &amp;quot; n ; then&lt;br /&gt;
     OPTS=&amp;quot;$OPTS --enable-external-hkp&amp;quot;&lt;br /&gt;
   fi&lt;br /&gt;
   echo 'CONFIGURED=&amp;quot;y&amp;quot;' &amp;gt;&amp;gt; $MODULE_CONFIG&lt;br /&gt;
   echo 'OPTS='\&amp;quot;$OPTS\&amp;quot; &amp;gt;&amp;gt; $MODULE_CONFIG&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
Another way is using '''mquery''' like the lilo module does:&lt;br /&gt;
&lt;br /&gt;
 mquery RUN_LILO &amp;quot;Run LILO automatically upon LILO upgrades?&amp;quot; y&lt;br /&gt;
&lt;br /&gt;
 mquery ENABLE_FOO &amp;quot;Enable foo?&amp;quot; n &amp;quot;--enable-foo --enable-foo2&amp;quot; &amp;quot;--disable-foo --disable-foo2&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Where &amp;quot;No&amp;quot; would be the default answer for the user. When he chooses to enable-foo, then answer &amp;quot;yes&amp;quot; would be stored in the ENABLE_FOO variable and --enable-foo and --enable-foo2 will get added to the ./configure command in the BUILD script.&lt;br /&gt;
&lt;br /&gt;
=== The PRE_BUILD script ===&lt;br /&gt;
&lt;br /&gt;
[[PRE_BUILD]] is used where special processing is needed before undertaking the actual build steps. Typical requirements include unpacking multiple sources, creating necessary system or source-tree direcotries and applying source patches. And example would be: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/doc-tools/html2db/PRE_BUILD&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 mk_source_dir $SOURCE_DIRECTORY  &amp;amp;&amp;amp;&lt;br /&gt;
 unpack $SOURCE                   &amp;amp;&amp;amp;&lt;br /&gt;
 cd $MODULE&lt;br /&gt;
 unpack $SOURCE2&lt;br /&gt;
 cd tidy&lt;br /&gt;
 patch_it $SOURCE_CACHE/$SOURCE3 0&lt;br /&gt;
 cd /usr/src/$MODULE&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The BUILD script ===&lt;br /&gt;
&lt;br /&gt;
[[BUILD]] is used where the '''default_build()''' function does not work for a given software package. For reference the commands run by default are:&lt;br /&gt;
&lt;br /&gt;
Function '''default_build()''' calls '''default_config''' which executes:&lt;br /&gt;
&lt;br /&gt;
   ./configure  --build=$BUILD            \&lt;br /&gt;
                --prefix=/usr             \&lt;br /&gt;
                --sysconfdir=/etc         \&lt;br /&gt;
                --localstatedir=/var      \&lt;br /&gt;
                --infodir=/usr/share/info \&lt;br /&gt;
                --mandir=/usr/share/man   \&lt;br /&gt;
                $OPTS&lt;br /&gt;
&lt;br /&gt;
Next, '''default_build()''' calls '''default_make''' which executes:&lt;br /&gt;
&lt;br /&gt;
   make &amp;amp;&amp;amp;&lt;br /&gt;
   prepare_install &amp;amp;&amp;amp;&lt;br /&gt;
   make install&lt;br /&gt;
&lt;br /&gt;
The '''prepare_install''' should only be called immediately before the '''make install''' phase, so that the package management system only tracks the installed files and not any intermediate build files.&lt;br /&gt;
&lt;br /&gt;
  2011-02-20: Be aware that several modules in the moonbase appear to get this wrong, so take care!&lt;br /&gt;
&lt;br /&gt;
If you have modules from git,svn or cvs, the ''configure'' script is missing most of the time. You can then use the ''default_cvs_build()'' function. The commands run are:&lt;br /&gt;
&lt;br /&gt;
    ./autogen.sh --prefix=/usr  &lt;br /&gt;
    &lt;br /&gt;
it will then call ''default_make()''            &lt;br /&gt;
&lt;br /&gt;
Where this build configuration does not work, the [[BUILD]] script is used to provide the needed steps. About 75% of modules need a [[BUILD]] script. Two examples include: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/archive/gzip/BUILD&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 (&lt;br /&gt;
  ./configure --build=$BUILD            \&lt;br /&gt;
              --prefix=/usr             \&lt;br /&gt;
              --bindir=/bin             \&lt;br /&gt;
              --infodir=/usr/share/info \&lt;br /&gt;
              --mandir=/usr/share/man   &amp;amp;&amp;amp;&lt;br /&gt;
  make &amp;amp;&amp;amp;&lt;br /&gt;
  prepare_install &amp;amp;&amp;amp;&lt;br /&gt;
  make bindir=/bin install&lt;br /&gt;
 ) &amp;gt; $C_FIFO 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
and: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/editors/ex/BUILD&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 (&lt;br /&gt;
   cd $SOURCE_DIRECTORY                    &amp;amp;&amp;amp;&lt;br /&gt;
   sedit 's/usr.local/usr/' Makefile       &amp;amp;&amp;amp;&lt;br /&gt;
   sedit 's/= man/= share\/man/' Makefile  &amp;amp;&amp;amp;&lt;br /&gt;
   sedit 's/ucb/bin/' Makefile             &amp;amp;&amp;amp;&lt;br /&gt;
   sedit 's/= termlib/= ncurses/' Makefile &amp;amp;&amp;amp;&lt;br /&gt;
   make                                    &amp;amp;&amp;amp;&lt;br /&gt;
   prepare_install                         &amp;amp;&amp;amp;&lt;br /&gt;
   make install&lt;br /&gt;
 ) &amp;gt; $C_FIFO 2&amp;gt;&amp;amp;1&lt;br /&gt;
&lt;br /&gt;
The first example is a build which needs non-standard 'configure' and 'make install' commands. The second is a build which does not use gnu auto-tools' 'configure' script.&lt;br /&gt;
&lt;br /&gt;
In the examples above, the [[BUILD]] scripts contain multiple commands separated by '&amp;amp;&amp;amp;' to ensure that execution stops as soon as any command fails. The '&amp;amp;&amp;amp;' are 'and' operations: the command after the '&amp;amp;&amp;amp;' will only be run if the one before the '&amp;amp;&amp;amp;' completed successfully. The use of '&amp;amp;&amp;amp;' is '''required''' in multi-command [[BUILD]] scripts.&lt;br /&gt;
&lt;br /&gt;
'''Note''' - [[BUILD]] scripts must execute inside a (), called a subshell invocation, construct and output is always directed to a named pipe (aka FIFO). Therefor all [[BUILD]] files take the follwing form:&lt;br /&gt;
&lt;br /&gt;
 (&lt;br /&gt;
   # commands are put here&lt;br /&gt;
 ) &amp;gt; $C_FIFO 2&amp;gt;&amp;amp;1     # $C_FIFO holds the name of a fifo in /tmp used for 'voyeur'&lt;br /&gt;
&lt;br /&gt;
=== The POST_BUILD script ===&lt;br /&gt;
&lt;br /&gt;
[[POST_BUILD]] runs in place of the '''default_post_build''' routine which is used to install minor documentation and transfer/enable initialization scripts and similar system data, mostly into &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
[[POST_BUILD]] script usage is '''deprecated'''. You should install your config files in [[BUILD]] (remember not to overwrite previous config files!) or install defaults from [[POST_INSTALL]] (again, do not overwrite present files!). The ability to use a [[POST_BUILD]] script is purely for certain internal functions.&lt;br /&gt;
&lt;br /&gt;
=== The POST_INSTALL script ===&lt;br /&gt;
&lt;br /&gt;
[[POST_INSTALL]] has no equivalent functions, and is run to handle post-installation work in a general manner. An example is: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/compilers/gcc/POST_INSTALL&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 cd /usr/lib/gcc-lib/$BUILD/$VERSION                      &amp;amp;&amp;amp;&lt;br /&gt;
 ln    -sf /usr/bin/cpp cpp                               &amp;amp;&amp;amp;&lt;br /&gt;
 cd /lib/                                                 &amp;amp;&amp;amp;&lt;br /&gt;
 ln    -sf /usr/bin/cpp cpp                               &amp;amp;&amp;amp; &lt;br /&gt;
 if [ ! -e /usr/bin/cc ] ; then&lt;br /&gt;
   ln -s gcc /usr/bin/cc&lt;br /&gt;
 fi&lt;br /&gt;
&lt;br /&gt;
As in the [[BUILD]] scripts, the '&amp;amp;&amp;amp;' represent 'and' operations, but their use in [[POST_INSTALL]] scripts is '''preferred''' rather than '''required'''.&lt;br /&gt;
&lt;br /&gt;
== Package Removal Scripts ==&lt;br /&gt;
&lt;br /&gt;
Module removal is handled by [[lrm]]. Because installation is monitored and backup tarballs are created using installwatch, most of package removal is handled automatically using the logs created by installwatch. However we provide for additional actions to be taken through the [[PRE_REMOVE]] and [[POST_REMOVE]] scripts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The PRE_REMOVE script ===&lt;br /&gt;
&lt;br /&gt;
[[PRE_REMOVE]] is needed to execute any tasks needed prior to the main task of removing all files installed by the module. An example would be: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/mail/docbook-3.1/PRE_REMOVE&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 CENTRALIZED=/etc/sgml/catalog&lt;br /&gt;
 DOCBOOK_INSTALL_DIR=/usr/share/sgml/docbook/$VERSION&lt;br /&gt;
 install-catalog -r $CENTRALIZED $DOCBOOK_INSTALL_DIR/catalog&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== The POST_REMOVE Script ===&lt;br /&gt;
&lt;br /&gt;
[[POST_REMOVE]] may be used to remove data not tracked by installwatch and to correctly adjust remaining configuration files and data. Examples would include: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/devel/binutils/POST_REMOVE&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 install-info  --delete as         --info-dir /usr/info&lt;br /&gt;
 install-info  --delete bfd        --info-dir /usr/info&lt;br /&gt;
 install-info  --delete binutils   --info-dir /usr/info&lt;br /&gt;
 install-info  --delete configure  --info-dir /usr/info&lt;br /&gt;
 install-info  --delete gasp       --info-dir /usr/info&lt;br /&gt;
 install-info  --delete gprof      --info-dir /usr/info&lt;br /&gt;
 install-info  --delete ld         --info-dir /usr/info&lt;br /&gt;
&lt;br /&gt;
or: (&amp;lt;code&amp;gt;/var/lib/lunar/moonbase/compilers/php/POST_REMOVE&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
 if    module_installed  apache;  then&lt;br /&gt;
   cp        /etc/httpd/httpd.conf       /tmp/httpd.conf&lt;br /&gt;
   grep  -v  &amp;quot;LoadModule php4_module&amp;quot;    /tmp/httpd.conf  |&lt;br /&gt;
   grep  -v  &amp;quot;AddModule mod_php4.c&amp;quot;   &amp;gt;  /etc/httpd/httpd.conf&lt;br /&gt;
   rm    -f  /tmp/httpd.conf&lt;br /&gt;
 elif  module_installed  apache_mod_ssl;  then&lt;br /&gt;
   cp        /etc/httpsd/httpd.conf      /tmp/httpd.conf&lt;br /&gt;
   grep  -v  &amp;quot;LoadModule php4_module&amp;quot;    /tmp/httpd.conf  |&lt;br /&gt;
   grep  -v  &amp;quot;AddModule mod_php4.c&amp;quot;   &amp;gt;  /etc/httpsd/httpd.conf&lt;br /&gt;
   rm    -f  /tmp/httpd.conf&lt;br /&gt;
 fi&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Module_Submission_for_developers</id>
		<title>Module Submission for developers</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Module_Submission_for_developers"/>
				<updated>2010-12-02T20:32:38Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Reviewing module submissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Module Submission for developers===&lt;br /&gt;
&lt;br /&gt;
Why and how users should submit modules is described on the [[Module_Submission]] page. This page describes what a developer needs to do to handle these submissions. Or rather, it describes what works for me.&lt;br /&gt;
&lt;br /&gt;
I'm no expert by any means and this is not intended to be a comprehensive guide to git. There is just enough information to get started, and to describe my workflow.&lt;br /&gt;
&lt;br /&gt;
====Developer access====&lt;br /&gt;
&lt;br /&gt;
Before you will be able to save anything back to the central git repository holding the [[Moonbase]], you will obviously need to apply for a username and password on the central machine. You will need to have been a regular, constructive contributor to the [irc://irc.freenode.net/lunar #lunar] IRC channel on [http://freenode.net/ Freenode.net], or the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List] or have successfully submitted modules in the past.&lt;br /&gt;
&lt;br /&gt;
====Cloning your own moonbase.git====&lt;br /&gt;
&lt;br /&gt;
Just like other source code management systems, git uses the concepts of a repository and working files. In the past git has allowed the repository and the working files to exist within the same top level directory structure. It seems that this has lead to some problems, so work is under way to separate out the repository and the working files. At the moment certain operations generate warning messages if you try to save to a combined repository and working directory. In the future you will need to have a &amp;quot;bare&amp;quot; repository and a separate working version. This article describes how to set up and use such a future-proof system.&lt;br /&gt;
&lt;br /&gt;
I don't have a public server of my own on which I can make a repository available for sharing, testing and cherry-picking by others. Therefore I use a multi-stage repository and working directory system. If you have a public server, you may be able to work with just one.&lt;br /&gt;
&lt;br /&gt;
I have three repositories: a remote copy of the main [[Lunar Linux]] [[Moonbase]] repository; a remote working copy; and a local working copy. The first one is optional, but it allows me to share files between the working copies without having to commit them to the main [[Moonbase]] repository first.&lt;br /&gt;
&lt;br /&gt;
First of all I login to the main [[Lunar Linux]] machine, '''doppio''', using ssh, and set two important global git defaults:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  doppio$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then I create the remote &amp;quot;bare&amp;quot; copy of the main [[Moonbase]] repository and configure two useful properties:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone '''--bare''' git://lunar-linux.org/lunar/moonbase.git moonbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
Next I create a remote &amp;quot;working&amp;quot; repository that shadows the remote &amp;quot;bare&amp;quot; one, again on '''doppio''':&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone moonbase.git workbase.git&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
The second git config command tells git that the default action for the &amp;quot;push&amp;quot; command is to push changes from the master branch of the current repository to the master branch of the parent repository. Otherwise you need to provide that information on the command line every time.&lt;br /&gt;
&lt;br /&gt;
I have a local &amp;quot;working&amp;quot; repository on my private machine that also shadows the remote &amp;quot;bare&amp;quot; one. I shall call my local machine '''satellite''' so that it matches the instructions given in [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT With 20 Commands Or So] but see the Note at the end of the section.&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  satellite$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  satellite$  git clone ssh://username@lunar-linux.org/~username/moonbase.git workbase.git&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  satellite$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
This repository setup allows the following workflow:&lt;br /&gt;
&lt;br /&gt;
* first ensure that the my central repo is up to date:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch               # note: fetch not pull&lt;br /&gt;
&lt;br /&gt;
* then, either work in the remote working directory:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git pull&lt;br /&gt;
  doppio$  git checkout -b testing master&lt;br /&gt;
  doppio$  ... edit files and commit ...&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git merge testing&lt;br /&gt;
  doppio$  git branch -D testing&lt;br /&gt;
  doppio$  git push&lt;br /&gt;
&lt;br /&gt;
* or work on the local working directory:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
  satellite$  ... edit files and commit ...&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
* Finally I can update the central [[Moonbase]] repository, although I'm sure there must be a better way:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
* I can only share files back and forth between the local and remote working repositories using this method. I can't pull from the working directory on satellite to the working directory on doppio because satellite is private and can only call out. I can't push from the working directory on satellite to the working directory on doppio either because it is not a bare repository.&lt;br /&gt;
&lt;br /&gt;
''Note that [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT...] recommends having the following line instead:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config remote.origin.push master:refs/remotes/satellite/master&lt;br /&gt;
&lt;br /&gt;
but this doesn't work with the bare repository system. Or rather, it does something, but I haven't worked out how to use the information in the remote repository.''&lt;br /&gt;
&lt;br /&gt;
====Reviewing module submissions====&lt;br /&gt;
&lt;br /&gt;
There is a neat script on '''doppio''' called '''review''' that you can use to view and apply the module submission patches directly to the current working copy of '''moonbase.git'''. The '''review''' script assumes that the submitter has already tested the patch and that if it applies cleanly it will be accepted, otherwise it will be rejected. One really cool feature of '''review''' is that the submitter gets the credit in the commit message. Unfortunately, if there are any problems in your  working copy of '''moonbase.git''' - and there often were in mine - the script can delete the patch.&lt;br /&gt;
&lt;br /&gt;
By default '''review''' will work through all of the modules in the [http://foo-projects.org/~sofar/queue.php submission queue] so it's best to specify the module that you are interested in. '''review''' will open an editor session containing the module patch file so that you can view the changes, and remove &amp;quot;Subject: &amp;quot; from the subject line and annotate what will become the text of the commit message. After you leave the editor, '''review''' checks whether the patch will apply to the current working copy of '''moonbase.git''' without problems, suggests what should be done with the patch, and waits for your input. If the patch applies cleanly, the default action is to ''accept'' it. You could still ''reject'' it for some other reason; because it does not conform to the [[Module_Guidelines]] for example. If the patch can't be applied - and that might mean that the submission was valid but that a developer has already updated that module in the moonbase - the action is to ''reject'' and another editor session will open so that you can explain why. The two other possible actions are ''defer'' and ''quit''.&lt;br /&gt;
&lt;br /&gt;
You can also use ''/home/engelsman/review.new'' which gives the added option to ''thank'' someone for a submission that was valid but can no longer be applied because another developer has beaten them to it. It's a little less harsh than ''reject''.&lt;br /&gt;
&lt;br /&gt;
  doppio$ cd moonbase.git&lt;br /&gt;
  doppio$ git fetch                      # make sure we are up to date&lt;br /&gt;
  doppio$ cd ../workbase.git&lt;br /&gt;
  doppio$ git pull                       # make sure working copy is also up to date&lt;br /&gt;
  doppio$ git checkout -b testing master # create a test branch in case of problems&lt;br /&gt;
  doppio$ review submitted_module        # view patch in editor, then accept,reject,defer,quit&lt;br /&gt;
&lt;br /&gt;
  # if accepted:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git merge testing&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
  doppio$ git push&lt;br /&gt;
  doppio$ cd ../moonbase.git&lt;br /&gt;
  doppio$ git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
  # else:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
&lt;br /&gt;
If all has gone smoothly, '''git status''' won't show any added, deleted or modified files. Take care to clean up if there are.&lt;br /&gt;
&lt;br /&gt;
====Testing the submission locally before committing====&lt;br /&gt;
&lt;br /&gt;
If you want to be really thorough - or paranoid - you should really check that the patch applies and builds on your own machine first. That takes a little more effort, because you will first need to grab the patch file, apply and test locally:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch                      # make sure up to date before pulling working copy&lt;br /&gt;
&lt;br /&gt;
Make sure that your local moonbase is up-to-date before you try dealing with the patch:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd moonbase.git&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
&lt;br /&gt;
and then use the method of your choice to grab the patch and apply it:&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 1&lt;br /&gt;
  satellite$  scp username@doppio.lunar-linux.org:/var/anonymous/submissions/submitted_module.patch /tmp&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 2&lt;br /&gt;
  satellite$  wget -q &amp;lt;nowiki&amp;gt;&amp;quot;http://foo-projects.org/~sofar/submitted_module.patch&amp;quot;&amp;lt;/nowiki&amp;gt; -O - | git am&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 3&lt;br /&gt;
  satellite$  # browse to &amp;quot;http://foo-projects.org/~sofar/queue.php&amp;quot;&lt;br /&gt;
  satellite$  # right click on patch and &amp;quot;save link as&amp;quot; /tmp/submitted_module.patch&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # check '''lin submitted_module''' works as expected&lt;br /&gt;
&lt;br /&gt;
At this point, if you want the submitter to get a feel-good &amp;quot;Your patch was accepted&amp;quot; message:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
&lt;br /&gt;
  doppio$     # use '''git''' and '''review''' as described earlier&lt;br /&gt;
&lt;br /&gt;
Otherwise, just continue with the usual git workflow:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git merge satellite/testing    # see '''git config''' tip earlier&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
  doppio$  review                         # patch already applied, so use '''review''' thank option&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, run '''git status''', tidy up if required, and run '''git pull''' again.&lt;br /&gt;
&lt;br /&gt;
===Is there a better way?===&lt;br /&gt;
&lt;br /&gt;
I'm an apprentice rather than a wizard level developer, and I've just about understood git-101, but diagnosing git problems makes my head hurt.&lt;br /&gt;
&lt;br /&gt;
So if you can see a better way of doing things, please add a section at the bottom and describe your workflow.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Module_Submission_for_developers</id>
		<title>Module Submission for developers</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Module_Submission_for_developers"/>
				<updated>2010-12-02T20:31:26Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Reviewing module submissions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Module Submission for developers===&lt;br /&gt;
&lt;br /&gt;
Why and how users should submit modules is described on the [[Module_Submission]] page. This page describes what a developer needs to do to handle these submissions. Or rather, it describes what works for me.&lt;br /&gt;
&lt;br /&gt;
I'm no expert by any means and this is not intended to be a comprehensive guide to git. There is just enough information to get started, and to describe my workflow.&lt;br /&gt;
&lt;br /&gt;
====Developer access====&lt;br /&gt;
&lt;br /&gt;
Before you will be able to save anything back to the central git repository holding the [[Moonbase]], you will obviously need to apply for a username and password on the central machine. You will need to have been a regular, constructive contributor to the [irc://irc.freenode.net/lunar #lunar] IRC channel on [http://freenode.net/ Freenode.net], or the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List] or have successfully submitted modules in the past.&lt;br /&gt;
&lt;br /&gt;
====Cloning your own moonbase.git====&lt;br /&gt;
&lt;br /&gt;
Just like other source code management systems, git uses the concepts of a repository and working files. In the past git has allowed the repository and the working files to exist within the same top level directory structure. It seems that this has lead to some problems, so work is under way to separate out the repository and the working files. At the moment certain operations generate warning messages if you try to save to a combined repository and working directory. In the future you will need to have a &amp;quot;bare&amp;quot; repository and a separate working version. This article describes how to set up and use such a future-proof system.&lt;br /&gt;
&lt;br /&gt;
I don't have a public server of my own on which I can make a repository available for sharing, testing and cherry-picking by others. Therefore I use a multi-stage repository and working directory system. If you have a public server, you may be able to work with just one.&lt;br /&gt;
&lt;br /&gt;
I have three repositories: a remote copy of the main [[Lunar Linux]] [[Moonbase]] repository; a remote working copy; and a local working copy. The first one is optional, but it allows me to share files between the working copies without having to commit them to the main [[Moonbase]] repository first.&lt;br /&gt;
&lt;br /&gt;
First of all I login to the main [[Lunar Linux]] machine, '''doppio''', using ssh, and set two important global git defaults:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  doppio$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then I create the remote &amp;quot;bare&amp;quot; copy of the main [[Moonbase]] repository and configure two useful properties:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone '''--bare''' git://lunar-linux.org/lunar/moonbase.git moonbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
Next I create a remote &amp;quot;working&amp;quot; repository that shadows the remote &amp;quot;bare&amp;quot; one, again on '''doppio''':&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone moonbase.git workbase.git&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
The second git config command tells git that the default action for the &amp;quot;push&amp;quot; command is to push changes from the master branch of the current repository to the master branch of the parent repository. Otherwise you need to provide that information on the command line every time.&lt;br /&gt;
&lt;br /&gt;
I have a local &amp;quot;working&amp;quot; repository on my private machine that also shadows the remote &amp;quot;bare&amp;quot; one. I shall call my local machine '''satellite''' so that it matches the instructions given in [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT With 20 Commands Or So] but see the Note at the end of the section.&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  satellite$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  satellite$  git clone ssh://username@lunar-linux.org/~username/moonbase.git workbase.git&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  satellite$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
This repository setup allows the following workflow:&lt;br /&gt;
&lt;br /&gt;
* first ensure that the my central repo is up to date:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch               # note: fetch not pull&lt;br /&gt;
&lt;br /&gt;
* then, either work in the remote working directory:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git pull&lt;br /&gt;
  doppio$  git checkout -b testing master&lt;br /&gt;
  doppio$  ... edit files and commit ...&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git merge testing&lt;br /&gt;
  doppio$  git branch -D testing&lt;br /&gt;
  doppio$  git push&lt;br /&gt;
&lt;br /&gt;
* or work on the local working directory:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
  satellite$  ... edit files and commit ...&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
* Finally I can update the central [[Moonbase]] repository, although I'm sure there must be a better way:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
* I can only share files back and forth between the local and remote working repositories using this method. I can't pull from the working directory on satellite to the working directory on doppio because satellite is private and can only call out. I can't push from the working directory on satellite to the working directory on doppio either because it is not a bare repository.&lt;br /&gt;
&lt;br /&gt;
''Note that [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT...] recommends having the following line instead:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config remote.origin.push master:refs/remotes/satellite/master&lt;br /&gt;
&lt;br /&gt;
but this doesn't work with the bare repository system. Or rather, it does something, but I haven't worked out how to use the information in the remote repository.''&lt;br /&gt;
&lt;br /&gt;
====Reviewing module submissions====&lt;br /&gt;
&lt;br /&gt;
There is a neat script on '''doppio''' called '''review''' that you can use to view and apply the module submission patches directly to the current working copy of '''moonbase.git'''. The '''review''' script assumes that the submitter has already tested the patch and that if it applies cleanly it will be accepted, otherwise it will be rejected. One really cool feature of '''review''' is that the submitter gets the credit in the commit message. Unfortunately, if there are any problems in your  working copy of '''moonbase.git''' - and there often were in mine - the script can delete the patch.&lt;br /&gt;
&lt;br /&gt;
By default '''review''' will work through all of the modules in the [http://foo-projects.org/~sofar/queue.php submission queue] so it's best to specify the module that you are interested in. '''review''' will open an editor session containing the module patch file so that you can view the changes, and remove &amp;quot;Subject: &amp;quot; from the subject line and annotate what will become the text of the commit message. After you leave the editor, '''review''' checks whether the patch will apply to the current working copy of '''moonbase.git''' without problems, suggests what should be done with the patch, and waits for your input. If the patch applies cleanly, the default action is to ''accept'' it. You could still ''reject'' it for some other reason; because it does not conform to the [[Module_Guidelines]] for example. If the patch can't be applied - and that might mean that the submission was valid but that a developer has already updated that module in the moonbase - the action is to ''reject'' and another editor session will open so that you can explain why. The two other possible actions are ''defer'' and ''quit''.&lt;br /&gt;
&lt;br /&gt;
You can also use '''/home/engelsman/review.new''' which gives the added option to ''thank'' someone for a submission that was valid but can no longer be applied because another developer has beaten them to it. It's a little less harsh than ''reject''.&lt;br /&gt;
&lt;br /&gt;
  doppio$ cd moonbase.git&lt;br /&gt;
  doppio$ git fetch                      # make sure we are up to date&lt;br /&gt;
  doppio$ cd ../workbase.git&lt;br /&gt;
  doppio$ git pull                       # make sure working copy is also up to date&lt;br /&gt;
  doppio$ git checkout -b testing master # create a test branch in case of problems&lt;br /&gt;
  doppio$ review submitted_module        # view patch in editor, then accept,reject,defer,quit&lt;br /&gt;
&lt;br /&gt;
  # if accepted:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git merge testing&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
  doppio$ git push&lt;br /&gt;
  doppio$ cd ../moonbase.git&lt;br /&gt;
  doppio$ git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
  # else:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
&lt;br /&gt;
If all has gone smoothly, '''git status''' won't show any added, deleted or modified files. Take care to clean up if there are.&lt;br /&gt;
&lt;br /&gt;
====Testing the submission locally before committing====&lt;br /&gt;
&lt;br /&gt;
If you want to be really thorough - or paranoid - you should really check that the patch applies and builds on your own machine first. That takes a little more effort, because you will first need to grab the patch file, apply and test locally:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch                      # make sure up to date before pulling working copy&lt;br /&gt;
&lt;br /&gt;
Make sure that your local moonbase is up-to-date before you try dealing with the patch:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd moonbase.git&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
&lt;br /&gt;
and then use the method of your choice to grab the patch and apply it:&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 1&lt;br /&gt;
  satellite$  scp username@doppio.lunar-linux.org:/var/anonymous/submissions/submitted_module.patch /tmp&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 2&lt;br /&gt;
  satellite$  wget -q &amp;lt;nowiki&amp;gt;&amp;quot;http://foo-projects.org/~sofar/submitted_module.patch&amp;quot;&amp;lt;/nowiki&amp;gt; -O - | git am&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 3&lt;br /&gt;
  satellite$  # browse to &amp;quot;http://foo-projects.org/~sofar/queue.php&amp;quot;&lt;br /&gt;
  satellite$  # right click on patch and &amp;quot;save link as&amp;quot; /tmp/submitted_module.patch&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # check '''lin submitted_module''' works as expected&lt;br /&gt;
&lt;br /&gt;
At this point, if you want the submitter to get a feel-good &amp;quot;Your patch was accepted&amp;quot; message:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
&lt;br /&gt;
  doppio$     # use '''git''' and '''review''' as described earlier&lt;br /&gt;
&lt;br /&gt;
Otherwise, just continue with the usual git workflow:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git merge satellite/testing    # see '''git config''' tip earlier&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
  doppio$  review                         # patch already applied, so use '''review''' thank option&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, run '''git status''', tidy up if required, and run '''git pull''' again.&lt;br /&gt;
&lt;br /&gt;
===Is there a better way?===&lt;br /&gt;
&lt;br /&gt;
I'm an apprentice rather than a wizard level developer, and I've just about understood git-101, but diagnosing git problems makes my head hurt.&lt;br /&gt;
&lt;br /&gt;
So if you can see a better way of doing things, please add a section at the bottom and describe your workflow.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Module_Submission_for_developers</id>
		<title>Module Submission for developers</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Module_Submission_for_developers"/>
				<updated>2010-12-02T20:17:18Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Testing the submission locally before committing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;===Module Submission for developers===&lt;br /&gt;
&lt;br /&gt;
Why and how users should submit modules is described on the [[Module_Submission]] page. This page describes what a developer needs to do to handle these submissions. Or rather, it describes what works for me.&lt;br /&gt;
&lt;br /&gt;
I'm no expert by any means and this is not intended to be a comprehensive guide to git. There is just enough information to get started, and to describe my workflow.&lt;br /&gt;
&lt;br /&gt;
====Developer access====&lt;br /&gt;
&lt;br /&gt;
Before you will be able to save anything back to the central git repository holding the [[Moonbase]], you will obviously need to apply for a username and password on the central machine. You will need to have been a regular, constructive contributor to the [irc://irc.freenode.net/lunar #lunar] IRC channel on [http://freenode.net/ Freenode.net], or the [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List] or have successfully submitted modules in the past.&lt;br /&gt;
&lt;br /&gt;
====Cloning your own moonbase.git====&lt;br /&gt;
&lt;br /&gt;
Just like other source code management systems, git uses the concepts of a repository and working files. In the past git has allowed the repository and the working files to exist within the same top level directory structure. It seems that this has lead to some problems, so work is under way to separate out the repository and the working files. At the moment certain operations generate warning messages if you try to save to a combined repository and working directory. In the future you will need to have a &amp;quot;bare&amp;quot; repository and a separate working version. This article describes how to set up and use such a future-proof system.&lt;br /&gt;
&lt;br /&gt;
I don't have a public server of my own on which I can make a repository available for sharing, testing and cherry-picking by others. Therefore I use a multi-stage repository and working directory system. If you have a public server, you may be able to work with just one.&lt;br /&gt;
&lt;br /&gt;
I have three repositories: a remote copy of the main [[Lunar Linux]] [[Moonbase]] repository; a remote working copy; and a local working copy. The first one is optional, but it allows me to share files between the working copies without having to commit them to the main [[Moonbase]] repository first.&lt;br /&gt;
&lt;br /&gt;
First of all I login to the main [[Lunar Linux]] machine, '''doppio''', using ssh, and set two important global git defaults:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  doppio$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then I create the remote &amp;quot;bare&amp;quot; copy of the main [[Moonbase]] repository and configure two useful properties:&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone '''--bare''' git://lunar-linux.org/lunar/moonbase.git moonbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
Next I create a remote &amp;quot;working&amp;quot; repository that shadows the remote &amp;quot;bare&amp;quot; one, again on '''doppio''':&lt;br /&gt;
&lt;br /&gt;
  doppio$  git clone moonbase.git workbase.git&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  doppio$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
The second git config command tells git that the default action for the &amp;quot;push&amp;quot; command is to push changes from the master branch of the current repository to the master branch of the parent repository. Otherwise you need to provide that information on the command line every time.&lt;br /&gt;
&lt;br /&gt;
I have a local &amp;quot;working&amp;quot; repository on my private machine that also shadows the remote &amp;quot;bare&amp;quot; one. I shall call my local machine '''satellite''' so that it matches the instructions given in [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT With 20 Commands Or So] but see the Note at the end of the section.&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config --global user.name &amp;quot;Full Name&amp;quot;&lt;br /&gt;
  satellite$  git config --global user.email &amp;quot;username@lunar-linux.org&amp;quot;&lt;br /&gt;
&lt;br /&gt;
  satellite$  git clone ssh://username@lunar-linux.org/~username/moonbase.git workbase.git&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git config --get-regexp '^(remote|branch)\.'&lt;br /&gt;
  satellite$  git config remote.origin.push master:master&lt;br /&gt;
&lt;br /&gt;
This repository setup allows the following workflow:&lt;br /&gt;
&lt;br /&gt;
* first ensure that the my central repo is up to date:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch               # note: fetch not pull&lt;br /&gt;
&lt;br /&gt;
* then, either work in the remote working directory:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd workbase.git&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git pull&lt;br /&gt;
  doppio$  git checkout -b testing master&lt;br /&gt;
  doppio$  ... edit files and commit ...&lt;br /&gt;
  doppio$  git checkout master&lt;br /&gt;
  doppio$  git merge testing&lt;br /&gt;
  doppio$  git branch -D testing&lt;br /&gt;
  doppio$  git push&lt;br /&gt;
&lt;br /&gt;
* or work on the local working directory:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd workbase.git&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
  satellite$  ... edit files and commit ...&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
* Finally I can update the central [[Moonbase]] repository, although I'm sure there must be a better way:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
* I can only share files back and forth between the local and remote working repositories using this method. I can't pull from the working directory on satellite to the working directory on doppio because satellite is private and can only call out. I can't push from the working directory on satellite to the working directory on doppio either because it is not a bare repository.&lt;br /&gt;
&lt;br /&gt;
''Note that [http://www.kernel.org/pub/software/scm/git/docs/everyday.html Everyday GIT...] recommends having the following line instead:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git config remote.origin.push master:refs/remotes/satellite/master&lt;br /&gt;
&lt;br /&gt;
but this doesn't work with the bare repository system. Or rather, it does something, but I haven't worked out how to use the information in the remote repository.''&lt;br /&gt;
&lt;br /&gt;
====Reviewing module submissions====&lt;br /&gt;
&lt;br /&gt;
There is a neat script on '''doppio''' called '''review''' that you can use to view and apply the module submission patches directly to the current working copy of '''moonbase.git'''. The '''review''' script assumes that the submitter has already tested the patch and that if it applies cleanly it will be accepted, otherwise it will be rejected. One really cool feature of '''review''' is that the submitter gets the credit in the commit message. Unfortunately, if there are any problems in your  working copy of '''moonbase.git''' - and there often were in mine - the script can delete the patch.&lt;br /&gt;
&lt;br /&gt;
By default '''review''' will work through all of the modules in the [http://foo-projects.org/~sofar/queue.php submission queue] so it's best to specify the module that you are interested in. '''review''' will open an editor session containing the module patch file so that you can view the changes, and potentially tidy the subject line and annotate what will become the text of the commit message. After you leave the editor, '''review''' checks whether the patch will apply to the current working copy of '''moonbase.git''' without problems, suggests what should be done with the patch, and waits for your input. If the patch applies cleanly, the default action is to ''accept'' it. You could still ''reject'' it for some other reason; because it does not conform to the [[Module_Guidelines]] for example. If the patch can't be applied - and that might mean that the submission was valid but that a developer has already updated that module in the moonbase - the action is to ''reject'' and another editor session will open so that you can explain why. The two other possible actions are ''defer'' and ''quit''.&lt;br /&gt;
&lt;br /&gt;
  doppio$ cd moonbase.git&lt;br /&gt;
  doppio$ git fetch                      # make sure we are up to date&lt;br /&gt;
  doppio$ cd ../workbase.git&lt;br /&gt;
  doppio$ git pull                       # make sure working copy is also up to date&lt;br /&gt;
  doppio$ git checkout -b testing master # create a test branch in case of problems&lt;br /&gt;
  doppio$ review submitted_module        # view patch in editor, then accept,reject,defer,quit&lt;br /&gt;
&lt;br /&gt;
  # if accepted:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git merge testing&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
  doppio$ git push&lt;br /&gt;
  doppio$ cd ../moonbase.git&lt;br /&gt;
  doppio$ git push /var/git/lunar/moonbase.git master&lt;br /&gt;
&lt;br /&gt;
  # else:&lt;br /&gt;
  doppio$ git checkout master            # still in workbase.git&lt;br /&gt;
  doppio$ git branch -D testing&lt;br /&gt;
&lt;br /&gt;
If all has gone smoothly, '''git status''' won't show any added, deleted or modified files. Take care to clean up if there are.&lt;br /&gt;
&lt;br /&gt;
====Testing the submission locally before committing====&lt;br /&gt;
&lt;br /&gt;
If you want to be really thorough - or paranoid - you should really check that the patch applies and builds on your own machine first. That takes a little more effort, because you will first need to grab the patch file, apply and test locally:&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git fetch                      # make sure up to date before pulling working copy&lt;br /&gt;
&lt;br /&gt;
Make sure that your local moonbase is up-to-date before you try dealing with the patch:&lt;br /&gt;
&lt;br /&gt;
  satellite$  cd moonbase.git&lt;br /&gt;
  satellite$  git pull&lt;br /&gt;
  satellite$  git checkout -b testing master&lt;br /&gt;
&lt;br /&gt;
and then use the method of your choice to grab the patch and apply it:&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 1&lt;br /&gt;
  satellite$  scp username@doppio.lunar-linux.org:/var/anonymous/submissions/submitted_module.patch /tmp&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 2&lt;br /&gt;
  satellite$  wget -q &amp;lt;nowiki&amp;gt;&amp;quot;http://foo-projects.org/~sofar/submitted_module.patch&amp;quot;&amp;lt;/nowiki&amp;gt; -O - | git am&lt;br /&gt;
&lt;br /&gt;
  satellite$  # method 3&lt;br /&gt;
  satellite$  # browse to &amp;quot;http://foo-projects.org/~sofar/queue.php&amp;quot;&lt;br /&gt;
  satellite$  # right click on patch and &amp;quot;save link as&amp;quot; /tmp/submitted_module.patch&lt;br /&gt;
  satellite$  git am /tmp/submitted_module.patch&lt;br /&gt;
&lt;br /&gt;
  satellite$  # check '''lin submitted_module''' works as expected&lt;br /&gt;
&lt;br /&gt;
At this point, if you want the submitter to get a feel-good &amp;quot;Your patch was accepted&amp;quot; message:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
&lt;br /&gt;
  doppio$     # use '''git''' and '''review''' as described earlier&lt;br /&gt;
&lt;br /&gt;
Otherwise, just continue with the usual git workflow:&lt;br /&gt;
&lt;br /&gt;
  satellite$  git checkout master&lt;br /&gt;
  satellite$  git merge testing&lt;br /&gt;
  satellite$  git branch -D testing&lt;br /&gt;
  satellite$  git push&lt;br /&gt;
&lt;br /&gt;
  doppio$  cd moonbase.git&lt;br /&gt;
  doppio$  git merge satellite/testing    # see '''git config''' tip earlier&lt;br /&gt;
  doppio$  git push /var/git/lunar/moonbase.git master&lt;br /&gt;
  doppio$  review                         # patch already applied, so use '''review''' thank option&lt;br /&gt;
&lt;br /&gt;
As mentioned earlier, run '''git status''', tidy up if required, and run '''git pull''' again.&lt;br /&gt;
&lt;br /&gt;
===Is there a better way?===&lt;br /&gt;
&lt;br /&gt;
I'm an apprentice rather than a wizard level developer, and I've just about understood git-101, but diagnosing git problems makes my head hurt.&lt;br /&gt;
&lt;br /&gt;
So if you can see a better way of doing things, please add a section at the bottom and describe your workflow.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5</id>
		<title>Lunar Linux:Installation/1.6.5</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5"/>
				<updated>2010-11-27T15:25:31Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Upgrade Moonbase */  - edited known problems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is a revolutionary Linux distribution in that it is not binary based, as are most distributions, but is instead built entirely by compiling source code, using your own custom optimizations. &lt;br /&gt;
&lt;br /&gt;
Essentially, it installs a complete bootstrap development system on your machine, and then you tell the Lunar package manager what tools you want, and it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward your specific needs.&lt;br /&gt;
&lt;br /&gt;
The result is a leaner, meaner, refreshingly uncluttered, and strikingly faster operating system than most Linux distributions.&lt;br /&gt;
&lt;br /&gt;
This installation guide is designed to get you through the installation process as painlessly as possible. It assumes that you have some experience with Linux or another Unix variant, and have a general idea of what you are doing. If you are unfamiliar with such things as partitions, or have never used Linux before, Lunar may not be the best introduction for you into the world of open source. There are always Lunar gods available on irc.freenode.net in the #lunar channel to answer any questions that this manual may not make quite clear enough.&lt;br /&gt;
&lt;br /&gt;
With that said, we hope you enjoy using Lunar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About this installation manual==&lt;br /&gt;
&lt;br /&gt;
Although this manual is not intended to be a full and complete overview of any situation you may be confronted with, given the wide diversity of hardware available these days, it is intended to be an introduction to the world of Lunar Linux. You will see examples that are not tailored towards your to-be built server or workstation, optimizations that are overly broad or too specific, and examples that don't apply to any real situations. We tried hard to give you the idea of how much power you have over how you can setup your system, but we are forgetting to tell you how to run your own server or desktop (or other system) at all. That means that the examples and steps taken most probably do not apply to your situation at all.&lt;br /&gt;
	&lt;br /&gt;
Do not despair: if you understand what is going on and you get the idea, the installer will allow you to do pretty much everything you want to do with your system. There are really (almost) no limits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting the ISO==&lt;br /&gt;
&lt;br /&gt;
The primary site for retrieving the ISO is [http://www.lunar-linux.org/ lunar-linux.org]. There, you will find links to our US, EU, and Internet2 mirrors, as well as a Bittorrent link. As of this writing, the current version of the Lunar ISO is version 1.6.5-rc1, codename Mare Ingenii (20100709). (''Check the main site for the actual latest version!'')&lt;br /&gt;
&lt;br /&gt;
Locate and retrieve the file lunar-1.6.5-rc1-i686.iso.bz2 (or lunar-1.6.5-rc1-x86_64.iso.bz2 if you have a 64-bit system). After downloading this file, you will need to unpack the ISO using bzip2. Windows users will need a program that can extract bzip2 archives, like WinZip (also capable of extracting bzip2 archives under windows are IZarc, Winrar, powerarchiver and 7-Zip). Mac should unzip the file by itself. Then all that is left to do is use your favorite program to burn the ISO to a cdrom and begin the installation. Lunar can also be installed without using a CD. If you need to do it this way, our [[FAQ]] provides simple instructions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO and Lunar use udev for device management. The devfs system, and the &amp;quot;old-school&amp;quot; method of manually installing devices, are no longer supported.&lt;br /&gt;
&lt;br /&gt;
We are assuming the you are installing Lunar as your primary OS. Make sure you have a backup of any important data that you need to retain. The Lunar Linux Project and its developers are not responsible in any way for any loss of data on your system!&lt;br /&gt;
&lt;br /&gt;
==Booting the ISO==&lt;br /&gt;
&lt;br /&gt;
Upon booting the ISO, the first thing you will see are options for booting the ISO kernel, or for performing RAM tests [Note: MemTest is not available on x86_64]. There is even a safe mode which will disable DMA, MTRR, RAID, LVM, USB keyboards, NTFS, HPFS, Advanced Partitions, and Firewire. Most folks, however, will be just fine pressing enter at the boot prompt and loading the default kernel.&lt;br /&gt;
&lt;br /&gt;
To boot the iso with support for your usb keyboard:&lt;br /&gt;
''linux uhci-hcd ehci-hcd''&lt;br /&gt;
&lt;br /&gt;
After loading the kernel, the first screen presents you with a few options. If there are extra modules you need to load in order continue with the install, they can be loaded here. There is also a shell option. However, if you are using this ISO for rescue purposes, you do not want to shell out here; rather continue booting and shell out in the next section. Most people will select &amp;quot;continue booting&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO tries to autodetect some hardware (mostly scsi drivers and network interfaces) during this stage. This will help you establish a network connection if you desire so during installation. For this reason the programs 'dhcpcd' and 'ftp' are already available at this stage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Consoles==&lt;br /&gt;
&lt;br /&gt;
Once the ISO has booted into the installer, you can immediately shell out or switch to one of the other virtual consoles. These will have ready to go root shells and are available throughout the installer sequence. With these you can start rescue actions, setup networking or double check the install progress and make manual adjustments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Language and keyboard interface Settings==&lt;br /&gt;
&lt;br /&gt;
After reading the introduction, you will be presented with options for choosing the proper font, keymap, and language for your install.&lt;br /&gt;
You will also need to choose an editor, as you are going to need one later on in the installation for setting up your lilo or grub configuration. The choices available are e3, [e3/emacs], joe, nano, vi, and zile. If you have never used a text editor in Linux before, nano is the best choice for you. If you skip the Native Language Support option, the system will install the default editor, nano, for you. When you have finished setting up your options, press cancel to return to the main setup menu.&lt;br /&gt;
Less important for most people is the ability to choose the console font, although it may help display some non-English characters. Most people will want to set the system-default language variable and editor though. All these values are unset by default, so make sure you set them now.&lt;br /&gt;
The keymap table allows people to use azerty and dvorak keyboards, and much more. This is especially required for non-English keyboards which provide many accented characters.&lt;br /&gt;
All these language and keymap settings might not apply to the lunar code itself, which (currently) does not have any international support, but most programs that run during the installer sequence, and after booting into your new system, will be affected properly.&lt;br /&gt;
&lt;br /&gt;
Warning: the keymap entry appears to default to ANSI-dvorak so make sure that you really select what you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating or editing Partitions==&lt;br /&gt;
&lt;br /&gt;
The next step is to set up partitions on your hard drive. Upon selecting the &amp;quot;Partition Drive&amp;quot; option, you will be shown a list of all the discs the kernel has detected. For this guide, we will assume that you have one hard drive connected via an IDE channel, which will show up in the menu as &amp;quot;disc0&amp;quot;. After selecting the disc to partition, you are given the option of using one of three partitioning programs. They are:&lt;br /&gt;
&lt;br /&gt;
* cfdisk -- A menu driven partitioner, and very easy to use. If you are unfamiliar with various partitioning programs, this is the best option for you.&lt;br /&gt;
* fdisk -- Text based partitioner that requires a little more know-how than cfdisk. More experienced users will probably use this program. However new users should not be daunted, as it does have help offered at every step.&lt;br /&gt;
* parted -- Text based partitioner that is good for advanced users. Parted is excellent for resizing current partitions on your hard disk, however be forewarned that resizing partitions is an excellent way to hose your entire disc.&lt;br /&gt;
&lt;br /&gt;
Note: under the &amp;amp;lt;Settings&amp;amp;gt; option on the main menu there is an option to configure the fstab mount style as DEV, LABEL or UUID. The first is the traditional Linux method, but can sometimes give problems if a kernel update causes the disk to be renamed. The default is UUID, which uses a unique marker on the partition to avoid this problem.&lt;br /&gt;
&lt;br /&gt;
For our example, we have a 40GB IDE drive and we'll set up six partitions; /, /boot, /home, /usr, /var, and a swap partition. It's a good idea to keep certain directories, such as /var and /usr on separate partitions, as this can save you a lot of headache in the future in case your disk ever completely fails on you and you need to recover data (God forbid!). Also, when you have a separate /boot partition as we have in our example, you need to have your partitioning program mark that partition as active or bootable. In our example, if we were using fdisk, you would press &amp;quot;a&amp;quot; at the command line, and then select part1 as the active partition.&lt;br /&gt;
&lt;br /&gt;
You might also want to install a /tmp partition. By default, Lunar will create a tempfs filesystem mounted on /tmp (tempfs minimizes filesystem fragmentation because it resides in volatile memory). This can be a good choice if you have a lot of memory on your machine. If memory is tight, we recommend creating a /tmp partition to minimize filesystem fragmentation.&lt;br /&gt;
&lt;br /&gt;
It is important to note that you &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''can not''&amp;lt;/span&amp;gt; mount the directories /etc, /bin, /sbin, /dev, /lib and /proc on separate partitions. These directories need to be contained within the root (&amp;quot;/&amp;quot;) directory. The installation program should block you from doing this, but it's best not to try.&lt;br /&gt;
&lt;br /&gt;
Here's our partition setup:&lt;br /&gt;
&lt;br /&gt;
  1 /boot 100MB&lt;br /&gt;
  2 / 4GB&lt;br /&gt;
  3 swap 1GB&lt;br /&gt;
  5 /usr 10GB&lt;br /&gt;
  6 /var 10GB&lt;br /&gt;
  7 /home 15GB&lt;br /&gt;
&lt;br /&gt;
(''If you're wondering about this choice of partitions: it's really just an example. Read the [[FAQ#So_how_should_I_partition_my_disk.3F|FAQ]] on what makes sense in the real world''))&lt;br /&gt;
&lt;br /&gt;
You'll notice that there is no fourth partition in our list above. In order for you to have more than four partitions on a single drive, the fourth partition is made into what is known as an extended or logical partition in which the fifth, sixth, and seventh (etc, etc) partitions reside. For our example above, if we were using fdisk, we would make the fourth partition an extended/logical partition that was 35GB, and then the fifth, sixth, and seventh partitions in our scheme resided within it. However, if we used cfdisk, we would just worry about creating six partitions, making sure that the first three are the primary type, and the last three logical.&lt;br /&gt;
&lt;br /&gt;
Note that the names and mount points for these partitions will be assigned during the next step of this process, when you mount the partitions. Write down exactly what partitions you are planning to create because it can otherwise get confusing!&lt;br /&gt;
&lt;br /&gt;
Lunar offers two choices when it comes to swap. You can set up a swap partition, as we have in our example, or you can set up a swapfile in the root directory. We recommend setting up a swap partition, as you will get better performance with it than with the swapfile. However, there may be a need for you to set up the swapfile instead, which can be setup and activated after you have mounted your other partitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Partitions and Filesystems==&lt;br /&gt;
&lt;br /&gt;
After creating your partitions, you need to select them and assign file systems. Select the menu option &amp;quot;Select Filesystems&amp;quot; and verify that you are indeed done creating partitions.&lt;br /&gt;
&lt;br /&gt;
The partitions can be selected in random order with the new installer. First select the partition and then assign a filesystem and mountpoint to it. The installer will add this to the job queue and formatting and mounting takes place later so you can edit your selection. Here's a list of filesystems that are currently supported:&lt;br /&gt;
&lt;br /&gt;
* ''ext4'' (Fourth Extended File System) -- Version 4 of the Extended File System, which was ... TO BE COMPLETED.&lt;br /&gt;
* ''ext3'' (Third Extended File System) -- Version 3 of the Extended File System, which is essentially just the journaled version of ext2. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''ext2'' (Second Extended File System) -- Version 2 of the Extended File System, which was designed for linux as a replacement for the Minix Filesystem. Ext2 is not a journaled filesystem, which means that you'll need to perform disc recovery operations after a power failure or other such system crash. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''reiserfs'' (Reiser Filesystem) -- Journaled filesystem created by Hans Reiser that is excellent for use with extremely small files. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''xfs'' -- Created by SGI for IRIX, SGI's brand of Unix, and later ported to linux under the GPL. A journaled filesystem that SGI claims is better than any other at handling extremely large files and sparse files. This filesystem is only available with the lunar or grsec patched kernels, which we will come to in a few steps.&lt;br /&gt;
* ''jfs'' (Journaled File System) -- Created by IBM for AIX, IBM's brand of Unix, and later ported to linux by IBM under the GPL. A journaled filesystem that is very good at handling high throughput issues. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''swap'' Swap (Virtual memory or paging filesystem) for swap partitions only!&lt;br /&gt;
&lt;br /&gt;
After selecting the filesystem type you wish to use, you will be prompted through a series of steps to initialize the partition. You'll notice that the prompts are quite redundant in nature in order to be absolutely positive that you will not inadvertantly erase crucial data that you might have on a working filesystem. In addition, if you have more than four partitions, as we do in our example, you don't want to select any file systems on the fourth partition, as it is the extended partition that houses the fifth, sixth (and so on) partitions. (The installer will try to detect this and skip the extended partition from the list).&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, there is an option in the installation process to set up a swap file in the root partition instead of a swap partition as we have done in our example. The next option after selecting your filesystems is to select a swapfile if you so desire. &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''If you have set up a swap partition already, as we have done, you can skip this step.''&amp;lt;/span&amp;gt; Otherwise, you can set up your swap file here, and the only thing you need to tell the installer is how large you want the file to be. Running without swap completely is also possible of course.&lt;br /&gt;
&lt;br /&gt;
'''Please note during this step, no modifications are made to your filesystem!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar==&lt;br /&gt;
&lt;br /&gt;
Next, we need to ''format'' your partitions, ''mount'' them in the right place, create ''swap'' and transfer the entire Lunar system to the partitions that you now have created. This happens all in one single step.&lt;br /&gt;
&lt;br /&gt;
Select ''Install Lunar'', and the system will proceed to transfer all of the necessary files for you. The installer will display progress as packages are transferred to your system and you'll have some idea how long it will take. On normal machines, this should take about 5 minutes.&lt;br /&gt;
&lt;br /&gt;
At the end of this step, the installer sets various system parameters like language, timezone and vital package configuration files in order for your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting Up Your Compiler Optimizations==&lt;br /&gt;
&lt;br /&gt;
The compiler optimizations is a crucial step, since what you choose will make your system fly! However, it is important that you do not overdo it on you optimization settings, as certain selections can, in some instances, break code while compiling.&lt;br /&gt;
&lt;br /&gt;
The first step is to choose your preferred compiler. There is only one version on the 1.6.5 ISO, so the only option here is GCC 4.4. However, once the main system installation is complete, it is possible to install GCC 3.x -- and even the deprecated GCC 2.x! If you don't intend to install those, you should go to the GCC_4_4 submenu now and set GCC 4.4 as the default compiler. &lt;br /&gt;
&lt;br /&gt;
The GCC_4_4 menu also allows you to change other options:&lt;br /&gt;
&lt;br /&gt;
* ''safe'' : allows you to turn off optimization safety, so you should leave this well alone unless you really know what you are doing. Turning this off will result in many more options appearing than are described below.&lt;br /&gt;
* ''bopt'' : allows you to change the base compile-time optimization. Your choice depends on what your needs are. Most folks will want to use -O2 here, as it is the wisest choice. More advanced users may want to use the -O3 option, but it's not for everyone. If you're short on disk space, you would take the -Os Small option. (As an example, we used -Os for the ISO since we were working within a confined amount of disc space.) Those of you with older or slower systems that wouldn't be able to take advantage of faster optimizations may choose a more conservative setting like -O1. For our example system, we will choose -O2.&lt;br /&gt;
* ''cpu'' : allows you to set your processor type. This may seem unimportant, but the GCC 4.x [and GCC 3.x] compiler has ways of optimizing code for certain processors&lt;br /&gt;
* ''cc_opt'' : allows you to set some limited C/C++ compiler settings. Very few people, if any, would need to turn off the -pipe option.&lt;br /&gt;
&lt;br /&gt;
The unsafe optimizations are:&lt;br /&gt;
* ''xtra'' : CPU extensions&lt;br /&gt;
* ''spd'' : Specialized optimizations&lt;br /&gt;
* ''fpm'' : Floating point optimizations&lt;br /&gt;
* ''stack'' : Stack optimizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding Other Compiler Toolchain Optimizations==&lt;br /&gt;
&lt;br /&gt;
'''You can safely SKIP this entire step!'''&lt;br /&gt;
&lt;br /&gt;
The GNU_LD menu shows the screen for linker options, where you will find that &amp;quot;-s Strip&amp;quot; has already been checked off. Very few people will want to uncheck this option, so we will leave this screen as is.&lt;br /&gt;
&lt;br /&gt;
The GNU_MAKE menu allows you to set the number of concurrent makes. As the hint mentions on the &amp;quot;Concurrent Makes&amp;quot; screen, you'll want to enter in the number of cpu's your machine has. Unless you have a machine with more than one processor, you'll want to leave this field blank.&lt;br /&gt;
&lt;br /&gt;
We are now finished setting up our GCC optimizations! When you have you lunar system up and running, you can always change and tweak these GCC settings by typing &amp;quot;lunar&amp;quot; at the commandline prompt, and going to &amp;quot;Optimization Settings&amp;quot;. In addition, if you aren't that familiar with what your processor is capable of using for optimizations, you can go to the shell out option on the ISO and type&lt;br /&gt;
&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
at the prompt and the system will show you all the optimizations that the processor reports it can handle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuring Your Bootloader==&lt;br /&gt;
&lt;br /&gt;
=== Configuring LILO ===&lt;br /&gt;
&lt;br /&gt;
If you chose to use lilo and also said yes to automatically configuring and running lilo, then most of the work is done for you. If you chose not to hand edit lilo.conf, however, be warned that the default configuration has the system set up to be password protected on boot. You can change this by selecting the option from the menu &amp;quot;Reconfigure LILO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To turn off password protection, you will need to comment out (with the symbol &amp;quot;#&amp;quot;) or delete two lines in your lilo.conf file. The first is &amp;quot;password=lunar&amp;quot;, which is found in the top section of the file, and the other is &amp;quot;restricted&amp;quot; which is found right below the name of your kernel in the second section.&lt;br /&gt;
&lt;br /&gt;
The other item of note is whether you want lilo to reside in your MBR (Master Boot Record) or on the first sector of your /boot partition. The line in your lilo.conf file to edit for this purpose is&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda1&lt;br /&gt;
&lt;br /&gt;
To make lilo get installed on the first sector of your /boot partition, you would leave this line as it is. If you want lilo to be written to your MBR, which is the recommended method, you would change the line to read&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda&lt;br /&gt;
&lt;br /&gt;
Of course, these examples are pertinent to our setup that we have been using thoughout this manual. Your actual lilo.conf file may be different.&lt;br /&gt;
&lt;br /&gt;
=== Configuring GRUB ===&lt;br /&gt;
&lt;br /&gt;
If you chose grub as your bootloader, you will need to set up the configuration file entirely on your own. An example would be:&lt;br /&gt;
&lt;br /&gt;
  default 0&lt;br /&gt;
  timeout 30&lt;br /&gt;
  color white/blue white/black&lt;br /&gt;
  title linux-2.4.25&lt;br /&gt;
  root (hd0,0)&lt;br /&gt;
  kernel /vmlinubz-2.4.25-r5.0.0 root=/dev/sda2 devfs=nomount&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier in the partitioning section, you would want to mark your /boot partition as active. With grub it is ''imperative'' that you mark your /boot partition as active, otherwise grub will not work at all when you are finished with the installation and reboot to your new system.&lt;br /&gt;
&lt;br /&gt;
NOTE: The option to install grub is not available on the 1.6.5-rc1-x86_64 ISO because grub is not yet fully stable on 64-bit systems. If you really know what you are doing, the source tarball is saved to disk, so you can configure it manually once the main installation is complete.&lt;br /&gt;
==Installing kernels==&lt;br /&gt;
&lt;br /&gt;
===Installing a precompiled kernel===&lt;br /&gt;
&lt;br /&gt;
The ISO comes with a selection of precompiled kernels and modules that should work for most people. If you have problems getting your kernel to compile, install or getting the right drivers, or just want to get a quick start at lunar, we ''suggest'' that you use this option instead of compiling your own kernel. You can later of course compile as many kernels as you want, and indeed the first ''lunar update'' after the main installation might ask whether you want to update the kernel too. Why do it twice if you don't need to?&lt;br /&gt;
&lt;br /&gt;
There are several kernels for you to choose from. They are:&lt;br /&gt;
&lt;br /&gt;
* ''2.6.34.1'' -- Normal kernel (SMP, 4GB memory max) (RECOMMENDED). &lt;br /&gt;
* ''2.6.34.1-safe'' -- Very safe non-optimized minimal kernel (no ACPI, DMA, SMP, 1GB).&lt;br /&gt;
* ''2.6.34.1-server'' -- Server optimized (SELINUX, SMP, 64GB, no preempt).&lt;br /&gt;
&lt;br /&gt;
===Building Your Customized Linux Kernel===&lt;br /&gt;
&lt;br /&gt;
We have now come to the most important part of the installation; the configuration of the kernel. The kernel is the heart of Linux, and without it, nothing would work. Configuration is, actually, a rather simple process. All you need to remember is to not panic, and that lunar is going to do most of the work for you. Here are a few pointers that will make the configuration a breeze for you.&lt;br /&gt;
&lt;br /&gt;
* Help is a click away! The people working on creating and maintaining the Linux kernel have help placed throughout the entire configuration process. If you're not sure what something does, just look at the help file for whatever item you're on, and it will almost certainly explain what it is and what it does. The most handy thing is that every help file will suggest whether you should really use the item or not. Many help files end with &amp;quot;If you're not sure, it is safe to say N here&amp;quot;, thus letting you know that it is safe to leave that particular item out of the kernel.&lt;br /&gt;
* You can use the ISO kernel! The configuration used to make the kernel for the ISO is the same configuration you'll see when you start your kernel customization. If you leave the configuration the way it is, the only thing you truly have to worry about is your network and, if you want it, sound. There are also two additional default configurations available on the ISO that are available to you called &amp;quot;config.safe&amp;quot; and &amp;quot;config.server&amp;quot;. We'll show you how to load these configurations in just a little bit. [TODO: check these files]&lt;br /&gt;
* Never build filesystems or core components as modules! Make sure that whatever filesystems you decided to use for your partitions earlier are built into the kernel, and are not separate modules. Likewise, make sure that certain crucial things like ide and scsi drivers are not modules, as this will make your machine unbootable. (This rule doesn't apply to the scsi low level drivers though; they can be modules.) Modules are kernel drivers that can be manually activated and deactivated after the system has been booted, but not during boot time. The kernel from the ISO already has all the filesystems available during the installation built into the kernel, so if you don't change anything there, you will be fine.&lt;br /&gt;
&lt;br /&gt;
You will be shown two screens of information before you actually begin you kernel configuration, letting you know that you are going to need a few things built into the kernel in order to have Lunar run properly, and what options you have for boot loaders. Lunar comes with both lilo (LInux LOader) and grub (GRand Unified Bootloader).&lt;br /&gt;
&lt;br /&gt;
If you don't have much experience with bootloaders, we suggest using lilo for now, as the installation program will set up the configuration file for you. If you would prefer to use grub, and we encourage folks to learn how to use it, be forewarned that the installation program does not set up any configuration at all for you.&lt;br /&gt;
&lt;br /&gt;
[On the 1.6.5-rc1-x86_64 ISO] There is only one kernel available for you to choose from:&lt;br /&gt;
&lt;br /&gt;
* ''linux-2.6.'' -- Latest 2.6 kernel with minor patchlevel patches (2.6.x.Y)&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use linux-2.6. &lt;br /&gt;
&lt;br /&gt;
Before you begin is which type of configuration method you would like to use.&lt;br /&gt;
&lt;br /&gt;
* ''config'' -- The original way to configure the linux kernel. It is completely text based, and assumes you know what everything is. Unless you've been using linux since its inception, you probably don't want to use this method.&lt;br /&gt;
* ''menuconfig'' -- As the name implies, a menu driven version of the kernel configuration. This is the easiest, and by far the most popular way of configurating your kernel.&lt;br /&gt;
* ''xconfig'' -- If you have an X server running, you can use this option to configure your kernel using a nifty GUI interface. You won't be able to use this on the ISO, but once your system is up and running with X, you can use this option. If you do choose this option while installing from the ISO, the system will fall back to next available configuration method, in this case menuconfig, so there is no harm in selecting it if you do.&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use menuconfig. Once Lunar is finished applying the patches for the kernel, which can take a minute or two, you'll be brought to the configuration screen for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, the configuration that was used to build the kernel for the ISO is the same configuration that you'll be presented with when you start. However, as we also mentioned earlier, there are two alternate kernel configurations available to you that you may want to use; config.safe and config.server. Both of these configurations can be found on the ISO, along with the original default config file, in /etc/lunar/local. When you are looking at the kernel menuconfig main page, scroll all the way to bottom, and you will find an option called &amp;quot;Load an Alternate Configuration File&amp;quot;. Select this and then give the absolute path to the alternate configuration file, i.e. /etc/lunar/local/.config.server. As with all kernel configuration files, they are hidden files preceded with a &amp;quot;.&amp;quot;, so make sure to not forget it.&lt;br /&gt;
&lt;br /&gt;
Once you have completed configuring your kernel, you'll get one more prompt from the installer asking if you want to go back to the configuration in case you exited by mistake or forgot something. If everything is good to go, say no here and sit back for a few minutes while your kernel compiles.&lt;br /&gt;
&lt;br /&gt;
==Setting Up Networking==&lt;br /&gt;
&lt;br /&gt;
The final step is to set up networking. When you select the &amp;quot;Set Up Networking&amp;quot; option, you'll be prompted by a series of questions as to what kind of card you have (only needed if you built your networking device as a module, and not part of the kernel), if you need to set up wireless or not, and whether you'll need to use dhcp or not. You should be familiar enough with your network to set this up on your own, as the questions put to you are very straightforward.&lt;br /&gt;
&lt;br /&gt;
* if you use dhcp, you don't need to set up the default gateway or DNS because dhcp will take care of them for you.&lt;br /&gt;
* you are using a wireless connection with wpa_supplicant, you might want to run &amp;quot;wpa_passphrase&amp;quot; to set up a simple /etc/wpa_supplicant.conf rather than try to edit the example file.&lt;br /&gt;
&lt;br /&gt;
==Other settings==&lt;br /&gt;
&lt;br /&gt;
The installer will prompt you now for some more settings. You should set a root password and generate ssh host keys to identify your box uniquely for later. You might also want to administrate services on the newly installed machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reboot!==&lt;br /&gt;
&lt;br /&gt;
Once you have completed setting up your networking, you are finished installing Lunar Linux! Congratulations! Select the option &amp;quot;Done&amp;quot; and remove the cd from the drive when it ejects. Your Lunar system is now ready to go!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Moonbase==&lt;br /&gt;
&lt;br /&gt;
After the initial installation and reboot, please follow the instructions given in '''man lfirsttime''' to bring your system up-to-date.&lt;br /&gt;
&lt;br /&gt;
Congratulations! You now have a minimal system as a foundation on which to build.&lt;br /&gt;
&lt;br /&gt;
==KNOWN PROBLEMS==&lt;br /&gt;
&lt;br /&gt;
  WARNING: the pre-compiled 2.6.35.3 kernel on the ISO is now out-of-date compared to the ''linux-2.6'' module in the moonbase, but you will&lt;br /&gt;
  need to build it explicitly using '''lin linux-2.6''' because it won't be rebuilt as part of the first '''lunar update'''. If you didn't&lt;br /&gt;
  recompile the kernel as part of the ISO installation, or if you experience problems with ALSA or NVIDIA, you should run '''lin linux-2.6'''&lt;br /&gt;
  to rebuild the kernel explicitly. After you have built the kernel once, '''lunar update''' should then detect and install a newer versions&lt;br /&gt;
  of the kernel as they become available in the moonbase.&lt;br /&gt;
&lt;br /&gt;
  WARNING: the ISO installs gcc-4.4 on your system, but gcc-4.5 will be installed as part of the '''man lfirsttime''' and '''lunar update'''&lt;br /&gt;
  process. You will then need to run '''lunar''', select the '''Options / Optimize Architecture''' menu and set the gcc-4.5 options. Failure&lt;br /&gt;
  to do so may result in ''&amp;quot;configure: error: C compiler cannot create executables&amp;quot;'' messages when building modules later.&lt;br /&gt;
&lt;br /&gt;
==Where to go from here==&lt;br /&gt;
To install a desktop environment check out this page. [[Lunar_Linux:DesktopEnvironments]]&lt;br /&gt;
&lt;br /&gt;
''Have Phun!!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/copyleft/ Copyleft] 2004-2010 [http://lunar-linux.org/ The Lunar Penguin Team]&lt;br /&gt;
&lt;br /&gt;
Lunar Installation Manual and Harassment of Lunar Developers by Drew Swayze (drew AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Edits and Nitpicking by Suzanne Burns (sburns AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Initial update for the 1.6.5 ISO by Duncan Gibson (engelsman AT lunar-linux DOT org).&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5</id>
		<title>Lunar Linux:Installation/1.6.5</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5"/>
				<updated>2010-11-24T18:17:02Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Upgrade Moonbase */  - added known problems&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is a revolutionary Linux distribution in that it is not binary based, as are most distributions, but is instead built entirely by compiling source code, using your own custom optimizations. &lt;br /&gt;
&lt;br /&gt;
Essentially, it installs a complete bootstrap development system on your machine, and then you tell the Lunar package manager what tools you want, and it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward your specific needs.&lt;br /&gt;
&lt;br /&gt;
The result is a leaner, meaner, refreshingly uncluttered, and strikingly faster operating system than most Linux distributions.&lt;br /&gt;
&lt;br /&gt;
This installation guide is designed to get you through the installation process as painlessly as possible. It assumes that you have some experience with Linux or another Unix variant, and have a general idea of what you are doing. If you are unfamiliar with such things as partitions, or have never used Linux before, Lunar may not be the best introduction for you into the world of open source. There are always Lunar gods available on irc.freenode.net in the #lunar channel to answer any questions that this manual may not make quite clear enough.&lt;br /&gt;
&lt;br /&gt;
With that said, we hope you enjoy using Lunar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About this installation manual==&lt;br /&gt;
&lt;br /&gt;
Although this manual is not intended to be a full and complete overview of any situation you may be confronted with, given the wide diversity of hardware available these days, it is intended to be an introduction to the world of Lunar Linux. You will see examples that are not tailored towards your to-be built server or workstation, optimizations that are overly broad or too specific, and examples that don't apply to any real situations. We tried hard to give you the idea of how much power you have over how you can setup your system, but we are forgetting to tell you how to run your own server or desktop (or other system) at all. That means that the examples and steps taken most probably do not apply to your situation at all.&lt;br /&gt;
	&lt;br /&gt;
Do not despair: if you understand what is going on and you get the idea, the installer will allow you to do pretty much everything you want to do with your system. There are really (almost) no limits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting the ISO==&lt;br /&gt;
&lt;br /&gt;
The primary site for retrieving the ISO is [http://www.lunar-linux.org/ lunar-linux.org]. There, you will find links to our US, EU, and Internet2 mirrors, as well as a Bittorrent link. As of this writing, the current version of the Lunar ISO is version 1.6.5-rc1, codename Mare Ingenii (20100709). (''Check the main site for the actual latest version!'')&lt;br /&gt;
&lt;br /&gt;
Locate and retrieve the file lunar-1.6.5-rc1-i686.iso.bz2 (or lunar-1.6.5-rc1-x86_64.iso.bz2 if you have a 64-bit system). After downloading this file, you will need to unpack the ISO using bzip2. Windows users will need a program that can extract bzip2 archives, like WinZip (also capable of extracting bzip2 archives under windows are IZarc, Winrar, powerarchiver and 7-Zip). Mac should unzip the file by itself. Then all that is left to do is use your favorite program to burn the ISO to a cdrom and begin the installation. Lunar can also be installed without using a CD. If you need to do it this way, our [[FAQ]] provides simple instructions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO and Lunar use udev for device management. The devfs system, and the &amp;quot;old-school&amp;quot; method of manually installing devices, are no longer supported.&lt;br /&gt;
&lt;br /&gt;
We are assuming the you are installing Lunar as your primary OS. Make sure you have a backup of any important data that you need to retain. The Lunar Linux Project and its developers are not responsible in any way for any loss of data on your system!&lt;br /&gt;
&lt;br /&gt;
==Booting the ISO==&lt;br /&gt;
&lt;br /&gt;
Upon booting the ISO, the first thing you will see are options for booting the ISO kernel, or for performing RAM tests [Note: MemTest is not available on x86_64]. There is even a safe mode which will disable DMA, MTRR, RAID, LVM, USB keyboards, NTFS, HPFS, Advanced Partitions, and Firewire. Most folks, however, will be just fine pressing enter at the boot prompt and loading the default kernel.&lt;br /&gt;
&lt;br /&gt;
To boot the iso with support for your usb keyboard:&lt;br /&gt;
''linux uhci-hcd ehci-hcd''&lt;br /&gt;
&lt;br /&gt;
After loading the kernel, the first screen presents you with a few options. If there are extra modules you need to load in order continue with the install, they can be loaded here. There is also a shell option. However, if you are using this ISO for rescue purposes, you do not want to shell out here; rather continue booting and shell out in the next section. Most people will select &amp;quot;continue booting&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO tries to autodetect some hardware (mostly scsi drivers and network interfaces) during this stage. This will help you establish a network connection if you desire so during installation. For this reason the programs 'dhcpcd' and 'ftp' are already available at this stage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Consoles==&lt;br /&gt;
&lt;br /&gt;
Once the ISO has booted into the installer, you can immediately shell out or switch to one of the other virtual consoles. These will have ready to go root shells and are available throughout the installer sequence. With these you can start rescue actions, setup networking or double check the install progress and make manual adjustments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Language and keyboard interface Settings==&lt;br /&gt;
&lt;br /&gt;
After reading the introduction, you will be presented with options for choosing the proper font, keymap, and language for your install.&lt;br /&gt;
You will also need to choose an editor, as you are going to need one later on in the installation for setting up your lilo or grub configuration. The choices available are e3, [e3/emacs], joe, nano, vi, and zile. If you have never used a text editor in Linux before, nano is the best choice for you. If you skip the Native Language Support option, the system will install the default editor, nano, for you. When you have finished setting up your options, press cancel to return to the main setup menu.&lt;br /&gt;
Less important for most people is the ability to choose the console font, although it may help display some non-English characters. Most people will want to set the system-default language variable and editor though. All these values are unset by default, so make sure you set them now.&lt;br /&gt;
The keymap table allows people to use azerty and dvorak keyboards, and much more. This is especially required for non-English keyboards which provide many accented characters.&lt;br /&gt;
All these language and keymap settings might not apply to the lunar code itself, which (currently) does not have any international support, but most programs that run during the installer sequence, and after booting into your new system, will be affected properly.&lt;br /&gt;
&lt;br /&gt;
Warning: the keymap entry appears to default to ANSI-dvorak so make sure that you really select what you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating or editing Partitions==&lt;br /&gt;
&lt;br /&gt;
The next step is to set up partitions on your hard drive. Upon selecting the &amp;quot;Partition Drive&amp;quot; option, you will be shown a list of all the discs the kernel has detected. For this guide, we will assume that you have one hard drive connected via an IDE channel, which will show up in the menu as &amp;quot;disc0&amp;quot;. After selecting the disc to partition, you are given the option of using one of three partitioning programs. They are:&lt;br /&gt;
&lt;br /&gt;
* cfdisk -- A menu driven partitioner, and very easy to use. If you are unfamiliar with various partitioning programs, this is the best option for you.&lt;br /&gt;
* fdisk -- Text based partitioner that requires a little more know-how than cfdisk. More experienced users will probably use this program. However new users should not be daunted, as it does have help offered at every step.&lt;br /&gt;
* parted -- Text based partitioner that is good for advanced users. Parted is excellent for resizing current partitions on your hard disk, however be forewarned that resizing partitions is an excellent way to hose your entire disc.&lt;br /&gt;
&lt;br /&gt;
Note: under the &amp;amp;lt;Settings&amp;amp;gt; option on the main menu there is an option to configure the fstab mount style as DEV, LABEL or UUID. The first is the traditional Linux method, but can sometimes give problems if a kernel update causes the disk to be renamed. The default is UUID, which uses a unique marker on the partition to avoid this problem.&lt;br /&gt;
&lt;br /&gt;
For our example, we have a 40GB IDE drive and we'll set up six partitions; /, /boot, /home, /usr, /var, and a swap partition. It's a good idea to keep certain directories, such as /var and /usr on separate partitions, as this can save you a lot of headache in the future in case your disk ever completely fails on you and you need to recover data (God forbid!). Also, when you have a separate /boot partition as we have in our example, you need to have your partitioning program mark that partition as active or bootable. In our example, if we were using fdisk, you would press &amp;quot;a&amp;quot; at the command line, and then select part1 as the active partition.&lt;br /&gt;
&lt;br /&gt;
You might also want to install a /tmp partition. By default, Lunar will create a tempfs filesystem mounted on /tmp (tempfs minimizes filesystem fragmentation because it resides in volatile memory). This can be a good choice if you have a lot of memory on your machine. If memory is tight, we recommend creating a /tmp partition to minimize filesystem fragmentation.&lt;br /&gt;
&lt;br /&gt;
It is important to note that you &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''can not''&amp;lt;/span&amp;gt; mount the directories /etc, /bin, /sbin, /dev, /lib and /proc on separate partitions. These directories need to be contained within the root (&amp;quot;/&amp;quot;) directory. The installation program should block you from doing this, but it's best not to try.&lt;br /&gt;
&lt;br /&gt;
Here's our partition setup:&lt;br /&gt;
&lt;br /&gt;
  1 /boot 100MB&lt;br /&gt;
  2 / 4GB&lt;br /&gt;
  3 swap 1GB&lt;br /&gt;
  5 /usr 10GB&lt;br /&gt;
  6 /var 10GB&lt;br /&gt;
  7 /home 15GB&lt;br /&gt;
&lt;br /&gt;
(''If you're wondering about this choice of partitions: it's really just an example. Read the [[FAQ#So_how_should_I_partition_my_disk.3F|FAQ]] on what makes sense in the real world''))&lt;br /&gt;
&lt;br /&gt;
You'll notice that there is no fourth partition in our list above. In order for you to have more than four partitions on a single drive, the fourth partition is made into what is known as an extended or logical partition in which the fifth, sixth, and seventh (etc, etc) partitions reside. For our example above, if we were using fdisk, we would make the fourth partition an extended/logical partition that was 35GB, and then the fifth, sixth, and seventh partitions in our scheme resided within it. However, if we used cfdisk, we would just worry about creating six partitions, making sure that the first three are the primary type, and the last three logical.&lt;br /&gt;
&lt;br /&gt;
Note that the names and mount points for these partitions will be assigned during the next step of this process, when you mount the partitions. Write down exactly what partitions you are planning to create because it can otherwise get confusing!&lt;br /&gt;
&lt;br /&gt;
Lunar offers two choices when it comes to swap. You can set up a swap partition, as we have in our example, or you can set up a swapfile in the root directory. We recommend setting up a swap partition, as you will get better performance with it than with the swapfile. However, there may be a need for you to set up the swapfile instead, which can be setup and activated after you have mounted your other partitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Partitions and Filesystems==&lt;br /&gt;
&lt;br /&gt;
After creating your partitions, you need to select them and assign file systems. Select the menu option &amp;quot;Select Filesystems&amp;quot; and verify that you are indeed done creating partitions.&lt;br /&gt;
&lt;br /&gt;
The partitions can be selected in random order with the new installer. First select the partition and then assign a filesystem and mountpoint to it. The installer will add this to the job queue and formatting and mounting takes place later so you can edit your selection. Here's a list of filesystems that are currently supported:&lt;br /&gt;
&lt;br /&gt;
* ''ext4'' (Fourth Extended File System) -- Version 4 of the Extended File System, which was ... TO BE COMPLETED.&lt;br /&gt;
* ''ext3'' (Third Extended File System) -- Version 3 of the Extended File System, which is essentially just the journaled version of ext2. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''ext2'' (Second Extended File System) -- Version 2 of the Extended File System, which was designed for linux as a replacement for the Minix Filesystem. Ext2 is not a journaled filesystem, which means that you'll need to perform disc recovery operations after a power failure or other such system crash. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''reiserfs'' (Reiser Filesystem) -- Journaled filesystem created by Hans Reiser that is excellent for use with extremely small files. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''xfs'' -- Created by SGI for IRIX, SGI's brand of Unix, and later ported to linux under the GPL. A journaled filesystem that SGI claims is better than any other at handling extremely large files and sparse files. This filesystem is only available with the lunar or grsec patched kernels, which we will come to in a few steps.&lt;br /&gt;
* ''jfs'' (Journaled File System) -- Created by IBM for AIX, IBM's brand of Unix, and later ported to linux by IBM under the GPL. A journaled filesystem that is very good at handling high throughput issues. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''swap'' Swap (Virtual memory or paging filesystem) for swap partitions only!&lt;br /&gt;
&lt;br /&gt;
After selecting the filesystem type you wish to use, you will be prompted through a series of steps to initialize the partition. You'll notice that the prompts are quite redundant in nature in order to be absolutely positive that you will not inadvertantly erase crucial data that you might have on a working filesystem. In addition, if you have more than four partitions, as we do in our example, you don't want to select any file systems on the fourth partition, as it is the extended partition that houses the fifth, sixth (and so on) partitions. (The installer will try to detect this and skip the extended partition from the list).&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, there is an option in the installation process to set up a swap file in the root partition instead of a swap partition as we have done in our example. The next option after selecting your filesystems is to select a swapfile if you so desire. &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''If you have set up a swap partition already, as we have done, you can skip this step.''&amp;lt;/span&amp;gt; Otherwise, you can set up your swap file here, and the only thing you need to tell the installer is how large you want the file to be. Running without swap completely is also possible of course.&lt;br /&gt;
&lt;br /&gt;
'''Please note during this step, no modifications are made to your filesystem!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar==&lt;br /&gt;
&lt;br /&gt;
Next, we need to ''format'' your partitions, ''mount'' them in the right place, create ''swap'' and transfer the entire Lunar system to the partitions that you now have created. This happens all in one single step.&lt;br /&gt;
&lt;br /&gt;
Select ''Install Lunar'', and the system will proceed to transfer all of the necessary files for you. The installer will display progress as packages are transferred to your system and you'll have some idea how long it will take. On normal machines, this should take about 5 minutes.&lt;br /&gt;
&lt;br /&gt;
At the end of this step, the installer sets various system parameters like language, timezone and vital package configuration files in order for your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting Up Your Compiler Optimizations==&lt;br /&gt;
&lt;br /&gt;
The compiler optimizations is a crucial step, since what you choose will make your system fly! However, it is important that you do not overdo it on you optimization settings, as certain selections can, in some instances, break code while compiling.&lt;br /&gt;
&lt;br /&gt;
The first step is to choose your preferred compiler. There is only one version on the 1.6.5 ISO, so the only option here is GCC 4.4. However, once the main system installation is complete, it is possible to install GCC 3.x -- and even the deprecated GCC 2.x! If you don't intend to install those, you should go to the GCC_4_4 submenu now and set GCC 4.4 as the default compiler. &lt;br /&gt;
&lt;br /&gt;
The GCC_4_4 menu also allows you to change other options:&lt;br /&gt;
&lt;br /&gt;
* ''safe'' : allows you to turn off optimization safety, so you should leave this well alone unless you really know what you are doing. Turning this off will result in many more options appearing than are described below.&lt;br /&gt;
* ''bopt'' : allows you to change the base compile-time optimization. Your choice depends on what your needs are. Most folks will want to use -O2 here, as it is the wisest choice. More advanced users may want to use the -O3 option, but it's not for everyone. If you're short on disk space, you would take the -Os Small option. (As an example, we used -Os for the ISO since we were working within a confined amount of disc space.) Those of you with older or slower systems that wouldn't be able to take advantage of faster optimizations may choose a more conservative setting like -O1. For our example system, we will choose -O2.&lt;br /&gt;
* ''cpu'' : allows you to set your processor type. This may seem unimportant, but the GCC 4.x [and GCC 3.x] compiler has ways of optimizing code for certain processors&lt;br /&gt;
* ''cc_opt'' : allows you to set some limited C/C++ compiler settings. Very few people, if any, would need to turn off the -pipe option.&lt;br /&gt;
&lt;br /&gt;
The unsafe optimizations are:&lt;br /&gt;
* ''xtra'' : CPU extensions&lt;br /&gt;
* ''spd'' : Specialized optimizations&lt;br /&gt;
* ''fpm'' : Floating point optimizations&lt;br /&gt;
* ''stack'' : Stack optimizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding Other Compiler Toolchain Optimizations==&lt;br /&gt;
&lt;br /&gt;
'''You can safely SKIP this entire step!'''&lt;br /&gt;
&lt;br /&gt;
The GNU_LD menu shows the screen for linker options, where you will find that &amp;quot;-s Strip&amp;quot; has already been checked off. Very few people will want to uncheck this option, so we will leave this screen as is.&lt;br /&gt;
&lt;br /&gt;
The GNU_MAKE menu allows you to set the number of concurrent makes. As the hint mentions on the &amp;quot;Concurrent Makes&amp;quot; screen, you'll want to enter in the number of cpu's your machine has. Unless you have a machine with more than one processor, you'll want to leave this field blank.&lt;br /&gt;
&lt;br /&gt;
We are now finished setting up our GCC optimizations! When you have you lunar system up and running, you can always change and tweak these GCC settings by typing &amp;quot;lunar&amp;quot; at the commandline prompt, and going to &amp;quot;Optimization Settings&amp;quot;. In addition, if you aren't that familiar with what your processor is capable of using for optimizations, you can go to the shell out option on the ISO and type&lt;br /&gt;
&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
at the prompt and the system will show you all the optimizations that the processor reports it can handle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuring Your Bootloader==&lt;br /&gt;
&lt;br /&gt;
=== Configuring LILO ===&lt;br /&gt;
&lt;br /&gt;
If you chose to use lilo and also said yes to automatically configuring and running lilo, then most of the work is done for you. If you chose not to hand edit lilo.conf, however, be warned that the default configuration has the system set up to be password protected on boot. You can change this by selecting the option from the menu &amp;quot;Reconfigure LILO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To turn off password protection, you will need to comment out (with the symbol &amp;quot;#&amp;quot;) or delete two lines in your lilo.conf file. The first is &amp;quot;password=lunar&amp;quot;, which is found in the top section of the file, and the other is &amp;quot;restricted&amp;quot; which is found right below the name of your kernel in the second section.&lt;br /&gt;
&lt;br /&gt;
The other item of note is whether you want lilo to reside in your MBR (Master Boot Record) or on the first sector of your /boot partition. The line in your lilo.conf file to edit for this purpose is&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda1&lt;br /&gt;
&lt;br /&gt;
To make lilo get installed on the first sector of your /boot partition, you would leave this line as it is. If you want lilo to be written to your MBR, which is the recommended method, you would change the line to read&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda&lt;br /&gt;
&lt;br /&gt;
Of course, these examples are pertinent to our setup that we have been using thoughout this manual. Your actual lilo.conf file may be different.&lt;br /&gt;
&lt;br /&gt;
=== Configuring GRUB ===&lt;br /&gt;
&lt;br /&gt;
If you chose grub as your bootloader, you will need to set up the configuration file entirely on your own. An example would be:&lt;br /&gt;
&lt;br /&gt;
  default 0&lt;br /&gt;
  timeout 30&lt;br /&gt;
  color white/blue white/black&lt;br /&gt;
  title linux-2.4.25&lt;br /&gt;
  root (hd0,0)&lt;br /&gt;
  kernel /vmlinubz-2.4.25-r5.0.0 root=/dev/sda2 devfs=nomount&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier in the partitioning section, you would want to mark your /boot partition as active. With grub it is ''imperative'' that you mark your /boot partition as active, otherwise grub will not work at all when you are finished with the installation and reboot to your new system.&lt;br /&gt;
&lt;br /&gt;
NOTE: The option to install grub is not available on the 1.6.5-rc1-x86_64 ISO because grub is not yet fully stable on 64-bit systems. If you really know what you are doing, the source tarball is saved to disk, so you can configure it manually once the main installation is complete.&lt;br /&gt;
==Installing kernels==&lt;br /&gt;
&lt;br /&gt;
===Installing a precompiled kernel===&lt;br /&gt;
&lt;br /&gt;
The ISO comes with a selection of precompiled kernels and modules that should work for most people. If you have problems getting your kernel to compile, install or getting the right drivers, or just want to get a quick start at lunar, we ''suggest'' that you use this option instead of compiling your own kernel. You can later of course compile as many kernels as you want, and indeed the first ''lunar update'' after the main installation might ask whether you want to update the kernel too. Why do it twice if you don't need to?&lt;br /&gt;
&lt;br /&gt;
There are several kernels for you to choose from. They are:&lt;br /&gt;
&lt;br /&gt;
* ''2.6.34.1'' -- Normal kernel (SMP, 4GB memory max) (RECOMMENDED). &lt;br /&gt;
* ''2.6.34.1-safe'' -- Very safe non-optimized minimal kernel (no ACPI, DMA, SMP, 1GB).&lt;br /&gt;
* ''2.6.34.1-server'' -- Server optimized (SELINUX, SMP, 64GB, no preempt).&lt;br /&gt;
&lt;br /&gt;
===Building Your Customized Linux Kernel===&lt;br /&gt;
&lt;br /&gt;
We have now come to the most important part of the installation; the configuration of the kernel. The kernel is the heart of Linux, and without it, nothing would work. Configuration is, actually, a rather simple process. All you need to remember is to not panic, and that lunar is going to do most of the work for you. Here are a few pointers that will make the configuration a breeze for you.&lt;br /&gt;
&lt;br /&gt;
* Help is a click away! The people working on creating and maintaining the Linux kernel have help placed throughout the entire configuration process. If you're not sure what something does, just look at the help file for whatever item you're on, and it will almost certainly explain what it is and what it does. The most handy thing is that every help file will suggest whether you should really use the item or not. Many help files end with &amp;quot;If you're not sure, it is safe to say N here&amp;quot;, thus letting you know that it is safe to leave that particular item out of the kernel.&lt;br /&gt;
* You can use the ISO kernel! The configuration used to make the kernel for the ISO is the same configuration you'll see when you start your kernel customization. If you leave the configuration the way it is, the only thing you truly have to worry about is your network and, if you want it, sound. There are also two additional default configurations available on the ISO that are available to you called &amp;quot;config.safe&amp;quot; and &amp;quot;config.server&amp;quot;. We'll show you how to load these configurations in just a little bit. [TODO: check these files]&lt;br /&gt;
* Never build filesystems or core components as modules! Make sure that whatever filesystems you decided to use for your partitions earlier are built into the kernel, and are not separate modules. Likewise, make sure that certain crucial things like ide and scsi drivers are not modules, as this will make your machine unbootable. (This rule doesn't apply to the scsi low level drivers though; they can be modules.) Modules are kernel drivers that can be manually activated and deactivated after the system has been booted, but not during boot time. The kernel from the ISO already has all the filesystems available during the installation built into the kernel, so if you don't change anything there, you will be fine.&lt;br /&gt;
&lt;br /&gt;
You will be shown two screens of information before you actually begin you kernel configuration, letting you know that you are going to need a few things built into the kernel in order to have Lunar run properly, and what options you have for boot loaders. Lunar comes with both lilo (LInux LOader) and grub (GRand Unified Bootloader).&lt;br /&gt;
&lt;br /&gt;
If you don't have much experience with bootloaders, we suggest using lilo for now, as the installation program will set up the configuration file for you. If you would prefer to use grub, and we encourage folks to learn how to use it, be forewarned that the installation program does not set up any configuration at all for you.&lt;br /&gt;
&lt;br /&gt;
[On the 1.6.5-rc1-x86_64 ISO] There is only one kernel available for you to choose from:&lt;br /&gt;
&lt;br /&gt;
* ''linux-2.6.'' -- Latest 2.6 kernel with minor patchlevel patches (2.6.x.Y)&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use linux-2.6. &lt;br /&gt;
&lt;br /&gt;
Before you begin is which type of configuration method you would like to use.&lt;br /&gt;
&lt;br /&gt;
* ''config'' -- The original way to configure the linux kernel. It is completely text based, and assumes you know what everything is. Unless you've been using linux since its inception, you probably don't want to use this method.&lt;br /&gt;
* ''menuconfig'' -- As the name implies, a menu driven version of the kernel configuration. This is the easiest, and by far the most popular way of configurating your kernel.&lt;br /&gt;
* ''xconfig'' -- If you have an X server running, you can use this option to configure your kernel using a nifty GUI interface. You won't be able to use this on the ISO, but once your system is up and running with X, you can use this option. If you do choose this option while installing from the ISO, the system will fall back to next available configuration method, in this case menuconfig, so there is no harm in selecting it if you do.&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use menuconfig. Once Lunar is finished applying the patches for the kernel, which can take a minute or two, you'll be brought to the configuration screen for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, the configuration that was used to build the kernel for the ISO is the same configuration that you'll be presented with when you start. However, as we also mentioned earlier, there are two alternate kernel configurations available to you that you may want to use; config.safe and config.server. Both of these configurations can be found on the ISO, along with the original default config file, in /etc/lunar/local. When you are looking at the kernel menuconfig main page, scroll all the way to bottom, and you will find an option called &amp;quot;Load an Alternate Configuration File&amp;quot;. Select this and then give the absolute path to the alternate configuration file, i.e. /etc/lunar/local/.config.server. As with all kernel configuration files, they are hidden files preceded with a &amp;quot;.&amp;quot;, so make sure to not forget it.&lt;br /&gt;
&lt;br /&gt;
Once you have completed configuring your kernel, you'll get one more prompt from the installer asking if you want to go back to the configuration in case you exited by mistake or forgot something. If everything is good to go, say no here and sit back for a few minutes while your kernel compiles.&lt;br /&gt;
&lt;br /&gt;
==Setting Up Networking==&lt;br /&gt;
&lt;br /&gt;
The final step is to set up networking. When you select the &amp;quot;Set Up Networking&amp;quot; option, you'll be prompted by a series of questions as to what kind of card you have (only needed if you built your networking device as a module, and not part of the kernel), if you need to set up wireless or not, and whether you'll need to use dhcp or not. You should be familiar enough with your network to set this up on your own, as the questions put to you are very straightforward.&lt;br /&gt;
&lt;br /&gt;
* if you use dhcp, you don't need to set up the default gateway or DNS because dhcp will take care of them for you.&lt;br /&gt;
* you are using a wireless connection with wpa_supplicant, you might want to run &amp;quot;wpa_passphrase&amp;quot; to set up a simple /etc/wpa_supplicant.conf rather than try to edit the example file.&lt;br /&gt;
&lt;br /&gt;
==Other settings==&lt;br /&gt;
&lt;br /&gt;
The installer will prompt you now for some more settings. You should set a root password and generate ssh host keys to identify your box uniquely for later. You might also want to administrate services on the newly installed machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reboot!==&lt;br /&gt;
&lt;br /&gt;
Once you have completed setting up your networking, you are finished installing Lunar Linux! Congratulations! Select the option &amp;quot;Done&amp;quot; and remove the cd from the drive when it ejects. Your Lunar system is now ready to go!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Moonbase==&lt;br /&gt;
&lt;br /&gt;
After the initial installation and reboot, please follow the instructions given in '''man lfirsttime''' to bring your system up-to-date.&lt;br /&gt;
&lt;br /&gt;
  KNOWN PROBLEMS:&lt;br /&gt;
&lt;br /&gt;
  WARNING: the pre-compiled 2.6.35.3 kernel on the ISO is now out-of-date compared to the ''linux-2.6'' module in the moonbase, but you will&lt;br /&gt;
  need to build it explicitly using '''lin linux-2.6''' because it won't be rebuilt as part of the first '''lunar update'''. If you didn't&lt;br /&gt;
  recompile the kernel as part of the ISO installation, or if you experience problems with ALSA or NVIDIA, you should run '''lin linux-2.6'''&lt;br /&gt;
  to rebuild the kernel explicitly. After you have built the kernel once, '''lunar update''' should then detect and install a newer versions&lt;br /&gt;
  of the kernel as they become available in the moonbase.&lt;br /&gt;
&lt;br /&gt;
  WARNING: the ISO installs gcc-4.4 on your system, but gcc-4.5 will be installed as part of the '''man lfirsttime''' and '''lunar update'''&lt;br /&gt;
  process. You will then need to run '''lunar''', select the '''Options / Optimize Architecture''' menu and set the gcc-4.5 options. Failure&lt;br /&gt;
  to do so may result in ''&amp;quot;configure: error: C compiler cannot create executables&amp;quot;'' messages when building modules later.&lt;br /&gt;
&lt;br /&gt;
Congratulations! You now have a minimal system as a foundation on which to build.&lt;br /&gt;
&lt;br /&gt;
==Where to go from here==&lt;br /&gt;
To install a desktop environment check out this page. [[Lunar_Linux:DesktopEnvironments]]&lt;br /&gt;
&lt;br /&gt;
''Have Phun!!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/copyleft/ Copyleft] 2004-2010 [http://lunar-linux.org/ The Lunar Penguin Team]&lt;br /&gt;
&lt;br /&gt;
Lunar Installation Manual and Harassment of Lunar Developers by Drew Swayze (drew AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Edits and Nitpicking by Suzanne Burns (sburns AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Initial update for the 1.6.5 ISO by Duncan Gibson (engelsman AT lunar-linux DOT org).&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/How_long</id>
		<title>How long</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/How_long"/>
				<updated>2010-09-24T21:57:17Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Estimating compile time */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==[[how_long|How long]] does it take...==&lt;br /&gt;
* To install a specific module?&lt;br /&gt;
* To install the ISO?&lt;br /&gt;
* To recompile all my modules?&lt;br /&gt;
&lt;br /&gt;
These questions get asked a lot by new lunar users and it is a very logical question: Lunar is after all a source distro and requires you to compile all the applications from source, which can sometimes take an extremely long time!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Influencing Factors===&lt;br /&gt;
&lt;br /&gt;
* ''System(CPU) speed''&lt;br /&gt;
Double the CPU MHz, and you double the amount of instructions that a system can make per time unit. So, as a rule, a faster CPU results in faster compiles.&lt;br /&gt;
&lt;br /&gt;
* ''Memory size''&lt;br /&gt;
Compiling may require large amounts of memory, especially when compiling C++ applications. Generally, a compilation will go 50% faster if you have double the memory. So, if you only have 128MB of memory, you will speed up your compiles by 225% by increasing the amount of memory to 512MB. This might be worth the trip to the hardware store.&lt;br /&gt;
&lt;br /&gt;
* ''Idle time''&lt;br /&gt;
Compiling takes a long time. Every second that your system is doing something else, especially interactive tasks, reduces the amount of time that your system can compile applications.&lt;br /&gt;
&lt;br /&gt;
* ''System architecture and components''&lt;br /&gt;
Needless to say that a compile on a SATA hard disk is a lot faster than on a ATA-33 system. Especially with larger modules this is a very important factor.&lt;br /&gt;
&lt;br /&gt;
* ''Parallel make jobs''&lt;br /&gt;
If you enable multiple parallel make jobs using '''lunar / Options / Optimize Architecture''' and you have a machine with more than one processor or core, most modules will build in a lot less time. Similarly if you have multiple machines and make use of '''distcc''' to share the build processes among your systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Some basic numbers===&lt;br /&gt;
&lt;br /&gt;
The following numbers are from a Pentium 4 system running at 2.9 GHz, with 1 GB of memory, which /proc/cpuinfo rates at 5864 bogomips. This was a fairly normal system back in 2005 and if you wish to compare it with your own system, you should keep in mind that this system might be relatively slower or faster based on the influencing factors mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
The modules listed below are very common modules, so they should give you some good insight in how long it takes to compile and install something. Based on the size you can make rough estimates for new modules that you wish to install.&lt;br /&gt;
&lt;br /&gt;
 module      source size    installed size    compile time&lt;br /&gt;
 gcc           61540 KB        97188 KB          80m35s&lt;br /&gt;
 glibc         15340 KB       138268 KB          32m47s&lt;br /&gt;
 gtk+-2        18672 KB        64884 KB          15m56s&lt;br /&gt;
 perl          14792 KB        56844 KB           9m43s&lt;br /&gt;
&lt;br /&gt;
However, it is not easy to see whether there is any correlation between source size, installed size and compile time from such a small sample. Not all modules are built and installed in the same way. The gcc compiler has a very elaborate bootstrap phase that takes almost half the time it takes to compile the target compiler. The glibc shown here includes all possible locales. gtk+-2 comes with a lot of bitmaps and documentation. Many many module-specific factors are at work here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Estimating compile time===&lt;br /&gt;
&lt;br /&gt;
If we plot the compile time against the size of the installed product or the source code size (in compressed form easily available), we get a very loose correlation shown in the graph below, where the straight lines are produced using gnuplot's ''fit'' function:&lt;br /&gt;
&lt;br /&gt;
http://lunar-linux.org/~engelsman/how-long/module-compile-times-raw.jpg&lt;br /&gt;
&lt;br /&gt;
The plot shows that there are an awful lot more small modules than large ones in the 400+ modules installed on this machine, but the range of values obscures any details. If we plot the same basic data using LOG values, we get the following graph:&lt;br /&gt;
&lt;br /&gt;
http://lunar-linux.org/~engelsman/how-long/module-compile-times-log.jpg&lt;br /&gt;
&lt;br /&gt;
As you can see there is a faint correlation possible using either installed size or source size, but it's more interesting to predict compile times based on source size because once we have the installed size we already know the compile time anyway. Where the source size line crosses the x-axis, LOG(Compile time) is 0.0 and LOG(Source size) is almost 3.0, so Compile time is 1s and Source size is approx 20KB! [Note: that's LOG to base e, not LOG to base 10] This gives you a very crude compile speed of 20 KB/s, and allows you to pre-estimate the compile time, assuming that your system is the same speed as my reference system.&lt;br /&gt;
&lt;br /&gt;
In fact, if I divide the total size of all of the sources by the total compile time, the average compile speed is 24.8 KB/s, so the estimate isn't too far off.&lt;br /&gt;
&lt;br /&gt;
===Indexing modules===&lt;br /&gt;
&lt;br /&gt;
We can do some more elaborate math on this and calculate an &amp;quot;index&amp;quot; for all modules. The index of a module could be easily calculated by dividing the actual compile speed for a module by the average compile speed:&lt;br /&gt;
&lt;br /&gt;
 gcc    - 61520 KB of compressed source code compiled and installed in 80m35s, i.e. speed is 12.7 KB/s and index is 0.51&lt;br /&gt;
 glibc  - 15340 KB of compressed source code compiled and installed in 32m47s, i.e. speed is  7.8 KB/s and index is 0.31&lt;br /&gt;
 gtk+-2 - 18672 KB of compressed source code compiled and installed in 15m56s, i.e. speed is 19.5 KB/s and index is 0.80&lt;br /&gt;
 perl   - 14792 KB of compressed source code compiled and installed in  9m43s, i.e. speed is 25.4 KB/s and index is 1.02&lt;br /&gt;
&lt;br /&gt;
We could, of course, do this for all modules, but this would involve someone actually downloading and installing every one of them, and this just isn't realistic as there are currently more than 3600 modules in the moonbase. [I tried to download all modules once using '''lget -a''' and it came to 15GB. Using the approximate compile speed of 20KB/s it would take more than 8 days to build everything]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===From ISO install to desktop===&lt;br /&gt;
&lt;br /&gt;
Just out of curiosity, and for information to others, I decided to time how long it took to install a &amp;quot;minimal&amp;quot; desktop system from scratch from the 1.6.5 ISO on a relatively new system and a 9-year-old relic. I might add this 5-year-old box in the future.&lt;br /&gt;
&lt;br /&gt;
It's clear that you probably don't want to install Lunar on really old hardware, unless you have a lot of patience, or can use &amp;lt;code&amp;gt;distcc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! System&lt;br /&gt;
! CPUs*bogomips [1]&lt;br /&gt;
! RAM&lt;br /&gt;
! Disk [2]&lt;br /&gt;
! Install&lt;br /&gt;
! lin gcc...&lt;br /&gt;
! lin linux-2.6&lt;br /&gt;
! lunar update&lt;br /&gt;
! lin XOrg7&lt;br /&gt;
! lin xfce4&lt;br /&gt;
! TOTAL&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Acer AX5810&lt;br /&gt;
| 4 * 4988&lt;br /&gt;
| 6 Gb&lt;br /&gt;
| 1681 / 129 MB/s&lt;br /&gt;
| 0h11&lt;br /&gt;
| 1h01&lt;br /&gt;
| 0h12&lt;br /&gt;
| 0h20&lt;br /&gt;
| 0h23&lt;br /&gt;
| 0h14&lt;br /&gt;
! 2h21&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Vaio FX401&lt;br /&gt;
| 1 * 1600&lt;br /&gt;
| 512Mb&lt;br /&gt;
| 179 / 17 MB/s&lt;br /&gt;
| 0h18&lt;br /&gt;
| 11h26&lt;br /&gt;
| 3h37&lt;br /&gt;
| 2h44&lt;br /&gt;
| 3h12&lt;br /&gt;
| 2h15&lt;br /&gt;
! 23h32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;grep bogomips /proc/cpuinfo&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;hdparm -t -T /dev/sdX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The basic procedure:&lt;br /&gt;
* install from the ISO, and take the pre-compiled kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin moonbase&amp;lt;/code&amp;gt;&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar&amp;lt;/code&amp;gt; and set number of parallel makes to 4 in ''Options / Optimize Architecture''&lt;br /&gt;
* do the &amp;lt;code&amp;gt;lin gcc glibc gcc bash coreutils tar wget&amp;lt;/code&amp;gt; dance from &amp;lt;code&amp;gt;man lfirsttime&amp;lt;/code&amp;gt;&lt;br /&gt;
* use &amp;lt;code&amp;gt;lin linux-2.6&amp;lt;/code&amp;gt; to explicitly build a new kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar update&amp;lt;/code&amp;gt; to rebuild any outdated parts of the core system&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin XOrg7&amp;lt;/code&amp;gt; to build X&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin xfce4&amp;lt;/code&amp;gt; to build Xfce4&lt;br /&gt;
&lt;br /&gt;
After the first reboot I primed the system by copying sources from /var/spool/lunar on another up-to-date machine to avoid download delays and glitches.&lt;br /&gt;
&lt;br /&gt;
When asked questions about optional depends, etc. I simply hit return to accept the default values. I did not reconfigure the kernel. I used &amp;lt;code&amp;gt;lin --deps&amp;lt;/code&amp;gt; for the XOrg7 and xfce4 builds to pre-answer the questions before kicking off the real builds so I could leave them unattended without adding delays for prompts to timeout.&lt;br /&gt;
&lt;br /&gt;
NOTE: this procedure is for timing purposes only, I still have to go back and install the correct drivers for X, etc.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/How_long</id>
		<title>How long</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/How_long"/>
				<updated>2010-09-24T18:27:10Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: updated index section and added ISO to desktop timings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==[[how_long|How long]] does it take...==&lt;br /&gt;
* To install a specific module?&lt;br /&gt;
* To install the ISO?&lt;br /&gt;
* To recompile all my modules?&lt;br /&gt;
&lt;br /&gt;
These questions get asked a lot by new lunar users and it is a very logical question: Lunar is after all a source distro and requires you to compile all the applications from source, which can sometimes take an extremely long time!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Influencing Factors===&lt;br /&gt;
&lt;br /&gt;
* ''System(CPU) speed''&lt;br /&gt;
Double the CPU MHz, and you double the amount of instructions that a system can make per time unit. So, as a rule, a faster CPU results in faster compiles.&lt;br /&gt;
&lt;br /&gt;
* ''Memory size''&lt;br /&gt;
Compiling may require large amounts of memory, especially when compiling C++ applications. Generally, a compilation will go 50% faster if you have double the memory. So, if you only have 128MB of memory, you will speed up your compiles by 225% by increasing the amount of memory to 512MB. This might be worth the trip to the hardware store.&lt;br /&gt;
&lt;br /&gt;
* ''Idle time''&lt;br /&gt;
Compiling takes a long time. Every second that your system is doing something else, especially interactive tasks, reduces the amount of time that your system can compile applications.&lt;br /&gt;
&lt;br /&gt;
* ''System architecture and components''&lt;br /&gt;
Needless to say that a compile on a SATA hard disk is a lot faster than on a ATA-33 system. Especially with larger modules this is a very important factor.&lt;br /&gt;
&lt;br /&gt;
* ''Parallel make jobs''&lt;br /&gt;
If you enable multiple parallel make jobs using '''lunar / Options / Optimize Architecture''' and you have a machine with more than one processor or core, most modules will build in a lot less time. Similarly if you have multiple machines and make use of '''distcc''' to share the build processes among your systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Some basic numbers===&lt;br /&gt;
&lt;br /&gt;
The following numbers are from a Pentium 4 system running at 2.9 GHz, with 1 GB of memory, which /proc/cpuinfo rates at 5864 bogomips. This was a fairly normal system back in 2005 and if you wish to compare it with your own system, you should keep in mind that this system might be relatively slower or faster based on the influencing factors mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
The modules listed below are very common modules, so they should give you some good insight in how long it takes to compile and install something. Based on the size you can make rough estimates for new modules that you wish to install.&lt;br /&gt;
&lt;br /&gt;
 module      source size    installed size    compile time&lt;br /&gt;
 gcc           61540 KB        97188 KB          80m35s&lt;br /&gt;
 glibc         15340 KB       138268 KB          32m47s&lt;br /&gt;
 gtk+-2        18672 KB        64884 KB          15m56s&lt;br /&gt;
 perl          14792 KB        56844 KB           9m43s&lt;br /&gt;
&lt;br /&gt;
However, it is not easy to see whether there is any correlation between source size, installed size and compile time from such a small sample. Not all modules are built and installed in the same way. The gcc compiler has a very elaborate bootstrap phase that takes almost half the time it takes to compile the target compiler. The glibc shown here includes all possible locales. gtk+-2 comes with a lot of bitmaps and documentation. Many many module-specific factors are at work here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Estimating compile time===&lt;br /&gt;
&lt;br /&gt;
If we plot the compile time against the size of the installed product or the source code size (in compressed form easily available), we get a very loose correlation shown in the graph below, where the straight lines are produced using gnuplot's ''fit'' function:&lt;br /&gt;
&lt;br /&gt;
http://lunar-linux.org/~engelsman/how-long/module-compile-times-raw.jpg&lt;br /&gt;
&lt;br /&gt;
The plot shows that there are an awful lot more small modules than large ones in the 400+ modules installed on this machine, but the range of values obscures any details. If we plot the same basic data using LOG values, we get the following graph:&lt;br /&gt;
&lt;br /&gt;
http://lunar-linux.org/~engelsman/how-long/module-compile-times-raw.jpg&lt;br /&gt;
&lt;br /&gt;
As you can see there is a faint correlation possible using either installed size or source size, but it's more interesting to predict compile times based on source size because once we have the installed size we already know the compile time anyway. Where the source size line crosses the x-axis, LOG(Compile time) is 0.0 and LOG(Source size) is almost 3.0, so Compile time is 1s and Source size is approx 20KB! [Note: that's LOG to base e, not LOG to base 10] This gives you a very crude compile speed of 20 KB/s, and allows you to pre-estimate the compile time, assuming that your system is the same speed as my reference system.&lt;br /&gt;
&lt;br /&gt;
In fact, if I divide the total size of all of the sources by the total compile time, the average compile speed is 24.8 KB/s, so the estimate isn't too far off.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Indexing modules===&lt;br /&gt;
&lt;br /&gt;
We can do some more elaborate math on this and calculate an &amp;quot;index&amp;quot; for all modules. The index of a module could be easily calculated by dividing the actual compile speed for a module by the average compile speed:&lt;br /&gt;
&lt;br /&gt;
 gcc    - 61520 KB of compressed source code compiled and installed in 80m35s, i.e. speed is 12.7 KB/s and index is 0.51&lt;br /&gt;
 glibc  - 15340 KB of compressed source code compiled and installed in 32m47s, i.e. speed is  7.8 KB/s and index is 0.31&lt;br /&gt;
 gtk+-2 - 18672 KB of compressed source code compiled and installed in 15m56s, i.e. speed is 19.5 KB/s and index is 0.80&lt;br /&gt;
 perl   - 14792 KB of compressed source code compiled and installed in  9m43s, i.e. speed is 25.4 KB/s and index is 1.02&lt;br /&gt;
&lt;br /&gt;
We could, of course, do this for all modules, but this would involve someone actually downloading and installing every one of them, and this just isn't realistic as there are currently more than 3600 modules in the moonbase. [I tried to download all modules once using '''lget -a''' and it came to 15GB. Using the approximate compile speed of 20KB/s it would take more than 8 days to build everything]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===From ISO install to desktop===&lt;br /&gt;
&lt;br /&gt;
Just out of curiosity, and for information to others, I decided to time how long it took to install a &amp;quot;minimal&amp;quot; desktop system from scratch from the 1.6.5 ISO on a relatively new system and a 9-year-old relic. I might add this 5-year-old box in the future.&lt;br /&gt;
&lt;br /&gt;
It's clear that you probably don't want to install Lunar on really old hardware, unless you have a lot of patience, or can use &amp;lt;code&amp;gt;distcc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! System&lt;br /&gt;
! CPUs*bogomips [1]&lt;br /&gt;
! RAM&lt;br /&gt;
! Disk [2]&lt;br /&gt;
! Install&lt;br /&gt;
! lin gcc...&lt;br /&gt;
! lin linux-2.6&lt;br /&gt;
! lunar update&lt;br /&gt;
! lin XOrg7&lt;br /&gt;
! lin xfce4&lt;br /&gt;
! TOTAL&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Acer AX5810&lt;br /&gt;
| 4 * 4988&lt;br /&gt;
| 6 Gb&lt;br /&gt;
| 1681 / 129 MB/s&lt;br /&gt;
| 0h11&lt;br /&gt;
| 1h01&lt;br /&gt;
| 0h12&lt;br /&gt;
| 0h20&lt;br /&gt;
| 0h23&lt;br /&gt;
| 0h14&lt;br /&gt;
! 2h21&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Vaio FX401&lt;br /&gt;
| 1 * 1600&lt;br /&gt;
| 512Mb&lt;br /&gt;
| 179 / 17 MB/s&lt;br /&gt;
| 0h18&lt;br /&gt;
| 11h26&lt;br /&gt;
| 3h37&lt;br /&gt;
| 2h44&lt;br /&gt;
| 3h12&lt;br /&gt;
| 2h15&lt;br /&gt;
! 23h32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;grep bogomips /proc/cpuinfo&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;hdparm -t -T /dev/sdX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The basic procedure:&lt;br /&gt;
* install from the ISO, and take the pre-compiled kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin moonbase&amp;lt;/code&amp;gt;&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar&amp;lt;/code&amp;gt; and set number of parallel makes to 4 in ''Options / Optimize Architecture''&lt;br /&gt;
* do the &amp;lt;code&amp;gt;lin gcc glibc gcc bash coreutils tar wget&amp;lt;/code&amp;gt; dance from &amp;lt;code&amp;gt;man lfirsttime&amp;lt;/code&amp;gt;&lt;br /&gt;
* use &amp;lt;code&amp;gt;lin linux-2.6&amp;lt;/code&amp;gt; to explicitly build a new kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar update&amp;lt;/code&amp;gt; to rebuild any outdated parts of the core system&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin XOrg7&amp;lt;/code&amp;gt; to build X&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin xfce4&amp;lt;/code&amp;gt; to build Xfce4&lt;br /&gt;
&lt;br /&gt;
After the first reboot I primed the system by copying sources from /var/spool/lunar on another up-to-date machine to avoid download delays and glitches.&lt;br /&gt;
&lt;br /&gt;
When asked questions about optional depends, etc. I simply hit return to accept the default values. I did not reconfigure the kernel. I used &amp;lt;code&amp;gt;lin --deps&amp;lt;/code&amp;gt; for the XOrg7 and xfce4 builds to pre-answer the questions before kicking off the real builds so I could leave them unattended without adding delays for prompts to timeout.&lt;br /&gt;
&lt;br /&gt;
NOTE: this procedure is for timing purposes only, I still have to go back and install the correct drivers for X, etc.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/How_long</id>
		<title>How long</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/How_long"/>
				<updated>2010-09-22T23:27:54Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: update for new sizes, times and graphs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==[[how_long|How long]] does it take...==&lt;br /&gt;
* To install a specific module?&lt;br /&gt;
* To install the ISO?&lt;br /&gt;
* To recompile all my modules?&lt;br /&gt;
&lt;br /&gt;
These questions get asked a lot by new lunar users and it is a very logical question: Lunar is after all a source distro and requires you to compile all the applications from source, which can sometimes take an extremely long time!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Influencing Factors===&lt;br /&gt;
&lt;br /&gt;
* ''System(CPU) speed''&lt;br /&gt;
Double the CPU MHz, and you double the amount of instructions that a system can make per time unit. So, as a rule, a faster CPU results in faster compiles.&lt;br /&gt;
&lt;br /&gt;
* ''Memory size''&lt;br /&gt;
Compiling may require large amounts of memory, especially when compiling C++ applications. Generally, a compilation will go 50% faster if you have double the memory. So, if you only have 128MB of memory, you will speed up your compiles by 225% by increasing the amount of memory to 512MB. This might be worth the trip to the hardware store.&lt;br /&gt;
&lt;br /&gt;
* ''Idle time''&lt;br /&gt;
Compiling takes a long time. Every second that your system is doing something else, especially interactive tasks, reduces the amount of time that your system can compile applications.&lt;br /&gt;
&lt;br /&gt;
* ''System architecture and components''&lt;br /&gt;
Needless to say that a compile on a SATA hard disk is a lot faster than on a ATA-33 system. Especially with larger modules this is a very important factor.&lt;br /&gt;
&lt;br /&gt;
* ''Parallel make jobs''&lt;br /&gt;
If you enable multiple parallel make jobs using '''lunar / Options / Optimize Architecture''' and you have a machine with more than one processor or core, most modules will build in a lot less time. Similarly if you have multiple machines and make use of '''distcc''' to share the build processes among your systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Some basic numbers===&lt;br /&gt;
&lt;br /&gt;
The following numbers are from a Pentium 4 system running at 2.9 GHz, with 1 GB of memory, which /proc/cpuinfo rates at 5864 bogomips. This was a fairly normal system back in 2005 and if you wish to compare it with your own system, you should keep in mind that this system might be relatively slower or faster based on the influencing factors mentioned earlier.&lt;br /&gt;
&lt;br /&gt;
The modules listed below are very common modules, so they should give you some good insight in how long it takes to compile and install something. Based on the size you can make rough estimates for new modules that you wish to install.&lt;br /&gt;
&lt;br /&gt;
 module      source size    installed size    compile time&lt;br /&gt;
 gcc           61540 KB        97188 KB          80m35s&lt;br /&gt;
 glibc         15340 KB       138268 KB          32m47s&lt;br /&gt;
 gtk+-2        18672 KB        64884 KB          15m56s&lt;br /&gt;
 perl          14792 KB        56844 KB           9m43s&lt;br /&gt;
&lt;br /&gt;
However, it is not easy to see whether there is any correlation between source size, installed size and compile time from such a small sample. Not all modules are built and installed in the same way. The gcc compiler has a very elaborate bootstrap phase that takes almost half the time it takes to compile the target compiler. The glibc shown here includes all possible locales. gtk+-2 comes with a lot of bitmaps and documentation. Many many module-specific factors are at work here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Estimating compile time===&lt;br /&gt;
&lt;br /&gt;
If we plot the compile time against the size of the installed product or the source code size (in compressed form easily available), we get a very loose correlation shown in the graph below, where the straight lines are produced using gnuplot's ''fit'' function:&lt;br /&gt;
&lt;br /&gt;
http://lunar-linux.org/~engelsman/how-long/module-compile-times-raw.jpg&lt;br /&gt;
&lt;br /&gt;
The plot shows that there are an awful lot more small modules than large ones in the 400+ modules installed on this machine, but the range of values obscures any details. If we plot the same basic data using LOG values, we get the following graph:&lt;br /&gt;
&lt;br /&gt;
http://lunar-linux.org/~engelsman/how-long/module-compile-times-raw.jpg&lt;br /&gt;
&lt;br /&gt;
As you can see there is a faint correlation possible using either installed size or source size, but it's more interesting to predict compile times based on source size because once we have the installed size we already know the compile time anyway. Where the source size line crosses the x-axis, LOG(Compile time) is 0.0 and LOG(Source size) is almost 3.0, so Compile time is 1s and Source size is approx 20KB! This gives you a very crude compile speed, and allows you to pre-estimate the compile time, assuming that your system is the same speed as my reference system.&lt;br /&gt;
&lt;br /&gt;
We can do some more elaborate math on this and calculate the &amp;quot;index&amp;quot; for all modules. The index of a module would be easily calculated by the amount of time it took for lunar to compile and install 10kB of compressed source code. So we divide the total compile/install time (seconds) by the number of kilobytes that the compressed source package was:&lt;br /&gt;
&lt;br /&gt;
 gcc    took 80m35s to compile + install 61520 KB of compressed source code, i.e. approx 13 KB/s&lt;br /&gt;
 glibc  took 32m47s to compile + install 15340 KB of compressed source code, i.e. approx  8 KB/s&lt;br /&gt;
 gtk+-2 took 15m56s to compile + install 18672 KB of compressed source code, i.e. approx 19 KB/s&lt;br /&gt;
 perl   took  9m43s to compile + install 14792 KB of compressed source code, i.e. approx 25 KB/s&lt;br /&gt;
&lt;br /&gt;
TO BE UPDATED...&lt;br /&gt;
If we do this for all modules we end up with the average index of about 27, which means that on average, lunar compiles and installs 27kB of compressed source code per second. Since the size of my /var/spool/lunar is about 1.4gB, it would take me about 51851 seconds to compile and install all of this source code files. That's about 14.5 hours! Of course that number really is not right - we haven't taken into account that larger modules might have a lower index and thus take much longer to compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Indexing modules===&lt;br /&gt;
&lt;br /&gt;
We should be able to index the numbers of all modules right now, so it pays off to pay a closer look at the numbers a bit. Most importantly, the 27 index is averaged across all modules, but we know that this number is off for bigger modules. For modules larger than 100kB source size, it's already 32, and for modules over 1000kB, it's up to 52. This seriously changes perspective and shows you that smaller modules take relatively longer to install, and this is not surprising: the overhead is usually much larger for them, as all the autoconf and administrativa needs to be performed for smaller modules as well.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User_talk:Engelsman</id>
		<title>User talk:Engelsman</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User_talk:Engelsman"/>
				<updated>2010-09-18T23:18:56Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* 1.6.5 Installation Times */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;I have moved the original contents of this page elsewhere, reformatting and updating on the way.&lt;br /&gt;
However, I have provided so many references to this page in the&lt;br /&gt;
[http://forums.lunar-linux.org Lunar Forums] that I can't remove it completely, and so I leave a skeleton to show the way, just like Billy Bones in Treasure Island.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Please follow the appropriate link to the updated page.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A Newbie's experience installing, and upgrading, Lunar Linux 1.5.1==&lt;br /&gt;
&amp;lt;p&amp;gt;I started using Unix V7 on a PDP-11/70 back in 1983, even modifying some existing kernel drivers for the [http://en.wikipedia.org/wiki/Cambridge_Ring Cambridge Ring] local area network. After that I dabbled in system administration of various Sun and Apollo systems until 1991, and HP boxes up until 2000, but my main task has always been application software development, nothing on the hardware or kernel side. Since 2000 we've had dedicated system administrators at work. We had switched from NCD X-terminals over to Linux desktops (first RedHat, but then Lunar) and I realized that what little I knew had become well out of date. I installed RedHat on an old 90MHz PC at home more than five years ago, but without a LAN or modem connection it was too difficult to keep up to date, I lost interest, and that died. Since then I've had an itch to develop a spiffy [http://www.fltk.org FLTK] user interace for some old command line tools using Cygwin/Mingw on a WinXP laptop (with modem) but the machine is (a) painfully slow, and (b) painfully Windows. The time had come to get some new hardware, install an operating system that doesn't thwart you at every turn, and set up a programming environment of my own choice.&lt;br /&gt;
[[User Reports:Engelsman|Read more]]...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.0 (coming soon, maybe)==&lt;br /&gt;
&amp;lt;p&amp;gt;In April 2006, the&lt;br /&gt;
[http://www.lunar-linux.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=39&amp;amp;Itemid=2 Lunar-1.6.0-i686 ISO] was released,&lt;br /&gt;
but I don't have enough spare time to look at installing it. Not just yet anyway.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.4 (Lacus Autumni)==&lt;br /&gt;
&amp;lt;p&amp;gt;Lunar Linux 1.6.4 (Lacus Autumni) was [http://foo-projects.org/pipermail/lunar/2008-December/008144.html announced] in December 2008, and installation and update was initially pretty smooth and uneventful. But as 2009 rolled on, and new versions of certain key modules were rolled out and were out of step with each other, upgrading from the 1.6.4 ISO became difficult. Here's the [http://foo-projects.org/pipermail/lunar-dev/2009-September/006906.html Update Workaround HOWTO] that I put together in September. This is no longer required! Soon after this, other key module releases brought harmony again, and these instructions became obsolete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In February 2010, with the 2.6.32.8 kernel, updating udev from 141 to 151 caught me out. I don't remember the exact wording, but udev-151 requires that SYSFS_DEPRECATED is disabled in the kernel configuration. Finding SYSFS_DEPRECATED_V2 in the kernel didn't take long, but it took a lot longer to track down that GFS_FS also needed to be disabled...&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Also in February 2010, installed 1.6.4 on a new Acer-AX5810 box with NVIDIA GeForce G210 card. This obviously requires the some kernel settings, and to install the NVIDIA module. All well and good, but after every kernel update and reboot you need to '''lrm NVIDIA''', and then '''lin -rc NVIDIA''' again otherwise it won't install properly. This has bitten me several times after a '''lunar update'''...&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.5 (Mare Ingenii)==&lt;br /&gt;
After corruption of the superblock on my /boot partition on an HP Pavilion t3190(?), I decided to installed the 1.6.5-beta1 ISO. The initial installation and update went without problem. XOrg7 appeared to install OK, but when I ran 'startx' the console went blank. Searching the web, and asking on #lunar revealed that I needed the i915 driver for my Intel graphics card, with an entry in /etc/modules for 'i915 modeset=1'. Close, but no cigar! That's when my troubles started, with the console going into powersave mode on reboot. After much trial and error, I discovered that the kernel requires:&lt;br /&gt;
&lt;br /&gt;
  CONFIG_DRM_I915=m&lt;br /&gt;
  CONFIG_DRM_I915_KMS=y&lt;br /&gt;
  CONFIG_FRAMEBUFFER_CONSOLE=m&lt;br /&gt;
&lt;br /&gt;
The first would imply having i915 in /etc/modules, but in fact it is trumped by the second, and you don't need the i915 module at all. But the KMS line also enables ACPI in the kernel, which causes the console blanking. To solve that problem, you do need to have fbcon in /etc/modules. Or to disable the powersave mode settings while you configure all of this, you need a lilo.conf entry such as the following&lt;br /&gt;
&lt;br /&gt;
  image = /boot/2.6.32.9-i686&lt;br /&gt;
    label = 2.6.32.9-acpi&lt;br /&gt;
    append=&amp;quot;acpi=off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
At a certain point, there was an update to the linux-2.6 module that took it from 2.6.33.4 to 2.6.34.1, which I duly installed on my new test box, only to find that I couldn't reboot. The previous kernels had identified the disk as /dev/sda, but the new kernel decided it was /dev/sdb instead. This could be overcome by adding 'root=/dev/sdb3' on the lilo boot line, but then gave problems with /etc/fstab. To cut a long story short, I rebooted to the old kernel and changed /dev/fstab to use UUID instead. To find/create the UUIDs:&lt;br /&gt;
&lt;br /&gt;
  tune2fs -l /dev/sda1&lt;br /&gt;
  swapoff -a          # I'm lazy&lt;br /&gt;
  mkswap /dev/sda2    # mkswap creates with UUID by default&lt;br /&gt;
  swapon -a&lt;br /&gt;
  tune2fs -l /dev/sda3&lt;br /&gt;
&lt;br /&gt;
I even updated /etc/lilo.conf to add an 'append=&amp;quot;root=/dev/sdb3&amp;quot;' for the 2.6.34.1 entry, and I could reboot, *and* mount the file systems.&lt;br /&gt;
&lt;br /&gt;
Soon after this the 1.6.5-rc1 ISO was released, and as this was a test box anyway, with nothing really installed on it except for gnome test system that was inconsistent and didn't work, I wiped the system and re-installed from scratch.&lt;br /&gt;
&lt;br /&gt;
===1.6.5 Installation Times===&lt;br /&gt;
&lt;br /&gt;
Just out of curiosity, and for information to others, I decided to time how long it took to install a &amp;quot;minimal&amp;quot; desktop system from scratch&lt;br /&gt;
on a relatively new system and a 9-year-old relic. I have two 5-year-old boxes I might add in the future.&lt;br /&gt;
&lt;br /&gt;
It's clear that you probably don't want to install Lunar on really old hardware, unless you have a lot of patience, or can use &amp;lt;code&amp;gt;distcc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! System&lt;br /&gt;
! CPUs*bogomips [1]&lt;br /&gt;
! RAM&lt;br /&gt;
! Disk [2]&lt;br /&gt;
! Install&lt;br /&gt;
! lin gcc...&lt;br /&gt;
! lin linux-2.6&lt;br /&gt;
! lunar update&lt;br /&gt;
! lin XOrg7&lt;br /&gt;
! lin xfce4&lt;br /&gt;
! TOTAL&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Acer AX5810&lt;br /&gt;
| 4 * 4988&lt;br /&gt;
| 6 Gb&lt;br /&gt;
| 1681 / 129 MB/s&lt;br /&gt;
| 0h11&lt;br /&gt;
| 1h01&lt;br /&gt;
| 0h12&lt;br /&gt;
| 0h20&lt;br /&gt;
| 0h23&lt;br /&gt;
| 0h14&lt;br /&gt;
! 2h21&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Vaio FX401&lt;br /&gt;
| 1 * 1600&lt;br /&gt;
| 512Mb&lt;br /&gt;
| 179 / 17 MB/s&lt;br /&gt;
| 0h18&lt;br /&gt;
| 11h26&lt;br /&gt;
| 3h37&lt;br /&gt;
| 2h44&lt;br /&gt;
| 3h12&lt;br /&gt;
| 2h15&lt;br /&gt;
! 23h32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;grep bogomips /proc/cpuinfo&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;hdparm -t -T /dev/sdX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The basic procedure:&lt;br /&gt;
* install from the ISO, and take the pre-compiled kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin moonbase&amp;lt;/code&amp;gt;&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar&amp;lt;/code&amp;gt; and set number of parallel makes to 4 in ''Options / Optimize Architecture''&lt;br /&gt;
* do the &amp;lt;code&amp;gt;lin gcc glibc gcc bash coreutils tar wget&amp;lt;/code&amp;gt; dance from &amp;lt;code&amp;gt;man lfirsttime&amp;lt;/code&amp;gt;&lt;br /&gt;
* use &amp;lt;code&amp;gt;lin linux-2.6&amp;lt;/code&amp;gt; to explicitly build a new kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar update&amp;lt;/code&amp;gt; to rebuild any outdated parts of the core system&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin XOrg7&amp;lt;/code&amp;gt; to build X&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin xfce4&amp;lt;/code&amp;gt; to build Xfce4&lt;br /&gt;
&lt;br /&gt;
After the first reboot I primed the system by copying sources from /var/spool/lunar on another up-to-date machine to avoid download delays and glitches.&lt;br /&gt;
&lt;br /&gt;
When asked questions about optional depends, etc. I simply hit return to accept the default values. I did not reconfigure the kernel. I used &amp;lt;code&amp;gt;lin --deps&amp;lt;/code&amp;gt; for the XOrg7 and xfce4 builds to pre-answer the questions before kicking off the real builds so I could leave them unattended without adding delays for prompts to timeout.&lt;br /&gt;
&lt;br /&gt;
NOTE: this procedure is for timing purposes only, I still have to go back and install the correct drivers for X, etc.&lt;br /&gt;
&lt;br /&gt;
'''To be continued...'''&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User_talk:Engelsman</id>
		<title>User talk:Engelsman</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User_talk:Engelsman"/>
				<updated>2010-09-18T18:12:09Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: minor reformatting&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;I have moved the original contents of this page elsewhere, reformatting and updating on the way.&lt;br /&gt;
However, I have provided so many references to this page in the&lt;br /&gt;
[http://forums.lunar-linux.org Lunar Forums] that I can't remove it completely, and so I leave a skeleton to show the way, just like Billy Bones in Treasure Island.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Please follow the appropriate link to the updated page.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A Newbie's experience installing, and upgrading, Lunar Linux 1.5.1==&lt;br /&gt;
&amp;lt;p&amp;gt;I started using Unix V7 on a PDP-11/70 back in 1983, even modifying some existing kernel drivers for the [http://en.wikipedia.org/wiki/Cambridge_Ring Cambridge Ring] local area network. After that I dabbled in system administration of various Sun and Apollo systems until 1991, and HP boxes up until 2000, but my main task has always been application software development, nothing on the hardware or kernel side. Since 2000 we've had dedicated system administrators at work. We had switched from NCD X-terminals over to Linux desktops (first RedHat, but then Lunar) and I realized that what little I knew had become well out of date. I installed RedHat on an old 90MHz PC at home more than five years ago, but without a LAN or modem connection it was too difficult to keep up to date, I lost interest, and that died. Since then I've had an itch to develop a spiffy [http://www.fltk.org FLTK] user interace for some old command line tools using Cygwin/Mingw on a WinXP laptop (with modem) but the machine is (a) painfully slow, and (b) painfully Windows. The time had come to get some new hardware, install an operating system that doesn't thwart you at every turn, and set up a programming environment of my own choice.&lt;br /&gt;
[[User Reports:Engelsman|Read more]]...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.0 (coming soon, maybe)==&lt;br /&gt;
&amp;lt;p&amp;gt;In April 2006, the&lt;br /&gt;
[http://www.lunar-linux.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=39&amp;amp;Itemid=2 Lunar-1.6.0-i686 ISO] was released,&lt;br /&gt;
but I don't have enough spare time to look at installing it. Not just yet anyway.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.4 (Lacus Autumni)==&lt;br /&gt;
&amp;lt;p&amp;gt;Lunar Linux 1.6.4 (Lacus Autumni) was [http://foo-projects.org/pipermail/lunar/2008-December/008144.html announced] in December 2008, and installation and update was initially pretty smooth and uneventful. But as 2009 rolled on, and new versions of certain key modules were rolled out and were out of step with each other, upgrading from the 1.6.4 ISO became difficult. Here's the [http://foo-projects.org/pipermail/lunar-dev/2009-September/006906.html Update Workaround HOWTO] that I put together in September. This is no longer required! Soon after this, other key module releases brought harmony again, and these instructions became obsolete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In February 2010, with the 2.6.32.8 kernel, updating udev from 141 to 151 caught me out. I don't remember the exact wording, but udev-151 requires that SYSFS_DEPRECATED is disabled in the kernel configuration. Finding SYSFS_DEPRECATED_V2 in the kernel didn't take long, but it took a lot longer to track down that GFS_FS also needed to be disabled...&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Also in February 2010, installed 1.6.4 on a new Acer-AX5810 box with NVIDIA GeForce G210 card. This obviously requires the some kernel settings, and to install the NVIDIA module. All well and good, but after every kernel update and reboot you need to '''lrm NVIDIA''', and then '''lin -rc NVIDIA''' again otherwise it won't install properly. This has bitten me several times after a '''lunar update'''...&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.5 (Mare Ingenii)==&lt;br /&gt;
After corruption of the superblock on my /boot partition on an HP Pavilion t3190(?), I decided to installed the 1.6.5-beta1 ISO. The initial installation and update went without problem. XOrg7 appeared to install OK, but when I ran 'startx' the console went blank. Searching the web, and asking on #lunar revealed that I needed the i915 driver for my Intel graphics card, with an entry in /etc/modules for 'i915 modeset=1'. Close, but no cigar! That's when my troubles started, with the console going into powersave mode on reboot. After much trial and error, I discovered that the kernel requires:&lt;br /&gt;
&lt;br /&gt;
  CONFIG_DRM_I915=m&lt;br /&gt;
  CONFIG_DRM_I915_KMS=y&lt;br /&gt;
  CONFIG_FRAMEBUFFER_CONSOLE=m&lt;br /&gt;
&lt;br /&gt;
The first would imply having i915 in /etc/modules, but in fact it is trumped by the second, and you don't need the i915 module at all. But the KMS line also enables ACPI in the kernel, which causes the console blanking. To solve that problem, you do need to have fbcon in /etc/modules. Or to disable the powersave mode settings while you configure all of this, you need a lilo.conf entry such as the following&lt;br /&gt;
&lt;br /&gt;
  image = /boot/2.6.32.9-i686&lt;br /&gt;
    label = 2.6.32.9-acpi&lt;br /&gt;
    append=&amp;quot;acpi=off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
At a certain point, there was an update to the linux-2.6 module that took it from 2.6.33.4 to 2.6.34.1, which I duly installed on my new test box, only to find that I couldn't reboot. The previous kernels had identified the disk as /dev/sda, but the new kernel decided it was /dev/sdb instead. This could be overcome by adding 'root=/dev/sdb3' on the lilo boot line, but then gave problems with /etc/fstab. To cut a long story short, I rebooted to the old kernel and changed /dev/fstab to use UUID instead. To find/create the UUIDs:&lt;br /&gt;
&lt;br /&gt;
  tune2fs -l /dev/sda1&lt;br /&gt;
  swapoff -a          # I'm lazy&lt;br /&gt;
  mkswap /dev/sda2    # mkswap creates with UUID by default&lt;br /&gt;
  swapon -a&lt;br /&gt;
  tune2fs -l /dev/sda3&lt;br /&gt;
&lt;br /&gt;
I even updated /etc/lilo.conf to add an 'append=&amp;quot;root=/dev/sdb3&amp;quot;' for the 2.6.34.1 entry, and I could reboot, *and* mount the file systems.&lt;br /&gt;
&lt;br /&gt;
Soon after this the 1.6.5-rc1 ISO was released, and as this was a test box anyway, with nothing really installed on it except for gnome test system that was inconsistent and didn't work, I wiped the system and re-installed from scratch.&lt;br /&gt;
&lt;br /&gt;
===1.6.5 Installation Times===&lt;br /&gt;
&lt;br /&gt;
Just out of curiosity, and for information to others, I decided to time how long it took to install a &amp;quot;minimal&amp;quot; desktop system from scratch&lt;br /&gt;
on a relatively new system and a 9-year-old relic. I have two 5-year-old boxes I might add in the future.&lt;br /&gt;
&lt;br /&gt;
It's clear that you probably don't want to install Lunar on really old hardware, unless you have a lot of patience, or can use &amp;lt;code&amp;gt;distcc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! System&lt;br /&gt;
! CPUs*bogomips [1]&lt;br /&gt;
! RAM&lt;br /&gt;
! Disk [2]&lt;br /&gt;
! Install&lt;br /&gt;
! lin gcc...&lt;br /&gt;
! lin linux-2.6&lt;br /&gt;
! lunar update&lt;br /&gt;
! lin XOrg7&lt;br /&gt;
! lin xfce4&lt;br /&gt;
! TOTAL&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Acer AX5810&lt;br /&gt;
| 4 * 4988&lt;br /&gt;
| 6 Gb&lt;br /&gt;
| 1681 / 129 MB/s&lt;br /&gt;
| 0h11&lt;br /&gt;
| 1h01&lt;br /&gt;
| 0h12&lt;br /&gt;
| 0h20&lt;br /&gt;
| 0h23&lt;br /&gt;
| 0h14&lt;br /&gt;
! 2h21&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Vaio FX401&lt;br /&gt;
| 1 * 1600&lt;br /&gt;
| 512Mb&lt;br /&gt;
| 179 / 17 MB/s&lt;br /&gt;
| 0h18&lt;br /&gt;
| 11h26&lt;br /&gt;
| 3h37&lt;br /&gt;
| 2h44&lt;br /&gt;
| 3h12&lt;br /&gt;
| 2h15&lt;br /&gt;
! 23h32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;grep bogomips /proc/cpuinfo&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;hdparm -r -T /dev/sdX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The basic procedure:&lt;br /&gt;
* install from the ISO, and take the pre-compiled kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin moonbase&amp;lt;/code&amp;gt;&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar&amp;lt;/code&amp;gt; and set number of parallel makes to 4 in ''Options / Optimize Architecture''&lt;br /&gt;
* do the &amp;lt;code&amp;gt;lin gcc glibc gcc bash coreutils tar wget&amp;lt;/code&amp;gt; dance from &amp;lt;code&amp;gt;man lfirsttime&amp;lt;/code&amp;gt;&lt;br /&gt;
* use &amp;lt;code&amp;gt;lin linux-2.6&amp;lt;/code&amp;gt; to explicitly build a new kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar update&amp;lt;/code&amp;gt; to rebuild any outdated parts of the core system&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin XOrg7&amp;lt;/code&amp;gt; to build X&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin xfce4&amp;lt;/code&amp;gt; to build Xfce4&lt;br /&gt;
&lt;br /&gt;
After the first reboot I primed the system by copying sources from /var/spool/lunar on another up-to-date machine to avoid download delays and glitches.&lt;br /&gt;
&lt;br /&gt;
When asked questions about optional depends, etc. I simply hit return to accept the default values. I did not reconfigure the kernel. I used &amp;lt;code&amp;gt;lin --deps&amp;lt;/code&amp;gt; for the XOrg7 and xfce4 builds to pre-answer the questions before kicking off the real builds so I could leave them unattended without adding delays for prompts to timeout.&lt;br /&gt;
&lt;br /&gt;
NOTE: this procedure is for timing purposes only, I still have to go back and install the correct drivers for X, etc.&lt;br /&gt;
&lt;br /&gt;
'''To be continued...'''&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User_talk:Engelsman</id>
		<title>User talk:Engelsman</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User_talk:Engelsman"/>
				<updated>2010-09-18T18:10:14Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Installing Lunar Linux 1.6.5 (Mare Ingenii) */  installation times&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;I have moved the original contents of this page elsewhere, reformatting and updating on the way.&lt;br /&gt;
However, I have provided so many references to this page in the&lt;br /&gt;
[http://forums.lunar-linux.org Lunar Forums] that I can't remove it completely, and so I leave a skeleton to show the way, just like Billy Bones in Treasure Island.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Please follow the appropriate link to the updated page.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A Newbie's experience installing, and upgrading, Lunar Linux 1.5.1==&lt;br /&gt;
&amp;lt;p&amp;gt;I started using Unix V7 on a PDP-11/70 back in 1983, even modifying some existing kernel drivers for the [http://en.wikipedia.org/wiki/Cambridge_Ring Cambridge Ring] local area network. After that I dabbled in system administration of various Sun and Apollo systems until 1991, and HP boxes up until 2000, but my main task has always been application software development, nothing on the hardware or kernel side. Since 2000 we've had dedicated system administrators at work. We had switched from NCD X-terminals over to Linux desktops (first RedHat, but then Lunar) and I realized that what little I knew had become well out of date. I installed RedHat on an old 90MHz PC at home more than five years ago, but without a LAN or modem connection it was too difficult to keep up to date, I lost interest, and that died. Since then I've had an itch to develop a spiffy [http://www.fltk.org FLTK] user interace for some old command line tools using Cygwin/Mingw on a WinXP laptop (with modem) but the machine is (a) painfully slow, and (b) painfully Windows. The time had come to get some new hardware, install an operating system that doesn't thwart you at every turn, and set up a programming environment of my own choice.&lt;br /&gt;
[[User Reports:Engelsman|Read more]]...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.0 (coming soon, maybe)==&lt;br /&gt;
&amp;lt;p&amp;gt;In April 2006, the&lt;br /&gt;
[http://www.lunar-linux.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=39&amp;amp;Itemid=2 Lunar-1.6.0-i686 ISO] was released,&lt;br /&gt;
but I don't have enough spare time to look at installing it. Not just yet anyway.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.4 (Lacus Autumni)==&lt;br /&gt;
&amp;lt;p&amp;gt;Lunar Linux 1.6.4 (Lacus Autumni) was [http://foo-projects.org/pipermail/lunar/2008-December/008144.html announced] in December 2008, and installation and update was initially pretty smooth and uneventful. But as 2009 rolled on, and new versions of certain key modules were rolled out and were out of step with each other, upgrading from the 1.6.4 ISO became difficult. Here's the [http://foo-projects.org/pipermail/lunar-dev/2009-September/006906.html Update Workaround HOWTO] that I put together in September. This is no longer required! Soon after this, other key module releases brought harmony again, and these instructions became obsolete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In February 2010, with the 2.6.32.8 kernel, updating udev from 141 to 151 caught me out. I don't remember the exact wording, but udev-151 requires that SYSFS_DEPRECATED is disabled in the kernel configuration. Finding SYSFS_DEPRECATED_V2 in the kernel didn't take long, but it took a lot longer to track down that GFS_FS also needed to be disabled...&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Also in February 2010, installed 1.6.4 on a new Acer-AX5810 box with NVIDIA GeForce G210 card. This obviously requires the some kernel settings, and to install the NVIDIA module. All well and good, but after every kernel update and reboot you need to '''lrm NVIDIA''', and then '''lin -rc NVIDIA''' again otherwise it won't install properly. This has bitten me several times after a '''lunar update'''...&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.5 (Mare Ingenii)==&lt;br /&gt;
After corruption of the superblock on my /boot partition on an HP Pavilion t3190(?), I decided to installed the 1.6.5-beta1 ISO. The initial installation and update went without problem. XOrg7 appeared to install OK, but when I ran 'startx' the console went blank. Searching the web, and asking on #lunar revealed that I needed the i915 driver for my Intel graphics card, with an entry in /etc/modules for 'i915 modeset=1'. Close, but no cigar! That's when my troubles started, with the console going into powersave mode on reboot. After much trial and error, I discovered that the kernel requires:&lt;br /&gt;
&lt;br /&gt;
  CONFIG_DRM_I915=m&lt;br /&gt;
  CONFIG_DRM_I915_KMS=y&lt;br /&gt;
  CONFIG_FRAMEBUFFER_CONSOLE=m&lt;br /&gt;
&lt;br /&gt;
The first would imply having i915 in /etc/modules, but in fact it is trumped by the second, and you don't need the i915 module at all. But the KMS line also enables ACPI in the kernel, which causes the console blanking. To solve that problem, you do need to have fbcon in /etc/modules. Or to disable the powersave mode settings while you configure all of this, you need a lilo.conf entry such as the following&lt;br /&gt;
&lt;br /&gt;
  image = /boot/2.6.32.9-i686&lt;br /&gt;
    label = 2.6.32.9-acpi&lt;br /&gt;
    append=&amp;quot;acpi=off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
At a certain point, there was an update to the linux-2.6 module that took it from 2.6.33.4 to 2.6.34.1, which I duly installed on my new test box, only to find that I couldn't reboot. The previous kernels had identified the disk as /dev/sda, but the new kernel decided it was /dev/sdb instead. This could be overcome by adding 'root=/dev/sdb3' on the lilo boot line, but then gave problems with /etc/fstab. To cut a long story short, I rebooted to the old kernel and changed /dev/fstab to use UUID instead. To find/create the UUIDs:&lt;br /&gt;
&lt;br /&gt;
  tune2fs -l /dev/sda1&lt;br /&gt;
  swapoff -a          # I'm lazy&lt;br /&gt;
  mkswap /dev/sda2    # mkswap creates with UUID by default&lt;br /&gt;
  swapon -a&lt;br /&gt;
  tune2fs -l /dev/sda3&lt;br /&gt;
&lt;br /&gt;
I even updated /etc/lilo.conf to add an 'append=&amp;quot;root=/dev/sdb3&amp;quot;' for the 2.6.34.1 entry, and I could reboot, *and* mount the file systems.&lt;br /&gt;
&lt;br /&gt;
Soon after this the 1.6.5-rc1 ISO was released, and as this was a test box anyway, with nothing really installed on it except for gnome test system that was inconsistent and didn't work, I wiped the system and re-installed from scratch.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''1.6.5 Installation Times'''&lt;br /&gt;
&lt;br /&gt;
Just out of curiosity, and for information to others, I decided to time how long it took to install a &amp;quot;minimal&amp;quot; desktop system from scratch&lt;br /&gt;
on a relatively new system and a 9-year-old relic. I have two 5-year-old boxes I might add in the future.&lt;br /&gt;
&lt;br /&gt;
It's clear that you probably don't want to install Lunar on really old hardware, unless you have a lot of patience, or can use &amp;lt;code&amp;gt;distcc&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! System&lt;br /&gt;
! CPUs*bogomips [1]&lt;br /&gt;
! RAM&lt;br /&gt;
! Disk [2]&lt;br /&gt;
! Install&lt;br /&gt;
! lin gcc...&lt;br /&gt;
! lin linux-2.6&lt;br /&gt;
! lunar update&lt;br /&gt;
! lin XOrg7&lt;br /&gt;
! lin xfce4&lt;br /&gt;
! TOTAL&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Acer AX5810&lt;br /&gt;
| 4 * 4988&lt;br /&gt;
| 6 Gb&lt;br /&gt;
| 1681 / 129 MB/s&lt;br /&gt;
| 0h11&lt;br /&gt;
| 1h01&lt;br /&gt;
| 0h12&lt;br /&gt;
| 0h20&lt;br /&gt;
| 0h23&lt;br /&gt;
| 0h14&lt;br /&gt;
! 2h21&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Vaio FX401&lt;br /&gt;
| 1 * 1600&lt;br /&gt;
| 512Mb&lt;br /&gt;
| 179 / 17 MB/s&lt;br /&gt;
| 0h18&lt;br /&gt;
| 11h26&lt;br /&gt;
| 3h37&lt;br /&gt;
| 2h44&lt;br /&gt;
| 3h12&lt;br /&gt;
| 2h15&lt;br /&gt;
! 23h32&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;grep bogomips /proc/cpuinfo&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;hdparm -r -T /dev/sdX&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The basic procedure:&lt;br /&gt;
* install from the ISO, and take the pre-compiled kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin moonbase&amp;lt;/code&amp;gt;&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar&amp;lt;/code&amp;gt; and set number of parallel makes to 4 in ''Options / Optimize Architecture''&lt;br /&gt;
* do the &amp;lt;code&amp;gt;lin gcc glibc gcc bash coreutils tar wget&amp;lt;/code&amp;gt; dance from &amp;lt;code&amp;gt;man lfirsttime&amp;lt;/code&amp;gt;&lt;br /&gt;
* use &amp;lt;code&amp;gt;lin linux-2.6&amp;lt;/code&amp;gt; to explicitly build a new kernel, and reboot&lt;br /&gt;
* run &amp;lt;code&amp;gt;lunar update&amp;lt;/code&amp;gt; to rebuild any outdated parts of the core system&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin XOrg7&amp;lt;/code&amp;gt; to build X&lt;br /&gt;
* run &amp;lt;code&amp;gt;lin xfce4&amp;lt;/code&amp;gt; to build Xfce4&lt;br /&gt;
&lt;br /&gt;
After the first reboot I primed the system by copying sources from /var/spool/lunar on another up-to-date machine to avoid download delays and glitches.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''To be continued...'''&lt;br /&gt;
When asked questions about optional depends, etc. I simply hit return to accept the default values. I did not reconfigure the kernel. I used &amp;lt;code&amp;gt;lin --deps&amp;lt;/code&amp;gt; for the XOrg7 and xfce4 builds to pre-answer the questions before kicking off the real builds so I could leave them unattended without adding delays for prompts to timeout.&lt;br /&gt;
&lt;br /&gt;
NOTE: this procedure is for timing purposes only, I still have to go back and install the correct drivers for X, etc.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User_talk:Engelsman</id>
		<title>User talk:Engelsman</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User_talk:Engelsman"/>
				<updated>2010-09-17T22:38:03Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Installing Lunar Linux 1.6.5 (Mare Ingenii) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;I have moved the original contents of this page elsewhere, reformatting and updating on the way.&lt;br /&gt;
However, I have provided so many references to this page in the&lt;br /&gt;
[http://forums.lunar-linux.org Lunar Forums] that I can't remove it completely, and so I leave a skeleton to show the way, just like Billy Bones in Treasure Island.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Please follow the appropriate link to the updated page.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A Newbie's experience installing, and upgrading, Lunar Linux 1.5.1==&lt;br /&gt;
&amp;lt;p&amp;gt;I started using Unix V7 on a PDP-11/70 back in 1983, even modifying some existing kernel drivers for the [http://en.wikipedia.org/wiki/Cambridge_Ring Cambridge Ring] local area network. After that I dabbled in system administration of various Sun and Apollo systems until 1991, and HP boxes up until 2000, but my main task has always been application software development, nothing on the hardware or kernel side. Since 2000 we've had dedicated system administrators at work. We had switched from NCD X-terminals over to Linux desktops (first RedHat, but then Lunar) and I realized that what little I knew had become well out of date. I installed RedHat on an old 90MHz PC at home more than five years ago, but without a LAN or modem connection it was too difficult to keep up to date, I lost interest, and that died. Since then I've had an itch to develop a spiffy [http://www.fltk.org FLTK] user interace for some old command line tools using Cygwin/Mingw on a WinXP laptop (with modem) but the machine is (a) painfully slow, and (b) painfully Windows. The time had come to get some new hardware, install an operating system that doesn't thwart you at every turn, and set up a programming environment of my own choice.&lt;br /&gt;
[[User Reports:Engelsman|Read more]]...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.0 (coming soon, maybe)==&lt;br /&gt;
&amp;lt;p&amp;gt;In April 2006, the&lt;br /&gt;
[http://www.lunar-linux.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=39&amp;amp;Itemid=2 Lunar-1.6.0-i686 ISO] was released,&lt;br /&gt;
but I don't have enough spare time to look at installing it. Not just yet anyway.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.4 (Lacus Autumni)==&lt;br /&gt;
&amp;lt;p&amp;gt;Lunar Linux 1.6.4 (Lacus Autumni) was [http://foo-projects.org/pipermail/lunar/2008-December/008144.html announced] in December 2008, and installation and update was initially pretty smooth and uneventful. But as 2009 rolled on, and new versions of certain key modules were rolled out and were out of step with each other, upgrading from the 1.6.4 ISO became difficult. Here's the [http://foo-projects.org/pipermail/lunar-dev/2009-September/006906.html Update Workaround HOWTO] that I put together in September. This is no longer required! Soon after this, other key module releases brought harmony again, and these instructions became obsolete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In February 2010, with the 2.6.32.8 kernel, updating udev from 141 to 151 caught me out. I don't remember the exact wording, but udev-151 requires that SYSFS_DEPRECATED is disabled in the kernel configuration. Finding SYSFS_DEPRECATED_V2 in the kernel didn't take long, but it took a lot longer to track down that GFS_FS also needed to be disabled...&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Also in February 2010, installed 1.6.4 on a new Acer-AX5810 box with NVIDIA GeForce G210 card. This obviously requires the some kernel settings, and to install the NVIDIA module. All well and good, but after every kernel update and reboot you need to '''lrm NVIDIA''', and then '''lin -rc NVIDIA''' again otherwise it won't install properly. This has bitten me several times after a '''lunar update'''...&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.5 (Mare Ingenii)==&lt;br /&gt;
After corruption of the superblock on my /boot partition on an HP Pavilion t3190(?), I decided to installed the 1.6.5-beta1 ISO. The initial installation and update went without problem. XOrg7 appeared to install OK, but when I ran 'startx' the console went blank. Searching the web, and asking on #lunar revealed that I needed the i915 driver for my Intel graphics card, with an entry in /etc/modules for 'i915 modeset=1'. Close, but no cigar! That's when my troubles started, with the console going into powersave mode on reboot. After much trial and error, I discovered that the kernel requires:&lt;br /&gt;
&lt;br /&gt;
  CONFIG_DRM_I915=m&lt;br /&gt;
  CONFIG_DRM_I915_KMS=y&lt;br /&gt;
  CONFIG_FRAMEBUFFER_CONSOLE=m&lt;br /&gt;
&lt;br /&gt;
The first would imply having i915 in /etc/modules, but in fact it is trumped by the second, and you don't need the i915 module at all. But the KMS line also enables ACPI in the kernel, which causes the console blanking. To solve that problem, you do need to have fbcon in /etc/modules. Or to disable the powersave mode settings while you configure all of this, you need a lilo.conf entry such as the following&lt;br /&gt;
&lt;br /&gt;
  image = /boot/2.6.32.9-i686&lt;br /&gt;
    label = 2.6.32.9-acpi&lt;br /&gt;
    append=&amp;quot;acpi=off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
At a certain point, there was an update to the linux-2.6 module that took it from 2.6.33.4 to 2.6.34.1, which I duly installed on my new test box, only to find that I couldn't reboot. The previous kernels had identified the disk as /dev/sda, but the new kernel decided it was /dev/sdb instead. This could be overcome by adding 'root=/dev/sdb3' on the lilo boot line, but then gave problems with /etc/fstab. To cut a long story short, I rebooted to the old kernel and changed /dev/fstab to use UUID instead. To find/create the UUIDs:&lt;br /&gt;
&lt;br /&gt;
  tune2fs -l /dev/sda1&lt;br /&gt;
  swapoff -a          # I'm lazy&lt;br /&gt;
  mkswap /dev/sda2    # mkswap creates with UUID by default&lt;br /&gt;
  swapon -a&lt;br /&gt;
  tune2fs -l /dev/sda3&lt;br /&gt;
&lt;br /&gt;
I even updated /etc/lilo.conf to add an 'append=&amp;quot;root=/dev/sdb3&amp;quot;' for the 2.6.34.1 entry, and I could reboot, *and* mount the file systems.&lt;br /&gt;
&lt;br /&gt;
Soon after this the 1.6.5-rc1 ISO was released, and as this was a test box anyway, with nothing really installed on it except for gnome test system that was inconsistent and didn't work, I wiped the system and re-installed from scratch.&lt;br /&gt;
&lt;br /&gt;
'''To be continued...'''&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;&lt;br /&gt;
! System&lt;br /&gt;
! CPUs*bogomips [1]&lt;br /&gt;
! RAM&lt;br /&gt;
! Disk [2]&lt;br /&gt;
! Install [3]&lt;br /&gt;
! lin gcc... [4]&lt;br /&gt;
! lin linux-2.6 [5]&lt;br /&gt;
! lunar update&lt;br /&gt;
! lin XOrg7&lt;br /&gt;
! lin Xfce4&lt;br /&gt;
! TOTAL&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Acer AX5810&lt;br /&gt;
| 4 * 4988&lt;br /&gt;
| 6 Gb&lt;br /&gt;
| 1681 / 129 MB/s&lt;br /&gt;
| 0:11&lt;br /&gt;
| 1:01&lt;br /&gt;
| 0:12&lt;br /&gt;
| 0:20&lt;br /&gt;
| ?:??&lt;br /&gt;
| ?:??&lt;br /&gt;
| ?:??&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Vaio FX401&lt;br /&gt;
| 1 * 1600&lt;br /&gt;
| 512Mb&lt;br /&gt;
| 179 / 17 MB/s&lt;br /&gt;
| 0:18&lt;br /&gt;
| ?:??&lt;br /&gt;
| ?:??&lt;br /&gt;
| ?:??&lt;br /&gt;
| ?:??&lt;br /&gt;
| ?:??&lt;br /&gt;
| ?:??&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
# &amp;lt;code&amp;gt;grep bogomips /proc/cpuinfo&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;hdparm -r -T /dev/sdX&amp;lt;/code&amp;gt;&lt;br /&gt;
# install from Lunar ISO, with precompiled kernel only&lt;br /&gt;
# &amp;lt;code&amp;gt;lin -rc gcc glibc gcc bash coreutils tar wget&amp;lt;/code&amp;gt;&lt;br /&gt;
# &amp;lt;code&amp;gt;lin linux-2.6&amp;lt;/code&amp;gt; but use the existing configuration&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:FAQ</id>
		<title>Lunar Linux:FAQ</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:FAQ"/>
				<updated>2010-09-11T11:44:07Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* error: download failed - broken URL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the '''F'''requently '''A'''sked '''Q'''uestions for Lunar Linux. You have a question about Lunar? You might get your answer below.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
===What is Lunar Linux?===&lt;br /&gt;
What exactly is Lunar Linux?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
* Please read [[Lunar Linux:About|About Lunar Linux]].&lt;br /&gt;
&lt;br /&gt;
===Can I run Lunar Linux in 64-bit mode?===&lt;br /&gt;
Can I run Lunar Linux on my new 64-bit system?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Yes you can. You can run Lunar Linux in '''either''' 64-bit '''or''' 32-bit mode, but there is no multi-lib mode. Be aware that some applications are still only available for 32-bit mode!&lt;br /&gt;
&lt;br /&gt;
===Where can I find how to ...?===&lt;br /&gt;
Where can I find how to customize the kernel under Lunar Linux? Or the desktop...&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The Lunar Wiki only offers details specific to Lunar Linux. Many other resources already exist for general Linux problem solving. For example, information on how to customize the Linux kernel can be found at:&lt;br /&gt;
* http://kernelnewbies.org/&lt;br /&gt;
* http://en.wikipedia.org/wiki/Linux_kernel_mailing_list&lt;br /&gt;
&lt;br /&gt;
==Optimizations==&lt;br /&gt;
&lt;br /&gt;
===How do I set optimizations?===&lt;br /&gt;
How do I set these optimizations for my machine?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt;lunar optimize&amp;lt;/code&amp;gt;. You'll be taken through an interactive menu that explains all the options. Remember to optimize safely.&lt;br /&gt;
&lt;br /&gt;
===What are safe optimizations?===&lt;br /&gt;
What are the recomended safe optimizations for [[Lunar Linux]]?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The default sure fire optimizations that are recommended are:&lt;br /&gt;
&lt;br /&gt;
* '''C'''&lt;br /&gt;
** &amp;lt;code&amp;gt;-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''C++'''&lt;br /&gt;
** &amp;lt;code&amp;gt;-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''CPU Architecture'''&lt;br /&gt;
** You should pick the correct architecture for your own system (defaults to x86 for most people).&lt;br /&gt;
* '''Basic Optimzations'''&lt;br /&gt;
** Faster (-O2, the default).&lt;br /&gt;
* '''CPU'''&lt;br /&gt;
** This, of course, should be set to your own cpu, or the cpu of the machine you plan to run this install on. If you want to be able to run this install on many machines, you should be safe with I686.&lt;br /&gt;
* '''Speed Optimizations'''&lt;br /&gt;
** If you want to be 100% sure that there won't be optimization problems you shouldn't select any of these.&lt;br /&gt;
* '''Extra features'''&lt;br /&gt;
** It is not recommended to use any of these optimizations, even for modules known to be able to handle them, since they cause many apps to break.&lt;br /&gt;
* '''Floating Point Math'''&lt;br /&gt;
** None. If your architecture is x86 and you don't own a 386SX and 486SX, it's safe to select x387.&lt;br /&gt;
* '''Linker Options'''&lt;br /&gt;
** Strip.&lt;br /&gt;
* '''Addon Program Support'''&lt;br /&gt;
** CCache. Make sure to install it first.&lt;br /&gt;
&lt;br /&gt;
These settings should work for almost everyone, and there is a lot room for pushing these optimizations more, at the risk of problems with some applications. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations may cause problems?===&lt;br /&gt;
What optimizations are known to cause problems in some setups?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Some optimizations that are known to cause problems on x86 with many applications, and even a entire system:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-funroll-loops&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-fstrict-aliasing&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-ffast-math&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-ffloat-store&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are sorted from the least unstable to most unstable. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations can give some speed without issues?===&lt;br /&gt;
What optimizations can I use to gain some speed but without major risks?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Start with the basic optimizations in [[Lunar Linux:FAQ#What_are_safe_optimizations.3F|FAQ #2.2]] and change the Basic Optimizations to Faster or Fastest if you know that gcc will generate correct code for that cpu. -O2 obviously takes more compile time than -O1, and -O3 takes the most time to compile. Then select the cpu you will run it on. Some of the speed optimizations that should be decent and shouldn't cause too many problems, if any, are: -fomit-frame-pointer. A safe bet for floating point math on a x86 would be x387, if you know your cpu has a floating point unit. Check &amp;lt;code&amp;gt;cat /proc/cpuinfo&amp;lt;/code&amp;gt; to see if your cpu supports SSE or SSE2. If your cpu does have sse or sse2 then you can also add that to the math optimizations.&lt;br /&gt;
&lt;br /&gt;
Your results may vary. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations should I avoid?===&lt;br /&gt;
What optimizations should I stay away from?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
All the ones listed in the [[Lunar Linux:FAQ#What_optimizations_may_cause_problems.3F|FAQ #2.3]] plus:&lt;br /&gt;
* &amp;lt;code&amp;gt;-fprofile-arcs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-fbranching-probabilities&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it. The Lunar developers will not respond to bug reports of broken compiles by users with risky optimizations.&lt;br /&gt;
&lt;br /&gt;
==Installing modules==&lt;br /&gt;
&lt;br /&gt;
===Can I compile several modules at once?===&lt;br /&gt;
Is it possible to install multiple modules at the same time without breaking things?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Yes, Lunar even promotes it. However doing so will cause installs compile slower of course. Lunar will not install core system modules like gcc and glibc while something else is installing and will wait until the rest is finished. Also, you cannot install applications while those major modules are installing, they will wait their turn until it's safe and continue to install them automatically.&lt;br /&gt;
&lt;br /&gt;
===error : download failed - broken URL===&lt;br /&gt;
I tried to install a module, but the download failed due to a broken URL. What do I do now?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
There are three possible reasons why the download failed:&lt;br /&gt;
# You are trying to download from one of a set of mirror sites, and the mirror you are using is either busy or incomplete.&lt;br /&gt;
#* Run &amp;quot;lunar&amp;quot; as root, select Options / Software Mirrors, and change the mirror to something closer to you.&lt;br /&gt;
#* Note: there seems to be a consistent problem with the SFORGE mirror: http://osdn.dl.sourceforge.net&lt;br /&gt;
# You are trying to download from a particular site, but the location of the file has changed [or the site is temporarily off-line].&lt;br /&gt;
#* Browse the module's website (see &amp;quot;lvu website&amp;quot;) [or search the web for the tarball],&lt;br /&gt;
#* Download it manually, copy it to /var/spool/lunar, and try to run &amp;quot;lin&amp;quot; again,&lt;br /&gt;
#* Run &amp;quot;lvu edit&amp;quot; to create a [[zlocal]] copy, and edit that copy with the new location [or secondary URL]&lt;br /&gt;
# You are trying to download a version that has been removed because a newer version exists.&lt;br /&gt;
#* Browse the module's website to discover the new version number,&lt;br /&gt;
#* Run &amp;quot;lvu edit&amp;quot; to create a [[zlocal]] copy, and edit that copy with the new location, version number, sha1sum, etc.&lt;br /&gt;
#* Note: you could first try to run &amp;quot;lin -w newVersion&amp;quot; and hope that it builds without problems.&lt;br /&gt;
If you do create your own [[zlocal]] copy, please consider submitting it using &amp;quot;lvu submit&amp;quot;. (See [[Module Submission]])&lt;br /&gt;
&lt;br /&gt;
===error : C compiler cannot create executables===&lt;br /&gt;
What does this error mean and how can I fix it?&lt;br /&gt;
* &amp;lt;code&amp;gt;C compiler cannot create executables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Read the next topic - this is basically the same problem: There are kernel headers missing that are vital to compilation. You will have to restore them. Below is explained how to do that.&lt;br /&gt;
&lt;br /&gt;
===configure: error: C preprocessor &amp;quot;/lib/cpp&amp;quot; fails sanity check===&lt;br /&gt;
What does this error mean and how can I fix it?&lt;br /&gt;
* &amp;lt;code&amp;gt;configure: error: C preprocessor &amp;quot;/lib/cpp&amp;quot; fails sanity check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
This is an include file problem. Sometimes ''/usr/include/gnu/stubs.h'' is missing, this can be found in the glibc source tarball. Most of the time the following applies:&lt;br /&gt;
&lt;br /&gt;
Your kernel headers are missing from &amp;lt;code&amp;gt;/usr/include&amp;lt;/code&amp;gt;. This means the C PreProcessor cannot verify that it has the proper cached copies of those vital header files. You need to install the proper ones manually. Here's how:&lt;br /&gt;
&lt;br /&gt;
 lin kernel-headers-2.4&lt;br /&gt;
&lt;br /&gt;
This might work for you! (Use the 2.6 version if needed of course)&lt;br /&gt;
&lt;br /&gt;
Otherwise:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /usr/include/{linux,asm}&lt;br /&gt;
&lt;br /&gt;
to create the two target dirs, if needed. Then execute:&lt;br /&gt;
&lt;br /&gt;
 cp -av /usr/src/linux/include/linux /usr/include/&lt;br /&gt;
 cp -av /usr/src/linux/include/asm/* /usr/include/asm/&lt;br /&gt;
&lt;br /&gt;
to copy the files manually. Be warned that the second command has to be done this way since &amp;lt;code&amp;gt;/usr/src/linux/include/asm&amp;lt;/code&amp;gt; is a softlink to your arch asm header files, asm points to asm-i386, on x86 machines. So if, on the other hand, you had copied&lt;br /&gt;
&lt;br /&gt;
 cp -av /usr/src/linux/include/asm /usr/include/&lt;br /&gt;
&lt;br /&gt;
you would then get a softlink to nowhere under &amp;lt;code&amp;gt;/usr/include/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Last, you can always try to unpack the kernel tarball you have into &amp;lt;code&amp;gt;/usr/src/linux&amp;lt;/code&amp;gt; and manaully link or copy the headers over yourself.&lt;br /&gt;
&lt;br /&gt;
===Can I add more window managers to gdm?===&lt;br /&gt;
How do I add other window managers to the sessions list on gdm?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Copy the desktop startup files to &amp;lt;code&amp;gt;/etc/X11/dm/Sessions/&amp;lt;/code&amp;gt;. That works with gdm. For kdm you will have to copy them to &amp;lt;code&amp;gt;$KDE_PREFIX/share/apps/kdm/sessions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How do I get Flash to work in Mozilla or Firefox?===&lt;br /&gt;
How do I get Flash to work in Mozilla or Firefox?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
If you are using Mozilla or Firefox, then you can simply do a &amp;lt;code&amp;gt;lin flash-plugin&amp;lt;/code&amp;gt; and that will download and install the Macromedia Flash plugin that works with a gtk+ based mozilla through the old abi wrappers.&lt;br /&gt;
&lt;br /&gt;
The flash plugin does ''not'' work with Galeon. The Galeon developers have declined to provide the &amp;quot;old&amp;quot; abi wrappers needed for the plugin to work.&lt;br /&gt;
&lt;br /&gt;
===How do I install Java?===&lt;br /&gt;
How do I get Java for my Lunar box?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
You will have to download the Java source code from Sun yourself and you have to &amp;quot;click&amp;quot; to agree on their license. You have to compile it yourself too. We don't have a Sun Java module as we currently have no way to automate the &amp;quot;click&amp;quot; to agree to the Sun Java license. See this URL for some handy info:&lt;br /&gt;
&lt;br /&gt;
http://www.linuxfromscratch.org/~tushar/hints/javafromscratch.txt&lt;br /&gt;
&lt;br /&gt;
There is a j2sdk module in moonbase which is the Blackdown port of Sun's Java Virtual Machine.&lt;br /&gt;
&lt;br /&gt;
==Lunar core tools==&lt;br /&gt;
&lt;br /&gt;
===How can I recompile my module with new options?===&lt;br /&gt;
How do I force lunar to recompile my modules with different options?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Try:&lt;br /&gt;
&lt;br /&gt;
 lin -r ''MODULE''&lt;br /&gt;
&lt;br /&gt;
The -r switch will allow you to select new configuration and dependencies for modules.&lt;br /&gt;
&lt;br /&gt;
===How can I make modules recompile instead of resurrecting?===&lt;br /&gt;
How do I tell lunar to recompile my application instead of resurrecting it?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Try doing:&lt;br /&gt;
&lt;br /&gt;
 lin -c ''MODULE''&lt;br /&gt;
&lt;br /&gt;
The -c option means tells &amp;lt;code&amp;gt;lin&amp;lt;/code&amp;gt; to compile this module even if there is an install cache copy available in &amp;lt;code&amp;gt;/var/cache/lunar&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How can I tell lunar that module X no longer depends on module Y?===&lt;br /&gt;
Module X no longer depends on module Y, but lunar insists on reinstalling module Y too. How can I get tell lunar to remove that dependency?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Lunar adds a module's dependencies to a cache when you install it. You can't remove a dependency automatically, but you can rebuild the dependency cache to reflect the current dependencies of the modules that are now installed.&lt;br /&gt;
&lt;br /&gt;
 lsh create_module_index&lt;br /&gt;
 lsh create_depends_cache&lt;br /&gt;
 lunar fixdepends&lt;br /&gt;
&lt;br /&gt;
Note: Dependencies of modules in [[zlocal]] are ignored. If module X in the main moonbase depends on module Y then the dependency cache will still contain that dependency.&lt;br /&gt;
&lt;br /&gt;
===My moonbase is gone and I can't install anything.===&lt;br /&gt;
How do I fix problems with my moonbase when it's missing or damaged?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Simple solution to this is just running:&lt;br /&gt;
&lt;br /&gt;
 lin moonbase&lt;br /&gt;
&lt;br /&gt;
This will download the latest moonbase from the internet, and restore it to working order.&lt;br /&gt;
&lt;br /&gt;
===What is a module?===&lt;br /&gt;
What is a [[module]] and what does it do??&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
A [[module]] is a set of files that tell the core tools the following:&lt;br /&gt;
&lt;br /&gt;
* What name, version, and other properties a package has&lt;br /&gt;
* Where to download all needed source files&lt;br /&gt;
* What other modules are required, or conflict with this one&lt;br /&gt;
* How to unpack the source files, how to patch&lt;br /&gt;
* How to configure the code&lt;br /&gt;
* How to compile&lt;br /&gt;
* How to install everything&lt;br /&gt;
* What else to do with it&lt;br /&gt;
&lt;br /&gt;
The [[module]] is coded in a set of files in a directory structure, and scripted in bash.&lt;br /&gt;
&lt;br /&gt;
===What is the Moonbase?===&lt;br /&gt;
What is that thing you call [[Moonbase]]?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The [[Moonbase]] is a database with [[modules]]. In this database there are description of packages that tell the core tools where to download, how to compile, and how install a [[module]]. You can consider this the lunar equivalent of portage, grimoire, ports, etc.&lt;br /&gt;
&lt;br /&gt;
===What is theedge?===&lt;br /&gt;
What is theedge?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
[[theedge]] is the same as lunar, and also known as the core code. Theedge is just another version of lunar. These two pieces of code install your packages, but they do not contain package descriptions. Those are defined in moonbase.&lt;br /&gt;
&lt;br /&gt;
[[Theedge]] is a development version of [[lunar]]. Often there are much more features in theedge, and bugs are fixed quicker as well. However, if you do not like all this tweaking on your system, we advice you to use the stable lunar core tools instead on your system.&lt;br /&gt;
&lt;br /&gt;
You can install [[theedge]] by issuing:&lt;br /&gt;
&lt;br /&gt;
 lin theedge&lt;br /&gt;
&lt;br /&gt;
Theedge is automatically updated if you do a &amp;lt;code&amp;gt;lunar renew&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;lunar update&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Lunar-Linux Installation==&lt;br /&gt;
&lt;br /&gt;
===My usb keyboard is not recognized===&lt;br /&gt;
At the boot prompt type ''linux uhci-hcd ehci-hcd'' to make sure those modules are loaded during startup. Those will then enable your usb keyboard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===So how should I partition my disk?===&lt;br /&gt;
I'm setting up lunar from scratch, but how should I partition my disk for a server or desktop system?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Server systems have very different demands than desktops. It's all about flexibility. First desktops:&lt;br /&gt;
&lt;br /&gt;
''desktops'' commonly have one hard disk. You don't want to reformat or repartition often, so you just want to be done with it at once. The easiest is just to setup 2 (two) partitions: one root filesystem big enough for all lunar software, and the rest for &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt;. Typically, lunar occupies between 4 and 12 gb based on how many applications you install. If you clean up often you can manage with 8gb, but you should keep some extra space. I certainly advise to use a swapfile instead of a swap partition: you can always later delete the swap, or move the swapfile to another disk or partition. A swap partition is harder to relocate.&lt;br /&gt;
&lt;br /&gt;
''Servers'' have different needs. First of all &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt; doesn't need to be that large, but you will want to setup space for logfiles that cannot cause problems if they grow too fast. Putting &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/var/log&amp;lt;/code&amp;gt; on separate partitions is quite normal. &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; can be abused similarly, and is mostly run in [[tmpfs]] to avoid cluttering and give fast access times. Then &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; will be separate and the usual separate &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt;. As you can see this list is already getting quite big! Most users will actually want to make the &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; quite small (as small as 200mb sometimes!) and thus &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt; also needs to be on a separate partition.&lt;br /&gt;
&lt;br /&gt;
===Kernel features, built-in or module?===&lt;br /&gt;
When I compile a kernel, should I compile drivers that I need in the kernel image or as module?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
There are many schools of thought on kernel compiling. One is to build everything into the main kernel without modules. The other one takes building modules to the extreme. Here is a suggestion, if it's not needed to boot it's a module. Thus usb, input, sound, mice ACPI, network, and also cdrom, floppy, and all the non boot file systems, all get built as modules. This reduces the size of the main kernel so it can be put on a floppy. Another thing to consider is that not everything works perfectly, and some features can cause your kernel to misbehave, so if some feature is built-in, the bad behavior is practically inevitible. Instead, with a module you can choose not to load it and thus be left with a working system.&lt;br /&gt;
&lt;br /&gt;
Please note that some people need to make some features built into their kernel and vice versa, do whatever works best for you.&lt;br /&gt;
&lt;br /&gt;
===QEMU and Lunar ISO testing===&lt;br /&gt;
How do I use qemu to try out lunar ISO's?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Just a quick note on how to use qemu for testing a Lunar Linux installation. See &amp;lt;code&amp;gt;/var/lib/lunar/moonbase/devel/qemu/DETAILS&amp;lt;/code&amp;gt; for a description of qemu. Think of it as a low-cost (''read: free'') version of a virtual machine, that has quite a few useful features and is under active development.&lt;br /&gt;
&lt;br /&gt;
A very simple way to just test a Lunar ISO for booting purposes is:&lt;br /&gt;
&lt;br /&gt;
 qemu -cdrom lunar-1.5.0-i686.iso -boot d&lt;br /&gt;
&lt;br /&gt;
If you want to test a full install, then create a 512 megabyte sparse root_fs image with this &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=hda.img bs=$((1024 * 1024)) count=0 seek=512&lt;br /&gt;
&lt;br /&gt;
Now invoke qemu:&lt;br /&gt;
&lt;br /&gt;
 qemu -cdrom lunar-1.5.0-i686.iso -boot d -hda hda.img&lt;br /&gt;
&lt;br /&gt;
You can then proceed to test your Lunar install. Refer the qemu homepage for further tips and tricks. qemu can also be quite easily used to test if your brand new kernel is bootable or not, which is quite neat.&lt;br /&gt;
&lt;br /&gt;
Note that you should say yes to using SDL as an optional_depends. The gui version of qemu is ''very'' nice in its own little X11 window.&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
===How do I unpack an .RPM file in lunar?===&lt;br /&gt;
How do I install RPM files in lunar? Is that possible?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The easiest way to unpack a rpm file is to use the module called &amp;lt;code&amp;gt;rpmunpack&amp;lt;/code&amp;gt;. Simply run &amp;lt;code&amp;gt;rpmupack ''XYZ''.rpm&amp;lt;/code&amp;gt; for your RPM. This will create a cpio file (''XYZ.cpio.gz'' and ''XYZ.cpio.bz2'' are not uncommon). Once you perform any additional uncompression with &amp;lt;code&amp;gt;gunzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;bunzip2&amp;lt;/code&amp;gt;, you can then extract it using &amp;lt;code&amp;gt;cpio -i -d &amp;amp;lt; XYZ.cpio&amp;lt;/code&amp;gt; -- After all that you should be all done. If you are trying to rpmunpack a source RPM (i.e. .src.rpm) file then ''XYZ.cpio'' may further contain a tar.bz2 or tar.gz source tarball.&lt;br /&gt;
&lt;br /&gt;
In the zbeta section of moonbase, there is an '''''unsupported''''' module called &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; for those of you that are really desperate.&lt;br /&gt;
&lt;br /&gt;
You might want to do &amp;lt;code&amp;gt;man cpio&amp;lt;/code&amp;gt;, to check out additional cpio parameters that may interest you, such as the -L switch.&lt;br /&gt;
&lt;br /&gt;
===What is that in the Lunar-Linux logo?===&lt;br /&gt;
What is that logo of yours? It looks like a &amp;lt;nowiki&amp;gt;[cat|ferret|dog|owl|insert nutty animal here]&amp;lt;/nowiki&amp;gt;!&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The logo is a [[wikipedia:Southern Rockhopper Penguin|Rockhopper Penguin]]. It's a kind of nasty penguin, the one that crowd up in thousands to take over the continent. They have a few long feathers sticking out at their &amp;quot;ears&amp;quot; sideway, just like some owl species do.&lt;br /&gt;
&lt;br /&gt;
You can check out [http://images.google.com/images?q=Rockhopper+Penguin Google Images] for lots of Rockhopper Penguin pictures!&lt;br /&gt;
&lt;br /&gt;
The current logo has been designed by Michael Schindler in 2003 and appeared as the official logo of the Lunar Linux project in 2004.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5</id>
		<title>Lunar Linux:Installation/1.6.5</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5"/>
				<updated>2010-08-25T18:42:52Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Upgrade Moonbase */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is a revolutionary Linux distribution in that it is not binary based, as are most distributions, but is instead built entirely by compiling source code, using your own custom optimizations. &lt;br /&gt;
&lt;br /&gt;
Essentially, it installs a complete bootstrap development system on your machine, and then you tell the Lunar package manager what tools you want, and it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward your specific needs.&lt;br /&gt;
&lt;br /&gt;
The result is a leaner, meaner, refreshingly uncluttered, and strikingly faster operating system than most Linux distributions.&lt;br /&gt;
&lt;br /&gt;
This installation guide is designed to get you through the installation process as painlessly as possible. It assumes that you have some experience with Linux or another Unix variant, and have a general idea of what you are doing. If you are unfamiliar with such things as partitions, or have never used Linux before, Lunar may not be the best introduction for you into the world of open source. There are always Lunar gods available on irc.freenode.net in the #lunar channel to answer any questions that this manual may not make quite clear enough.&lt;br /&gt;
&lt;br /&gt;
With that said, we hope you enjoy using Lunar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About this installation manual==&lt;br /&gt;
&lt;br /&gt;
Although this manual is not intended to be a full and complete overview of any situation you may be confronted with, given the wide diversity of hardware available these days, it is intended to be an introduction to the world of Lunar Linux. You will see examples that are not tailored towards your to-be built server or workstation, optimizations that are overly broad or too specific, and examples that don't apply to any real situations. We tried hard to give you the idea of how much power you have over how you can setup your system, but we are forgetting to tell you how to run your own server or desktop (or other system) at all. That means that the examples and steps taken most probably do not apply to your situation at all.&lt;br /&gt;
	&lt;br /&gt;
Do not despair: if you understand what is going on and you get the idea, the installer will allow you to do pretty much everything you want to do with your system. There are really (almost) no limits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting the ISO==&lt;br /&gt;
&lt;br /&gt;
The primary site for retrieving the ISO is [http://www.lunar-linux.org/ lunar-linux.org]. There, you will find links to our US, EU, and Internet2 mirrors, as well as a Bittorrent link. As of this writing, the current version of the Lunar ISO is version 1.6.5-rc1, codename Mare Ingenii (20100709). (''Check the main site for the actual latest version!'')&lt;br /&gt;
&lt;br /&gt;
Locate and retrieve the file lunar-1.6.5-rc1-i686.iso.bz2 (or lunar-1.6.5-rc1-x86_64.iso.bz2 if you have a 64-bit system). After downloading this file, you will need to unpack the ISO using bzip2. Windows users will need a program that can extract bzip2 archives, like WinZip (also capable of extracting bzip2 archives under windows are IZarc, Winrar, powerarchiver and 7-Zip). Mac should unzip the file by itself. Then all that is left to do is use your favorite program to burn the ISO to a cdrom and begin the installation. Lunar can also be installed without using a CD. If you need to do it this way, our [[FAQ]] provides simple instructions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO and Lunar use udev for device management. The devfs system, and the &amp;quot;old-school&amp;quot; method of manually installing devices, are no longer supported.&lt;br /&gt;
&lt;br /&gt;
We are assuming the you are installing Lunar as your primary OS. Make sure you have a backup of any important data that you need to retain. The Lunar Linux Project and its developers are not responsible in any way for any loss of data on your system!&lt;br /&gt;
&lt;br /&gt;
==Booting the ISO==&lt;br /&gt;
&lt;br /&gt;
Upon booting the ISO, the first thing you will see are options for booting the ISO kernel, or for performing RAM tests [Note: MemTest is not available on x86_64]. There is even a safe mode which will disable DMA, MTRR, RAID, LVM, USB keyboards, NTFS, HPFS, Advanced Partitions, and Firewire. Most folks, however, will be just fine pressing enter at the boot prompt and loading the default kernel.&lt;br /&gt;
&lt;br /&gt;
To boot the iso with support for your usb keyboard:&lt;br /&gt;
''linux uhci-hcd ehci-hcd''&lt;br /&gt;
&lt;br /&gt;
After loading the kernel, the first screen presents you with a few options. If there are extra modules you need to load in order continue with the install, they can be loaded here. There is also a shell option. However, if you are using this ISO for rescue purposes, you do not want to shell out here; rather continue booting and shell out in the next section. Most people will select &amp;quot;continue booting&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO tries to autodetect some hardware (mostly scsi drivers and network interfaces) during this stage. This will help you establish a network connection if you desire so during installation. For this reason the programs 'dhcpcd' and 'ftp' are already available at this stage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Consoles==&lt;br /&gt;
&lt;br /&gt;
Once the ISO has booted into the installer, you can immediately shell out or switch to one of the other virtual consoles. These will have ready to go root shells and are available throughout the installer sequence. With these you can start rescue actions, setup networking or double check the install progress and make manual adjustments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Language and keyboard interface Settings==&lt;br /&gt;
&lt;br /&gt;
After reading the introduction, you will be presented with options for choosing the proper font, keymap, and language for your install.&lt;br /&gt;
You will also need to choose an editor, as you are going to need one later on in the installation for setting up your lilo or grub configuration. The choices available are e3, [e3/emacs], joe, nano, vi, and zile. If you have never used a text editor in Linux before, nano is the best choice for you. If you skip the Native Language Support option, the system will install the default editor, nano, for you. When you have finished setting up your options, press cancel to return to the main setup menu.&lt;br /&gt;
Less important for most people is the ability to choose the console font, although it may help display some non-English characters. Most people will want to set the system-default language variable and editor though. All these values are unset by default, so make sure you set them now.&lt;br /&gt;
The keymap table allows people to use azerty and dvorak keyboards, and much more. This is especially required for non-English keyboards which provide many accented characters.&lt;br /&gt;
All these language and keymap settings might not apply to the lunar code itself, which (currently) does not have any international support, but most programs that run during the installer sequence, and after booting into your new system, will be affected properly.&lt;br /&gt;
&lt;br /&gt;
Warning: the keymap entry appears to default to ANSI-dvorak so make sure that you really select what you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating or editing Partitions==&lt;br /&gt;
&lt;br /&gt;
The next step is to set up partitions on your hard drive. Upon selecting the &amp;quot;Partition Drive&amp;quot; option, you will be shown a list of all the discs the kernel has detected. For this guide, we will assume that you have one hard drive connected via an IDE channel, which will show up in the menu as &amp;quot;disc0&amp;quot;. After selecting the disc to partition, you are given the option of using one of three partitioning programs. They are:&lt;br /&gt;
&lt;br /&gt;
* cfdisk -- A menu driven partitioner, and very easy to use. If you are unfamiliar with various partitioning programs, this is the best option for you.&lt;br /&gt;
* fdisk -- Text based partitioner that requires a little more know-how than cfdisk. More experienced users will probably use this program. However new users should not be daunted, as it does have help offered at every step.&lt;br /&gt;
* parted -- Text based partitioner that is good for advanced users. Parted is excellent for resizing current partitions on your hard disk, however be forewarned that resizing partitions is an excellent way to hose your entire disc.&lt;br /&gt;
&lt;br /&gt;
Note: under the &amp;amp;lt;Settings&amp;amp;gt; option on the main menu there is an option to configure the fstab mount style as DEV, LABEL or UUID. The first is the traditional Linux method, but can sometimes give problems if a kernel update causes the disk to be renamed. The default is UUID, which uses a unique marker on the partition to avoid this problem.&lt;br /&gt;
&lt;br /&gt;
For our example, we have a 40GB IDE drive and we'll set up six partitions; /, /boot, /home, /usr, /var, and a swap partition. It's a good idea to keep certain directories, such as /var and /usr on separate partitions, as this can save you a lot of headache in the future in case your disk ever completely fails on you and you need to recover data (God forbid!). Also, when you have a separate /boot partition as we have in our example, you need to have your partitioning program mark that partition as active or bootable. In our example, if we were using fdisk, you would press &amp;quot;a&amp;quot; at the command line, and then select part1 as the active partition.&lt;br /&gt;
&lt;br /&gt;
You might also want to install a /tmp partition. By default, Lunar will create a tempfs filesystem mounted on /tmp (tempfs minimizes filesystem fragmentation because it resides in volatile memory). This can be a good choice if you have a lot of memory on your machine. If memory is tight, we recommend creating a /tmp partition to minimize filesystem fragmentation.&lt;br /&gt;
&lt;br /&gt;
It is important to note that you &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''can not''&amp;lt;/span&amp;gt; mount the directories /etc, /bin, /sbin, /dev, /lib and /proc on separate partitions. These directories need to be contained within the root (&amp;quot;/&amp;quot;) directory. The installation program should block you from doing this, but it's best not to try.&lt;br /&gt;
&lt;br /&gt;
Here's our partition setup:&lt;br /&gt;
&lt;br /&gt;
  1 /boot 100MB&lt;br /&gt;
  2 / 4GB&lt;br /&gt;
  3 swap 1GB&lt;br /&gt;
  5 /usr 10GB&lt;br /&gt;
  6 /var 10GB&lt;br /&gt;
  7 /home 15GB&lt;br /&gt;
&lt;br /&gt;
(''If you're wondering about this choice of partitions: it's really just an example. Read the [[FAQ#So_how_should_I_partition_my_disk.3F|FAQ]] on what makes sense in the real world''))&lt;br /&gt;
&lt;br /&gt;
You'll notice that there is no fourth partition in our list above. In order for you to have more than four partitions on a single drive, the fourth partition is made into what is known as an extended or logical partition in which the fifth, sixth, and seventh (etc, etc) partitions reside. For our example above, if we were using fdisk, we would make the fourth partition an extended/logical partition that was 35GB, and then the fifth, sixth, and seventh partitions in our scheme resided within it. However, if we used cfdisk, we would just worry about creating six partitions, making sure that the first three are the primary type, and the last three logical.&lt;br /&gt;
&lt;br /&gt;
Note that the names and mount points for these partitions will be assigned during the next step of this process, when you mount the partitions. Write down exactly what partitions you are planning to create because it can otherwise get confusing!&lt;br /&gt;
&lt;br /&gt;
Lunar offers two choices when it comes to swap. You can set up a swap partition, as we have in our example, or you can set up a swapfile in the root directory. We recommend setting up a swap partition, as you will get better performance with it than with the swapfile. However, there may be a need for you to set up the swapfile instead, which can be setup and activated after you have mounted your other partitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Partitions and Filesystems==&lt;br /&gt;
&lt;br /&gt;
After creating your partitions, you need to select them and assign file systems. Select the menu option &amp;quot;Select Filesystems&amp;quot; and verify that you are indeed done creating partitions.&lt;br /&gt;
&lt;br /&gt;
The partitions can be selected in random order with the new installer. First select the partition and then assign a filesystem and mountpoint to it. The installer will add this to the job queue and formatting and mounting takes place later so you can edit your selection. Here's a list of filesystems that are currently supported:&lt;br /&gt;
&lt;br /&gt;
* ''ext4'' (Fourth Extended File System) -- Version 4 of the Extended File System, which was ... TO BE COMPLETED.&lt;br /&gt;
* ''ext3'' (Third Extended File System) -- Version 3 of the Extended File System, which is essentially just the journaled version of ext2. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''ext2'' (Second Extended File System) -- Version 2 of the Extended File System, which was designed for linux as a replacement for the Minix Filesystem. Ext2 is not a journaled filesystem, which means that you'll need to perform disc recovery operations after a power failure or other such system crash. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''reiserfs'' (Reiser Filesystem) -- Journaled filesystem created by Hans Reiser that is excellent for use with extremely small files. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''xfs'' -- Created by SGI for IRIX, SGI's brand of Unix, and later ported to linux under the GPL. A journaled filesystem that SGI claims is better than any other at handling extremely large files and sparse files. This filesystem is only available with the lunar or grsec patched kernels, which we will come to in a few steps.&lt;br /&gt;
* ''jfs'' (Journaled File System) -- Created by IBM for AIX, IBM's brand of Unix, and later ported to linux by IBM under the GPL. A journaled filesystem that is very good at handling high throughput issues. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''swap'' Swap (Virtual memory or paging filesystem) for swap partitions only!&lt;br /&gt;
&lt;br /&gt;
After selecting the filesystem type you wish to use, you will be prompted through a series of steps to initialize the partition. You'll notice that the prompts are quite redundant in nature in order to be absolutely positive that you will not inadvertantly erase crucial data that you might have on a working filesystem. In addition, if you have more than four partitions, as we do in our example, you don't want to select any file systems on the fourth partition, as it is the extended partition that houses the fifth, sixth (and so on) partitions. (The installer will try to detect this and skip the extended partition from the list).&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, there is an option in the installation process to set up a swap file in the root partition instead of a swap partition as we have done in our example. The next option after selecting your filesystems is to select a swapfile if you so desire. &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''If you have set up a swap partition already, as we have done, you can skip this step.''&amp;lt;/span&amp;gt; Otherwise, you can set up your swap file here, and the only thing you need to tell the installer is how large you want the file to be. Running without swap completely is also possible of course.&lt;br /&gt;
&lt;br /&gt;
'''Please note during this step, no modifications are made to your filesystem!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar==&lt;br /&gt;
&lt;br /&gt;
Next, we need to ''format'' your partitions, ''mount'' them in the right place, create ''swap'' and transfer the entire Lunar system to the partitions that you now have created. This happens all in one single step.&lt;br /&gt;
&lt;br /&gt;
Select ''Install Lunar'', and the system will proceed to transfer all of the necessary files for you. The installer will display progress as packages are transferred to your system and you'll have some idea how long it will take. On normal machines, this should take about 5 minutes.&lt;br /&gt;
&lt;br /&gt;
At the end of this step, the installer sets various system parameters like language, timezone and vital package configuration files in order for your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting Up Your Compiler Optimizations==&lt;br /&gt;
&lt;br /&gt;
The compiler optimizations is a crucial step, since what you choose will make your system fly! However, it is important that you do not overdo it on you optimization settings, as certain selections can, in some instances, break code while compiling.&lt;br /&gt;
&lt;br /&gt;
The first step is to choose your preferred compiler. There is only one version on the 1.6.5 ISO, so the only option here is GCC 4.4. However, once the main system installation is complete, it is possible to install GCC 3.x -- and even the deprecated GCC 2.x! If you don't intend to install those, you should go to the GCC_4_4 submenu now and set GCC 4.4 as the default compiler. &lt;br /&gt;
&lt;br /&gt;
The GCC_4_4 menu also allows you to change other options:&lt;br /&gt;
&lt;br /&gt;
* ''safe'' : allows you to turn off optimization safety, so you should leave this well alone unless you really know what you are doing. Turning this off will result in many more options appearing than are described below.&lt;br /&gt;
* ''bopt'' : allows you to change the base compile-time optimization. Your choice depends on what your needs are. Most folks will want to use -O2 here, as it is the wisest choice. More advanced users may want to use the -O3 option, but it's not for everyone. If you're short on disk space, you would take the -Os Small option. (As an example, we used -Os for the ISO since we were working within a confined amount of disc space.) Those of you with older or slower systems that wouldn't be able to take advantage of faster optimizations may choose a more conservative setting like -O1. For our example system, we will choose -O2.&lt;br /&gt;
* ''cpu'' : allows you to set your processor type. This may seem unimportant, but the GCC 4.x [and GCC 3.x] compiler has ways of optimizing code for certain processors&lt;br /&gt;
* ''cc_opt'' : allows you to set some limited C/C++ compiler settings. Very few people, if any, would need to turn off the -pipe option.&lt;br /&gt;
&lt;br /&gt;
The unsafe optimizations are:&lt;br /&gt;
* ''xtra'' : CPU extensions&lt;br /&gt;
* ''spd'' : Specialized optimizations&lt;br /&gt;
* ''fpm'' : Floating point optimizations&lt;br /&gt;
* ''stack'' : Stack optimizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding Other Compiler Toolchain Optimizations==&lt;br /&gt;
&lt;br /&gt;
'''You can safely SKIP this entire step!'''&lt;br /&gt;
&lt;br /&gt;
The GNU_LD menu shows the screen for linker options, where you will find that &amp;quot;-s Strip&amp;quot; has already been checked off. Very few people will want to uncheck this option, so we will leave this screen as is.&lt;br /&gt;
&lt;br /&gt;
The GNU_MAKE menu allows you to set the number of concurrent makes. As the hint mentions on the &amp;quot;Concurrent Makes&amp;quot; screen, you'll want to enter in the number of cpu's your machine has. Unless you have a machine with more than one processor, you'll want to leave this field blank.&lt;br /&gt;
&lt;br /&gt;
We are now finished setting up our GCC optimizations! When you have you lunar system up and running, you can always change and tweak these GCC settings by typing &amp;quot;lunar&amp;quot; at the commandline prompt, and going to &amp;quot;Optimization Settings&amp;quot;. In addition, if you aren't that familiar with what your processor is capable of using for optimizations, you can go to the shell out option on the ISO and type&lt;br /&gt;
&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
at the prompt and the system will show you all the optimizations that the processor reports it can handle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuring Your Bootloader==&lt;br /&gt;
&lt;br /&gt;
=== Configuring LILO ===&lt;br /&gt;
&lt;br /&gt;
If you chose to use lilo and also said yes to automatically configuring and running lilo, then most of the work is done for you. If you chose not to hand edit lilo.conf, however, be warned that the default configuration has the system set up to be password protected on boot. You can change this by selecting the option from the menu &amp;quot;Reconfigure LILO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To turn off password protection, you will need to comment out (with the symbol &amp;quot;#&amp;quot;) or delete two lines in your lilo.conf file. The first is &amp;quot;password=lunar&amp;quot;, which is found in the top section of the file, and the other is &amp;quot;restricted&amp;quot; which is found right below the name of your kernel in the second section.&lt;br /&gt;
&lt;br /&gt;
The other item of note is whether you want lilo to reside in your MBR (Master Boot Record) or on the first sector of your /boot partition. The line in your lilo.conf file to edit for this purpose is&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda1&lt;br /&gt;
&lt;br /&gt;
To make lilo get installed on the first sector of your /boot partition, you would leave this line as it is. If you want lilo to be written to your MBR, which is the recommended method, you would change the line to read&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda&lt;br /&gt;
&lt;br /&gt;
Of course, these examples are pertinent to our setup that we have been using thoughout this manual. Your actual lilo.conf file may be different.&lt;br /&gt;
&lt;br /&gt;
=== Configuring GRUB ===&lt;br /&gt;
&lt;br /&gt;
If you chose grub as your bootloader, you will need to set up the configuration file entirely on your own. An example would be:&lt;br /&gt;
&lt;br /&gt;
  default 0&lt;br /&gt;
  timeout 30&lt;br /&gt;
  color white/blue white/black&lt;br /&gt;
  title linux-2.4.25&lt;br /&gt;
  root (hd0,0)&lt;br /&gt;
  kernel /vmlinubz-2.4.25-r5.0.0 root=/dev/sda2 devfs=nomount&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier in the partitioning section, you would want to mark your /boot partition as active. With grub it is ''imperative'' that you mark your /boot partition as active, otherwise grub will not work at all when you are finished with the installation and reboot to your new system.&lt;br /&gt;
&lt;br /&gt;
NOTE: The option to install grub is not available on the 1.6.5-rc1-x86_64 ISO because grub is not yet fully stable on 64-bit systems. If you really know what you are doing, the source tarball is saved to disk, so you can configure it manually once the main installation is complete.&lt;br /&gt;
==Installing kernels==&lt;br /&gt;
&lt;br /&gt;
===Installing a precompiled kernel===&lt;br /&gt;
&lt;br /&gt;
The ISO comes with a selection of precompiled kernels and modules that should work for most people. If you have problems getting your kernel to compile, install or getting the right drivers, or just want to get a quick start at lunar, we ''suggest'' that you use this option instead of compiling your own kernel. You can later of course compile as many kernels as you want, and indeed the first ''lunar update'' after the main installation might ask whether you want to update the kernel too. Why do it twice if you don't need to?&lt;br /&gt;
&lt;br /&gt;
There are several kernels for you to choose from. They are:&lt;br /&gt;
&lt;br /&gt;
* ''2.6.34.1'' -- Normal kernel (SMP, 4GB memory max) (RECOMMENDED). &lt;br /&gt;
* ''2.6.34.1-safe'' -- Very safe non-optimized minimal kernel (no ACPI, DMA, SMP, 1GB).&lt;br /&gt;
* ''2.6.34.1-server'' -- Server optimized (SELINUX, SMP, 64GB, no preempt).&lt;br /&gt;
&lt;br /&gt;
===Building Your Customized Linux Kernel===&lt;br /&gt;
&lt;br /&gt;
We have now come to the most important part of the installation; the configuration of the kernel. The kernel is the heart of Linux, and without it, nothing would work. Configuration is, actually, a rather simple process. All you need to remember is to not panic, and that lunar is going to do most of the work for you. Here are a few pointers that will make the configuration a breeze for you.&lt;br /&gt;
&lt;br /&gt;
* Help is a click away! The people working on creating and maintaining the Linux kernel have help placed throughout the entire configuration process. If you're not sure what something does, just look at the help file for whatever item you're on, and it will almost certainly explain what it is and what it does. The most handy thing is that every help file will suggest whether you should really use the item or not. Many help files end with &amp;quot;If you're not sure, it is safe to say N here&amp;quot;, thus letting you know that it is safe to leave that particular item out of the kernel.&lt;br /&gt;
* You can use the ISO kernel! The configuration used to make the kernel for the ISO is the same configuration you'll see when you start your kernel customization. If you leave the configuration the way it is, the only thing you truly have to worry about is your network and, if you want it, sound. There are also two additional default configurations available on the ISO that are available to you called &amp;quot;config.safe&amp;quot; and &amp;quot;config.server&amp;quot;. We'll show you how to load these configurations in just a little bit. [TODO: check these files]&lt;br /&gt;
* Never build filesystems or core components as modules! Make sure that whatever filesystems you decided to use for your partitions earlier are built into the kernel, and are not separate modules. Likewise, make sure that certain crucial things like ide and scsi drivers are not modules, as this will make your machine unbootable. (This rule doesn't apply to the scsi low level drivers though; they can be modules.) Modules are kernel drivers that can be manually activated and deactivated after the system has been booted, but not during boot time. The kernel from the ISO already has all the filesystems available during the installation built into the kernel, so if you don't change anything there, you will be fine.&lt;br /&gt;
&lt;br /&gt;
You will be shown two screens of information before you actually begin you kernel configuration, letting you know that you are going to need a few things built into the kernel in order to have Lunar run properly, and what options you have for boot loaders. Lunar comes with both lilo (LInux LOader) and grub (GRand Unified Bootloader).&lt;br /&gt;
&lt;br /&gt;
If you don't have much experience with bootloaders, we suggest using lilo for now, as the installation program will set up the configuration file for you. If you would prefer to use grub, and we encourage folks to learn how to use it, be forewarned that the installation program does not set up any configuration at all for you.&lt;br /&gt;
&lt;br /&gt;
[On the 1.6.5-rc1-x86_64 ISO] There is only one kernel available for you to choose from:&lt;br /&gt;
&lt;br /&gt;
* ''linux-2.6.'' -- Latest 2.6 kernel with minor patchlevel patches (2.6.x.Y)&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use linux-2.6. &lt;br /&gt;
&lt;br /&gt;
Before you begin is which type of configuration method you would like to use.&lt;br /&gt;
&lt;br /&gt;
* ''config'' -- The original way to configure the linux kernel. It is completely text based, and assumes you know what everything is. Unless you've been using linux since its inception, you probably don't want to use this method.&lt;br /&gt;
* ''menuconfig'' -- As the name implies, a menu driven version of the kernel configuration. This is the easiest, and by far the most popular way of configurating your kernel.&lt;br /&gt;
* ''xconfig'' -- If you have an X server running, you can use this option to configure your kernel using a nifty GUI interface. You won't be able to use this on the ISO, but once your system is up and running with X, you can use this option. If you do choose this option while installing from the ISO, the system will fall back to next available configuration method, in this case menuconfig, so there is no harm in selecting it if you do.&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use menuconfig. Once Lunar is finished applying the patches for the kernel, which can take a minute or two, you'll be brought to the configuration screen for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, the configuration that was used to build the kernel for the ISO is the same configuration that you'll be presented with when you start. However, as we also mentioned earlier, there are two alternate kernel configurations available to you that you may want to use; config.safe and config.server. Both of these configurations can be found on the ISO, along with the original default config file, in /etc/lunar/local. When you are looking at the kernel menuconfig main page, scroll all the way to bottom, and you will find an option called &amp;quot;Load an Alternate Configuration File&amp;quot;. Select this and then give the absolute path to the alternate configuration file, i.e. /etc/lunar/local/.config.server. As with all kernel configuration files, they are hidden files preceded with a &amp;quot;.&amp;quot;, so make sure to not forget it.&lt;br /&gt;
&lt;br /&gt;
Once you have completed configuring your kernel, you'll get one more prompt from the installer asking if you want to go back to the configuration in case you exited by mistake or forgot something. If everything is good to go, say no here and sit back for a few minutes while your kernel compiles.&lt;br /&gt;
&lt;br /&gt;
==Setting Up Networking==&lt;br /&gt;
&lt;br /&gt;
The final step is to set up networking. When you select the &amp;quot;Set Up Networking&amp;quot; option, you'll be prompted by a series of questions as to what kind of card you have (only needed if you built your networking device as a module, and not part of the kernel), if you need to set up wireless or not, and whether you'll need to use dhcp or not. You should be familiar enough with your network to set this up on your own, as the questions put to you are very straightforward.&lt;br /&gt;
&lt;br /&gt;
* if you use dhcp, you don't need to set up the default gateway or DNS because dhcp will take care of them for you.&lt;br /&gt;
* you are using a wireless connection with wpa_supplicant, you might want to run &amp;quot;wpa_passphrase&amp;quot; to set up a simple /etc/wpa_supplicant.conf rather than try to edit the example file.&lt;br /&gt;
&lt;br /&gt;
==Other settings==&lt;br /&gt;
&lt;br /&gt;
The installer will prompt you now for some more settings. You should set a root password and generate ssh host keys to identify your box uniquely for later. You might also want to administrate services on the newly installed machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reboot!==&lt;br /&gt;
&lt;br /&gt;
Once you have completed setting up your networking, you are finished installing Lunar Linux! Congratulations! Select the option &amp;quot;Done&amp;quot; and remove the cd from the drive when it ejects. Your Lunar system is now ready to go!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Moonbase==&lt;br /&gt;
&lt;br /&gt;
After the initial installation and reboot, please follow the instructions given in '''man lfirsttime''' to bring your system up-to-date.&lt;br /&gt;
&lt;br /&gt;
Congratulations! You now have a minimal system as a foundation on which to build.&lt;br /&gt;
&lt;br /&gt;
  WARNING: while the pre-compiled 2.6.35.3 kernel on the ISO is the same as the one in the moonbase, it won't be rebuilt as part of the first&lt;br /&gt;
  '''lunar update'''. If you experience problems with ALSA or NVIDIA, you may need to run '''lin linux-2.6''' to rebuild the kernel explicitly.&lt;br /&gt;
  This problem should go away once a newer version of the kernel is available.&lt;br /&gt;
&lt;br /&gt;
==Where to go from here==&lt;br /&gt;
To install a desktop environment check out this page. [[Lunar_Linux:DesktopEnvironments]]&lt;br /&gt;
&lt;br /&gt;
''Have Phun!!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/copyleft/ Copyleft] 2004-2010 [http://lunar-linux.org/ The Lunar Penguin Team]&lt;br /&gt;
&lt;br /&gt;
Lunar Installation Manual and Harassment of Lunar Developers by Drew Swayze (drew AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Edits and Nitpicking by Suzanne Burns (sburns AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Initial update for the 1.6.5 ISO by Duncan Gibson (engelsman AT lunar-linux DOT org).&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Template:Main_Page:About</id>
		<title>Template:Main Page:About</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Template:Main_Page:About"/>
				<updated>2010-08-22T10:51:24Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: right; padding-top: 0.1em; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
{{ed|Main_Page:About|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Lunar Linux:About|'''About Lunar Linux''']]==&lt;br /&gt;
&lt;br /&gt;
'''Lunar Linux''' is a [[wikipedia:source code|source]] based [[wikipedia:Linux distribution|Linux distribution]]. It is built entirely by [[wikipedia:compiler|compiling]] [[wikipedia:source code|source code]], using custom [[wikipedia:Optimization (computer_science)|optimizations]]. &lt;br /&gt;
&lt;br /&gt;
It installs a complete [[wikipedia:Bootstrap#Computing|bootstrap]] development system first. After telling the Lunar package manager which software will be required, it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward the users specific needs.&lt;br /&gt;
This should result in a lean and optimized [[wikipedia:operating system|operating system]]. On the downside, compiling a whole distribution from scratch may be time-consuming and complicate the task of keeping the packages up to date.&lt;br /&gt;
&lt;br /&gt;
Currently, Lunar only supports the [[wikipedia:X86|x86]] and [[wikipedia:X86-64|x86-64]] architectures.&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is licensed under the GPLv2.&lt;br /&gt;
&lt;br /&gt;
'''2010-08-22''': Despite appearances, Lunar Linux is still very much alive. There was a 1.6.5-rc1 ISO release on 2010-07-09 and the official 1.6.5 ISO release is expected shortly. The Forums and Wiki are inactive because they were locked after prolonged spam-bot vandalism. If you require help, simply go to the #lunar irc channel and ask!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right; font-variant: small-caps; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Lunar Linux:About|More Information]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User_talk:Engelsman</id>
		<title>User talk:Engelsman</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User_talk:Engelsman"/>
				<updated>2010-07-29T19:30:05Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: 2.6.33.4 to 2.6.34.1 update needed UUIDs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;I have moved the original contents of this page elsewhere, reformatting and updating on the way.&lt;br /&gt;
However, I have provided so many references to this page in the&lt;br /&gt;
[http://forums.lunar-linux.org Lunar Forums] that I can't remove it completely, and so I leave a skeleton to show the way, just like Billy Bones in Treasure Island.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Please follow the appropriate link to the updated page.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A Newbie's experience installing, and upgrading, Lunar Linux 1.5.1==&lt;br /&gt;
&amp;lt;p&amp;gt;I started using Unix V7 on a PDP-11/70 back in 1983, even modifying some existing kernel drivers for the [http://en.wikipedia.org/wiki/Cambridge_Ring Cambridge Ring] local area network. After that I dabbled in system administration of various Sun and Apollo systems until 1991, and HP boxes up until 2000, but my main task has always been application software development, nothing on the hardware or kernel side. Since 2000 we've had dedicated system administrators at work. We had switched from NCD X-terminals over to Linux desktops (first RedHat, but then Lunar) and I realized that what little I knew had become well out of date. I installed RedHat on an old 90MHz PC at home more than five years ago, but without a LAN or modem connection it was too difficult to keep up to date, I lost interest, and that died. Since then I've had an itch to develop a spiffy [http://www.fltk.org FLTK] user interace for some old command line tools using Cygwin/Mingw on a WinXP laptop (with modem) but the machine is (a) painfully slow, and (b) painfully Windows. The time had come to get some new hardware, install an operating system that doesn't thwart you at every turn, and set up a programming environment of my own choice.&lt;br /&gt;
[[User Reports:Engelsman|Read more]]...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.0 (coming soon, maybe)==&lt;br /&gt;
&amp;lt;p&amp;gt;In April 2006, the&lt;br /&gt;
[http://www.lunar-linux.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=39&amp;amp;Itemid=2 Lunar-1.6.0-i686 ISO] was released,&lt;br /&gt;
but I don't have enough spare time to look at installing it. Not just yet anyway.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.4 (Lacus Autumni)==&lt;br /&gt;
&amp;lt;p&amp;gt;Lunar Linux 1.6.4 (Lacus Autumni) was [http://foo-projects.org/pipermail/lunar/2008-December/008144.html announced] in December 2008, and installation and update was initially pretty smooth and uneventful. But as 2009 rolled on, and new versions of certain key modules were rolled out and were out of step with each other, upgrading from the 1.6.4 ISO became difficult. Here's the [http://foo-projects.org/pipermail/lunar-dev/2009-September/006906.html Update Workaround HOWTO] that I put together in September. This is no longer required! Soon after this, other key module releases brought harmony again, and these instructions became obsolete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In February 2010, with the 2.6.32.8 kernel, updating udev from 141 to 151 caught me out. I don't remember the exact wording, but udev-151 requires that SYSFS_DEPRECATED is disabled in the kernel configuration. Finding SYSFS_DEPRECATED_V2 in the kernel didn't take long, but it took a lot longer to track down that GFS_FS also needed to be disabled...&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Also in February 2010, installed 1.6.4 on a new Acer-AX5810 box with NVIDIA GeForce G210 card. This obviously requires the some kernel settings, and to install the NVIDIA module. All well and good, but after every kernel update and reboot you need to '''lrm NVIDIA''', and then '''lin -rc NVIDIA''' again otherwise it won't install properly. This has bitten me several times after a '''lunar update'''...&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.5 (Mare Ingenii)==&lt;br /&gt;
After corruption of the superblock on my /boot partition on an HP Pavilion t3190(?), I decided to installed the 1.6.5-beta1 ISO. The initial installation and update went without problem. XOrg7 appeared to install OK, but when I ran 'startx' the console went blank. Searching the web, and asking on #lunar revealed that I needed the i915 driver for my Intel graphics card, with an entry in /etc/modules for 'i915 modeset=1'. Close, but no cigar! That's when my troubles started, with the console going into powersave mode on reboot. After much trial and error, I discovered that the kernel requires:&lt;br /&gt;
&lt;br /&gt;
  CONFIG_DRM_I915=m&lt;br /&gt;
  CONFIG_DRM_I915_KMS=y&lt;br /&gt;
  CONFIG_FRAMEBUFFER_CONSOLE=m&lt;br /&gt;
&lt;br /&gt;
The first would imply having i915 in /etc/modules, but in fact it is trumped by the second, and you don't need the i915 module at all. But the KMS line also enables ACPI in the kernel, which causes the console blanking. To solve that problem, you do need to have fbcon in /etc/modules. Or to disable the powersave mode settings while you configure all of this, you need a lilo.conf entry such as the following&lt;br /&gt;
&lt;br /&gt;
  image = /boot/2.6.32.9-i686&lt;br /&gt;
    label = 2.6.32.9-acpi&lt;br /&gt;
    append=&amp;quot;acpi=off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
At a certain point, there was an update to the linux-2.6 module that took it from 2.6.33.4 to 2.6.34.1, which I duly installed on my new test box, only to find that I couldn't reboot. The previous kernels had identified the disk as /dev/sda, but the new kernel decided it was /dev/sdb instead. This could be overcome by adding 'root=/dev/sdb3' on the lilo boot line, but then gave problems with /etc/fstab. To cut a long story short, I rebooted to the old kernel and changed /dev/fstab to use UUID instead. To find/create the UUIDs:&lt;br /&gt;
&lt;br /&gt;
  tune2fs -l /dev/sda1&lt;br /&gt;
  swapoff -a          # I'm lazy&lt;br /&gt;
  mkswap /dev/sda2    # mkswap creates with UUID by default&lt;br /&gt;
  swapon -a&lt;br /&gt;
  tune2fs -l /dev/sda3&lt;br /&gt;
&lt;br /&gt;
I even updated /etc/lilo.conf to add an 'append=&amp;quot;root=/dev/sdb3&amp;quot;' for the 2.6.34.1 entry, and I could reboot, *and* mount the file systems.&lt;br /&gt;
&lt;br /&gt;
Soon after this the 1.6.5-rc1 ISO was released, and as this was a test box anyway, with nothing really installed on it except for gnome test system that was inconsistent and didn't work, I wiped the system and re-installed from scratch.&lt;br /&gt;
&lt;br /&gt;
'''To be continued...'''&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:DesktopEnvironments</id>
		<title>Lunar Linux:DesktopEnvironments</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:DesktopEnvironments"/>
				<updated>2010-07-25T11:42:54Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: fixed typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Desktop Environments==&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Minimal Installation===&lt;br /&gt;
&lt;br /&gt;
Once you have successfully completed the installation of the ISO '''and''' completed the post-install tasks described in [[Installation:lfirsttime.8.manpage|man lfirsttime]], what you are left with is a pretty minimal installation -- this is deliberate! [[Lunar Linux]] now gives you the power and the freedom to customize your system to your own specific needs.&lt;br /&gt;
&lt;br /&gt;
* If you want to set up a lean, mean server you don't have to uninstall lots of things and hope that you have closed any potential security holes, you have a secure system on which to build. You probably don't need to read the rest of this article either.&lt;br /&gt;
* If you want to set up a full desktop environment, or a light-weight window manager, then you still have a little work to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tips for new users===&lt;br /&gt;
&lt;br /&gt;
If you have a &amp;quot;standard&amp;quot; hardware configuration, and you stick to the defaults, the installation of [[Lunar Linux]] should be straightforward, and therefore appears deceptively simple. There are some things that you can do to keep things running smoothly:&lt;br /&gt;
&lt;br /&gt;
* Keep it simple.&lt;br /&gt;
* Take it one step at a time.&lt;br /&gt;
* Build a working system first.&lt;br /&gt;
* Add the bells and whistles later.&lt;br /&gt;
&lt;br /&gt;
In Lunar, modules have explicit dependencies on those things that are really needed, so installing 'a' will first install 'b' and 'c' for you. Some modules have explicit optional dependencies on ''nice-to-have'' features, so if 'd' isn't already installed you will be asked whether you want to install it too. Saying yes could mean installing all of those modules that 'd' depends on as well. In addition, each module's own configuration process may detect what is, and isn't installed, and adapt itself accordingly. Note that you can preview what will be built and pre-answer the installation questions by using 'lin -r --deps' before running the real 'lin'.&lt;br /&gt;
&lt;br /&gt;
Usually all of this Just Works[TM], but sometimes a module fails to build. Sometimes dependencies have changed, or are missing, and you may need to install the missing module explicitly before trying again. If it's an optional dependency, re-run with 'lin -rc' and this time say yes, or maybe even no. If it can't download the source file, Go to the website for that package and see if you can download it manually, and save it in /var/spool/lunar. If you have persistent problems downloading source files, run 'lunar' and check whether changing the mirror site helps.&lt;br /&gt;
&lt;br /&gt;
The ISO comes with ''screen'' for switching between virtual terminals, an ascii-based web browser called ''lynx'' and the IRC clients ''irssi'' and ''ircii'', so you may be able to find sources and additional help yourself. If you do have problems, please join the #lunar channel and maybe someone will be available in your timezone who will be able to help you:&lt;br /&gt;
&lt;br /&gt;
  irssi -c irc.freenode.net    # /join lunar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===First install X explicitly===&lt;br /&gt;
&lt;br /&gt;
Even though [[Lunar Linux]] isn't aimed at new Linux users and assumes that you have some idea what you are doing, many people installing for the first time forget to install X first. ''Wait!'' I hear you gasp, ''Isn't X installed automatically? No? Why not?'' The reason is simple: adding the dependency tracking to all modules that might need to use X would be an awful lot of work, would lead to a very dense dependency tree that would be hard to manage, and would affect all users, even if they wanted to run a lean, mean, headless server. And as Lunar users are supposed to know what they are doing, you should also know that if you want to run graphical applications, you should first install the graphical environment.&lt;br /&gt;
&lt;br /&gt;
You don't need to install all of the X components one by one, although you are free to do so if you really want. [[Lunar Linux]] provides a ''profile module'' called XOrg7 that is a sort of dummy module that doesn't do anything itself, but it depends on a lot of other modules. Installing a ''profile module'' therefore installs all of the modules that it depends on. To install a &amp;quot;standard&amp;quot; X environment simply:&lt;br /&gt;
&lt;br /&gt;
  lin XOrg7 ; lin additional drivers...&lt;br /&gt;
&lt;br /&gt;
You can find the additional drivers under /var/lib/lunar/moonbase/xorg7/drivers, or run ''lvu section xorg7/drivers''.&lt;br /&gt;
&lt;br /&gt;
However, this doesn't install all possible X applications. There are some, like xterm, xhost and the desktop environments, of course, that you will need to install separately.&lt;br /&gt;
&lt;br /&gt;
At this point you can run 'startx' to have a very basic session in the 'twm' window manager. You might now want to install an X-based web browser and IRC client before going further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XFCE===&lt;br /&gt;
&lt;br /&gt;
[http://www.xfce.org Xfce] is a lightweight desktop environment for various *NIX systems. In the past, many of the Lunar developers were also Xfce developers, so Xfce has traditionally been the best integrated into [[Lunar Linux]]. You can install all of the components one by one, or you can install the &amp;quot;standard&amp;quot; environment in one go using the xfce4 ''profile module'':&lt;br /&gt;
&lt;br /&gt;
  lin xfce4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===KDE===&lt;br /&gt;
&lt;br /&gt;
[http://www.kde.org KDE] has one Lunar developer who is actively following the official releases, and therefore updates to the KDE modules in Lunar usually occur within a few days of the official release. You can install the &amp;quot;standard&amp;quot; environment using the kde4 ''profile module'':&lt;br /&gt;
&lt;br /&gt;
  lin kde4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GNOME===&lt;br /&gt;
&lt;br /&gt;
[http://www.gnome.org] is not so popular with the Lunar developers and as a result it is not as up-to-date as Xfce and KDE. In fact, we could really use some help! You can install the &amp;quot;standard&amp;quot; environment using the gnome2 ''profile module'' but be prepared to give it a helping hand:&lt;br /&gt;
&lt;br /&gt;
  lin gnome2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lightweight Window Managers===&lt;br /&gt;
&lt;br /&gt;
As well as the &amp;quot;big three&amp;quot; above, [[Lunar Linux]] also provides modules for several lightweight window managers, although these are not guaranteed to be up-to-date. You can find many of them under /var/lib/lunar/moonbase/x11-wm or by using ''lvu section x11-wm''. Some of these come from [[Module Submission|module submissions]] by Lunar users. &lt;br /&gt;
&lt;br /&gt;
Note that some cutting-edge developments can also be found in the [[Moonbase#Sections|zbeta]] section of the [[Moonbase]] but are not guaranteed to be stable.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:DesktopEnvironments</id>
		<title>Lunar Linux:DesktopEnvironments</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:DesktopEnvironments"/>
				<updated>2010-07-25T11:38:01Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: added section Tips for new users&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Desktop Environments==&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Minimal Installation===&lt;br /&gt;
&lt;br /&gt;
Once you have successfully completed the installation of the ISO '''and''' completed the post-install tasks described in [[Installation:lfirsttime.8.manpage|man lfirsttime]], what you are left with is a pretty minimal installation -- this is deliberate! [[Lunar Linux]] now gives you the power and the freedom to customize your system to your own specific needs.&lt;br /&gt;
&lt;br /&gt;
* If you want to set up a lean, mean server you don't have to uninstall lots of things and hope that you have closed any potential security holes, you have a secure system on which to build. You probably don't need to read the rest of this article either.&lt;br /&gt;
* If you want to set up a full desktop environment, or a light-weight window manager, then you still have a little work to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tips for new users===&lt;br /&gt;
&lt;br /&gt;
If you have a &amp;quot;standard&amp;quot; hardware configuration, and you stick to the defaults, the installation of [[Lunar Linux]] should be straightforward, and therefore appears deceptively simple. There are some things that you can do to keep things running smoothly:&lt;br /&gt;
&lt;br /&gt;
* Keep it simple.&lt;br /&gt;
* Take it one step at a time.&lt;br /&gt;
* Build a working system first.&lt;br /&gt;
* Add the bells and whistles later.&lt;br /&gt;
&lt;br /&gt;
In Lunar, modules have explicit dependencies on those things that are really needed, so installing 'a' will first install 'b' and 'c' for you. Some modules have explicit optional dependencies on ''nice-to-have'' features, so if 'd' isn't already installed you will be asked whether you want to install it too. Saying yes could mean installing all of those modules that 'd' depends on as well. In addition, each module's own configuration process may detect what is, and isn't installed, and adapt itself accordingly. Note that you can preview what will be built and pre-answer the installation questions by using 'lin -r --deps' before running the real 'lin'.&lt;br /&gt;
&lt;br /&gt;
Usually all of this Just Works[TM], but sometimes a module fails to build. Sometimes dependencies have changed, or are missing, and you may need to install the missing module explicitly before trying again. If it's an optional dependency, re-run with 'lin -rc' and this time say yes, or maybe even no. If it can't download the source file, Go to the website for that package and see if you can download it manually, and save it in /var/spool/lunar. If you have persistent problems downloading source files, run 'lunar' and check whether changing the mirror site helps.&lt;br /&gt;
&lt;br /&gt;
The ISO comes with ''screen'' for switching between virtual terminals, an ascii-based web browser called ''lynx'' and the IRC clients ''irssi'' and ''ircii'', so you may be able to find sources and additional help yourself. If you do have problems, please join the #lunar channel and maybe someone will be available in your timezone who will be able to help you:&lt;br /&gt;
&lt;br /&gt;
  irssi -c irc.freenode.net    # /join lunar&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===First install X explicitly===&lt;br /&gt;
&lt;br /&gt;
Even though [[Lunar Linux]] isn't aimed at new Linux users and assumes that you have some idea what you are doing, many people installing for the first time forget to install X first. ''Wait!'' I hear you gasp, ''Isn't X installed automatically? No? Why not?'' The reason is simple: adding the dependency tracking to all modules that might need to use X would be an awful lot of work, would lead to a very dense dependency tree that would be hard to manage, and would affect all users, even if they wanted to run a lean, mean, headless server. And as Lunar users are supposed to know what they are doing, you should also know that if you want to run graphical applications, you should first install the graphical environment.&lt;br /&gt;
&lt;br /&gt;
You don't need to install all of the X components one by one, although you are free to do so if you really want. [[Lunar Linux]] provides a ''profile module'' called XOrg7 that is a sort of dummy module that doesn't do anything itself, but it depends on a lot of other modules. Installing a ''profile module'' therefore installs all of the modules that it depends on. To install a &amp;quot;standard&amp;quot; X environment simply:&lt;br /&gt;
&lt;br /&gt;
  lin XOrg7 ; lin additional drivers...&lt;br /&gt;
&lt;br /&gt;
You can find the additional drivers under /var/lib/lunar/moonbase/xorg7/drivers, or run ''lvu section xorg7/drivers''.&lt;br /&gt;
&lt;br /&gt;
However, this doesn't install all possible X applications. There are some, like xterm, xhost and the desktop environments, of course, that you will need to install separately.&lt;br /&gt;
&lt;br /&gt;
At this point you can run 'startx' to have a very basic session in the 'twm' window manager. You might now want to install an X-based web browser and IRC client before going further.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XFCE===&lt;br /&gt;
&lt;br /&gt;
[http://www.xfce.org Xfce] is a lightweight desktop environment for various *NIX systems. In the past, many of the Lunar developers were also Xfce developers, so Xfce has traditionally been the best integrated into [[Lunar Linux]]. You can install all of the components one by one, or you can install the &amp;quot;standard&amp;quot; environment in one go using the xfce4 ''profile module'':&lt;br /&gt;
&lt;br /&gt;
  lin xfce4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===KDE===&lt;br /&gt;
&lt;br /&gt;
[http://www.kde.org KDE] has one Lunar developer who is actively following the official releases, and therefore updates to the KDE modules in Lunar usually occur within a few days of the official release. You can install the &amp;quot;standard&amp;quot; environment using the kde4 ''profile module'':&lt;br /&gt;
&lt;br /&gt;
  lin kde4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GNOME===&lt;br /&gt;
&lt;br /&gt;
[http://www.gnome.org] is not so popular with the Lunar developers and as a result it is not as up-to-date as Xfce and KDE. In fact, we could really use some help! You can install the &amp;quot;standard&amp;quot; environment using the gnome2 ''profile module'' but be prepared to give it a helping hand:&lt;br /&gt;
&lt;br /&gt;
  lin gnome2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lightweight Window Managers===&lt;br /&gt;
&lt;br /&gt;
As well as the &amp;quot;big three&amp;quot; above, [[Lunar Linux]] also provides modules for several lightweight window managers, although these are not guaranteed to be up-to-date. You can find many of them under /var/lib/lunar/moonbase/x11-wm or by using ''lvu section x11-wm''.Some of these come from [[Module Submission|module submissions] by Lunar users. &lt;br /&gt;
&lt;br /&gt;
Note that some cutting-edge developments can also be found in the [[Moonbase#Sections|zbeta]] section of the [[Moonbase]] but are not guaranteed to be stable.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:DesktopEnvironments</id>
		<title>Lunar Linux:DesktopEnvironments</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:DesktopEnvironments"/>
				<updated>2010-07-24T18:34:43Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: initial draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Desktop Environments==&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Minimal Installation===&lt;br /&gt;
&lt;br /&gt;
Once you have sucessfully completed the installation of the ISO '''and''' completed the post-install tasks described in [[Installation:lfirsttime.8.manpage|man lfirsttime]], what you are left with is a pretty minimal installation -- this is deliberate! [[Lunar Linux]] now gives you the power and the freedom to customize your system to your own specific needs.&lt;br /&gt;
&lt;br /&gt;
* If you want to set up a lean, mean server you don't have to uninstall lots of things and hope that you have closed any potential security holes, you have a secure system on which to build. You probably don't need to read the rest of this article either.&lt;br /&gt;
* If you want to set up a full desktop environment, or a light-weight window manager, then you still have a little work to do.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===First install X explicitly===&lt;br /&gt;
&lt;br /&gt;
Even though [[Lunar Linux]] isn't aimed at new Linux users and assumes that you have some idea what you are doing, many people installing for the first time forget to install X first. ''Wait!'' I hear you gasp, ''Isn't X installed automatically? No? Why not?'' The reason is simple: adding the dependency tracking to all modules that might need to use X would be an awful lot of work, would lead to a very dense dependency tree that would be hard to manage, and would affect all users, even if they wanted to run a lean, mean, headless server. And as Lunar users are supposed to know what they are doing, you should also know that if you want to run graphical applications, you should first install the graphical environment.&lt;br /&gt;
&lt;br /&gt;
You don't need to install all of the X components one by one, although you are free to do so if you really want. [[Lunar Linux]] provides a ''profile module'' called XOrg7 that is a sort of dummy module that doesn't do anything itself, but it depends on a lot of other modules. Installing a ''profile module'' therefore installs all of the modules that it depends on. To install a &amp;quot;standard&amp;quot; X environment simply:&lt;br /&gt;
&lt;br /&gt;
  lin XOrg7 ; lin additional drivers...&lt;br /&gt;
&lt;br /&gt;
You can find the additional drivers under /var/lib/lunar/moonbase/xorg7/drivers, or run ''lvu section xorg7/drivers''.&lt;br /&gt;
&lt;br /&gt;
However, this doesn't install all possible X applications. There are some, like xterm, xhost and the desktop environments, of course, that you will need to install separately.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XFCE===&lt;br /&gt;
&lt;br /&gt;
[http://www.xfce.org Xfce] is a lightweight desktop environment for various *NIX systems. In the past, many of the Lunar developers were also Xfce developers, so Xfce has traditionally been the best integrated into [[Lunar Linux]]. You can install all of the components one by one, or you can install the &amp;quot;standard&amp;quot; environment in one go using the xfce4 ''profile module'':&lt;br /&gt;
&lt;br /&gt;
  lin xfce4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===KDE===&lt;br /&gt;
&lt;br /&gt;
[http://www.kde.org KDE] has one Lunar developer who is actively following the official releases, and therefore updates to the KDE modules in Lunar usually occur within a few days of the official release. You can install the &amp;quot;standard&amp;quot; environment using the kde4 ''profile module'':&lt;br /&gt;
&lt;br /&gt;
  lin kde4&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===GNOME===&lt;br /&gt;
&lt;br /&gt;
[http://www.gnome.org] is not so popular with the Lunar developers and as a result it is not as up-to-date as Xfce and KDE. In fact, we could really use some help! You can install the &amp;quot;standard&amp;quot; environment using the gnome2 ''profile module'' but be prepared to give it a helping hand:&lt;br /&gt;
&lt;br /&gt;
  lin gnome2&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Lightweight Window Managers===&lt;br /&gt;
&lt;br /&gt;
As well as the &amp;quot;big three&amp;quot;, [[Lunar Linux]] also provides modules for several lightweight window managers, although these are not guaranteed to be up-to-date. You can find many of them under /var/lib/lunar/moonbase/x11-wm or by using ''lvu section x11-wm''.&lt;br /&gt;
&lt;br /&gt;
Note that some cutting-edge developments can also be found in the [[Moonbase#Sections|zbeta]] section of the [[Moonbase]] but are not guaranteed to be stable.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:DesktopEnvironments</id>
		<title>Lunar Linux:DesktopEnvironments</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:DesktopEnvironments"/>
				<updated>2010-07-24T17:10:29Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: initial draft&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Desktop Environments==&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
===Minimal Installation===&lt;br /&gt;
Once you have sucessfully completed the installation of the ISO '''and''' the tasks described in [[Installation:lfirsttime.8.manpage|man lfirsttime]] what you are left with is a pretty minimal installation -- this is deliberate! [[Lunar Linux]] now gives you the power and the freedom to customize your system to your own specific needs.&lt;br /&gt;
&lt;br /&gt;
* If you want to set up a lean, mean server you don't have to uninstall lots of things and hope that you have closed all security holes, you have a secure system on which to build. You probably don't need to read the rest of this article either.&lt;br /&gt;
* If you want to set up a full desktop environment, or a light-weight window manager, then you still have a little work to do.&lt;br /&gt;
&lt;br /&gt;
===Explicitly install X first===&lt;br /&gt;
&lt;br /&gt;
Even though [[Lunar Linux]] isn't aimed at new Linux users and assumes that you have some idea what you are doing, many people installing for the first time forget to install X first. ''Wait!'' I hear you gasp, ''Isn't X installed automatically? Why not?'' The reason is simple: adding the dependency tracking to all modules that might need to use X would be an awful lot of work, would lead to a very dense dependency tree that would be hard to manage, and would affect all users, even if they wanted to run a lean, mean, headless server. And as Lunar users are supposed to know what they are doing, you should also know that if you want to run graphical applications, you should first install the graphical environment.&lt;br /&gt;
&lt;br /&gt;
You don't need to install all of the X components one by one, although you are free to do so if you really want. [[Lunar Linux]] provides a '''profile module''' called XOrg7 that is a sort of dummy module that doesn't do anything itself, but it depends on a lot of other modules. Installing a '''profile module''' therefore installs all of the modules that it depends on. To install a &amp;quot;standard&amp;quot; X environment simply:&lt;br /&gt;
&lt;br /&gt;
  lin XOrg7 ; lin additional drivers...&lt;br /&gt;
&lt;br /&gt;
You can find the additional drivers under /var/lib/lunar/moonbase/xorg7/drivers, or run ''lvu section xorg7/drivers''.&lt;br /&gt;
&lt;br /&gt;
However, this doesn't install all possible X applications. There are some, like xterm and xhost, that you will need to install manually.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Template:Main_Page:Documentation</id>
		<title>Template:Main Page:Documentation</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Template:Main_Page:Documentation"/>
				<updated>2010-07-24T16:31:35Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: link to new Desktop Environment page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: right; padding-top: 0.1em; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
{{ed|Main_Page:Documentation|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;[[Lunar Linux/Documentation|Documentation]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;General&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Lunar Linux:FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Installation&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Lunar Linux:Installation-1.6.5|Installation-1.6.5 (latest)]]&lt;br /&gt;
* [[Lunar Linux:Installation|Installation-1.5.0 (old)]]&lt;br /&gt;
* [[Lunar Linux:DesktopEnvironments|Desktop Environments, etc]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Moonbase&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Moonbase|The Lunar Moonbase]]&lt;br /&gt;
* [[Module Basics|A basic module outline]]&lt;br /&gt;
* [[Module Writing|Writing Lunar-Linux Modules]]&lt;br /&gt;
* [[Module Functions|Module Function List]]&lt;br /&gt;
* [[Module Submission|Submitting modules]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Other&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [irc://irc.freenode.net/lunar #Lunar] on [http://freenode.net/ Freenode.net]&lt;br /&gt;
* [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List] [http://lunar-linux.org/pipermail/lunar/ (archive)]&lt;br /&gt;
* [http://lunar-linux.org/pipermail/lunar-bugs/ Lunar Bugs Mailing-List] [http://lunar-linux.org/mailman/listinfo/lunar-bugs (archive)]&lt;br /&gt;
* [http://lunar-linux.org/pipermail/lunar-commits/ Lunar Commits Mailing-List] [http://lunar-linux.org/mailman/listinfo/lunar-commits (archive)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right; font-variant: small-caps; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Lunar Linux/Documentation|More Information]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Template:Main_Page:Documentation</id>
		<title>Template:Main Page:Documentation</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Template:Main_Page:Documentation"/>
				<updated>2010-07-23T20:08:38Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: added link to Installation-1.6.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: right; padding-top: 0.1em; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
{{ed|Main_Page:Documentation|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;[[Lunar Linux/Documentation|Documentation]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;General&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Lunar Linux:FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Installation&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Lunar Linux:Installation-1.6.5|Installation-1.6.5 (latest)]]&lt;br /&gt;
* [[Lunar Linux:Installation|Installation-1.5.0 (old)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Moonbase&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Moonbase|The Lunar Moonbase]]&lt;br /&gt;
* [[Module Basics|A basic module outline]]&lt;br /&gt;
* [[Module Writing|Writing Lunar-Linux Modules]]&lt;br /&gt;
* [[Module Functions|Module Function List]]&lt;br /&gt;
* [[Module Submission|Submitting modules]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Other&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [irc://irc.freenode.net/lunar #Lunar] on [http://freenode.net/ Freenode.net]&lt;br /&gt;
* [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List] [http://lunar-linux.org/pipermail/lunar/ (archive)]&lt;br /&gt;
* [http://lunar-linux.org/pipermail/lunar-bugs/ Lunar Bugs Mailing-List] [http://lunar-linux.org/mailman/listinfo/lunar-bugs (archive)]&lt;br /&gt;
* [http://lunar-linux.org/pipermail/lunar-commits/ Lunar Commits Mailing-List] [http://lunar-linux.org/mailman/listinfo/lunar-commits (archive)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right; font-variant: small-caps; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Lunar Linux/Documentation|More Information]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Template:Main_Page:Documentation</id>
		<title>Template:Main Page:Documentation</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Template:Main_Page:Documentation"/>
				<updated>2010-07-23T20:06:32Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: added link to Installation-1.6.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: right; padding-top: 0.1em; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
{{ed|Main_Page:Documentation|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;[[Lunar Linux/Documentation|Documentation]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;General&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Lunar Linux:FAQ|Frequently Asked Questions]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Installation&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Lunar Linux:Installation|Installation-1.6.5 (latest)]]&lt;br /&gt;
* [[Lunar Linux:Installation|Installation-1.5.0 (old)]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Moonbase&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Moonbase|The Lunar Moonbase]]&lt;br /&gt;
* [[Module Basics|A basic module outline]]&lt;br /&gt;
* [[Module Writing|Writing Lunar-Linux Modules]]&lt;br /&gt;
* [[Module Functions|Module Function List]]&lt;br /&gt;
* [[Module Submission|Submitting modules]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Other&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [irc://irc.freenode.net/lunar #Lunar] on [http://freenode.net/ Freenode.net]&lt;br /&gt;
* [http://lunar-linux.org/mailman/listinfo/lunar Lunar Mailing-List] [http://lunar-linux.org/pipermail/lunar/ (archive)]&lt;br /&gt;
* [http://lunar-linux.org/pipermail/lunar-bugs/ Lunar Bugs Mailing-List] [http://lunar-linux.org/mailman/listinfo/lunar-bugs (archive)]&lt;br /&gt;
* [http://lunar-linux.org/pipermail/lunar-commits/ Lunar Commits Mailing-List] [http://lunar-linux.org/mailman/listinfo/lunar-commits (archive)]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right; font-variant: small-caps; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Lunar Linux/Documentation|More Information]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5</id>
		<title>Lunar Linux:Installation/1.6.5</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5"/>
				<updated>2010-07-23T20:01:20Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: Initial update for 1.6.5-rc1 ISO&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is a revolutionary Linux distribution in that it is not binary based, as are most distributions, but is instead built entirely by compiling source code, using your own custom optimizations. &lt;br /&gt;
&lt;br /&gt;
Essentially, it installs a complete bootstrap development system on your machine, and then you tell the Lunar package manager what tools you want, and it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward your specific needs.&lt;br /&gt;
&lt;br /&gt;
The result is a leaner, meaner, refreshingly uncluttered, and strikingly faster operating system than most Linux distributions.&lt;br /&gt;
&lt;br /&gt;
This installation guide is designed to get you through the installation process as painlessly as possible. It assumes that you have some experience with Linux or another Unix variant, and have a general idea of what you are doing. If you are unfamiliar with such things as partitions, or have never used Linux before, Lunar may not be the best introduction for you into the world of open source. There are always Lunar gods available on irc.freenode.net in the #lunar channel to answer any questions that this manual may not make quite clear enough.&lt;br /&gt;
&lt;br /&gt;
With that said, we hope you enjoy using Lunar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About this installation manual==&lt;br /&gt;
&lt;br /&gt;
Although this manual is not intended to be a full and complete overview of any situation you may be confronted with, given the wide diversity of hardware available these days, it is intended to be an introduction to the world of Lunar Linux. You will see examples that are not tailored towards your to-be built server or workstation, optimizations that are overly broad or too specific, and examples that don't apply to any real situations. We tried hard to give you the idea of how much power you have over how you can setup your system, but we are forgetting to tell you how to run your own server or desktop (or other system) at all. That means that the examples and steps taken most probably do not apply to your situation at all.&lt;br /&gt;
	&lt;br /&gt;
Do not despair: if you understand what is going on and you get the idea, the installer will allow you to do pretty much everything you want to do with your system. There are really (almost) no limits.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Getting the ISO==&lt;br /&gt;
&lt;br /&gt;
The primary site for retrieving the ISO is [http://www.lunar-linux.org/ lunar-linux.org]. There, you will find links to our US, EU, and Internet2 mirrors, as well as a Bittorrent link. As of this writing, the current version of the Lunar ISO is version 1.6.5-rc1, codename Mare Ingenii (20100709). (''Check the main site for the actual latest version!'')&lt;br /&gt;
&lt;br /&gt;
Locate and retrieve the file lunar-1.6.5-rc1-i686.iso.bz2 (or lunar-1.6.5-rc1-x86_64.iso.bz2 if you have a 64-bit system). After downloading this file, you will need to unpack the ISO using bzip2. Windows users will need a program that can extract bzip2 archives, like WinZip (also capable of extracting bzip2 archives under windows are Winrar, powerarchiver and 7-Zip). Mac should unzip the file by itself. Then all that is left to do is use your favorite program to burn the ISO to a cdrom and begin the installation. Lunar can also be installed without using a CD. If you need to do it this way, our [[FAQ]] provides simple instructions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO and Lunar use udev for device management. The devfs system, and the &amp;quot;old-school&amp;quot; method of manually installing devices, are no longer supported.&lt;br /&gt;
&lt;br /&gt;
We are assuming the you are installing Lunar as your primary OS. Make sure you have a backup of any important data that you need to retain. The Lunar Linux Project and its developers are not responsible in any way for any loss of data on your system!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Booting the ISO==&lt;br /&gt;
&lt;br /&gt;
Upon booting the ISO, the first thing you will see are options for booting the ISO kernel, or for performing RAM tests [Note: MemTest is not available on x86_64]. There is even a safe mode which will disable DMA, MTRR, RAID, LVM, USB keyboards, NTFS, HPFS, Advanced Partitions, and Firewire. Most folks, however, will be just fine pressing enter at the boot prompt and loading the default kernel.&lt;br /&gt;
&lt;br /&gt;
To boot the iso with support for your usb keyboard:&lt;br /&gt;
''linux uhci-hcd ehci-hcd''&lt;br /&gt;
&lt;br /&gt;
After loading the kernel, the first screen presents you with a few options. If there are extra modules you need to load in order continue with the install, they can be loaded here. There is also a shell option. However, if you are using this ISO for rescue purposes, you do not want to shell out here; rather continue booting and shell out in the next section. Most people will select &amp;quot;continue booting&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
It should be noted that the 1.6.5 ISO tries to autodetect some hardware (mostly scsi drivers and network interfaces) during this stage. This will help you establish a network connection if you desire so during installation. For this reason the programs 'dhcpcd' and 'ftp' are already available at this stage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Virtual Consoles==&lt;br /&gt;
&lt;br /&gt;
Once the ISO has booted into the installer, you can immediately shell out or switch to one of the other virtual consoles. These will have ready to go root shells and are available throughout the installer sequence. With these you can start rescue actions, setup networking or double check the install progress and make manual adjustments.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Language and keyboard interface Settings==&lt;br /&gt;
&lt;br /&gt;
After reading the introduction, you will be presented with options for choosing the proper font, keymap, and language for your install.&lt;br /&gt;
You will also need to choose an editor, as you are going to need one later on in the installation for setting up your lilo or grub configuration. The choices available are e3, [e3/emacs], joe, nano, vi, and zile. If you have never used a text editor in Linux before, nano is the best choice for you. If you skip the Native Language Support option, the system will install the default editor, nano, for you. When you have finished setting up your options, press cancel to return to the main setup menu.&lt;br /&gt;
Less important for most people is the ability to choose the console font, although it may help display some non-English characters. Most people will want to set the system-default language variable and editor though. All these values are unset by default, so make sure you set them now.&lt;br /&gt;
The keymap table allows people to use azerty and dvorak keyboards, and much more. This is especially required for non-English keyboards which provide many accented characters.&lt;br /&gt;
All these language and keymap settings might not apply to the lunar code itself, which (currently) does not have any international support, but most programs that run during the installer sequence, and after booting into your new system, will be affected properly.&lt;br /&gt;
&lt;br /&gt;
Warning: the keymap entry appears to default to ANSI-dvorak so make sure that you really select what you want.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Creating or editing Partitions==&lt;br /&gt;
&lt;br /&gt;
The next step is to set up partitions on your hard drive. Upon selecting the &amp;quot;Partition Drive&amp;quot; option, you will be shown a list of all the discs the kernel has detected. For this guide, we will assume that you have one hard drive connected via an IDE channel, which will show up in the menu as &amp;quot;disc0&amp;quot;. After selecting the disc to partition, you are given the option of using one of three partitioning programs. They are:&lt;br /&gt;
&lt;br /&gt;
* cfdisk -- A menu driven partitioner, and very easy to use. If you are unfamiliar with various partitioning programs, this is the best option for you.&lt;br /&gt;
* fdisk -- Text based partitioner that requires a little more know-how than cfdisk. More experienced users will probably use this program. However new users should not be daunted, as it does have help offered at every step.&lt;br /&gt;
* parted -- Text based partitioner that is good for advanced users. Parted is excellent for resizing current partitions on your hard disk, however be forewarned that resizing partitions is an excellent way to hose your entire disc.&lt;br /&gt;
&lt;br /&gt;
Note: under the &amp;amp;lt;Settings&amp;amp;gt; option on the main menu there is an option to configure the fstab mount style as DEV, LABEL or UUID. The first is the traditional Linux method, but can sometimes give problems if a kernel update causes the disk to be renamed. The default is UUID, which uses a unique marker on the partition to avoid this problem.&lt;br /&gt;
&lt;br /&gt;
For our example, we have a 40GB IDE drive and we'll set up six partitions; /, /boot, /home, /usr, /var, and a swap partition. It's a good idea to keep certain directories, such as /var and /usr on separate partitions, as this can save you a lot of headache in the future in case your disk ever completely fails on you and you need to recover data (God forbid!). Also, when you have a separate /boot partition as we have in our example, you need to have your partitioning program mark that partition as active or bootable. In our example, if we were using fdisk, you would press &amp;quot;a&amp;quot; at the command line, and then select part1 as the active partition.&lt;br /&gt;
&lt;br /&gt;
You might also want to install a /tmp partition. By default, Lunar will create a tempfs filesystem mounted on /tmp (tempfs minimizes filesystem fragmentation because it resides in volatile memory). This can be a good choice if you have a lot of memory on your machine. If memory is tight, we recommend creating a /tmp partition to minimize filesystem fragmentation.&lt;br /&gt;
&lt;br /&gt;
It is important to note that you &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''can not''&amp;lt;/span&amp;gt; mount the directories /etc, /bin, /sbin, /dev, /lib and /proc on separate partitions. These directories need to be contained within the root (&amp;quot;/&amp;quot;) directory. The installation program should block you from doing this, but it's best not to try.&lt;br /&gt;
&lt;br /&gt;
Here's our partition setup:&lt;br /&gt;
&lt;br /&gt;
  1 /boot 100MB&lt;br /&gt;
  2 / 4GB&lt;br /&gt;
  3 swap 1GB&lt;br /&gt;
  5 /usr 10GB&lt;br /&gt;
  6 /var 10GB&lt;br /&gt;
  7 /home 15GB&lt;br /&gt;
&lt;br /&gt;
(''If you're wondering about this choice of partitions: it's really just an example. Read the [[FAQ#So_how_should_I_partition_my_disk.3F|FAQ]] on what makes sense in the real world''))&lt;br /&gt;
&lt;br /&gt;
You'll notice that there is no fourth partition in our list above. In order for you to have more than four partitions on a single drive, the fourth partition is made into what is known as an extended or logical partition in which the fifth, sixth, and seventh (etc, etc) partitions reside. For our example above, if we were using fdisk, we would make the fourth partition an extended/logical partition that was 35GB, and then the fifth, sixth, and seventh partitions in our scheme resided within it. However, if we used cfdisk, we would just worry about creating six partitions, making sure that the first three are the primary type, and the last three logical.&lt;br /&gt;
&lt;br /&gt;
Note that the names and mount points for these partitions will be assigned during the next step of this process, when you mount the partitions. Write down exactly what partitions you are planning to create because it can otherwise get confusing!&lt;br /&gt;
&lt;br /&gt;
Lunar offers two choices when it comes to swap. You can set up a swap partition, as we have in our example, or you can set up a swapfile in the root directory. We recommend setting up a swap partition, as you will get better performance with it than with the swapfile. However, there may be a need for you to set up the swapfile instead, which can be setup and activated after you have mounted your other partitions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Selecting Partitions and Filesystems==&lt;br /&gt;
&lt;br /&gt;
After creating your partitions, you need to select them and assign file systems. Select the menu option &amp;quot;Select Filesystems&amp;quot; and verify that you are indeed done creating partitions.&lt;br /&gt;
&lt;br /&gt;
The partitions can be selected in random order with the new installer. First select the partition and then assign a filesystem and mountpoint to it. The installer will add this to the job queue and formatting and mounting takes place later so you can edit your selection. Here's a list of filesystems that are currently supported:&lt;br /&gt;
&lt;br /&gt;
* ''ext4'' (Fourth Extended File System) -- Version 4 of the Extended File System, which was ... TO BE COMPLETED.&lt;br /&gt;
* ''ext3'' (Third Extended File System) -- Version 3 of the Extended File System, which is essentially just the journaled version of ext2. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''ext2'' (Second Extended File System) -- Version 2 of the Extended File System, which was designed for linux as a replacement for the Minix Filesystem. Ext2 is not a journaled filesystem, which means that you'll need to perform disc recovery operations after a power failure or other such system crash. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''reiserfs'' (Reiser Filesystem) -- Journaled filesystem created by Hans Reiser that is excellent for use with extremely small files. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''xfs'' -- Created by SGI for IRIX, SGI's brand of Unix, and later ported to linux under the GPL. A journaled filesystem that SGI claims is better than any other at handling extremely large files and sparse files. This filesystem is only available with the lunar or grsec patched kernels, which we will come to in a few steps.&lt;br /&gt;
* ''jfs'' (Journaled File System) -- Created by IBM for AIX, IBM's brand of Unix, and later ported to linux by IBM under the GPL. A journaled filesystem that is very good at handling high throughput issues. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''swap'' Swap (Virtual memory or paging filesystem) for swap partitions only!&lt;br /&gt;
&lt;br /&gt;
After selecting the filesystem type you wish to use, you will be prompted through a series of steps to initialize the partition. You'll notice that the prompts are quite redundant in nature in order to be absolutely positive that you will not inadvertantly erase crucial data that you might have on a working filesystem. In addition, if you have more than four partitions, as we do in our example, you don't want to select any file systems on the fourth partition, as it is the extended partition that houses the fifth, sixth (and so on) partitions. (The installer will try to detect this and skip the extended partition from the list).&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, there is an option in the installation process to set up a swap file in the root partition instead of a swap partition as we have done in our example. The next option after selecting your filesystems is to select a swapfile if you so desire. &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''If you have set up a swap partition already, as we have done, you can skip this step.''&amp;lt;/span&amp;gt; Otherwise, you can set up your swap file here, and the only thing you need to tell the installer is how large you want the file to be. Running without swap completely is also possible of course.&lt;br /&gt;
&lt;br /&gt;
'''Please note during this step, no modifications are made to your filesystem!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar==&lt;br /&gt;
&lt;br /&gt;
Next, we need to ''format'' your partitions, ''mount'' them in the right place, create ''swap'' and transfer the entire Lunar system to the partitions that you now have created. This happens all in one single step.&lt;br /&gt;
&lt;br /&gt;
Select ''Install Lunar'', and the system will proceed to transfer all of the necessary files for you. The installer will display progress as packages are transferred to your system and you'll have some idea how long it will take. On normal machines, this should take about 5 minutes.&lt;br /&gt;
&lt;br /&gt;
At the end of this step, the installer sets various system parameters like language, timezone and vital package configuration files in order for your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting Up Your Compiler Optimizations==&lt;br /&gt;
&lt;br /&gt;
The compiler optimizations is a crucial step, since what you choose will make your system fly! However, it is important that you do not overdo it on you optimization settings, as certain selections can, in some instances, break code while compiling.&lt;br /&gt;
&lt;br /&gt;
The first step is to choose your preferred compiler. There is only one version on the 1.6.5 ISO, so the only option here is GCC 4.4. However, once the main system installation is complete, it is possible to install GCC 3.x -- and even the deprecated GCC 2.x! If you don't intend to install those, you should go to the GCC_4_4 submenu now and set GCC 4.4 as the default compiler. &lt;br /&gt;
&lt;br /&gt;
The GCC_4_4 menu also allows you to change other options:&lt;br /&gt;
&lt;br /&gt;
* ''safe'' : allows you to turn off optimization safety, so you should leave this well alone unless you really know what you are doing. Turning this off will result in many more options appearing than are described below.&lt;br /&gt;
* ''bopt'' : allows you to change the base compile-time optimization. Your choice depends on what your needs are. Most folks will want to use -O2 here, as it is the wisest choice. More advanced users may want to use the -O3 option, but it's not for everyone. If you're short on disk space, you would take the -Os Small option. (As an example, we used -Os for the ISO since we were working within a confined amount of disc space.) Those of you with older or slower systems that wouldn't be able to take advantage of faster optimizations may choose a more conservative setting like -O1. For our example system, we will choose -O2.&lt;br /&gt;
* ''cpu'' : allows you to set your processor type. This may seem unimportant, but the GCC 4.x [and GCC 3.x] compiler has ways of optimizing code for certain processors&lt;br /&gt;
* ''cc_opt'' : allows you to set some limited C/C++ compiler settings. Very few people, if any, would need to turn off the -pipe option.&lt;br /&gt;
&lt;br /&gt;
The unsafe optimizations are:&lt;br /&gt;
* ''xtra'' : CPU extensions&lt;br /&gt;
* ''spd'' : Specialized optimizations&lt;br /&gt;
* ''fpm'' : Floating point optimizations&lt;br /&gt;
* ''stack'' : Stack optimizations&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Adding Other Compiler Toolchain Optimizations==&lt;br /&gt;
&lt;br /&gt;
'''You can safely SKIP this entire step!'''&lt;br /&gt;
&lt;br /&gt;
The GNU_LD menu shows the screen for linker options, where you will find that &amp;quot;-s Strip&amp;quot; has already been checked off. Very few people will want to uncheck this option, so we will leave this screen as is.&lt;br /&gt;
&lt;br /&gt;
The GNU_MAKE menu allows you to set the number of concurrent makes. As the hint mentions on the &amp;quot;Concurrent Makes&amp;quot; screen, you'll want to enter in the number of cpu's your machine has. Unless you have a machine with more than one processor, you'll want to leave this field blank.&lt;br /&gt;
&lt;br /&gt;
We are now finished setting up our GCC optimizations! When you have you lunar system up and running, you can always change and tweak these GCC settings by typing &amp;quot;lunar&amp;quot; at the commandline prompt, and going to &amp;quot;Optimization Settings&amp;quot;. In addition, if you aren't that familiar with what your processor is capable of using for optimizations, you can go to the shell out option on the ISO and type&lt;br /&gt;
&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
at the prompt and the system will show you all the optimizations that the processor reports it can handle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuring Your Bootloader==&lt;br /&gt;
&lt;br /&gt;
=== Configuring LILO ===&lt;br /&gt;
&lt;br /&gt;
If you chose to use lilo and also said yes to automatically configuring and running lilo, then most of the work is done for you. If you chose not to hand edit lilo.conf, however, be warned that the default configuration has the system set up to be password protected on boot. You can change this by selecting the option from the menu &amp;quot;Reconfigure LILO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To turn off password protection, you will need to comment out (with the symbol &amp;quot;#&amp;quot;) or delete two lines in your lilo.conf file. The first is &amp;quot;password=lunar&amp;quot;, which is found in the top section of the file, and the other is &amp;quot;restricted&amp;quot; which is found right below the name of your kernel in the second section.&lt;br /&gt;
&lt;br /&gt;
The other item of note is whether you want lilo to reside in your MBR (Master Boot Record) or on the first sector of your /boot partition. The line in your lilo.conf file to edit for this purpose is&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda1&lt;br /&gt;
&lt;br /&gt;
To make lilo get installed on the first sector of your /boot partition, you would leave this line as it is. If you want lilo to be written to your MBR, which is the recommended method, you would change the line to read&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/sda&lt;br /&gt;
&lt;br /&gt;
Of course, these examples are pertinent to our setup that we have been using thoughout this manual. Your actual lilo.conf file may be different.&lt;br /&gt;
&lt;br /&gt;
=== Configuring GRUB ===&lt;br /&gt;
&lt;br /&gt;
If you chose grub as your bootloader, you will need to set up the configuration file entirely on your own. An example would be:&lt;br /&gt;
&lt;br /&gt;
  default 0&lt;br /&gt;
  timeout 30&lt;br /&gt;
  color white/blue white/black&lt;br /&gt;
  title linux-2.4.25&lt;br /&gt;
  root (hd0,0)&lt;br /&gt;
  kernel /vmlinubz-2.4.25-r5.0.0 root=/dev/sda2 devfs=nomount&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier in the partitioning section, you would want to mark your /boot partition as active. With grub it is ''imperative'' that you mark your /boot partition as active, otherwise grub will not work at all when you are finished with the installation and reboot to your new system.&lt;br /&gt;
&lt;br /&gt;
NOTE: The option to install grub is not available on the 1.6.5-rc1-x86_64 ISO because grub is not yet fully stable on 64-bit systems. If you really know what you are doing, the source tarball is saved to disk, so you can configure it manually once the main installation is complete.&lt;br /&gt;
==Installing kernels==&lt;br /&gt;
&lt;br /&gt;
===Installing a precompiled kernel===&lt;br /&gt;
&lt;br /&gt;
The ISO comes with a selection of precompiled kernels and modules that should work for most people. If you have problems getting your kernel to compile, install or getting the right drivers, or just want to get a quick start at lunar, we ''suggest'' that you use this option instead of compiling your own kernel. You can later of course compile as many kernels as you want, and indeed the first ''lunar update'' after the main installation might ask whether you want to update the kernel too. Why do it twice if you don't need to?&lt;br /&gt;
&lt;br /&gt;
There are several kernels for you to choose from. They are:&lt;br /&gt;
&lt;br /&gt;
* ''2.6.34.1'' -- Normal kernel (SMP, 4GB memory max) (RECOMMENDED). &lt;br /&gt;
* ''2.6.34.1-safe'' -- Very safe non-optimized minimal kernel (no ACPI, DMA, SMP, 1GB).&lt;br /&gt;
* ''2.6.34.1-server'' -- Server optimized (SELINUX, SMP, 64GB, no preempt).&lt;br /&gt;
&lt;br /&gt;
===Building Your Customized Linux Kernel===&lt;br /&gt;
&lt;br /&gt;
We have now come to the most important part of the installation; the configuration of the kernel. The kernel is the heart of Linux, and without it, nothing would work. Configuration is, actually, a rather simple process. All you need to remember is to not panic, and that lunar is going to do most of the work for you. Here are a few pointers that will make the configuration a breeze for you.&lt;br /&gt;
&lt;br /&gt;
* Help is a click away! The people working on creating and maintaining the Linux kernel have help placed throughout the entire configuration process. If you're not sure what something does, just look at the help file for whatever item you're on, and it will almost certainly explain what it is and what it does. The most handy thing is that every help file will suggest whether you should really use the item or not. Many help files end with &amp;quot;If you're not sure, it is safe to say N here&amp;quot;, thus letting you know that it is safe to leave that particular item out of the kernel.&lt;br /&gt;
* You can use the ISO kernel! The configuration used to make the kernel for the ISO is the same configuration you'll see when you start your kernel customization. If you leave the configuration the way it is, the only thing you truly have to worry about is your network and, if you want it, sound. There are also two additional default configurations available on the ISO that are available to you called &amp;quot;config.safe&amp;quot; and &amp;quot;config.server&amp;quot;. We'll show you how to load these configurations in just a little bit. [TODO: check these files]&lt;br /&gt;
* Never build filesystems or core components as modules! Make sure that whatever filesystems you decided to use for your partitions earlier are built into the kernel, and are not separate modules. Likewise, make sure that certain crucial things like ide and scsi drivers are not modules, as this will make your machine unbootable. (This rule doesn't apply to the scsi low level drivers though; they can be modules.) Modules are kernel drivers that can be manually activated and deactivated after the system has been booted, but not during boot time. The kernel from the ISO already has all the filesystems available during the installation built into the kernel, so if you don't change anything there, you will be fine.&lt;br /&gt;
&lt;br /&gt;
You will be shown two screens of information before you actually begin you kernel configuration, letting you know that you are going to need a few things built into the kernel in order to have Lunar run properly, and what options you have for boot loaders. Lunar comes with both lilo (LInux LOader) and grub (GRand Unified Bootloader).&lt;br /&gt;
&lt;br /&gt;
If you don't have much experience with bootloaders, we suggest using lilo for now, as the installation program will set up the configuration file for you. If you would prefer to use grub, and we encourage folks to learn how to use it, be forewarned that the installation program does not set up any configuration at all for you.&lt;br /&gt;
&lt;br /&gt;
[On the 1.6.5-rc1-x86_64 ISO] There is only one kernel available for you to choose from:&lt;br /&gt;
&lt;br /&gt;
* ''linux-2.6.'' -- Latest 2.6 kernel with minor patchlevel patches (2.6.x.Y)&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use linux-2.6. &lt;br /&gt;
&lt;br /&gt;
Before you begin is which type of configuration method you would like to use.&lt;br /&gt;
&lt;br /&gt;
* ''config'' -- The original way to configure the linux kernel. It is completely text based, and assumes you know what everything is. Unless you've been using linux since its inception, you probably don't want to use this method.&lt;br /&gt;
* ''menuconfig'' -- As the name implies, a menu driven version of the kernel configuration. This is the easiest, and by far the most popular way of configurating your kernel.&lt;br /&gt;
* ''xconfig'' -- If you have an X server running, you can use this option to configure your kernel using a nifty GUI interface. You won't be able to use this on the ISO, but once your system is up and running with X, you can use this option. If you do choose this option while installing from the ISO, the system will fall back to next available configuration method, in this case menuconfig, so there is no harm in selecting it if you do.&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use menuconfig. Once Lunar is finished applying the patches for the kernel, which can take a minute or two, you'll be brought to the configuration screen for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, the configuration that was used to build the kernel for the ISO is the same configuration that you'll be presented with when you start. However, as we also mentioned earlier, there are two alternate kernel configurations available to you that you may want to use; config.safe and config.server. Both of these configurations can be found on the ISO, along with the original default config file, in /etc/lunar/local. When you are looking at the kernel menuconfig main page, scroll all the way to bottom, and you will find an option called &amp;quot;Load an Alternate Configuration File&amp;quot;. Select this and then give the absolute path to the alternate configuration file, i.e. /etc/lunar/local/.config.server. As with all kernel configuration files, they are hidden files preceded with a &amp;quot;.&amp;quot;, so make sure to not forget it.&lt;br /&gt;
&lt;br /&gt;
Once you have completed configuring your kernel, you'll get one more prompt from the installer asking if you want to go back to the configuration in case you exited by mistake or forgot something. If everything is good to go, say no here and sit back for a few minutes while your kernel compiles.&lt;br /&gt;
&lt;br /&gt;
==Setting Up Networking==&lt;br /&gt;
&lt;br /&gt;
The final step is to set up networking. When you select the &amp;quot;Set Up Networking&amp;quot; option, you'll be prompted by a series of questions as to what kind of card you have (only needed if you built your networking device as a module, and not part of the kernel), if you need to set up wireless or not, and whether you'll need to use dhcp or not. You should be familiar enough with your network to set this up on your own, as the questions put to you are very straightforward.&lt;br /&gt;
&lt;br /&gt;
* if you use dhcp, you don't need to set up the default gateway or DNS because dhcp will take care of them for you.&lt;br /&gt;
* you are using a wireless connection with wpa_supplicant, you might want to run &amp;quot;wpa_passphrase&amp;quot; to set up a simple /etc/wpa_supplicant.conf rather than try to edit the example file.&lt;br /&gt;
&lt;br /&gt;
==Other settings==&lt;br /&gt;
&lt;br /&gt;
The installer will prompt you now for some more settings. You should set a root password and generate ssh host keys to identify your box uniquely for later. You might also want to administrate services on the newly installed machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reboot!==&lt;br /&gt;
&lt;br /&gt;
Once you have completed setting up your networking, you are finished installing Lunar Linux! Congratulations! Select the option &amp;quot;Done&amp;quot; and remove the cd from the drive when it ejects. Your Lunar system is now ready to go!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Moonbase==&lt;br /&gt;
&lt;br /&gt;
After the initial installation and reboot, please follow the instructions given in '''man lfirsttime''' to bring your system up-to-date.&lt;br /&gt;
&lt;br /&gt;
Congratulations! You now have a minimal system as a foundation on which to build.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Have Phun!!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/copyleft/ Copyleft] 2004-2010 [http://lunar-linux.org/ The Lunar Penguin Team]&lt;br /&gt;
&lt;br /&gt;
Lunar Installation Manual and Harassment of Lunar Developers by Drew Swayze (drew AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Edits and Nitpicking by Suzanne Burns (sburns AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Initial update for the 1.6.5 ISO by Duncan Gibson (engelsman AT lunar-linux DOT org).&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5</id>
		<title>Lunar Linux:Installation/1.6.5</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:Installation/1.6.5"/>
				<updated>2010-07-23T16:11:30Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: Initial copy of the Installation[-1.5.0] page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is a revolutionary linux distribution in that it is not binary based, as are most distributions, but is instead built entirely by compiling sourcecode, using your own custom optimizations. &lt;br /&gt;
&lt;br /&gt;
Essentially, it installs a complete bootstrap development system on your machine, and then you tell the Lunar package manager what tools you want, and it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward your specific needs.&lt;br /&gt;
&lt;br /&gt;
The result is a leaner, meaner, refreshingly uncluttered, and strikingly faster operating system than most linux distributions.&lt;br /&gt;
&lt;br /&gt;
This installation guide is designed to get you through the installation process as painlessly as possible. It assumes that you have some experience with linux or another Unix variant, and have a general idea of what you are doing. If you are unfamiliar with such things as partitions, or have never used linux before, Lunar may not be the best introduction for you into the world of open source. There are always Lunar gods available on irc.freenode.net in the #lunar channel to answer any questions that this manual may not make quite clear enough.&lt;br /&gt;
&lt;br /&gt;
With that said, we hope you enjoy using Lunar!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==About this installation manual==&lt;br /&gt;
&lt;br /&gt;
Although this manual is not intended to be a full and complete overview of any situation you may be confronted with, given the wide diversity of hardware available these days, it is intended to be an introduction to the world of Lunar Linux. You will see examples that are not tailored towards your to-be built server or workstation, optimizations that are overly broad or too specific, and examples that don't apply to any real situations. We tried hard to give you the idea of how much power you have over how you can setup your system, but we are forgetting to tell you how to run your own server or desktop (or other system) at all. That means that the examples and steps taken most probably do not apply to your situation at all.&lt;br /&gt;
	&lt;br /&gt;
Do not despair: if you understand what is going on and you get the idea, the installer will allow you to do pretty much everything you want to do with your system. There are really (almost) no limits.&lt;br /&gt;
&lt;br /&gt;
==Getting the ISO==&lt;br /&gt;
&lt;br /&gt;
The primary site for retrieving the ISO is [http://www.lunar-linux.org/ lunar-linux.org]. There, you will find links to our US, EU, and Internet2 mirrors, as well as a Bittorrent link. As of this writing, the current version of the Lunar ISO is version 1.5.0. (''Check the main site for the actual latest version!'')&lt;br /&gt;
&lt;br /&gt;
Locate and retrieve the file lunar-1.5.0-i686.iso.bz2. After downloading this file, you will need to unpack the ISO using bzip2. Windows users will need a program that can extract bzip2 archives, like WinZip (also capable of extracting bzip2 archives under windows are Winrar, powerarchiver and 7-Zip). Mac should unzip the file by itself. Then all that is left to do is use your favorite program to burn the ISO to a cdrom and begin the installation. Lunar can also be installed without using a CD. If you need to do it this way, our [[FAQ]] provides simple instructions.&lt;br /&gt;
&lt;br /&gt;
It should be noted that this ISO and Lunar use devfs for device management. If you prefer the &amp;quot;old-school&amp;quot; method of manually installing devices, there is an ISO available with this option at [http://thing.fwsystems.com/build/lunar/lunar-1.3_stddev.iso.bz2 thing.fwsystems.com].&lt;br /&gt;
&lt;br /&gt;
We are assuming the you are installing Lunar as your primary OS. Make sure you have a backup of any important data that you need to retain. The Lunar Linux Project and its developers are not responsible in any way for any loss of data on your system!&lt;br /&gt;
&lt;br /&gt;
==Booting the ISO==&lt;br /&gt;
Upon booting the ISO, the first thing you will see are options for booting the ISO kernel, or for performing RAM tests. There is even a safe mode which will disable DMA, MTRR, RAID, LVM, USB keyboards, NTFS, HPFS, Advanced Partitions, and Firewire. Most folks, however, will be just fine pressing enter at the boot prompt and loading the default kernel.&lt;br /&gt;
&lt;br /&gt;
To boot the iso with support for your usb keyboard:&lt;br /&gt;
''linux uhci-hcd ehci-hcd''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After loading the kernel, the first screen presents you with a few options. If there are extra modules you need to load in order continue with the install, they can be loaded here. There is also a shell option. However, if you are using this ISO for rescue purposes, you do not want to shell out here; rather continue booting and shell out in the next section. Most people will select &amp;quot;continue booting&amp;quot; here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It should be noted that since 1.5.0, the iso tries to autodetect some hardware (mostly scsi drivers and network interfaces) during this stage. This will help you establish a network connection if you desire so during installation. For this reason the programs 'dhcpcd' and 'ftp' are already available at this stage.&lt;br /&gt;
&lt;br /&gt;
==Virtual Consoles==&lt;br /&gt;
Once the ISO has booted into the installer, you can immediately shell out or switch to one of the other virtual consoles. These will have ready to go root shells and are available throughout the installer sequence. With these you can start rescue actions, setup networking or double check the install progress and make manual adjustments.&lt;br /&gt;
&lt;br /&gt;
==Language and keyboard interface Settings==&lt;br /&gt;
&lt;br /&gt;
After reading the introduction, you will be presented with options for choosing the proper font, keymap, and language for your install.&lt;br /&gt;
You will also need to choose an editor, as you are going to need one later on in the installation for setting up your lilo or grub configuration. The three choices available are vi, joe, and nano. If you have never used a text editor in linux before, nano is the best choice for you. If you skip the Native Language Support option, the system will install the default editor, nano, for you. When you have finished setting up your options, press cancel to return to the main setup menu.&lt;br /&gt;
Less important for most people is the ability to choose the console font, although it may help display some non-english characters. Most people will want to set the system-default language variable and editor though. All these values are unset by default, so make sure you set them now.&lt;br /&gt;
The keymap table allows people to use azerty and dvorak keyboards, and much more. This is especially required for non-english keyboards which provide many accented characters.&lt;br /&gt;
All these language and keymap settings might not apply to the lunar code itself, which (currently) does not have any international support, but most programs that run during the installer sequence, and after booting into your new system, will be affected properly.&lt;br /&gt;
==Creating or editing Partitions==&lt;br /&gt;
&lt;br /&gt;
The next step is to set up partitions on your hard drive. Upon selecting the &amp;quot;Partition Drive&amp;quot; option, you will be shown a list of all the discs the kernel has detected. For this guide, we will assume that you have one hard drive connected via an IDE channel, which will show up in the menu as &amp;quot;disc0&amp;quot;. After selecting the disc to partition, you are given the option of using one of three partitioning programs. They are:&lt;br /&gt;
&lt;br /&gt;
* cfdisk -- A menu driven partitioner, and very easy to use. If you are unfamiliar with various partitioning programs, this is the best option for you.&lt;br /&gt;
* fdisk -- Text based partitioner that requires a little more know-how than cfdisk. More experienced users will probably use this program. However new users should not be daunted, as it does have help offered at every step.&lt;br /&gt;
* parted -- Text based partitioner that is good for advanced users. Parted is excellent for resizing current partitions on your hard disk, however be forewarned that resizing partitions is an excellent way to hose your entire disc.&lt;br /&gt;
&lt;br /&gt;
For our example, we have a 40GB IDE drive and we'll set up six partitions; /, /boot, /home, /usr, /var, and a swap partition. It's a good idea to keep certain directories, such as /var and /usr on separate partitions, as this can save you a lot of headache in the future incase your disk ever completely fails on you and you need to recover data (god forbid!). Also, when you have a separate /boot partition as we have in our example, you need to have your partitioning program mark that partion as active or bootable. In our example, if we were using fdisk, you would press &amp;quot;a&amp;quot; at the command line, and then select part1 as the active partition.&lt;br /&gt;
&lt;br /&gt;
You might also want to install a /tmp partition. By default, Lunar will create a tempfs filesystem mounted on /tmp (tempfs minimizes filesystem fragmentation because it resides in volatile memory). This can be a good choice if you have a lot of memory on your machine. If memory is tight, we recommend creating a /tmp partition to minimize filesystem fragmentation.&lt;br /&gt;
&lt;br /&gt;
It is important to note that you &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''can not''&amp;lt;/span&amp;gt; mount the directories /etc, /bin, /sbin, /dev, /lib and /proc on separate partitions. These directories need to be contained within the root (&amp;quot;/&amp;quot;) directory. The installation program should block you from doing this, but it's best not to try.&lt;br /&gt;
&lt;br /&gt;
Here's our partition setup:&lt;br /&gt;
&lt;br /&gt;
  1 /boot 100MB&lt;br /&gt;
  2 / 4GB&lt;br /&gt;
  3 swap 1GB&lt;br /&gt;
  5 /usr 10GB&lt;br /&gt;
  6 /var 10GB&lt;br /&gt;
  7 /home 15GB&lt;br /&gt;
&lt;br /&gt;
(''If you're wondering about this choice of partitions: it's really just an example. Read the [[FAQ#So_how_should_I_partition_my_disk.3F|FAQ]] on what makes sense in the real world''))&lt;br /&gt;
&lt;br /&gt;
You'll notice that there is no fourth partition in our list above. In order for you to have more than four partitions on a single drive, the fourth partition is made into what is known as an extended or logical partition in which the fifth, sixth, and seventh (etc, etc) partitions reside. For our example above, if we were using fdisk, we would make the fourth partition an extended/logical partition that was 35GB, and then the fifth, sixth, and seventh partitions in our scheme resided within it. However, if we used cfdisk, we would just worry about creating six partitions, making sure that the first three are the primary type, and the last three logical.&lt;br /&gt;
&lt;br /&gt;
Note that the names and mount points for these partitions will be assigned during the next step of this process, when you mount the partitions. Write down exactly what partitions you are planning to create because it can otherwise get confusing!&lt;br /&gt;
&lt;br /&gt;
Lunar offers two choices when it comes to swap. You can set up a swap partition, as we have in our example, or you can set up a swapfile in the root directory. We recommend setting up a swap partition, as you will get better performance with it than with the swapfile. However, there may be a need for you to set up the swapfile instead, which can be setup and activated after you have mounted your other partitions.&lt;br /&gt;
&lt;br /&gt;
==Selecting Partitions and Filesystems==&lt;br /&gt;
&lt;br /&gt;
After creating your partitions, you need to select them and assign file systems. Select the menu option &amp;quot;Select Filesystems&amp;quot; and verify that you are indeed done creating partitions.&lt;br /&gt;
&lt;br /&gt;
The partitions can be selected in random order with the new installer. First select the partition and then assign a filesystem and mountpoint to it. The installer will add this to the job queue and formatting and mounting takes place later so you can edit your selection. Here's a list of filesystems that are currently supported:&lt;br /&gt;
&lt;br /&gt;
* ''ext2'' (Second Extended File System) -- Version 2 of the Extended File System, which was designed for linux as a replacement for the Minix Filesystem. Ext2 is not a journaled filesystem, which means that you'll need to perform disc recovery operations after a power failure or other such system crash. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''ext3'' (Third Extended File System) -- Version 3 of the Extended File System, which is essentially just the journaled version of ext2. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''reiserfs'' (Reiser Filesystem) -- Journaled filesystem created by Hans Reiser that is excellent for use with extremely small files. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''jfs'' (Journaled File System) -- Created by IBM for AIX, IBM's brand of Unix, and later ported to linux by IBM under the GPL. A journaled filesystem that is very good at handling high throughput issues. This filesystem is available with all kernels on the ISO.&lt;br /&gt;
* ''xfs'' -- Created by SGI for IRIX, SGI's brand of Unix, and later ported to linux under the GPL. A journaled filesystem that SGI claims is better than any other at handling extremely large files and sparse files. This filesystem is only available with the lunar or grsec patched kernels, which we will come to in a few steps.&lt;br /&gt;
&lt;br /&gt;
After selecting the filesystem type you wish to use, you will be prompted through a series of steps to initialize the partition. You'll notice that the prompts are quite redundant in nature in order to be absolutely positive that you will not inadvertantly erase crucial data that you might have on a working filesystem. In addition, if you have more than four partitions, as we do in our example, you don't want to select any file systems on the fourth partition, as it is the extended partition that houses the fifth, sixth (and so on) partitions. (The installer will try to detect this and skip the extended partition from the list).&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, there is an option in the installation process to set up a swap file in the root partition instead of a swap partition as we have done in our example. The next option after selecting your filesystems is to select a swapfile if you so desire. &amp;lt;span class=&amp;quot;emphasis&amp;quot;&amp;gt;''If you have set up a swap partition already, as we have done, you can skip this step.''&amp;lt;/span&amp;gt; Otherwise, you can set up your swap file here, and the only thing you need to tell the installer is how large you want the file to be. Running without swap completely is also possible of course.&lt;br /&gt;
&lt;br /&gt;
'''Please note during this step, no modifications are made to your filesystem!'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar==&lt;br /&gt;
&lt;br /&gt;
Next, we need to ''format'' your partitions, ''mount'' them in the right place, create ''swap'' and transfer the entire Lunar system to the partitions that you now have created. This happens all in one single step.&lt;br /&gt;
&lt;br /&gt;
Select ''Install Lunar'', and the system will proceed to transfer all of the neccessary files for you. The installer will display progress as packages are transferred to your system and you'll have some idea how long it will take. On normal machines, this should take about 5 minutes.&lt;br /&gt;
&lt;br /&gt;
At the end of this step, the installer sets various system parameters like language, timezone and vital package configuration files in order for your machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Setting Up Your GCC Architecture Optimizations==&lt;br /&gt;
&lt;br /&gt;
The architecture optimizations is a crucial step, since what you choose will make your system fly! However, it is important that you do not overdo it on you optimization settings, as certain selections can, in some instances, break code while compiling.&lt;br /&gt;
&lt;br /&gt;
The first step is to choose your preferred compiler. The default choice here is GCC 3.x, and is the preferred choice as GCC 2.x is no longer under development, and GCC 3.x is known to make compiled code run faster. For our example, we are going to use GCC 3.x.&lt;br /&gt;
&lt;br /&gt;
Next are options for the C and C++ compiler, called -pipe, that have already been checked off. Very few people, if any, would need to turn off the -pipe option, so in our example we are going to leave them checked.&lt;br /&gt;
&lt;br /&gt;
Next we have the platform selection. This question would seem to be rather silly, since our ISO only boots up on x86 systems, but we like to plan for the future. You'll want to say x86 here.&lt;br /&gt;
&lt;br /&gt;
Now we move onto the Basic Optimization screen. As you can see, the options speak for themselves. Your choice depends on what your needs are. Most folks will want to use -O2 here, as it is the wisest choice. More advanced users may want to use the -O3 option, but it's not for everyone. If you're short on disk space, you would take the -Os Small option. (As an example, we used -Os for the ISO since we were working within a confined amount of disc space.) Those of you with older or slower systems that wouldn't be able to take advantage of faster optimizations may choose a more conservative setting like -O1. For our example system, we will choose -O2.&lt;br /&gt;
&lt;br /&gt;
After choosing your basic optimization level, you'll need to tell the compiler what type of processor you have. This may seem unimportant, however the GCC 3.x compiler has ways of optimizing code for certain processors, even though they all may be x86 based. For example, GCC 3.x has certain optimizations it can perform on code for Pentium 4 machines, but not for Pentium 3. Our example machine is a Pentium 3, so we are going to select that.&lt;br /&gt;
&lt;br /&gt;
We could also select i686, as a Pentium 3 or Pentium Pro falls within that architecture. Choosing i686 is a more conservative choice than Pentium 3, as GCC 3.x will not try certain optimizations with a more general choice like i686.&lt;br /&gt;
&lt;br /&gt;
==Adding Additional GCC Optimizations==&lt;br /&gt;
&lt;br /&gt;
'''You can safely SKIP this entire step!'''&lt;br /&gt;
&lt;br /&gt;
Next up are some extra speed optimizations you can add in to tweak your code even futher. There are too many to go into much detail here, but suffice to say that you should choose carefully. As we mentioned in the prior section, certain optimizations will cause compilation errors or even failures. An optimization such as &amp;quot;-ffast-math&amp;quot; is very risky because it breaks certain rules to get faster code, and would only be used by the bravest of souls looking to endure lots of pain. More information about GCC 3.x optimization strings can be found on the [http://gnu.org/software/gcc/gcc.html gnu.org] website.&lt;br /&gt;
&lt;br /&gt;
The same rule applies on the next screen, where you are asked about some extra features that you may want further optimized, and on the following screen asking about floating point math optimizations. Some options may not pose a problem at all, while others may break things.&lt;br /&gt;
&lt;br /&gt;
Moving on to the next few screens, we have options to enable or disable C and C++ compiler warnings. Most people will want to leave these boxes unchecked as deprecation warnings can be very useful some of the time. Following that is the screen for linker options, where you will find that &amp;quot;-s Strip&amp;quot; has already been checked off. Very few people will want to uncheck this option, so we will leave this screen as is. After that, we have some addons for compiler caching and distributed compiler support. Most folks will not need either one of these.&lt;br /&gt;
&lt;br /&gt;
The final few steps involve setting up the number of concurrent makes and stack parameters. As the hint mentions on the &amp;quot;Concurrent Makes&amp;quot; screen, you'll want to enter in the number of cpu's your machine has. Unless you have a machine with more than one processor, you'll want to leave this field blank. The stack parameters is also fairly straightforward. The warning on that screen says that this field is best left empty, and so that is exactly what we will do with our example.&lt;br /&gt;
&lt;br /&gt;
We are now finished setting up our GCC optimizations! When you have you lunar system up and running, you can always change and tweak these GCC settings by typing &amp;quot;lunar&amp;quot; at the commandline prompt, and going to &amp;quot;Optimization Settings&amp;quot;. In addition, if you aren't that familiar with what your processor is capable of using for optimizations, you can go to the shell out option on the ISO and type&lt;br /&gt;
&lt;br /&gt;
 cat /proc/cpuinfo&lt;br /&gt;
&lt;br /&gt;
at the prompt and the system will show you all the optimizations that the processor reports it can handle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Configuring Your Bootloader==&lt;br /&gt;
&lt;br /&gt;
=== Configuring LILO ===&lt;br /&gt;
&lt;br /&gt;
If you chose to use lilo and also said yes to automatically configuring and running lilo, then most of the work is done for you. If you chose not to hand edit lilo.conf, however, be warned that the default configuration has the system set up to be password protected on boot. You can change this by selecting the option from the menu &amp;quot;Reconfigure LILO&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
To turn off password protection, you will need to comment out (with the symbol &amp;quot;#&amp;quot;) or delete two lines in your lilo.conf file. The first is &amp;quot;password=lunar&amp;quot;, which is found in the top section of the file, and the other is &amp;quot;restricted&amp;quot; which is found right below the name of your kernel in the second section.&lt;br /&gt;
&lt;br /&gt;
The other item of note is whether you want lilo to reside in your MBR (Master Boot Record) or on the first sector of your /boot partition. The line in your lilo.conf file to edit for this purpose is&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/hda1&lt;br /&gt;
&lt;br /&gt;
To make lilo get installed on the first sector of your /boot partition, you would leave this line as it is. If you want lilo to be written to your MBR, which is the recommended method, you would change the line to read&lt;br /&gt;
&lt;br /&gt;
 boot=/dev/hda&lt;br /&gt;
&lt;br /&gt;
Of course, these examples are pertinent to our setup that we have been using thoughout this manual. Your actual lilo.conf file may be different.&lt;br /&gt;
&lt;br /&gt;
=== Configuring GRUB ===&lt;br /&gt;
&lt;br /&gt;
If you chose grub as your bootloader, you will need to set up the configuration file entirely on your own. An example would be:&lt;br /&gt;
&lt;br /&gt;
  default 0&lt;br /&gt;
  timeout 30&lt;br /&gt;
  color white/blue white/black&lt;br /&gt;
  title linux-2.4.20&lt;br /&gt;
  root (hd0,0)&lt;br /&gt;
  kernel /vmlinubz-2.4.25-r5.0.0 root=/dev/hda2 devfs=nomount&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier in the partitioning section, you would want to mark your /boot partition as active. With grub it is ''imperative'' that you mark your /boot partition as active, otherwise grub will not work at all when you are finished with the installation and reboot to your new system.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Installing kernels==&lt;br /&gt;
&lt;br /&gt;
===Installing a precompiled kernel===&lt;br /&gt;
&lt;br /&gt;
The ISO's come with a variation of precompiled kernels and modules that should work for most people. If you have problems getting your kernel to compile, install or getting the right drivers, or just want to get a quick start at lunar, we ''suggest'' that you use this option instead of compiling your own kernel. You can later of course compile as many kernels as you want.&lt;br /&gt;
&lt;br /&gt;
===Building Your Customized Linux Kernel===&lt;br /&gt;
&lt;br /&gt;
We have now come to the most important part of the installation; the configuration of the kernel. The kernel is the heart of linux, and without it, nothing would work. Configuration is, actually, a rather simple process. All you need to remember is to not panic, and that lunar is going to do most of the work for you. Here are a few pointers that will make the configuration a breeze for you.&lt;br /&gt;
&lt;br /&gt;
* Help is a click away! The people working on creating and maintaining the linux kernel have help placed throughout the entire configuration process. If you're not sure what something does, just look at the help file for whatever item you're on, and it will almost certainly explain what it is and what it does. The most handy thing is that every help file will suggest whether you should really use the item or not. Many help files end with &amp;quot;If you're not sure, it is safe to say N here&amp;quot;, thus letting you know that it is safe to leave that particular item out of the kernel.&lt;br /&gt;
* You can use the ISO kernel! The configuration used to make the kernel for the ISO is the same configuration you'll see when you start your kernel customization. If you leave the configuration the way it is, the only thing you truly have to worry about is your network and, if you want it, sound. There are also two additional default configurations available on the ISO that are available to you called &amp;quot;config.safe&amp;quot; and &amp;quot;config.server&amp;quot;. We'll show you how to load these configurations in just a little bit.&lt;br /&gt;
* Never build filesystems or core components as modules! Make sure that whatever filesystems you decided to use for your partitions earlier are built into the kernel, and are not separate modules. Likewise, make sure that certain crucial things like ide and scsi drivers are not modules, as this will make your machine unbootable. (This rule doesn't apply to the scsi low level drivers though; they can be modules.) Modules are kernel drivers that can be manually activated and deactivated after the system has been booted, but not during boot time. The kernel from the ISO already has all the filesystems available during the installation built into the kernel, so if you don't change anything there, you will be fine.&lt;br /&gt;
&lt;br /&gt;
You will be shown two screens of information before you actually begin you kernel configuration, letting you know that you are going to need a few things built into the kernel in order to have Lunar run properly, and what options you have for boot loaders. Lunar comes with both lilo (LInux LOader) and grub (GRand Unified Bootloader).&lt;br /&gt;
&lt;br /&gt;
If you don't have much experience with bootloaders, we suggest using lilo for now, as the installation program will set up the configuration file for you. If you would prefer to use grub, and we encourage folks to learn how to use it, be forewarned that the installation program does not set up any configuration at all for you.&lt;br /&gt;
&lt;br /&gt;
There are serveral kernels for you to choose from. They are:&lt;br /&gt;
&lt;br /&gt;
* ''linux-2.4'' -- The default kernel for Lunar which is the Linus tree with some handy patches for the xfs filesystem, firewire, ext3, and several other fixes. &lt;br /&gt;
* ''linux-2.4-agr'' -- The aggressive patch includes everything from the standard patchset as well as the low latency, pre-emptive, and gcc 3.x architecture type patches.&lt;br /&gt;
* ''linux-2.4-grsec'' -- This is almost the same as linux, but with grsecurity, cpu frequency scaling, gcc 3.x architecture types, and crypto support.&lt;br /&gt;
* ''linux-2.4-stable'' -- This is the Linus tree with only critical patches for certain drivers that were created after the 2.4.20 kernel was released.&lt;br /&gt;
* ''linux-2.4-vanilla'' -- A completely unpatched kernel tree.&lt;br /&gt;
* ''linux-2.4-om'' -- A kernel specifically meant for clustering use.&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use linux-2.4-agr. &lt;br /&gt;
&lt;br /&gt;
Before you begin is which type of configuration method you would like to use.&lt;br /&gt;
&lt;br /&gt;
* ''config'' -- The original way to configure the linux kernel. It is completely text based, and assumes you know what everything is. Unless you've been using linux since its inception, you probably don't want to use this method.&lt;br /&gt;
* ''menuconfig'' -- As the name implies, a menu driven version of the kernel configuration. This is the easiest, and by far the most popular way of configurating your kernel.&lt;br /&gt;
* ''xconfig'' -- If you have an X server running, you can use this option to configure your kernel using a nifty GUI interface. You won't be able to use this on the ISO, but once your system is up and running with X, you can use this option. If you do choose this option while installing from the ISO, the system will fall back to next available configuration method, in this case menuconfig, so there is no harm in selecting it if you do.&lt;br /&gt;
&lt;br /&gt;
For our example, we are going to use menuconfig. Once Lunar is finished applying the patches for the kernel, which can take a minute or two, you'll be brought to the configuration screen for the linux kernel.&lt;br /&gt;
&lt;br /&gt;
As we mentioned earlier, the configuration that was used to build the kernel for the ISO is the same configuration that you'll be presented with when you start. However, as we also mentioned earlier, there are two alternate kernel configurations available to you that you may want to use; config.safe and config.server. Both of these configurations can be found on the ISO, along with the original default config file, in /etc/lunar/local. When you are looking at the kernel menuconfig main page, scroll all the way to bottom, and you will find an option called &amp;quot;Load an Alternate Configuration File&amp;quot;. Select this and then give the absolute path to the alternate configuration file, i.e. /etc/lunar/local/.config.server. As with all kernel configuration files, they are hidden files preceeded with a &amp;quot;.&amp;quot;, so make sure to not forget it.&lt;br /&gt;
&lt;br /&gt;
Once you have completed configuring your kernel, you'll get one more prompt from the installer asking if you want to go back to the configuration in case you exited by mistake or forgot something. If everything is good to go, say no here and sit back for a few minutes while your kernel compiles.&lt;br /&gt;
&lt;br /&gt;
==Setting Up Networking==&lt;br /&gt;
&lt;br /&gt;
The final step is to set up networking. When you select the &amp;quot;Set Up Networking&amp;quot; option, you'll be prompted by a series of questions as to what kind of card you have (only needed if you built your networking device as a module, and not part of the kernel), if you need to set up wireless or not, and whether you'll need to use dhcp or not. You should be familiar enough with your network to set this up on your own, as the questions put to you are very straightforward.&lt;br /&gt;
coa&lt;br /&gt;
&lt;br /&gt;
==Other settings==&lt;br /&gt;
&lt;br /&gt;
The installer will prompt you now for some more settings. You should set a root password and generate ssh host keys to identify your box uniquely for later. You might also want to administrate services on the newly installed machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Reboot!==&lt;br /&gt;
&lt;br /&gt;
Once you have completed setting up your networking, you are finished installing Lunar Linux! Congratulations! Select the option &amp;quot;Done&amp;quot; and remove the cd from the drive when it ejects. Your Lunar system is now ready to go!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Upgrade Moonbase==&lt;br /&gt;
Following the initial installation and reboot, there are some key things that still need to be updated.&lt;br /&gt;
&lt;br /&gt;
If you have installed from the 1.6.4-alpha or 1.6.4-beta ISO series from September-October 2008, all you should need to do now is follow the instructions given in '''man lfirsttime''' to bring your system up-to-date.&lt;br /&gt;
&lt;br /&gt;
If you have installed from the out-of-date 1.6.2-beta1 ISO from July 2007, it is imperative that you follow the additional instructions given in the [http://www.lunar-linux.org/index.php/en/news-sections/68-general/58-lunar-linux-iso-install-guide.html 1.6.2-beta1 ISO Installation Guide] otherwise you are very likely to break your system before you even get started.&lt;br /&gt;
&lt;br /&gt;
''However, you are strongly advised to install from the most recent ISO to avoid problems!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Have Phun!!''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.gnu.org/copyleft/ Copyleft] 2004 [http://lunar-linux.org/ The Lunar Penguin Team]&lt;br /&gt;
&lt;br /&gt;
Lunar Installation Manual and Harassment of Lunar Developers by Drew Swayze (drew AT lunar-linux DOT org).&lt;br /&gt;
&lt;br /&gt;
Edits and Nitpicking by Suzanne Burns (sburns AT lunar-linux DOT org).&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Lunar_Linux:FAQ</id>
		<title>Lunar Linux:FAQ</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Lunar_Linux:FAQ"/>
				<updated>2010-07-04T20:51:03Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Where can I find how to...? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These are the '''F'''requently '''A'''sked '''Q'''uestions for Lunar Linux. You have a question about Lunar? You might get your answer below.&amp;lt;br /&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
==General==&lt;br /&gt;
&lt;br /&gt;
===What is Lunar Linux?===&lt;br /&gt;
What exactly is Lunar Linux?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
* Please read [[Lunar Linux:About|About Lunar Linux]].&lt;br /&gt;
&lt;br /&gt;
===Can I run Lunar Linux in 64-bit mode?===&lt;br /&gt;
Can I run Lunar Linux on my new 64-bit system?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Yes you can. You can run Lunar Linux in '''either''' 64-bit '''or''' 32-bit mode, but there is no multi-lib mode. Be aware that some applications are still only available for 32-bit mode!&lt;br /&gt;
&lt;br /&gt;
===Where can I find how to ...?===&lt;br /&gt;
Where can I find how to customize the kernel under Lunar Linux? Or the desktop...&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The Lunar Wiki only offers details specific to Lunar Linux. Many other resources already exist for general Linux problem solving. For example, information on how to customize the Linux kernel can be found at:&lt;br /&gt;
* http://kernelnewbies.org/&lt;br /&gt;
* http://en.wikipedia.org/wiki/Linux_kernel_mailing_list&lt;br /&gt;
&lt;br /&gt;
==Optimizations==&lt;br /&gt;
&lt;br /&gt;
===How do I set optimizations?===&lt;br /&gt;
How do I set these optimizations for my machine?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Run &amp;lt;code&amp;gt;lunar optimize&amp;lt;/code&amp;gt;. You'll be taken through an interactive menu that explains all the options. Remember to optimize safely.&lt;br /&gt;
&lt;br /&gt;
===What are safe optimizations?===&lt;br /&gt;
What are the recomended safe optimizations for [[Lunar Linux]]?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The default sure fire optimizations that are recommended are:&lt;br /&gt;
&lt;br /&gt;
* '''C'''&lt;br /&gt;
** &amp;lt;code&amp;gt;-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''C++'''&lt;br /&gt;
** &amp;lt;code&amp;gt;-pipe&amp;lt;/code&amp;gt;&lt;br /&gt;
* '''CPU Architecture'''&lt;br /&gt;
** You should pick the correct architecture for your own system (defaults to x86 for most people).&lt;br /&gt;
* '''Basic Optimzations'''&lt;br /&gt;
** Faster (-O2, the default) or Fastest (Note that fastest doesn't work on all systems, i.e. k6).&lt;br /&gt;
* '''CPU'''&lt;br /&gt;
** This, of course, should be set to your own cpu, or the cpu of the machine you plan to run this install on. If you want to be able to run this install on many machines, you should be safe with I686.&lt;br /&gt;
* '''Speed Optimizations'''&lt;br /&gt;
** If you want to be 100% sure that there won't be optimization problems you shouldn't select any of these.&lt;br /&gt;
* '''Extra features'''&lt;br /&gt;
** It is not recommended to use any of these optimizations, even for modules known to be able to handle them, since they cause many apps to break.&lt;br /&gt;
* '''Floating Point Math'''&lt;br /&gt;
** None. If your architecture is x86 and you don't own a 386SX and 486SX, it's safe to select x387.&lt;br /&gt;
* '''Linker Options'''&lt;br /&gt;
** Strip.&lt;br /&gt;
* '''Addon Program Support'''&lt;br /&gt;
** CCache. Make sure to install it first.&lt;br /&gt;
&lt;br /&gt;
These settings should work for almost everyone, and there is a lot room for pushing these optimizations more, at the risk of problems with some applications. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations may cause problems?===&lt;br /&gt;
What optimizations are known to cause problems in some setups?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Some optimizations that are known to cause problems on x86 with many applications, and even a entire system:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;-funroll-loops&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-fstrict-aliasing&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-ffast-math&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-ffloat-store&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are sorted from the least unstable to most unstable. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations can give some speed without issues?===&lt;br /&gt;
What optimizations can I use to gain some speed but without major risks?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Start with the basic optimizations in [[Lunar Linux:FAQ#What_are_safe_optimizations.3F|FAQ #2.2]] and change the Basic Optimizations to Faster or Fastest if you know that gcc will generate correct code for that cpu. -O2 obviously takes more compile time than -O1, and -O3 takes the most time to compile. Then select the cpu you will run it on. Some of the speed optimizations that should be decent and shouldn't cause too many problems, if any, are: -fomit-frame-pointer. A safe bet for floating point math on a x86 would be x387, if you know your cpu has a floating point unit. Check &amp;lt;code&amp;gt;cat /proc/cpuinfo&amp;lt;/code&amp;gt; to see if your cpu supports SSE or SSE2. If your cpu does have sse or sse2 then you can also add that to the math optimizations.&lt;br /&gt;
&lt;br /&gt;
Your results may vary. Read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it.&lt;br /&gt;
&lt;br /&gt;
===What optimizations should I avoid?===&lt;br /&gt;
What optimizations should I stay away from?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
All the ones listed in the [[Lunar Linux:FAQ#What_optimizations_may_cause_problems.3F|FAQ #2.3]] plus:&lt;br /&gt;
* &amp;lt;code&amp;gt;-fprofile-arcs&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;-fbranching-probabilities&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please read &amp;lt;code&amp;gt;info gcc&amp;lt;/code&amp;gt; and make sure you understand a given optimization ''before'' you enable it. The Lunar developers will not respond to bug reports of broken compiles by users with risky optimizations.&lt;br /&gt;
&lt;br /&gt;
==Installing modules==&lt;br /&gt;
&lt;br /&gt;
===Can I compile several modules at once?===&lt;br /&gt;
Is it possible to install multiple modules at the same time without breaking things?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Yes, Lunar even promotes it. However doing so will cause installs compile slower of course. Lunar will not install core system modules like gcc and glibc while something else is installing and will wait until the rest is finished. Also, you cannot install applications while those major modules are installing, they will wait their turn until it's safe and continue to install them automatically.&lt;br /&gt;
&lt;br /&gt;
===error : C compiler cannot create executables===&lt;br /&gt;
What does this error mean and how can I fix it?&lt;br /&gt;
* &amp;lt;code&amp;gt;C compiler cannot create executables&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Read the next topic - this is basically the same problem: There are kernel headers missing that are vital to compilation. You will have to restore them. Below is explained how to do that.&lt;br /&gt;
&lt;br /&gt;
===configure: error: C preprocessor &amp;quot;/lib/cpp&amp;quot; fails sanity check===&lt;br /&gt;
What does this error mean and how can I fix it?&lt;br /&gt;
* &amp;lt;code&amp;gt;configure: error: C preprocessor &amp;quot;/lib/cpp&amp;quot; fails sanity check&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
This is an include file problem. Sometimes ''/usr/include/gnu/stubs.h'' is missing, this can be found in the glibc source tarball. Most of the time the following applies:&lt;br /&gt;
&lt;br /&gt;
Your kernel headers are missing from &amp;lt;code&amp;gt;/usr/include&amp;lt;/code&amp;gt;. This means the C PreProcessor cannot verify that it has the proper cached copies of those vital header files. You need to install the proper ones manually. Here's how:&lt;br /&gt;
&lt;br /&gt;
 lin kernel-headers-2.4&lt;br /&gt;
&lt;br /&gt;
This might work for you! (Use the 2.6 version if needed of course)&lt;br /&gt;
&lt;br /&gt;
Otherwise:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /usr/include/{linux,asm}&lt;br /&gt;
&lt;br /&gt;
to create the two target dirs, if needed. Then execute:&lt;br /&gt;
&lt;br /&gt;
 cp -av /usr/src/linux/include/linux /usr/include/&lt;br /&gt;
 cp -av /usr/src/linux/include/asm/* /usr/include/asm/&lt;br /&gt;
&lt;br /&gt;
to copy the files manually. Be warned that the second command has to be done this way since &amp;lt;code&amp;gt;/usr/src/linux/include/asm&amp;lt;/code&amp;gt; is a softlink to your arch asm header files, asm points to asm-i386, on x86 machines. So if, on the other hand, you had copied&lt;br /&gt;
&lt;br /&gt;
 cp -av /usr/src/linux/include/asm /usr/include/&lt;br /&gt;
&lt;br /&gt;
you would then get a softlink to nowhere under &amp;lt;code&amp;gt;/usr/include/&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Last, you can always try to unpack the kernel tarball you have into &amp;lt;code&amp;gt;/usr/src/linux&amp;lt;/code&amp;gt; and manaully link or copy the headers over yourself.&lt;br /&gt;
&lt;br /&gt;
===Can I add more window managers to gdm?===&lt;br /&gt;
How do I add other window managers to the sessions list on gdm?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Copy the desktop startup files to &amp;lt;code&amp;gt;/etc/X11/dm/Sessions/&amp;lt;/code&amp;gt;. That works with gdm. For kdm you will have to copy them to &amp;lt;code&amp;gt;$KDE_PREFIX/share/apps/kdm/sessions&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How do I get Flash to work in Mozilla or Firefox?===&lt;br /&gt;
How do I get Flash to work in Mozilla or Firefox?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
If you are using Mozilla or Firefox, then you can simply do a &amp;lt;code&amp;gt;lin flash-plugin&amp;lt;/code&amp;gt; and that will download and install the Macromedia Flash plugin that works with a gtk+ based mozilla through the old abi wrappers.&lt;br /&gt;
&lt;br /&gt;
The flash plugin does ''not'' work with Galeon. The Galeon developers have declined to provide the &amp;quot;old&amp;quot; abi wrappers needed for the plugin to work.&lt;br /&gt;
&lt;br /&gt;
===How do I install Java?===&lt;br /&gt;
How do I get Java for my Lunar box?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
You will have to download the Java source code from Sun yourself and you have to &amp;quot;click&amp;quot; to agree on their license. You have to compile it yourself too. We don't have a Sun Java module as we currently have no way to automate the &amp;quot;click&amp;quot; to agree to the Sun Java license. See this URL for some handy info:&lt;br /&gt;
&lt;br /&gt;
http://www.linuxfromscratch.org/~tushar/hints/javafromscratch.txt&lt;br /&gt;
&lt;br /&gt;
There is a j2sdk module in moonbase which is the Blackdown port of Sun's Java Virtual Machine.&lt;br /&gt;
&lt;br /&gt;
==Lunar core tools==&lt;br /&gt;
&lt;br /&gt;
===How can I recompile my module with new options?===&lt;br /&gt;
How do I force lunar to recompile my modules with different options?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Try:&lt;br /&gt;
&lt;br /&gt;
 lin -r ''MODULE''&lt;br /&gt;
&lt;br /&gt;
The -r switch will allow you to select new configuration and dependencies for modules.&lt;br /&gt;
&lt;br /&gt;
===How can I make modules recompile instead of resurrecting?===&lt;br /&gt;
How do I tell lunar to recompile my application instead of resurrecting it?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Try doing:&lt;br /&gt;
&lt;br /&gt;
 lin -c ''MODULE''&lt;br /&gt;
&lt;br /&gt;
The -c option means tells &amp;lt;code&amp;gt;lin&amp;lt;/code&amp;gt; to compile this module even if there is an install cache copy available in &amp;lt;code&amp;gt;/var/cache/lunar&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===How can I tell lunar that module X no longer depends on module Y?===&lt;br /&gt;
Module X no longer depends on module Y, but lunar insists on reinstalling module Y too. How can I get tell lunar to remove that dependency?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Lunar adds a module's dependencies to a cache when you install it. You can't remove a dependency automatically, but you can rebuild the dependency cache to reflect the current dependencies of the modules that are now installed.&lt;br /&gt;
&lt;br /&gt;
 lsh create_module_index&lt;br /&gt;
 lsh create_depends_cache&lt;br /&gt;
 lunar fixdepends&lt;br /&gt;
&lt;br /&gt;
Note: Dependencies of modules in [[zlocal]] are ignored. If module X in the main moonbase depends on module Y then the dependency cache will still contain that dependency.&lt;br /&gt;
&lt;br /&gt;
===My moonbase is gone and I can't install anything.===&lt;br /&gt;
How do I fix problems with my moonbase when it's missing or damaged?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Simple solution to this is just running:&lt;br /&gt;
&lt;br /&gt;
 lin moonbase&lt;br /&gt;
&lt;br /&gt;
This will download the latest moonbase from the internet, and restore it to working order.&lt;br /&gt;
&lt;br /&gt;
===What is a module?===&lt;br /&gt;
What is a [[module]] and what does it do??&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
A [[module]] is a set of files that tell the core tools the following:&lt;br /&gt;
&lt;br /&gt;
* What name, version, and other properties a package has&lt;br /&gt;
* Where to download all needed source files&lt;br /&gt;
* What other modules are required, or conflict with this one&lt;br /&gt;
* How to unpack the source files, how to patch&lt;br /&gt;
* How to configure the code&lt;br /&gt;
* How to compile&lt;br /&gt;
* How to install everything&lt;br /&gt;
* What else to do with it&lt;br /&gt;
&lt;br /&gt;
The [[module]] is coded in a set of files in a directory structure, and scripted in bash.&lt;br /&gt;
&lt;br /&gt;
===What is the Moonbase?===&lt;br /&gt;
What is that thing you call [[Moonbase]]?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The [[Moonbase]] is a database with [[modules]]. In this database there are description of packages that tell the core tools where to download, how to compile, and how install a [[module]]. You can consider this the lunar equivalent of portage, grimoire, ports, etc.&lt;br /&gt;
&lt;br /&gt;
===What is theedge?===&lt;br /&gt;
What is theedge?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
[[theedge]] is the same as lunar, and also known as the core code. Theedge is just another version of lunar. These two pieces of code install your packages, but they do not contain package descriptions. Those are defined in moonbase.&lt;br /&gt;
&lt;br /&gt;
[[Theedge]] is a development version of [[lunar]]. Often there are much more features in theedge, and bugs are fixed quicker as well. However, if you do not like all this tweaking on your system, we advice you to use the stable lunar core tools instead on your system.&lt;br /&gt;
&lt;br /&gt;
You can install [[theedge]] by issuing:&lt;br /&gt;
&lt;br /&gt;
 lin theedge&lt;br /&gt;
&lt;br /&gt;
Theedge is automatically updated if you do a &amp;lt;code&amp;gt;lunar renew&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;lunar update&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Lunar-Linux Installation==&lt;br /&gt;
&lt;br /&gt;
===My usb keyboard is not recognized===&lt;br /&gt;
At the boot prompt type ''linux uhci-hcd ehci-hcd'' to make sure those modules are loaded during startup. Those will then enable your usb keyboard.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===So how should I partition my disk?===&lt;br /&gt;
I'm setting up lunar from scratch, but how should I partition my disk for a server or desktop system?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Server systems have very different demands than desktops. It's all about flexibility. First desktops:&lt;br /&gt;
&lt;br /&gt;
''desktops'' commonly have one hard disk. You don't want to reformat or repartition often, so you just want to be done with it at once. The easiest is just to setup 2 (two) partitions: one root filesystem big enough for all lunar software, and the rest for &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt;. Typically, lunar occupies between 4 and 12 gb based on how many applications you install. If you clean up often you can manage with 8gb, but you should keep some extra space. I certainly advise to use a swapfile instead of a swap partition: you can always later delete the swap, or move the swapfile to another disk or partition. A swap partition is harder to relocate.&lt;br /&gt;
&lt;br /&gt;
''Servers'' have different needs. First of all &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt; doesn't need to be that large, but you will want to setup space for logfiles that cannot cause problems if they grow too fast. Putting &amp;lt;code&amp;gt;/var/tmp&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;/var/log&amp;lt;/code&amp;gt; on separate partitions is quite normal. &amp;lt;code&amp;gt;/tmp&amp;lt;/code&amp;gt; can be abused similarly, and is mostly run in [[tmpfs]] to avoid cluttering and give fast access times. Then &amp;lt;code&amp;gt;/usr&amp;lt;/code&amp;gt; will be separate and the usual separate &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt;. As you can see this list is already getting quite big! Most users will actually want to make the &amp;lt;code&amp;gt;rootfs&amp;lt;/code&amp;gt; quite small (as small as 200mb sometimes!) and thus &amp;lt;code&amp;gt;/home&amp;lt;/code&amp;gt; also needs to be on a separate partition.&lt;br /&gt;
&lt;br /&gt;
===Kernel features, built-in or module?===&lt;br /&gt;
When I compile a kernel, should I compile drivers that I need in the kernel image or as module?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
There are many schools of thought on kernel compiling. One is to build everything into the main kernel without modules. The other one takes building modules to the extreme. Here is a suggestion, if it's not needed to boot it's a module. Thus usb, input, sound, mice ACPI, network, and also cdrom, floppy, and all the non boot file systems, all get built as modules. This reduces the size of the main kernel so it can be put on a floppy. Another thing to consider is that not everything works perfectly, and some features can cause your kernel to misbehave, so if some feature is built-in, the bad behavior is practically inevitible. Instead, with a module you can choose not to load it and thus be left with a working system.&lt;br /&gt;
&lt;br /&gt;
Please note that some people need to make some features built into their kernel and vice versa, do whatever works best for you.&lt;br /&gt;
&lt;br /&gt;
===QEMU and Lunar ISO testing===&lt;br /&gt;
How do I use qemu to try out lunar ISO's?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
Just a quick note on how to use qemu for testing a Lunar Linux installation. See &amp;lt;code&amp;gt;/var/lib/lunar/moonbase/devel/qemu/DETAILS&amp;lt;/code&amp;gt; for a description of qemu. Think of it as a low-cost (''read: free'') version of a virtual machine, that has quite a few useful features and is under active development.&lt;br /&gt;
&lt;br /&gt;
A very simple way to just test a Lunar ISO for booting purposes is:&lt;br /&gt;
&lt;br /&gt;
 qemu -cdrom lunar-1.5.0-i686.iso -boot d&lt;br /&gt;
&lt;br /&gt;
If you want to test a full install, then create a 512 megabyte sparse root_fs image with this &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
 dd if=/dev/zero of=hda.img bs=$((1024 * 1024)) count=0 seek=512&lt;br /&gt;
&lt;br /&gt;
Now invoke qemu:&lt;br /&gt;
&lt;br /&gt;
 qemu -cdrom lunar-1.5.0-i686.iso -boot d -hda hda.img&lt;br /&gt;
&lt;br /&gt;
You can then proceed to test your Lunar install. Refer the qemu homepage for further tips and tricks. qemu can also be quite easily used to test if your brand new kernel is bootable or not, which is quite neat.&lt;br /&gt;
&lt;br /&gt;
Note that you should say yes to using SDL as an optional_depends. The gui version of qemu is ''very'' nice in its own little X11 window.&lt;br /&gt;
&lt;br /&gt;
==Other==&lt;br /&gt;
&lt;br /&gt;
===How do I unpack an .RPM file in lunar?===&lt;br /&gt;
How do I install RPM files in lunar? Is that possible?&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The easiest way to unpack a rpm file is to use the module called &amp;lt;code&amp;gt;rpmunpack&amp;lt;/code&amp;gt;. Simply run &amp;lt;code&amp;gt;rpmupack ''XYZ''.rpm&amp;lt;/code&amp;gt; for your RPM. This will create a cpio file (''XYZ.cpio.gz'' and ''XYZ.cpio.bz2'' are not uncommon). Once you perform any additional uncompression with &amp;lt;code&amp;gt;gunzip&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;bunzip2&amp;lt;/code&amp;gt;, you can then extract it using &amp;lt;code&amp;gt;cpio -i -d &amp;amp;lt; XYZ.cpio&amp;lt;/code&amp;gt; -- After all that you should be all done. If you are trying to rpmunpack a source RPM (i.e. .src.rpm) file then ''XYZ.cpio'' may further contain a tar.bz2 or tar.gz source tarball.&lt;br /&gt;
&lt;br /&gt;
In the zbeta section of moonbase, there is an '''''unsupported''''' module called &amp;lt;code&amp;gt;rpm&amp;lt;/code&amp;gt; for those of you that are really desperate.&lt;br /&gt;
&lt;br /&gt;
You might want to do &amp;lt;code&amp;gt;man cpio&amp;lt;/code&amp;gt;, to check out additional cpio parameters that may interest you, such as the -L switch.&lt;br /&gt;
&lt;br /&gt;
===What is that in the Lunar-Linux logo?===&lt;br /&gt;
What is that logo of yours? It looks like a &amp;lt;nowiki&amp;gt;[cat|ferret|dog|owl|insert nutty animal here]&amp;lt;/nowiki&amp;gt;!&lt;br /&gt;
&lt;br /&gt;
'''Answer:'''&lt;br /&gt;
&lt;br /&gt;
The logo is a [[wikipedia:Southern Rockhopper Penguin|Rockhopper Penguin]]. It's a kind of nasty penguin, the one that crowd up in thousands to take over the continent. They have a few long feathers sticking out at their &amp;quot;ears&amp;quot; sideway, just like some owl species do.&lt;br /&gt;
&lt;br /&gt;
You can check out [http://images.google.com/images?q=Rockhopper+Penguin Google Images] for lots of Rockhopper Penguin pictures!&lt;br /&gt;
&lt;br /&gt;
The current logo has been designed by Michael Schindler in 2003 and appeared as the official logo of the Lunar Linux project in 2004.&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User_talk:Hirager</id>
		<title>User talk:Hirager</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User_talk:Hirager"/>
				<updated>2010-06-23T11:54:10Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: initial placeholder page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edit me!&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User:Hirager</id>
		<title>User:Hirager</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User:Hirager"/>
				<updated>2010-06-23T11:53:34Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: initial placeholder page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edit me!&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Template:Main_Page:About</id>
		<title>Template:Main Page:About</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Template:Main_Page:About"/>
				<updated>2010-06-20T19:07:53Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: Lunar is alive&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: right; padding-top: 0.1em; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
{{ed|Main_Page:About|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Lunar Linux:About|'''About Lunar Linux''']]==&lt;br /&gt;
&lt;br /&gt;
'''Lunar Linux''' is a [[wikipedia:source code|source]] based [[wikipedia:Linux distribution|Linux distribution]]. It is built entirely by [[wikipedia:compiler|compiling]] [[wikipedia:source code|source code]], using custom [[wikipedia:Optimization (computer_science)|optimizations]]. &lt;br /&gt;
&lt;br /&gt;
It installs a complete [[wikipedia:Bootstrap#Computing|bootstrap]] development system first. After telling the Lunar package manager which software will be required, it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward the users specific needs.&lt;br /&gt;
This should result in a lean and optimized [[wikipedia:operating system|operating system]]. On the downside, compiling a whole distribution from scratch may be time-consuming and complicate the task of keeping the packages up to date.&lt;br /&gt;
&lt;br /&gt;
Currently, Lunar only supports the [[wikipedia:X86|x86]] and [[wikipedia:X86-64|x86-64]] architectures.&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is licensed under the GPLv2.&lt;br /&gt;
&lt;br /&gt;
'''2010-06-20''': Despite appearances, Lunar Linux is still very much alive. The Forums and Wiki are inactive because they were locked after prolonged spam-bot vandalism. If you require help, simply go to the #lunar irc channel and ask!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right; font-variant: small-caps; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Lunar Linux:About|More Information]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Template:Main_Page:Misc</id>
		<title>Template:Main Page:Misc</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Template:Main_Page:Misc"/>
				<updated>2010-06-06T13:40:52Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: removed obsolete 3rd Party link to lunar-linux.interhact.net&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: right; padding-top: 0.1em; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
{{ed|Main_Page:Misc|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h2 style=&amp;quot;font-variant: small-caps;&amp;quot;&amp;gt;[[Lunar Linux:Misc|Other Information]]&amp;lt;/h2&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Howto Articles&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[Installation:No CD|No CD installation]]&lt;br /&gt;
* [[Installation:No network|No network installation]]&lt;br /&gt;
* [[Installation:The_kernel_commandline_/dev_params_mini-HowTo|The kernel commandline /dev params mini-HowTo]]&lt;br /&gt;
* [[Installation:Software Raid|Installation on software RAID]]&lt;br /&gt;
* [[Install_XOrg7|XOrg7 Installation guide]]&lt;br /&gt;
* '''''[[Howto Articles|more...]]'''''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Reviews&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [http://goran.krampe.se/articles/lunar.html Review of Lunar Linux] &amp;amp;bull; by Göran Krampe&lt;br /&gt;
* [http://distrocenter.linux.com/distrocenter/05/07/25/1319212.shtml?tid=127 Lunar Linux Review] &amp;amp;bull; by Preston St Pierre on [http://linux.com/ Linux.com]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h4&amp;gt;Facts about Lunar&amp;lt;/h4&amp;gt;&lt;br /&gt;
* [[User Reports|User reports]] about their success with Lunar Linux&lt;br /&gt;
* [[how_long|How long does it take]] to install something on lunar?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right; font-variant: small-caps; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Lunar Linux:Misc|More Information]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User_talk:Engelsman</id>
		<title>User talk:Engelsman</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User_talk:Engelsman"/>
				<updated>2010-04-05T14:17:49Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Installing Lunar Linux 1.6.4 (Lacus Autumni) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;I have moved the original contents of this page elsewhere, reformatting and updating on the way.&lt;br /&gt;
However, I have provided so many references to this page in the&lt;br /&gt;
[http://forums.lunar-linux.org Lunar Forums] that I can't remove it completely, and so I leave a skeleton to show the way, just like Billy Bones in Treasure Island.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Please follow the appropriate link to the updated page.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A Newbie's experience installing, and upgrading, Lunar Linux 1.5.1==&lt;br /&gt;
&amp;lt;p&amp;gt;I started using Unix V7 on a PDP-11/70 back in 1983, even modifying some existing kernel drivers for the [http://en.wikipedia.org/wiki/Cambridge_Ring Cambridge Ring] local area network. After that I dabbled in system administration of various Sun and Apollo systems until 1991, and HP boxes up until 2000, but my main task has always been application software development, nothing on the hardware or kernel side. Since 2000 we've had dedicated system administrators at work. We had switched from NCD X-terminals over to Linux desktops (first RedHat, but then Lunar) and I realized that what little I knew had become well out of date. I installed RedHat on an old 90MHz PC at home more than five years ago, but without a LAN or modem connection it was too difficult to keep up to date, I lost interest, and that died. Since then I've had an itch to develop a spiffy [http://www.fltk.org FLTK] user interace for some old command line tools using Cygwin/Mingw on a WinXP laptop (with modem) but the machine is (a) painfully slow, and (b) painfully Windows. The time had come to get some new hardware, install an operating system that doesn't thwart you at every turn, and set up a programming environment of my own choice.&lt;br /&gt;
[[User Reports:Engelsman|Read more]]...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.0 (coming soon, maybe)==&lt;br /&gt;
&amp;lt;p&amp;gt;In April 2006, the&lt;br /&gt;
[http://www.lunar-linux.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=39&amp;amp;Itemid=2 Lunar-1.6.0-i686 ISO] was released,&lt;br /&gt;
but I don't have enough spare time to look at installing it. Not just yet anyway.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.4 (Lacus Autumni)==&lt;br /&gt;
&amp;lt;p&amp;gt;Lunar Linux 1.6.4 (Lacus Autumni) was [http://foo-projects.org/pipermail/lunar/2008-December/008144.html announced] in December 2008, and installation and update was initially pretty smooth and uneventful. But as 2009 rolled on, and new versions of certain key modules were rolled out and were out of step with each other, upgrading from the 1.6.4 ISO became difficult. Here's the [http://foo-projects.org/pipermail/lunar-dev/2009-September/006906.html Update Workaround HOWTO] that I put together in September. This is no longer required! Soon after this, other key module releases brought harmony again, and these instructions became obsolete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In February 2010, with the 2.6.32.8 kernel, updating udev from 141 to 151 caught me out. I don't remember the exact wording, but udev-151 requires that SYSFS_DEPRECATED is disabled in the kernel configuration. Finding SYSFS_DEPRECATED_V2 in the kernel didn't take long, but it took a lot longer to track down that GFS_FS also needed to be disabled...&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Also in February 2010, installed 1.6.4 on a new Acer-AX5810 box with NVIDIA GeForce G210 card. This obviously requires the some kernel settings, and to install the NVIDIA module. All well and good, but after every kernel update and reboot you need to '''lrm NVIDIA''', and then '''lin -rc NVIDIA''' again otherwise it won't install properly. This has bitten me several times after a '''lunar update'''...&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.5 (Name Forgotten)==&lt;br /&gt;
After corruption of the superblock on my /boot partition on an HP Pavilion t3190(?), I decided to installed the 1.6.5-beta1 ISO. The initial installation and update went without problem. XOrg7 appeared to install OK, but when I ran 'startx' the console went blank. Searching the web, and asking on #lunar revealed that I needed the i915 driver for my Intel graphics card, with an entry in /etc/modules for 'i915 modeset=1'. Close, but no cigar! That's when my troubles started, with the console going into powersave mode on reboot. After much trial and error, I discovered that the kernel requires:&lt;br /&gt;
&lt;br /&gt;
  CONFIG_DRM_I915=m&lt;br /&gt;
  CONFIG_DRM_I915_KMS=y&lt;br /&gt;
  CONFIG_FRAMEBUFFER_CONSOLE=m&lt;br /&gt;
&lt;br /&gt;
The first would imply having i915 in /etc/modules, but in fact it is trumped by the second, and you don't need the i915 module at all. But the KMS line also enables ACPI in the kernel, which causes the console blanking. To solve that problem, you do need to have fbcon in /etc/modules. Or to disable the powersave mode settings while you configure all of this, you need a lilo.conf entry such as the following&lt;br /&gt;
&lt;br /&gt;
  image = /boot/2.6.32.9-i686&lt;br /&gt;
    label = 2.6.32.9-acpi&lt;br /&gt;
    append=&amp;quot;acpi=off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''To be continued...'''&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User_talk:Engelsman</id>
		<title>User talk:Engelsman</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User_talk:Engelsman"/>
				<updated>2010-03-15T23:25:05Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: /* Installing Lunar Linux 1.6.4 (Lacus Autumni) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;I have moved the original contents of this page elsewhere, reformatting and updating on the way.&lt;br /&gt;
However, I have provided so many references to this page in the&lt;br /&gt;
[http://forums.lunar-linux.org Lunar Forums] that I can't remove it completely, and so I leave a skeleton to show the way, just like Billy Bones in Treasure Island.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Please follow the appropriate link to the updated page.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A Newbie's experience installing, and upgrading, Lunar Linux 1.5.1==&lt;br /&gt;
&amp;lt;p&amp;gt;I started using Unix V7 on a PDP-11/70 back in 1983, even modifying some existing kernel drivers for the [http://en.wikipedia.org/wiki/Cambridge_Ring Cambridge Ring] local area network. After that I dabbled in system administration of various Sun and Apollo systems until 1991, and HP boxes up until 2000, but my main task has always been application software development, nothing on the hardware or kernel side. Since 2000 we've had dedicated system administrators at work. We had switched from NCD X-terminals over to Linux desktops (first RedHat, but then Lunar) and I realized that what little I knew had become well out of date. I installed RedHat on an old 90MHz PC at home more than five years ago, but without a LAN or modem connection it was too difficult to keep up to date, I lost interest, and that died. Since then I've had an itch to develop a spiffy [http://www.fltk.org FLTK] user interace for some old command line tools using Cygwin/Mingw on a WinXP laptop (with modem) but the machine is (a) painfully slow, and (b) painfully Windows. The time had come to get some new hardware, install an operating system that doesn't thwart you at every turn, and set up a programming environment of my own choice.&lt;br /&gt;
[[User Reports:Engelsman|Read more]]...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.0 (coming soon, maybe)==&lt;br /&gt;
&amp;lt;p&amp;gt;In April 2006, the&lt;br /&gt;
[http://www.lunar-linux.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=39&amp;amp;Itemid=2 Lunar-1.6.0-i686 ISO] was released,&lt;br /&gt;
but I don't have enough spare time to look at installing it. Not just yet anyway.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.4 (Lacus Autumni)==&lt;br /&gt;
&amp;lt;p&amp;gt;Lunar Linux 1.6.4 (Lacus Autumni) was [http://foo-projects.org/pipermail/lunar/2008-December/008144.html announced] in December 2008, and installation and update was initially pretty smooth and uneventful. But as 2009 rolled on, and new versions of certain key modules were rolled out and were out of step with each other, upgrading from the 1.6.4 ISO became difficult. Here's the [http://foo-projects.org/pipermail/lunar-dev/2009-September/006906.html Update Workaround HOWTO] that I put together in September. This is no longer required! Soon after this, other key module releases brought harmony again, and these instructions became obsolete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In February 2010, with the 2.6.32.8 kernel, updating udev from 141 to 151 caught me out. I don't remember the exact wording, but udev-151 requires that SYSFS_DEPRECATED is disabled in the kernel configuration. Finding SYSFS_DEPRECATED_V2 in the kernel didn't take long, but it took a lot longer to track down that GFS_FS also needed to be disabled...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.5 (Name Forgotten)==&lt;br /&gt;
After corruption of the superblock on my /boot partition on an HP Pavilion t3190(?), I decided to installed the 1.6.5-beta1 ISO. The initial installation and update went without problem. XOrg7 appeared to install OK, but when I ran 'startx' the console went blank. Searching the web, and asking on #lunar revealed that I needed the i915 driver for my Intel graphics card, with an entry in /etc/modules for 'i915 modeset=1'. Close, but no cigar! That's when my troubles started, with the console going into powersave mode on reboot. After much trial and error, I discovered that the kernel requires:&lt;br /&gt;
&lt;br /&gt;
  CONFIG_DRM_I915=m&lt;br /&gt;
  CONFIG_DRM_I915_KMS=y&lt;br /&gt;
  CONFIG_FRAMEBUFFER_CONSOLE=m&lt;br /&gt;
&lt;br /&gt;
The first would imply having i915 in /etc/modules, but in fact it is trumped by the second, and you don't need the i915 module at all. But the KMS line also enables ACPI in the kernel, which causes the console blanking. To solve that problem, you do need to have fbcon in /etc/modules. Or to disable the powersave mode settings while you configure all of this, you need a lilo.conf entry such as the following&lt;br /&gt;
&lt;br /&gt;
  image = /boot/2.6.32.9-i686&lt;br /&gt;
    label = 2.6.32.9-acpi&lt;br /&gt;
    append=&amp;quot;acpi=off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''To be continued...'''&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/User_talk:Engelsman</id>
		<title>User talk:Engelsman</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/User_talk:Engelsman"/>
				<updated>2010-03-15T23:24:07Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: Observations on 1.6.4 and 1.6.5&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;I have moved the original contents of this page elsewhere, reformatting and updating on the way.&lt;br /&gt;
However, I have provided so many references to this page in the&lt;br /&gt;
[http://forums.lunar-linux.org Lunar Forums] that I can't remove it completely, and so I leave a skeleton to show the way, just like Billy Bones in Treasure Island.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Please follow the appropriate link to the updated page.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==A Newbie's experience installing, and upgrading, Lunar Linux 1.5.1==&lt;br /&gt;
&amp;lt;p&amp;gt;I started using Unix V7 on a PDP-11/70 back in 1983, even modifying some existing kernel drivers for the [http://en.wikipedia.org/wiki/Cambridge_Ring Cambridge Ring] local area network. After that I dabbled in system administration of various Sun and Apollo systems until 1991, and HP boxes up until 2000, but my main task has always been application software development, nothing on the hardware or kernel side. Since 2000 we've had dedicated system administrators at work. We had switched from NCD X-terminals over to Linux desktops (first RedHat, but then Lunar) and I realized that what little I knew had become well out of date. I installed RedHat on an old 90MHz PC at home more than five years ago, but without a LAN or modem connection it was too difficult to keep up to date, I lost interest, and that died. Since then I've had an itch to develop a spiffy [http://www.fltk.org FLTK] user interace for some old command line tools using Cygwin/Mingw on a WinXP laptop (with modem) but the machine is (a) painfully slow, and (b) painfully Windows. The time had come to get some new hardware, install an operating system that doesn't thwart you at every turn, and set up a programming environment of my own choice.&lt;br /&gt;
[[User Reports:Engelsman|Read more]]...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.0 (coming soon, maybe)==&lt;br /&gt;
&amp;lt;p&amp;gt;In April 2006, the&lt;br /&gt;
[http://www.lunar-linux.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=39&amp;amp;Itemid=2 Lunar-1.6.0-i686 ISO] was released,&lt;br /&gt;
but I don't have enough spare time to look at installing it. Not just yet anyway.&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.4 (Lacus Autumni)==&lt;br /&gt;
&amp;lt;p&amp;gt;Lunar Linux 1.6.4 (Lacus Autumni) was [http://foo-projects.org/pipermail/lunar/2008-December/008144.html announced] in December 2008, and installation and update was initially pretty smooth and uneventful. But as 2009 rolled on, and new versions of certain key modules were rolled out and were out of step with each other, upgrading from the 1.6.4 ISO became difficult. Here's the [http://foo-projects.org/pipermail/lunar-dev/2009-September/006906.html Update Workaround HOWTO] that I put together in September. Soon after this, other key module releases brought harmony again, and these instructions became obsolete.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;In February 2010, with the 2.6.32.8 kernel, updating udev from 141 to 151 caught me out. I don't remember the exact wording, but udev-151 requires that SYSFS_DEPRECATED is disabled in the kernel configuration. Finding SYSFS_DEPRECATED_V2 in the kernel didn't take long, but it took a lot longer to track down that GFS_FS also needed to be disabled...&lt;br /&gt;
&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing Lunar Linux 1.6.5 (Name Forgotten)==&lt;br /&gt;
After corruption of the superblock on my /boot partition on an HP Pavilion t3190(?), I decided to installed the 1.6.5-beta1 ISO. The initial installation and update went without problem. XOrg7 appeared to install OK, but when I ran 'startx' the console went blank. Searching the web, and asking on #lunar revealed that I needed the i915 driver for my Intel graphics card, with an entry in /etc/modules for 'i915 modeset=1'. Close, but no cigar! That's when my troubles started, with the console going into powersave mode on reboot. After much trial and error, I discovered that the kernel requires:&lt;br /&gt;
&lt;br /&gt;
  CONFIG_DRM_I915=m&lt;br /&gt;
  CONFIG_DRM_I915_KMS=y&lt;br /&gt;
  CONFIG_FRAMEBUFFER_CONSOLE=m&lt;br /&gt;
&lt;br /&gt;
The first would imply having i915 in /etc/modules, but in fact it is trumped by the second, and you don't need the i915 module at all. But the KMS line also enables ACPI in the kernel, which causes the console blanking. To solve that problem, you do need to have fbcon in /etc/modules. Or to disable the powersave mode settings while you configure all of this, you need a lilo.conf entry such as the following&lt;br /&gt;
&lt;br /&gt;
  image = /boot/2.6.32.9-i686&lt;br /&gt;
    label = 2.6.32.9-acpi&lt;br /&gt;
    append=&amp;quot;acpi=off&amp;quot;&lt;br /&gt;
&lt;br /&gt;
'''To be continued...'''&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Tools:lvu</id>
		<title>Tools:lvu</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Tools:lvu"/>
				<updated>2010-03-04T18:12:49Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: Reverted edits by ErmanSham (Talk); changed back to last version by Engelsman&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The '''lvu''' command is a multi-purpose Lunar package viewing utility, and is the 'Swiss Army knife' of the Lunar Linux package management tools.&lt;br /&gt;
&lt;br /&gt;
The '''lvu''' command provides options to:&lt;br /&gt;
* search for modules and keywords in the '''moonbase'''&lt;br /&gt;
* show the long description of a module&lt;br /&gt;
* show general information about a module in the '''moonbase''' and its installation history&lt;br /&gt;
* show which modules are installed, and their versions&lt;br /&gt;
* show which modules need to be updated when a new '''moonbase''' is download&lt;br /&gt;
* and much more&lt;br /&gt;
&lt;br /&gt;
==== Manual Pages ====&lt;br /&gt;
&lt;br /&gt;
For more information see the [[Tools:lvu.1.manpage|lvu(1)]] man page&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Template:Main_Page:About</id>
		<title>Template:Main Page:About</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Template:Main_Page:About"/>
				<updated>2010-03-01T19:21:52Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: removed reference to Sparc, PPC and Alpha&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;float: right; padding-top: 0.1em; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
{{ed|Main_Page:About|}}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==[[Lunar Linux:About|'''About Lunar Linux''']]==&lt;br /&gt;
'''Lunar Linux''' is a [[wikipedia:source code|source]] based [[wikipedia:Linux distribution|Linux distribution]]. It is built entirely by [[wikipedia:compiler|compiling]] [[wikipedia:source code|source code]], using custom [[wikipedia:Optimization (computer_science)|optimizations]]. &lt;br /&gt;
&lt;br /&gt;
It installs a complete [[wikipedia:Bootstrap#Computing|bootstrap]] development system first. After telling the Lunar package manager which software will be required, it builds the entire system by downloading current source code and locally compiling an optimized system tailored toward the users specific needs.&lt;br /&gt;
This should result in a lean and optimized [[wikipedia:operating system|operating system]]. On the downside, compiling a whole distribution from scratch may be time-consuming and complicate the task of keeping the packages up to date.&lt;br /&gt;
&lt;br /&gt;
Currently, Lunar only supports the [[wikipedia:X86|x86]] and [[wikipedia:X86-64|x86-64]] architectures.&lt;br /&gt;
&lt;br /&gt;
Lunar Linux is licensed under the GPLv2.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;text-align: right; font-variant: small-caps; padding-right: 15px;&amp;quot;&amp;gt;&lt;br /&gt;
[[Lunar Linux:About|More Information]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	<entry>
		<id>http://doc.lunar-linux.org/Installation:lfirsttime.8.manpage</id>
		<title>Installation:lfirsttime.8.manpage</title>
		<link rel="alternate" type="text/html" href="http://doc.lunar-linux.org/Installation:lfirsttime.8.manpage"/>
				<updated>2010-02-27T11:11:54Z</updated>
		
		<summary type="html">&lt;p&gt;Engelsman: added formatting disclaimer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Disclaimer: ===&lt;br /&gt;
&lt;br /&gt;
This page may not be in synchronization with the man pages available on a Lunar-Linux system.&lt;br /&gt;
&lt;br /&gt;
The initial version was a cut'n'paste from the man command, which produces weird wiki formatting.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
lfirsttime(8)                           Lunar Linux for the first time                           lfirsttime(8)&lt;br /&gt;
&lt;br /&gt;
NAME&lt;br /&gt;
       lfirsttime - or 'What to do after a successful installation?'&lt;br /&gt;
&lt;br /&gt;
SYNOPSIS&lt;br /&gt;
       This manual page has been written in order to ease the life of the system administrator after the&lt;br /&gt;
       installation part of Lunar Linux.&lt;br /&gt;
&lt;br /&gt;
DO NOT PANIC!&lt;br /&gt;
       These are the suggested tasks you should accomplish immediately after the first boot of a newly&lt;br /&gt;
       installed Lunar box.&lt;br /&gt;
&lt;br /&gt;
       All of the lunar related commands mentioned below either feature a whole manpage or at least a very&lt;br /&gt;
       useful helpscreen. If you need immediate assistance regarding any of those commands, issue:&lt;br /&gt;
&lt;br /&gt;
       man 'command' or 'command' --help&lt;br /&gt;
&lt;br /&gt;
       at your console.&lt;br /&gt;
&lt;br /&gt;
       The operations described below follow a strict logic and they should be executed in sequence.&lt;br /&gt;
&lt;br /&gt;
       Please remember that the Lunar Install/Rescue ISO is not a full featured system.&lt;br /&gt;
&lt;br /&gt;
NETWORK SETTINGS&lt;br /&gt;
       This step is crucial to your future success with Lunar Linux. If you haven't set up your network card&lt;br /&gt;
       yet try it with lnet. Remember, you need to know about your current network card's driver and have the&lt;br /&gt;
       kernel build the appropriate modules for it.&lt;br /&gt;
&lt;br /&gt;
       Check your network settings&lt;br /&gt;
&lt;br /&gt;
       Once you've set up your network card correctly, try to ping out.&lt;br /&gt;
&lt;br /&gt;
       Example: ping google.com&lt;br /&gt;
&lt;br /&gt;
       If it doesn't work you may be having a name resolution problem, try pinging to the IP address instead&lt;br /&gt;
       of the name.&lt;br /&gt;
&lt;br /&gt;
       Example: ping 216.239.57.99&lt;br /&gt;
&lt;br /&gt;
       If pinging to IP is working but pinging to name fails, check the /etc/resolv.conf file and see if the&lt;br /&gt;
       nameserver entries are there. You may also want to check the man page, man resolv.conf if you are not&lt;br /&gt;
       familiar with the entries which should be in that file.&lt;br /&gt;
&lt;br /&gt;
       Check the network device&lt;br /&gt;
&lt;br /&gt;
       If pinging the IP address fails, check to see if your network interface is up and running. You may use&lt;br /&gt;
       the command ifconfig to see the interface's status. You must be able to see the details of your network&lt;br /&gt;
       interface in the output of ifconfig.&lt;br /&gt;
&lt;br /&gt;
       If you cannot, then check if your NIC (network interface card) module is loaded (assuming you are using&lt;br /&gt;
       a modular kernel); use the command lsmod to see the already loaded modules and see wether the module&lt;br /&gt;
       for your network card is already loaded.&lt;br /&gt;
&lt;br /&gt;
       If you do not know for sure what type of network card you have try executing the command: cat&lt;br /&gt;
       /proc/pci|grep Ethernet or lspci.  This should give the manufacturer and model name of your ethernet&lt;br /&gt;
       card.&lt;br /&gt;
&lt;br /&gt;
       If your NIC module is there but your interface is not up, reconfigure the interface with lnet and test&lt;br /&gt;
       again.  If your NIC module is still not listed in the output of lsmod, the chances are you have miscon-&lt;br /&gt;
       figured the kernel or misconfigured your network.  To check the kernel modules, try ls -l /lib/mod-&lt;br /&gt;
       ules/`uname -r`/kernel/drivers/net to see the network modules available with the current kernel. If the&lt;br /&gt;
       your NIC's kernel module doesn't show up you probably have to reconfigure and recompile your current&lt;br /&gt;
       kernel to include the appropriate module(s).&lt;br /&gt;
&lt;br /&gt;
       lnet or manual configuration&lt;br /&gt;
&lt;br /&gt;
       Your network setting can be configured completely using lnet; just make sure you set up your interface&lt;br /&gt;
       correctly as needed. If you encounter problems after having configured your network with lnet you prob-&lt;br /&gt;
       ably want to adjust the configuration manually.&lt;br /&gt;
&lt;br /&gt;
       The network configuration file for your Lunar installation may be found in /etc/config.d/net-&lt;br /&gt;
       work/'interface' (f.e. 'eth0' -&amp;gt; /etc/config.d/network/eth0). Any time you adjust your interface's con-&lt;br /&gt;
       figuration manually or through lnet you will have to restart the network to make use of any changes&lt;br /&gt;
       that have been done in the meantime. The init script used to start/stop/restart network is&lt;br /&gt;
       /etc/init.d/network.&lt;br /&gt;
&lt;br /&gt;
       Example: /etc/init.d/network restart&lt;br /&gt;
&lt;br /&gt;
       Good luck and please remember that you have to to be able to ping f.e. 'google.com' to install any&lt;br /&gt;
       other packages or update your system!&lt;br /&gt;
&lt;br /&gt;
CORE UPDATES AND SETUP&lt;br /&gt;
       Since Lunar Linux is a source based distribution, some of the binaries and/or modules on the CD may&lt;br /&gt;
       have been upgraded to newer versions already. Here are the first steps you should take to get an&lt;br /&gt;
       up-to-date, smoothly running and fast system:&lt;br /&gt;
&lt;br /&gt;
       Update your coretools&lt;br /&gt;
&lt;br /&gt;
       You need to get the most recent version of the available coretools. The coretools are the heart of&lt;br /&gt;
       every Lunar Linux system. They provide you with all the necessary commands to maintain a working&lt;br /&gt;
       installation thus it's always recommended to have the latest version installed. There are two different&lt;br /&gt;
       choices:&lt;br /&gt;
&lt;br /&gt;
       lunar or theedge&lt;br /&gt;
&lt;br /&gt;
       lunar is the stable branch of the lunar coretools. It's meant to run with stable production environ-&lt;br /&gt;
       ments. theedge is the unstable branch. It might occasionally contain bugs, however it's generally used&lt;br /&gt;
       to test out new features and bugfixes before they're migrated to the stable branch. If you'd like to&lt;br /&gt;
       help out with the lunar development or you discovered a bug in lunar you might want to give theedge a&lt;br /&gt;
       try.&lt;br /&gt;
&lt;br /&gt;
       Since the ISO ships with theedge preinstalled you have to update theedge before you do anything else --&lt;br /&gt;
       even if you're planning to use lunar later on!&lt;br /&gt;
&lt;br /&gt;
       Execute: lin theedge&lt;br /&gt;
&lt;br /&gt;
       If you want to keep Lunar Linux as stable as possible you need to install the stable coretools branch&lt;br /&gt;
       now by running&lt;br /&gt;
&lt;br /&gt;
       Execute: lin lunar&lt;br /&gt;
&lt;br /&gt;
       Core Components&lt;br /&gt;
&lt;br /&gt;
       A very brief explanation of the most important coretool components. For further information regarding&lt;br /&gt;
       the referenced parts please refer to their manpages (i.e. man &amp;lt;part&amp;gt;):&lt;br /&gt;
&lt;br /&gt;
       lin; usage: lin &amp;lt;module&amp;gt;&lt;br /&gt;
           Install a package/module.&lt;br /&gt;
&lt;br /&gt;
       lvu; usage: lvu &amp;lt;options&amp;gt; &amp;lt;module&amp;gt;&lt;br /&gt;
           Gather information about a package/module.&lt;br /&gt;
&lt;br /&gt;
       lrm; usage: lrm &amp;lt;module&amp;gt;&lt;br /&gt;
           Remove a package/module.&lt;br /&gt;
&lt;br /&gt;
       lunar; usage: lunar &amp;lt;options&amp;gt;&lt;br /&gt;
           Lunar configuration utility&lt;br /&gt;
&lt;br /&gt;
       Update your moonbase&lt;br /&gt;
&lt;br /&gt;
       The package repository from where the coretools gather their package information is called moonbase.&lt;br /&gt;
       Also, packages are usually referred to as modules. Since the moonbase on your installation is probably&lt;br /&gt;
       outdated it's strongly recommended to update your moonbase right after your coretools.&lt;br /&gt;
&lt;br /&gt;
       Execute: lin moonbase&lt;br /&gt;
&lt;br /&gt;
       Set your preferences&lt;br /&gt;
&lt;br /&gt;
       Lunar Linux can easily be customized and is highly configurable. For changing the options that affect&lt;br /&gt;
       your system you may use the menu driven lunar configuration utility. It's based upon ncurses which&lt;br /&gt;
       means you can even run it in the console of your choice. You need to become root to use it.&lt;br /&gt;
&lt;br /&gt;
       Optimizations&lt;br /&gt;
           Set the right optimizations for your computer. Be aware that changing your optimizations to the&lt;br /&gt;
           wrong values might actually break your whole installation so be really careful about what you're&lt;br /&gt;
           choosing. The ISO has been built with a minimum of available optimizations to ensure the highest&lt;br /&gt;
           amount of flexibility. To see whether or not your processor supports a certain feature try a cat&lt;br /&gt;
           /proc/cpu. It usually shows the available settings that suit your machine.&lt;br /&gt;
&lt;br /&gt;
       Integrity checking&lt;br /&gt;
           Lunar is performing a range of security checks on tarballs and installed packages to prevent faulty&lt;br /&gt;
           tarballs and possible intruders from taking over your system. It also ensures that none of your&lt;br /&gt;
           currently installed packages is broken.&lt;br /&gt;
&lt;br /&gt;
           You may select the amount of checks from the Integrity checking submenu at the Options menu. It's&lt;br /&gt;
           generally recommended to at least chose FIND_CHECK and LDD_CHECK.&lt;br /&gt;
&lt;br /&gt;
       Feature menu&lt;br /&gt;
           As mentioned before, Lunar is highly configurable. Thus you have a whole menu to select its fea-&lt;br /&gt;
           tures from. It's strongly advised to at least take a look at it and get used to them. Explanations&lt;br /&gt;
           are usually displayed as soon as you select an item.&lt;br /&gt;
&lt;br /&gt;
       Apart from that&lt;br /&gt;
           Take a look at the lunar configuration tool. It can be a powerful companion while achieving the&lt;br /&gt;
           goal of setting up your system.&lt;br /&gt;
&lt;br /&gt;
GENERAL UPDATES&lt;br /&gt;
       Right now you're set to update your whole system. Before you do that make sure you have the most recent&lt;br /&gt;
       coretools and moonbase installed.&lt;br /&gt;
&lt;br /&gt;
       The next step can be omitted -- however, it is highly recommended that you rebuild the following mod-&lt;br /&gt;
       ules in the right order to ensure that your system is working right.&lt;br /&gt;
&lt;br /&gt;
       Here we go:&lt;br /&gt;
&lt;br /&gt;
       Execute: lin -cr gcc glibc gcc bash coreutils tar wget&lt;br /&gt;
&lt;br /&gt;
       Explanation:&lt;br /&gt;
&lt;br /&gt;
       lin is obviously used to install a module. It also accepts multiple modules in a row. The '-cr' switch&lt;br /&gt;
       means 'compile (c)' and 'reconfigure (r)'. They're explained at the manpage. One needs to update gcc&lt;br /&gt;
       thus the first gcc statement. Right after that one should recompile glibc to ensure that it's working&lt;br /&gt;
       well with the latest compiled gcc. And finally gcc again to make use of the newly compiled glibc. The&lt;br /&gt;
       modules right afterwards are used by Lunar Linux itself thus they need to be up-to-date and compiled&lt;br /&gt;
       against the latest available gcc and glibc.&lt;br /&gt;
&lt;br /&gt;
       A complete update&lt;br /&gt;
&lt;br /&gt;
       Now, to update your whole system you need to issue the following&lt;br /&gt;
&lt;br /&gt;
       Execute: lunar update&lt;br /&gt;
&lt;br /&gt;
       It's going to compare your system's installed modules against the moonbases' definitions and update the&lt;br /&gt;
       installed modules accordingly. It's going to give you a list of modules that are going to be updated.&lt;br /&gt;
       If you're not sure wether you want a certain module to be updated remove it from the list. Once you're&lt;br /&gt;
       done the coretools are going to start the update which usually is going to take a very long time on a&lt;br /&gt;
       freshly installed system since most of its components will probably be outdated. So grab a coffee&lt;br /&gt;
       and/or a book and wait for it to finish ;-)&lt;br /&gt;
&lt;br /&gt;
       Once it is done it is going to present you with a summary about how many module where successfully&lt;br /&gt;
       updated and which of them failed. lvu ('lvu activity') is going to show you which of them failed and&lt;br /&gt;
       usually why. lvu ('lvu compile &amp;lt;module&amp;gt;') is also going to show you the compilation's logfile which&lt;br /&gt;
       should clearly point you to the error that led to the failure of the module's compilation.&lt;br /&gt;
&lt;br /&gt;
       The first thing to do would be to 're'lin' (i.e. execute lin -c once more. It is always advised to use&lt;br /&gt;
       the -c and the -r switch in case a module fails to compile) all the failed modules by hand. If you&lt;br /&gt;
       think you will not be able to resolve the matter on your own you can still file a bugreport at the&lt;br /&gt;
       Lunar Linux bugtracker http://bugs.lunar-linux.org or report the error to the Lunar Linux mailinglist.&lt;br /&gt;
       However, you will have to subscribe to the list at http://foo-projects.org/mailman/listinfo/lunar&lt;br /&gt;
       before being able to post any mail to it.&lt;br /&gt;
&lt;br /&gt;
       Once the update has been completed successfully you may go ahead and customize your installation to&lt;br /&gt;
       suit your own needs. Well done!&lt;br /&gt;
&lt;br /&gt;
HINTS&lt;br /&gt;
       TAB-completion&lt;br /&gt;
           All of the coretools are able to do tab-completion. Say, you want to install the module&lt;br /&gt;
           'xfce4-panel' just go ahead and type 'lin xfce4-p&amp;lt;TAB&amp;gt;' and lin is going to append the rest of the&lt;br /&gt;
           module's name to the command. Once there are too few characters to resolve the name into one single&lt;br /&gt;
           module you just need to hit TAB twice to get a list of all the modules starting with the characters&lt;br /&gt;
           you just typed i.e. 'lin xfce&amp;lt;TAB&amp;gt;&amp;lt;TAB&amp;gt;' is going to give you a list of all modules starting with&lt;br /&gt;
           'xfce'.&lt;br /&gt;
&lt;br /&gt;
       Leftovers&lt;br /&gt;
           In case of a compilation failure the sources of the failed module are left in $BUILD_DIRECTORY&lt;br /&gt;
           (usually /usr/src/). Moreover, a few tracking files lunar creates to monitor the running installa-&lt;br /&gt;
           tion process might be left in /tmp. Make sure you tidy up these two locations from time to time.&lt;br /&gt;
&lt;br /&gt;
           CAUTION: Directories like 'linux-2.x' are kernel source directories and _must_ be left intact. Oth-&lt;br /&gt;
           erwise your system is going to break! Only delete them if you're absolutely sure that they don't&lt;br /&gt;
           belong to your currently running kernel.&lt;br /&gt;
&lt;br /&gt;
       Running coretools processes&lt;br /&gt;
           If you're interrupting a module installation process (f.e. by pressing 'CTRL-C) you should check if&lt;br /&gt;
           there are any running coretools processes running in the background as another try to install the&lt;br /&gt;
           module might fail because of them. Have a closer look at ps aux and kill/killall all the remaining&lt;br /&gt;
           coretools instances of a failed installation attempt.&lt;br /&gt;
&lt;br /&gt;
           CAUTION: Lunar allows you to run multiple installations independently. Be sure about the processes'&lt;br /&gt;
           purpose you're terminating!&lt;br /&gt;
&lt;br /&gt;
       IRC channel&lt;br /&gt;
           The fastest help you get is by chatting with the developers directly. Join the Lunar Linux IRC&lt;br /&gt;
           channel at freenode&lt;br /&gt;
&lt;br /&gt;
           irc://irc.freenode.net/#lunar&lt;br /&gt;
&lt;br /&gt;
NOTES&lt;br /&gt;
       This is merely an introduction to what should be done to get a ready-to-go Lunar system. Please consult&lt;br /&gt;
       the documentation at the Lunar website for more information.&lt;br /&gt;
&lt;br /&gt;
SEE ALSO&lt;br /&gt;
       Documentation at the Lunar Linux website at http://lunar-linux.org&lt;br /&gt;
&lt;br /&gt;
       lunar(8), moonbase(1), lin(8), lvu(1), lget(8), lrm(8), lnet(8)&lt;br /&gt;
&lt;br /&gt;
DISCLAIMER&lt;br /&gt;
       The information and examples given here are for illustrative purposes. If you encounter any inaccura-&lt;br /&gt;
       cies please send an email to the authors.&lt;br /&gt;
&lt;br /&gt;
COPYRIGHT&lt;br /&gt;
       This document is originally Copyrighted Kagan Kongar 2002.&lt;br /&gt;
&lt;br /&gt;
       Portions of this document Copyrighted (C) 2003-2004 Terry Chan&lt;br /&gt;
&lt;br /&gt;
       It has been almost completely rewritten by Moritz Heiber for the Lunar Linux development team under the&lt;br /&gt;
       Creative Commons License, (C) 2005&lt;br /&gt;
&lt;br /&gt;
AUTHORS&lt;br /&gt;
       Kagan Kongar  &amp;lt;kongar@tsrsb.org.tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       Terry Chan    &amp;lt;tchan@lunar-linux.org&amp;gt;&lt;br /&gt;
&lt;br /&gt;
       Moritz Heiber &amp;lt;moe@lunar-linux.org&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Moritz Heiber                                     2005-03-09                                     lfirsttime(8)&lt;/div&gt;</summary>
		<author><name>Engelsman</name></author>	</entry>

	</feed>