Gentoo FreeBSD

Gentoo FreeBSD was Article description::a Gentoo system based on the FreeBSD kernel. Gentoo FreeBSD is no longer maintained by any active Gentoo developers.

Gentoo FreeBSD was FreeBSD with the following changes:


 * Portage replaces ports.
 * The base system is managed by Portage.
 * Software in and  is replaced with Gentoo versions.
 * The rc system is replaced with OpenRC.
 * ,, and are included in the base system to support Portage.
 * FreeBSD's bootloader is removed from the base system (useful for jails).

What is FreeBSD?
FreeBSD is a free (license) Unix-like operating system. Back in 1993 when development of 386BSD stopped, two projects were born: NetBSD, commonly known to run on a huge number of architectures, and FreeBSD which supports the x86, amd64, ia64, sparc64, and alpha platforms. FreeBSD is renowned for its stability, performance and security, thus being used from small to huge companies all over the world.

FreeBSD's current production release is version 11.0. Gentoo/FreeBSD is based on version 11.0 and older versions of Gentoo/FreeBSD are discontinued and no longer supported.

What is Gentoo/FreeBSD?
Gentoo FreeBSD project was a sub-project of the Prefix project, with the goal of providing a fully-capable FreeBSD operating system featuring design sensibilities taken from Gentoo Linux, such as the init system and the Portage package management system.

FreeBSD and Linux
Users migrating from Linux to FreeBSD commonly consider the two operating systems "almost the same". In fact, FreeBSD really shares a lot of similarities with Linux distributions in general. Nevertheless, it has some key differences that are worth noting:


 * Contrary to Linux, which actually only refers to the kernel, FreeBSD is a complete operating system, consisting of a C library, userland tools, and much more. This development approach makes the overall system very consistent.
 * Contrary to the Linux kernel, FreeBSD development is not led by one person, but instead managed by a small group of people called the Core Team.

Besides, FreeBSD also has some technical differences which set it apart from Linux. Some of them are very important to know, even for those who do not plan on joining the Gentoo FreeBSD development effort:


 * To get run-time dynamic linking functions like, programs do not need to be linked against libdl like on GNU/Linux. Instead they are linked against libc.
 * FreeBSD doesn't have an official tool for kernel compilation, thus you'll have to resolve feature dependencies by hand.
 * FreeBSD supports UFS/UFS2 and ZFS as native file systems.
 * FreeBSD also supports Linux filesystems, but you cannot install your system on them. ext2/ext3 supports read/write access. ReiserFS and XFS are read-only support. For details see FreeBSD's handbook 21.3. Linux® Filesystems

Caution
This guide provides minimal information about Gentoo FreeBSD. You need specialized knowledge of Gentoo Linux and FreeBSD. The Gentoo Linux Handbook and FreeBSD Handbook should be close friends.

Preparation
Gentoo/FreeBSD doesn't have the installation media. Instead, you can use vanilla FreeBSD 9.0 or later version one. Please get i386 or amd64 from ftp-archive.freebsd.org. Some ISO images are available from the ftp server, but please get -bootonly.iso image. Because you can install Gentoo/FreeBSD with the smallest media. If you want to use a memory stick, please get -memstick.img. If necessary, burn it to a CD or write it to a memory stick.

Boot your PC with the installation media. Wait for display a Welcome dialog. Please choose Shell.

Optional: Setting keymap
If the keyboard is not an English 101 key keyboard, set the keymap as appropriate:

A list of the keymap is available with the following command:

Network setting
First, create a directory to rewrite the  file:

Identify the system's network devices. In this example the network interface is :

Set the default gateway and IP address.

When setting a static address:

When using DHCP:

Optional: Installing via ssh
Please connect with any ssh client. The username is root.

Setting the partition
You need to find out the device name to install. You can get it with  or. In this case, it's ada0:

Using the UFS2 file system (GPT)
If you follow this example, you will create simple two partitions. If necessary, you can split, , , , and. Please set with the gpart.

Using FreeBSD's default bootloader (recommended)
Please run gpart show in order to confirm results.

Results when you create a partition with option -a 4k.

Using the UFS2 file system
Please don't forget newfs  option to label.

Your choice GPT:

Your choice MBR:

And mount it:

Using the ZFS file system (experimental)
Load the kernel module in order to enable ZFS:

Prepare the RAM disk to write :

Please use gnop if you have 4KB/sector HDD. You can get the best performance:

Creates a new storage pool. When using gnop, please specify instead of.

Creates a new ZFS file system:

Downloading the stage3 tarball and Portage snapshot
Now, Gentoo/FreeBSD 9.0 stage3 is available for x86-fbsd. And Gentoo FreeBSD 9.1 stage3 is available for amd64-fbsd.

The first settings and time zone settings
env-update and time zone settings. Of course, you can modify.

Bug fixes (for x86-fbsd users, 9.0 stage3 only)
Bugs have been fixed in several packages. Please upgrade them. For details, see, , , and.

Special settings for ZFS
If you select ZFS file system, the following additional work is required.

Installing a kernel source
Unlike Gentoo/Linux, freebsd-sources package is the only sources.

Compiling and installing kernel
Now let's compile the kernel. For more information see the FreeBSD Handbook.

System settings
Familiar settings. Please refer to Gentoo Handbook for more information.

When selecting UFS2:

If you select ZFS. Note that the Pass# column should be zero for ZFS, because it cannot be checked by fsck.

Setting the host name

Editing network settings

Adding net.em0 to the default runlevel

Setting keymap

Please edit if you want to change the keymap.

A list of the keymap is available with the following command.

Setting the root password

Adding a user for daily use (sample)

You can run at startup :

Special settings for ZFS
When using the ZFS file system, the following additional work is required:

Special settings for virtual machine
When installing on a virtual machine, the following additional configuration is required:

Installing the required packages
To use DHCP, is required:

Installing the boot loader
Install a boot loader to boot the Gentoo FreeBSD:

Please see this section if you want to use GRUB2. But it is experimental!

Setting boot loader
Let's prepare for using.

If you select UFS2 (GPT):

If you select UFS2 (MBR):

If you select ZFS (GPT):

Exiting the chroot
Exit from the chroot environment:

Cleaning up and setting the remaining
Do you want to reboot now? Just a minute. ZFS users must make few more setting changes.

Special settings for ZFS
If you select ZFS file system, the following additional work is required.

Reboot!
No problems? You can now reboot. Don't forget to remove the installation media.

Running Gentoo FBSD in vanilla FreeBSD's jail
Details of jail, please see the FreeBSD Handbook.

Setting
Configure the jail to start with FreeBSD:

Setting to operate Gentoo/FreeBSD in the jail:

Run jail
Run jail:

You can check that it worked:

Enter the jail environment with the command:

How to help
There are many things you could help with, depending on one's skill level and spare time:


 * Working on current ebuilds: this means working closely with ebuild maintainers in order to create patches or modify ebuilds in a way that can be accepted into the Gentoo ebuild repository.
 * Security: if you are into security, we need you! Although security advisories from the FreeBSD project are tracked and fixed, we can always use help in this area.
 * Contacts: we need people who can get in touch with FreeBSD developers to maintain contacts between us and the original project to exchange patches and discuss various problems and their solutions. Note that this should never involve any kind of spamming of mailing lists or IRC channels.
 * Testing: the more people are actively using Gentoo FreeBSD, the more bugs will be discovered, which helps us improving the quality of the port. If you are good at describing bugs or problems, we definitely want to hear from you.
 * Other areas where we need help include: system ebuilds, creation of installation CDs, documentation, kernel hacking.

Emerge fails app-misc/screen
For details see and.

Please use instead of.

cc: not found
For details see :

Contacts

 * gentoo-bsd mailing list (Gentoo Mailing Lists)
 * IRC channel on Freenode (Gentoo Linux IRC channels list)

External resources

 * FreeBSD Handbook
 * FreeBSD Man Pages
 * ZFSTuningGuide - FreeBSD Wiki
 * FreeBSD Wiki