Lunar Linux:FAQ

(Difference between revisions)
Jump to: navigation, search
m (What optimizations are known to cause problems?: tweak)
m (What optimizations can I use to gain some speed but without major risks?: tweaks)
Line 65: Line 65:
 
These are sorted from the least unstable to most unstable. Read <code>info gcc</code> and make sure you understand a given optimization ''before'' you enable it.
 
These are sorted from the least unstable to most unstable. Read <code>info gcc</code> and make sure you understand a given optimization ''before'' you enable it.
  
===What optimizations can I use to gain some speed but without major risks?===
+
===What optimizations can give some speed without issues?===
 
What optimizations can I use to gain some speed but without major risks?
 
What optimizations can I use to gain some speed but without major risks?
  
 
'''Answer:'''
 
'''Answer:'''
Start with the basic optimizations in the question "What are the recomended safe optimizations for lunar linux?" and change the Basic Optimizations to Faster (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 "cat /proc/cpuinfo" 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.
 
  
NOTE: Your results may vary. Read "info gcc" and make sure you understand a given optimization BEFORE you enable it!
+
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 <code>cat /proc/cpuinfo</code> 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.
 +
 
 +
Your results may vary. Read <code>info gcc</code> and make sure you understand a given optimization ''before'' you enable it.
  
 
===What optimizations should I stay away from?===
 
===What optimizations should I stay away from?===

Revision as of 18:44, 11 August 2005

These are the Frequently Asked Questions for Lunar Linux. You have a question about Lunar? You might get your answer below.

Contents


General

What is Lunar Linux?

What exactly is Lunar Linux?

Answer:


Optimizations

How do I set optimizations?

How do I set these optimizations for my machine?

Answer:

Run lunar optimize. You'll be taken through an interactive menu that explains all the options. Remember to optimize safely.

What are safe optimizations?

What are the recomended safe optimizations for Lunar Linux?

Answer:

The default sure fire optimizations that are recommended are:

  • C
    • -pipe
  • C++
    • -pipe
  • CPU Architecture
    • You should pick the correct architecture for your own system (defaults to x86 for most people).
  • Basic Optimzations
    • Fast (-01) but most people will opt in for Faster, or Fastest (Note that fastest doesn't work on all systems, i.e. k6).
  • CPU
    • 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 I586.
  • Speed Optimizations
    • If you want to be 100% sure that there won't be optimization problems you shouldn't select any of these.
  • Extra features
    • 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.
  • Floating Point Math
    • None. If your architecture is x86 and you don't own a 386SX and 486SX, it's safe to select x387.
  • Linker Options
    • Strip.
  • Addon Program Support
    • CCache. Make sure to install it first.

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 info gcc and make sure you understand a given optimization before you enable it.

What optimizations may cause problems?

What optimizations are known to cause problems in some setups?

Answer:

Some optimizations that are known to cause problems on x86 with many applications, and even a entire system:

  • -funroll-loops
  • -fstrict-aliasing
  • -ffast-math
  • -ffloat-store

These are sorted from the least unstable to most unstable. Read info gcc and make sure you understand a given optimization before you enable it.

What optimizations can give some speed without issues?

What optimizations can I use to gain some speed but without major risks?

Answer:

Start with the basic optimizations in 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 cat /proc/cpuinfo 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.

Your results may vary. Read info gcc and make sure you understand a given optimization before you enable it.

What optimizations should I stay away from?

What optimizations should I stay away from?

Answer: All the ones listed in the Question "What optimizations are known to cause problems?" plus:

  • -fprofile-arcs
  • -fbranching-probabilities

Note:Read "info gcc" and make sure you understand a given optimization BEFORE you enable it! The Lunar-Devs have no sympathy for bug-reports of the nature "Why can't I compile a given module, when my optimizations are: (long list of UNSAFE optimizations!!!)"

Installing modules

Can I install multiple modules at the same time?

Can I install multiple modules at the same time?


Answer: You can, lunar promotes it even! However it makes installs go slower of course. Lunar will not install things as important as gcc / glibc while something else is going on and will wait until the rest is finished. Complementary, you cannot install applications while those major apps are installing, they will wait their turn until it's safe to install them automatically.

configure: error: C preprocessor "/lib/cpp" fails sanity check ?

configure: error: C preprocessor "/lib/cpp" fails sanity check ?

Answer: Your kernel headers are missing from /usr/include. 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:

lin kernel-headers-2.4

This might work for you! (Use the 2.6 version if needed of course)

Otherwise:

mkdir -p /usr/include/{linux,asm}

to create the two target dirs, if needed. Then execute:

cp -av /usr/src/linux/include/linux /usr/include/
cp -av /usr/src/linux/include/asm/* /usr/include/asm/

to copy the files manually. Be warned that the second command has to be done this way since /usr/src/linux/include/asm 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

cp -av /usr/src/linux/include/asm /usr/include/

you would then get a softlink to nowhere under /usr/include/.

Last, you can always try to unpack the kernel tarball you have into /usr/src/linux and manaully link or copy the headers over yourself.

how do i add other window managers to the sessions on gdm?

how do i add other window managers to the sessions on gdm?

Answer: Copy the desktop startup files to /etc/X11/dm/Sessions/. That works with gdm. For kdm you will have to copy them to $KDE_PREFIX/share/apps/kdm/sessions.

How do I get Flash to work with mozilla?

How do I get Flash to work with mozilla?

Answer: If you are using mozilla, then you can simply do a "lin flash-plugin" and that will download and install the Macromedia Flash plugin that works with a gtk+ based mozilla through the old abi wrappers.

The flash plugin does NOT work with Galeon. Galeon developers have declined to provide the "old" abi wrappers needed for the plugin to work.

How do I get Java for my Lunar box?

How do I get Java for my Lunar box?

Answer: You have to download the java source code from Sun yourself and you have to "click" 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 "click" to agree to the Sun Java license. See this URL for some handy info:

http://www.linuxfromscratch.org/~tushar/hints/javafromscratch.txt

There is a j2sdk module in moonbase which is the Blackdown port of Sun's Java Virtual Machine.

Lunar core tools

How do i force lunar to recompile my modules with different options?

How do i force lunar to recompile my modules with different options?

Answer: Try:

  lin -r MODULE

-r means: Select new configuration and dependencies for modules.

How do I tell lunar to recompile my application instead of resurrecting it?

How do I tell lunar to recompile my application instead of resurrecting it?

Answer: Try doing:

   lin -c MODULE

The -c option means: Compile this module even if there is an install cache copy available in /var/cache/lunar.

My moonbase is gone and now I can't install any modules?

How do I fix problems with my moonbase when it's missing or damaged?

Answer: Simple solution to this is just running:

   lin moonbase

This will download the latest moonbase from the internet, and restore it to working order.

What is a module?

What is a module?

Answer: A module is a set of files that tell the core tools the following:

  • What name, version, and other properties a package has
  • Where to download all needed source files
  • What other modules are required, or conflict with this one
  • How to unpack the source files, how to patch
  • How to configure the code
  • How to compile
  • How to install everything
  • What else to do with it

The module is coded in a set of files in a directory structure, and programmed in bash.

What is moonbase?

What is that thing you call moonbase?

Answer: moonbase is a database with modules. In this database there are description of packages that tell the core tools where to download, how to install etc... You can consider this the lunar equivalent of portage, grimoire, ports etc.

What is theedge?

What is theedge?

Answer: 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.

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.

You can install theedge by issueing:

   lin theedge

Theedge automatically is updated if you do a lunar renew or lunar update

Lunar-Linux Installation

Kernel features, built-in or module?

When I compile a kernel, should I compile drivers that I need in the kernel image or as module?

Answer: There are many schools of thought on kernel compiling. One school is to build everything into the main kernel without modules. The other one school takes building modules to the extreme. I have this rule, if it's not needed to boot it's a module. Thus usb, input, sound, mice ACPI, network, and also cdrom (cdrw anyone?) floppy, and all the non boot file systems (everything except XFS and ext2), all get built as modules. This reduces the size of the main kernel so it can be put on a disk. Another thing to consider is that not everything works perfectly, and some features can cause your kernel too misbehave. So if some feature is built-in, the bad behavior is practically inevitible. While with a module you can choose not to load it and thus be left with a working system. These are just my tips (Dem). Use whatever works for you.

NOTE: Some people need to make some features built into their kernel and vice versa, do whatever works best for you.

QEMU and Lunar ISO testing

How do I use qemu to try out lunar ISO's?

Answer: Just a quick note on how to use qemu for testing a Lunar Linux installation. See moonbase/devel/qemu/DETAILS for a description of qemu. Think of it as a low-cost (read: free) version of vmware, that has quite a few useful features and is under active development.

A very simple way to just test a Lunar ISO for booting purposes is:

   qemu -cdrom lunar-20040309-2.iso -boot d

If you want to test a full install, then create a 512Meg sparse root_fs image with this dd command:

   dd if=/dev/zero of=root-qemu-fs bs=$((1024 * 1024)) count=0 seek=512

Now invoke qemu:

   qemu -cdrom lunar-20040309-2.iso -boot d -hda root-qemu-fs

and you can then proceed to test your Lunar 1.4.0 install.

See 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 (this is really slick).

NOTE: say yes to using SDL as an optional_depends. The gui version of qemu is VERY nice in its own little X11 window!

Other

How do I unpack a XYZ.rpm file in lunar?

How do I install RPM files in lunar? Is that possible?

Answer: The easiest way to unpack a rpm file is to use the provided program called rpmunpack. Simply run: rpmupack XYZ.rpm. This will create a cpio file (XYZ.cpio.gz and XYZ.cpio.bz2 are not uncommon). Once you perform any additional uncompression (gunzip or bunzip2), you can then extract it using cpio: cpio -i -d < XYZ.cpio . After all that you should be all done. If you are trying to rpmunpack a .src.rpm file then XYZ.cpio may further contain a tar.bz2 or tar.gz source tarball.

In the zbeta section of moonbase, there is an UNSUPPORTED module called "rpm" for those of you that are really desperate!

NOTE: You might want to do man cpio, to check out additional cpio parameters such as -L.


What is that logo of yours?

What is that logo of yours? It looks like a (something!)

Answer: The logo is a rock hopper 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 'ears' sideway, just like some owl species do.

You can check out Google Images for lots of rock hopper penguin pictures!

Personal tools
Variants
Actions
Wiki Navigation
Project Sites
Toolbox