You’ve heard of Gentoo, but what about Funtoo? Funtoo is a modified version of the Gentoo Linux operating system that keeps the core goodness of Gentoo but heavily optimizes it by making “profiles” that make compiling programs from the source code much faster. It also has other enhancements that make it a very attractive alternative to traditional Gentoo Linux, like choosing to deliver software via a Git system, an automatic kernel building system that saves time, and more. So, how do you install Funtoo?
Install Funtoo – Live Disk
Given that Funtoo is essentially Gentoo Linux, everything is installed by hand. Yes, it is true that users will need a live disk (much like other Linux distributions) to install the software, but it’s not for the reason you might think. The reason a live disk is necessary is that it’ll be much easier to connect your PC to WiFi and use non-free drivers that probably won’t load up on their own.
Overall, Funtoo doesn’t really have a live disk. For advanced users looking to get this distribution working, you may find success with most Linux distributions as the tools are mostly the same. That said, if you are not a Linux pro, we recommend just downloading the Gentoo live disk. There are two main reasons for going this way:
- Gentoo and Funtoo are very, very similar so all of the chroot commands that you’ll need to run will always work inside of the Gentoo live disk
- The Gentoo kernel config on the live disk can be used to set up your own custom Linux kernel.
Grab the latest version of the Gentoo live disk here and get out a USB flash drive (at least 2.5 GB in size). Additionally, download the latest version of the Etcher image flashing tool. Once downloaded, insert the USB stick and flash the live disk to it. Keep in mind that this tool works on Windows, Mac, and Linux.
When the Gentoo live disk is finalized and ready to go, reboot your PC and load up the BIOS. Inside of the BIOS screen, change the boot order so that the Gentoo USB stick loads before anything else. What follows should be a screen similar to the image below.
To install Funtoo you need to first make sure you are connected to the internet and then click on “Konsole” on the desktop. Then, use the lsblk command to reveal all hard drives and storage devices on the system you’ve loaded the live disk from. In this installation example, our hard drive is labeled /dev/sda and is exactly 18 GB. Yours may have a different label and size.
Note: the Gentoo live disk has a scrambled root password. To set it, open the terminal and run “sudo -s“. From there, run passwd to set a new root password.
Press the “windows” button on the keyboard, write “Gparted”, and open it up. Inside Gparted, look for the correct hard drive label (the one that you found in lsblk). Next, you’ll need to delete all of the active partitions on the hard drive with a new partition table.
To create a new table, click “device”, then “Create Partition Table”. Select “msdos” if you use BIOS boot, and “gpt” if you intend on using UEFI/secure boot.
After deleting all old partitions, it’s time to create new ones.
MS-DOS Partition Table
- Click “new” to open the “Create new Partition” dialog.
- Under “Partition name” write “SWAP”.
- Under “file system”, select “linux-swap”.
- Think about how large your physical RAM is, and make sure that your SWAP partition is the same. Do 1024 * GB. For example, 1024 x 2 can convert 2 GB to MB (2048 MB). Enter the size in MB in “New size”.
- Click “add” to add the new swap partition, then click “new” again to make the root partition.
- When all partitions are set up, click “Apply” to write the changes.
GPT Partition Instructions
- Click “new” to open the “Create new Partition” dialog.
- For this first partition, write “boot” under “Partition name”, and select “Fat32” for the file system. Make sure that it is no larger than 1GB. Ideally, 512 MB.
- Create a second partition for swap. Be sure to select “linux-swap” as the file system, and write “SWAP” as the “Partition name”. Be sure to follow the conversion example in the MS-DOS instructions to get the right size.
- Lastly, create the root partition by clicking “new” a third time. Keep in mind that there is no need to resize this partition, as it will use the rest of the drive by default.
- When done, click “Apply” to write the changes.
Mounting File Systems
Now that everything is correctly partitioned, it’s time to mount the file systems and get everything ready.
First, make the Funtoo directory inside of /mnt. This is where every partition is going to mount to.
BIOS/MBR mount instructions
mount /dev/sdb2 /mnt/funtoo
GPT/UEFI mount instructions
mount /dev/sda3 /mnt/funtoo mkdir /mnt/funtoo/boot mount /dev/sda1 /mnt/funtoo/boot
Installing Base System
The base Funtoo system installs by downloading a Tar Gzip archive. Head over to this page here, and find which sub-arch fits your system. Choosing the right subarch is critical, and will vastly improve compile time, so be sure to get the right one. Not sure how to tell what Funtoo subarch you need? Enter this command:
gcc -march=native -Q --help=target | grep march
When you find it, right click on the link, select “copy link address” (or equivalent). Then, move to the terminal and download it to the /mnt/funtoo directory.
Be sure to select “funtoo-current”.
Note: in this example, we’ll be using the generic 64bit subarch.
cd /mnt/funtoo wget https://build.funtoo.org/funtoo-current/x86-64bit/generic_64/2018-03-02/stage3-generic_64-funtoo-current-2018-03-02.tar.xz
When you’ve downloaded the subarch archive, install it to the system with:
tar xpf stage3-generic_64-funtoo-current-2018-03-02.tar.xz
When the base system is working, you’ll be able to Chroot into it. Use the following commands:
mount -t proc none proc
mount --rbind /sys sys mount --rbind /dev dev
After mounting, it’s a good idea to also copy over resolve.conf. This will solve any DNS issues that may arise.
cp /etc/resolv.conf /mnt/funtoo/etc/
Log into the Chroot with:
env -i HOME=/root TERM=$TERM /bin/chroot . bash -l
Before making any further changes to your Funtoo system set the root password:
In order for the Funtoo Linux system to boot correctly, you’ll need to edit the fstab file:
nano -w /etc/fstab
Delete everything under # in the file, so that we can start fresh with mount points. DO NOT DELETE THE COMMENTS.
Write out the following lines into the fstab file.
# Swap /dev/sda1 none swap sw 0 0 # Root Funtoo file system /dev/sda2 / ext4 noatime 0 1
Done editing? save your edits with Ctrl + O, and exit with Ctrl + X.
# UEFI Boot partition /dev/sda1 /boot vfat noatime 1 2 # Swap /dev/sda2 none swap sw 0 0 # Root Funtoo file system /dev/sda3 / ext4 noatime 0 1
When you’ve finished editing the /etc/fstab file, save it with Ctrl + O, and exit with Ctrl + X.
Download & Update Portage Tree
Even though you’ve just extracted the latest version of Funtoo, you’ll still need to install the latest version of the software tool. Syncing doesn’t take long for Funtoo, as everything is done via Git technology. Sync the tree with the ego command.
Ego sync is done, which means that the new Funtoo system has an up to date portage tree. Now it’s time to compile any updates that are available. This will take at least 2 hours, so be very patient. If you’ve set up the correct sub-arch it may be a bit faster than 2 hours.
Note: weak performance PC users can expect a 4+ hour compile time.
emerge -auDN @world
Building A Kernel
Doing an emerge update should automatically prompt a kernel installation. Funtoo chooses to go with the “Debian sources” for kernel builds. This makes things faster and easier. Build the latest Debian-sourced kernel for Funtoo with:
emerge -s debian-sources
Like with the world update, building a kernel requires compilation. This will not take as long as updating the system but still can take about 20 minutes to an hour. Sit back and let Funtoo compile. When the terminal is usable again, the kernel is ready to use.
Installing The Bootloader
Funtoo’s core system is working, but the system itself won’t boot if it doesn’t have a bootloader. To fix this, you’ll need to compile and install Grub to your system. Follow the instructions based on the type of install you’ve chosen (BIOS or UEFI).
First, build the latest version of Grub from Portage:
Note: always run boot-update when you install a new kernel or additional operating system.
BIOS Grub Instructions
grub-install --target=i386-pc --no-floppy /dev/sda boot-update
UEFI Grub Instructions
grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id="Funtoo Linux [GRUB]" --recheck boot-update
Everything, for the most part, is installed and working. All that is left is to configure the network tools, install proprietary Linux firmware, go over “mix-ins”, and desktop environments.
Set Up The Network
emerge linux-firmware networkmanager --autounmask-write
Note: press u on the keyboard to continue through dispatch-conf
emerge linux-firmware networkmanager
Network manager and non-free Linux firmware are now installed on your new Funtoo Linux installation. This means that wireless, and Bluetooth now have the correct drivers. All that is left to do is enable the network to load at startup.
rc-update add NetworkManager default
Set A Hostname
Every Linux PC has what is known as a “hostname”. This is a unique identifier that allows other PC’s (Linux or otherwise) to recognize your computer on a network. To set a hostname, open the hostname file in Nano and change the part of the text inside of the quotations.
Desktop Environment And Mix-ins
Funtoo is now up and running! Now all that’s left is to set your profile, add a mix-in and install your Linux desktop environment of choice.
First, you’ll need to tell the system that your Funtoo installation flavor is “desktop”.
Note: a mix-in tells Portage that it should let you install certain packages. In a lot of cases, you MUST select a mix-in before doing any installing.
epro flavor desktop
Then, list possible mix-ins to add to your system.
Follow this example to add a mix-in to your system:
epro mix-in +mixinname
Lastly, follow the links below to get a desktop environment running. Due to the fact that each desktop environment installation under Funtoo has it’s own walkthroughs, we’ll just be linking to the official documentation. Be sure to study them in detail to get them working correctly.