Funtoo Linux Quick Install Guide

Introduction

This document describes how to install Funtoo Linux, and also explains the current differences between Funtoo Linux and Gentoo Linux. This document assumes your are somewhat familiar with how to install Gentoo Linux.

Funtoo Linux's git-based Portage tree offers a stable as well as "unstable" branch. Our development is focused on the x86 and amd64 architectures.

Funtoo Linux stages can be downloaded from the Funtoo Linux unstable repository or the Funtoo Linux stable repository. We also provide Funtoo portage snapshot repository contain Portage snapshots that are common between both the stable and unstable builds of Funtoo Linux.

Stable Unstable Processor 32/64
amd64 ~amd64 Generic Intel or AMD 64-bit Processor 64-bit
phenom ~phenom AMD Phenom/Family 10 65nm Processors 64-bit
core2 ~core2 Intel Core 2 Series, i5, i7 or i9 Processor 64-bit
N/A ~core2_32 Intel Core 2 Series, i5, i7, i9 or Atom Processor 32-bit
opteron ~opteron AMD Athlon 64 or Opteron Processor 64-bit
N/A ~opteron_32 AMD Athlon 64 or Opteron Processor 32-bit
x86 ~x86 Generic x86 processor (intel 80486+) 32-bit
i686 ~i686 Generic P6-class (Pentium Pro/Pentium II compat.) 32-bit
N/A ~athlon-xp Athlon XP or Athlon 64-based CPU (32-bit mode) 32-bit
N/A ~pentium4 Intel Pentium 4 Processor 32-bit

In each build directory, you will see stage tarball(s) as well as an openvz and vserver subdirectory. These subdirectories contain OpenVZ and Linux VServer templates (virtual images) that are built using the directory's stage3 tarball.

You will also notice that some build directories contain a stage1, stage2 and stage3 tarball, while others don't contain the stage1 or stage2. Here are the various permutations of what stages you may find in a build directory and what they mean:

Build Stages included
Full base subarch (x86 and amd64) stage1, stage2, stage3
"Freshened" subarch (any) stage3

Sometimes, you'll see a build directory and the only stage in it will be a stage3. In this case, we did not do a full rebuild of the stage, but instead used a special "freshen" build mode that simply updates an earlier stage in-place using a deep emerge update. This is a special Metro feature that we use periodically to make sure it still works :)

Also note that a Funtoo Portage snapshot repository are available - both stable and unstable Funtoo builds use the same Portage snapshots.

Important:

The Funtoo Portage snapshot tarballs are bigger than the Gentoo ones because our snapshots contain git history information as well as all the standard Portage files. That means that all our Portage snapshots are also fully functional git repositories.

You use the Funtoo Portage snapshot tarball in the exact same way that you use a standard Gentoo Portage snapshot tarball - during the install process, you want to extract the contents to /usr (/mnt/gentoo/usr from the LiveCD) so that the /usr/portage directory is created. Make sure there is not an existing /usr/portage prior to extraction -- if there is, do this first:

# mv /usr/portage /usr/portage.old

Installation Overview

Here is a basic overview of the Funtoo installation process:

  • Download and boot the LiveCD of your choice
  • Create and mount filesystems to /mnt/gentoo as per the Gentoo Handbook
  • Download and extract the Funtoo stage tarball of your choice to /mnt/gentoo
  • Download and extract the Funtoo Portage tree snapshot tarball to /mnt/gentoo/usr
  • Enter the chroot as per the Gentoo Handbook, and chroot into the new environment.
  • Select the funtoo.org branch of the Portage tree by typing git checkout funtoo.org inside /usr/portage
  • Compile and install a kernel as per the Gentoo Handbook
  • Perform additional configuration - some Funtoo steps are different due to our use of OpenRC. Differences are detailed below.
  • Install bootloader using Funtoo Core Boot Framework documentation.
  • Boot into your new installation of Funtoo!

The following sections will explain all Funtoo-specific steps as well as steps that differ from a standard Gentoo Linux installation.

Profile

Funtoo doesn't support any other profile than 2008.0. Use this profile until 'funtoo-1.0' will be ready.

LiveCD

Funtoo doesn't provide an "official" Funtoo LiveCD, but there are plenty of good ones out there to choose from. One good option is the official Gentoo Minimal Install CD. The Gentoo-based System Rescue CD is also a great choice, as it contains lots of tools and utilities and supports both 32-bit and 64-bit systems.

Important:

The System Rescue CD supports 32-bit and 64-bit installs, but it defaults to 32-bit. If you are performing a 64-bit install, be sure to manually choose the 64-bit kernel at the isolinux boot prompt when you boot the System Rescue CD.

Portage

Funtoo Portage Tree

The easiest way to grab the Funtoo Portage tree is to grab the most recent portage snapshot from the Funtoo Portage snapshot repository. Then, extract it inside the chroot's /usr directory to create /usr/portage:

# cd /mnt/gentoo/usr
# tar xf /path/to/downloaded/portage-2009.01.19.tar.bz2

Once you've done this, you now need to "activate" the Portage tree by selecting the funtoo.org branch. By default, the master branch is enabled. This saves space when storing the tree inside a tarball, but this branch only contains a README and LICENSE file. To activate the funtoo.org branch, do the following:

# cd portage
# git checkout funtoo.org
Checking out files: 100% (85007/85007), done.
Switched to branch "funtoo.org"

You'll now be able to see thousands of glorious ebuilds inside your Portage tree :) Now, run emerge --sync. This will update your Portage tree, and it will also update your Portage cache so that emerge will run at full speed:

# emerge --sync

Note:

It's also possible to grab a Funtoo Portage tree from GitHub directly by using the git clone [uri] command. We don't recommend that you use approach to create your initial tree because this method wastes a lot of GitHub's bandwidth, and is also slower for you. So we recommend you follow the instructions above and let emerge --sync pull updates (rather than the entire tree) from GitHub.

Portage 2.2_rc18 and later is git-aware. If you are using Portage 2.2_rc18 or later, you can now safely use the emerge --sync command to update an existing git-based Portage tree:

# emerge --sync
>>> Starting git pull in /usr/portage...
Already up-to-date.
>>> Git pull in /usr/portage successful

Portage 2.2_rc18+ will only update git-based trees. Portage does not currently create git-based trees for you automatically. You need to do this yourself by extracting a git-based snapshot tarball or using git clone.

Important:

As of Portage 2.2_rc20+, emerge --sync is now the highly-recommended way to update your git-based Portage tree. Running emerge --sync will update your git-based Portage tree and will also ensure that your metadata cache is updated properly. If you use git pull manually, it's recommended that you run emerge --sync afterwards so that Portage will update its cache and be able to run at full speed.

Gentoo Handbook Differences

Modules

The Gentoo Handbook states that modules should go in /etc/modules.autoload.d/kernel-2.6.

With Funtoo, OpenRC loads modules from /etc/conf.d/modules using the line:

modules_2_6="list of modules"

With Funtoo, define module arguments as follows:

module_module-name_args_2_6="module arg=value"

Network

Funtoo Linux uses a more lightweight network configuration system. For more information on these changes, please consult the Funtoo Linux Core Networking Guide.

System Information (8.c)

OpenRC uses /etc/conf.d/hwclock instead of /etc/conf.d/clock.

Networking Tools (9.e)

It is not necessary to emerge a DHCP client, since dhcpcd is included in the funtoo stage3. iproute2 is also included by default.


About the Author

silly photo
This is not really me

Daniel Robbins is the founder of the Gentoo community and creator of the Gentoo Linux operating system. Daniel resides in New Mexico with his wife Mary and two energetic daughters, and is founder and lead of Funtoo. Daniel has also written many technical articles for IBM developerWorks, Intel Developer Services and C/C++ Users Journal.