The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.
Translations:Install/1/en
Install/Intro Install/Overview Install/Partitioning Install/Stage3 <translate>
Chroot into Funtoo
To set up your Funtoo Linux system, we need to "enter into" it before we boot. If you are using the Funtoo Linux LiveCD, this can be easily done with the fchroot
command:
root # fchroot /mnt/funtoo fchroot #
The fchroot
command will take care of all necessary steps to enter into your new Funtoo Linux system, as well as clean up things when you exit the fchroot by typing
exit
or ctrl-D
.
If you are using another LiveCD or USB media to install Funtoo, you can manually chroot by using the following set of commands:
root # cd /mnt/funtoo root # mount --rbind /proc proc root # mount --rbind /sys sys root # mount --rbind /dev dev root # cp /etc/resolv.conf /mnt/funtoo/etc/ root # chroot . /bin/su --login chroot #
For users of live CDs with 64-bit kernels installing 32-bit systems: Some software may use uname -r
to check whether the system is 32 or 64-bit. You may want to append linux32 to the chroot command as a workaround, but it's generally not needed.
If you receive the error "chroot: failed to run command `/bin/bash': Exec format error
", it is most likely because you are running a 32-bit kernel and trying to execute 64-bit code. Make sure that you have selected the proper type of kernel when booting your live CD.
Test internet name resolution from within the chroot:
chroot # ping -c 5 google.com
If you can't ping, make sure that /etc/resolv.conf
specifies a valid IP address for a reachable nameserver in its nameserver
setting.
Congratulations! You are now chrooted inside a Funtoo Linux system. Now it's time to get Funtoo Linux properly configured so that Funtoo Linux will start successfully, without any manual assistance, when your system is restarted. </translate>
Install/PortageTree Install/Configuring Install/Portage <translate>
Prepare Disk
Funtoo Linux stage3's include a pre-built debian-sources
kernel to make installation faster and easier. To see what kernel version is pre-installed, type:
chroot # emerge -s debian-sources Searching... [ Results for search key : debian-sources ] [ Applications found : 1 ] * sys-kernel/debian-sources Latest version available: 5.9.6_p1 Latest version installed: 5.9.6_p1 Size of files: 118,723 kB Homepage: https://packages.debian.org/unstable/kernel/ Description: Debian Sources (and optional binary kernel) License: GPL-2
Firmware
At this point it is wise to emerge the latest sys-kernel/linux-firmware
package, because various drivers rely on firmware blobs and instructions. Hardware like Wi-Fi cards, graphic cards, network cards, and others will not work properly or at all if firmware is not available. If using the stage3
image, perform the following to install it. linux-firmware
will be already installed if using the gnome
or other desktop images:
chroot # emerge -av linux-firmware
</translate>
Installing a Bootloader
These install instructions show you how to use GRUB to boot using BIOS (old-school) or UEFI (new-school). As of boot-update-1.7.2, now in Portage, the steps are very similar.
First, emerge boot-update
. This will also cause grub-2
and efibootmgr
to be merged, since they are dependencies:
(chroot) # emerge boot-update
Then, edit /etc/boot.conf
using nano
and specify "Funtoo Linux genkernel
" as the default
setting at the top of the file, replacing "Funtoo Linux"
.
/etc/boot.conf
should now look like this:
/etc/boot.conf
boot {
generate grub
default "Funtoo Linux genkernel"
timeout 3
}
"Funtoo Linux" {
kernel bzImage[-v]
}
"Funtoo Linux genkernel" {
kernel kernel[-v]
initrd initramfs[-v]
params += real_root=auto
}
"Funtoo Linux better-initramfs" {
kernel vmlinuz[-v]
initrd /initramfs.cpio.gz
}
If you are booting a custom or non-default kernel, please read man boot.conf
for information on the various options available to you.
Old School (BIOS) MBR
When using "old school" BIOS booting, run the following command to install GRUB to your MBR, and generate the /boot/grub/grub.cfg
configuration file that GRUB will use for booting:
(chroot) # grub-install --target=i386-pc --no-floppy /dev/sda (chroot) # boot-update
New School (UEFI) Boot Entry
If you're using "new school" UEFI booting, run of the following sets of commands, depending on whether you are installing a 64-bit or 32-bit system. This will add GRUB as a UEFI boot entry.
For x86-64bit systems:
(chroot) # grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda (chroot) # boot-update
For x86-32bit systems:
(chroot) # grub-install --target=i386-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck /dev/sda (chroot) # boot-update
First Boot, and in the future...
OK -- you are ready to boot!
You only need to run grub-install
when you first install Funtoo Linux, but you need to re-run boot-update
every time you modify your /etc/boot.conf
file or add new kernels to your system. This will regenerate /boot/grub/grub.cfg
so that you will have new kernels available in your GRUB boot menu, the next time you reboot.
<translate>
Network
It's important to ensure that you will be able to connect to your local-area network after you reboot into Funtoo Linux. There are three approaches you can use for configuring your network: NetworkManager, dhcpcd, and the Funtoo Linux Networking scripts. Here's how to choose which one to use based on the type of network you want to set up.
Wi-Fi
If using the gnome
or other desktop install image, linux-firmware
and NetworkManager are already installed and available. You can use nmtui
to get Wi-Fi going if you need network connectivity prior to getting X and GNOME fully up and running. In addition, desktop stage3's have ZeroConf/Bonjour multicast DNS lookups enabled by default. Both these things will not be set up yet if you are using the basic stage3
image.
For laptop/mobile systems where you will be using Wi-Fi, roaming, and connecting to various networks, NetworkManager is strongly recommended. Since Wi-Fi cards require firmware to operate, it is also recommended that you emerge the linux-firmware ebuild if you have not done so already:
chroot # emerge linux-firmware networkmanager chroot # rc-update add NetworkManager default
The above command will ensure that NetworkManager starts after you boot into Funtoo Linux. Once you've completed these installation steps and have booted into Funtoo Linux, you can use the nmtui
command (which has an easy-to-use console-based interface) to configure NetworkManager so that it will connect (and automatically reconnect, after reboot) to a Wi-Fi access point:
chroot # nmtui
For more information about NetworkManager, see the NetworkManager package page.
Desktop (Wired DHCP)
For a home desktop or workstation with wired Ethernet that will use DHCP, the simplest and most effective option to enable network connectivity is to simply add dhcpcd
to the default runlevel:
chroot # rc-update add dhcpcd default
When you reboot, dhcpcd
will run in the background and manage all network interfaces and use DHCP to acquire network addresses from a DHCP server.
If your upstream DHCP server is dnsmasq, it can be configured to assign addresses via mac address to make servers on DHCP feasible.
Server (Static IP)
For servers, the Funtoo Linux Networking scripts are the supported option for network configuration, and they have their own documentation. They are optimized for static configurations and things like virtual Ethernet bridging for virtualization setups. See Funtoo Linux Networking for information on how to use Funtoo Linux's template-based network configuration system.
Hostname
By default Funtoo uses "localhost" as hostname. Although the system will work perfectly fine using this name, some ebuilds refuse to install when detecting localhost as hostname. It also may create confusion if several systems use the same hostname. Therefore, it is advised to change it to a more meaningful name. The hostname itself is arbitrary, meaning you can choose almost any combination of characters, as long as it makes sense to the system administrator. To change the hostname, edit
chroot # nano /etc/conf.d/hostname
Look for the line starting with hostname and change the entry between the quotes. Save the file, on the next boot Funtoo will use the new hostname.
Hostnames can be up to 63 characters long and may use the following characters: a-z, 0-9 and hyphens (-). However, the hyphen may not be the first or last character.
</translate>
Install/Finish <translate>
Profiles
Once you have rebooted into Funtoo Linux, you can further customize your system to your needs by using Funtoo Profiles. A quick introduction to profiles is included below -- consult the Funtoo Profiles page for more detailed information. There are five basic profile types: arch, build, subarch, flavors and mix-ins:
Sub-Profile Type | Description |
---|---|
arch | Typically x86-32bit or x86-64bit , this defines the processor type and support of your system. This is defined when your stage was built and should not be changed. |
build | Defines whether your system is a current , stable or experimental build. At the moment, all Funtoo Linux builds use the funtoo-current build profile. |
subarch | Defines CPU optimizations for your system. The subarch is set at the time the stage3 is built, but can be changed later to better settings if necessary. Be sure to pick a setting that is compatible with your CPU. |
flavor | Defines the general type of system, such as server or desktop , and will set default USE flags appropriate for your needs. |
mix-ins | Defines various optional settings that you may be interested in enabling. |
One arch, build and flavor must be set for each Funtoo Linux system, while mix-ins are optional and you can enable more than one if desired. Often, flavors and mix-ins inherit settings from other sub-profiles. Use epro show
to view your current profile settings, in addition to any inheritance information.
It's recommended that your run this command now, particularly if you are using the gnome
install image, in order to familiarize yourself with the current profile settings on your system.
root # epro show === Enabled Profiles: === arch: x86-64bit build: current subarch: intel64-haswell flavor: desktop mix-ins: gnome === All inherited flavors from desktop flavor: === root ##c##workstation##!c## (from desktop flavor) core (from workstation flavor) minimal (from core flavor) === All inherited mix-ins from desktop flavor: === root ##c##X##!c## (from workstation flavor) audio (from workstation flavor) dvd (from workstation flavor) media (from workstation flavor) mediadevice-audio-consumer (from media mix-in) mediadevice-base (from mediadevice-audio-consumer mix-in) mediadevice-video-consumer (from media mix-in) mediadevice-base (from mediadevice-video-consumer mix-in) mediaformat-audio-common (from media mix-in) mediaformat-gfx-common (from media mix-in) mediaformat-video-common (from media mix-in) console-extras (from workstation flavor) print (from desktop flavor)
Here are some basic examples of epro
usage:
Description | Command |
---|---|
View available profiles. Enabled profiles will be highlighted in cyan. Directly enabled profiles will be in bold and have a * appended. | epro list |
Change the system flavor. | epro flavor desktop |
Add a mix-in. | epro mix-in +gnome |
Graphics Settings
The gnome
install image will have additional graphic support already enabled for you, but you will still need to set up X and your display manager (covered in the next section.)
Funtoo Linux 1.4 features the following mix-ins to allow simplified configuration of your graphics settings. It's recommended to use these mix-ins rather than manually placing USE
and VIDEO_CARDS
settings in /etc/make.conf
. You can learn more about Funtoo's graphics configuration and the design approach of these settings at the make.conf/VIDEO_CARDS page.
Funtoo Graphics Mix-Ins
gfxcard-intel
- This mix-in is equivalent to
gfxcard-intel-classic
orgfxcard-intel-iris
, depending on the release you're running. Currently, it defaults togfxcard-intel-classic
on 1.4-release and togfxcard-intel-classic
on Next release. Do not enable more than 1gfxcard-intel*
mix-in at the same time. The result is not what you might expect. gfxcard-intel-classic
- This mix-in enables Intel graphics support based on the older i915 mesa driver (not to be confused with the i915 kernel driver). Choose this if you have a Gen3 or older chipset.
gfxcard-intel-iris
- This mix-in enables Intel graphics support for cards with glamor modesetting support (drivers i965 or iris), including support OpenGL ES (>=Gen4) and OpenCL and Vulkan (>=Gen7) and video acceleration where available. If your card is >=Gen5, do an
emerge libva-intel-driver
oremerge media-libs/libva-intel-media-driver
(for >=Gen8) afterwards to ensure you have full video acceleration support. gfxcard-amdgpu
- This mix-in enables support for modern Radeon cards, Southern Islands -- GFX Core 6 (see this x.org reference) and greater. Includes Vulkan and video acceleration where available. Drivers are built for both the Gallium framework (modern replacement for DRI framework) and DRI framework. Glamor is used to accelerate 2D operations.
gfxcard-radeon
- This mix-in enables support for modern Radeon cards, R600 through Northern Islands -- GFX Core 4 and 5 (see this x.org reference). Drivers are built for the Gallium framework (modern replacement for DRI framework) as well as DRI framework. Glamor is used to accelerate 2D operations.
gfxcard-older-ati
- Use this mix-in to enable support for R300 up to (but not including) R600 Radeon cards -- -- GFX Core 3 (see this x.org reference). DRI as well as Gallium-based drivers are enabled.
gfxcard-ancient-ati
- Use this mix-in to enable support pre-R300 cards -- GFX Core 1 and 2 (see this x.org reference). These drivers are DRI-based.
gfxcard-nvidia
- Use this to enable support for proprietary NVIDIA drivers. You will also need to
emerge nvidia-kernel-modules
, blacklistnouveau
and add yourself to thevideo
group. See this documentation for more details. Note that Funtoo now has two catpkgs for NVIDIA proprietary graphics --nvidia-drivers
andnvidia-kernel-modules
-- to aid the use of NVIDIA acceleration on containers. gfxcard-nvidia-legacy
- Proprietary NVIDIA drivers like above, but the legacy version of the driver that supports older hardware. See https://www.nvidia.com/en-us/drivers/unix/ and browse the specific driver version that
emerge
is installing to get detailed compatibility information. gfxcard-nouveau
- Use this mix-in to enable support for Open Source nouveau drivers.
Enable the appropriate graphics options for your hardware as follows:
root # epro mix-in +gfxcard-intel
Once this has been done, proceed to set up X, KDE, GNOME or another desktop environment on your system, as desired. See the next section for more information on this.
</translate>