Gentoo FreeBSD

Gentoo/FreeBSD is a Gentoo system based on FreeBSD with the following changes:


 * portage replaces ports
 * the base system is managed by portage
 * software in ./contrib and ./crypto is replaced with Gentoo Linux versions
 * the init system is replaced with OpenRC

Caution
Since this guide has only minimal information, knowledge of both Gentoo/Linux and FreeBSD may be needed. The Gentoo/Linux Handbook and FreeBSD Handbook are your friends.

Preparation
The installation media of FreeBSD 9.0 to which the LiveCD function was added are used for installation. Please get the more suitable one of i386 or amd64. Write to a CD or memory stick as necessary.

Boot the PC using the installation CD. Wait a moment while watching the boot process. Please choose Live CD, if a Welcome screen is displayed. Then login prompt, enter root.

Network setting
First, create a directory /tmp/bsdinstall_etc to rewrite the resolv.conf.

Identify your network devices. This example is em0.

Set the default gateway and IP address.

If you not use DHCP (IP address is an example)

If you use DHCP

Optional: want to install via ssh
So far we could not use ssh. If you want to install via ssh from this step.

Please connect with any ssh client. The username is root.

Setting the Partition
The installation target device of serial ATA and IDE are /dev/ada*. SCSI and USB drive are /dev/da*. Please identify the HDD using ls /dev/ada* or dmesg | grep ada. In this case, the device is ada0.

If you want to use the UFS2 file system
This example is simple only two partitions. If necessary, you can split /, /usr, /var, /tmp, and /home. Please set using gpart.

Please run gpart show in order to verify the partition could be set.

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

If you want to use the UFS2 file system
Please do not forget newfs -L option to label.

And mount it.

If you want to use the ZFS file system (experimental)
Load the kernel module in order to enable ZFS.

Prepare the RAM disk to write /boot/zfs/zpool.cache.

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

Creates a new storage pool. if you are using gnop, please specify /dev/gpt/zfs-system.nop instead of /dev/gpt/zfs-system.

Creates a new ZFS file system.

Downloading the Stage3 Tarball and Portage snapshot
Now, Gentoo/FreeBSD 9.0 stage3 is available.

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

Bug fixes
Bugs have been fixed in several packages. Please upgrade them. For details, see.

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. Copy the GENERIC in conf, you can change it by changing the kernel configuration. For more information FreeBSD Handbook please see.

Installing the boot loader
Let's install a boot loader to boot the Gentoo/FreeBSD. Boot loader configuration is done after exiting the chroot.

System setting
Familiar setting. Please refer to Gentoo Linux Handbook if you need more information.

If you select UFS2

If you select ZFS

Setting the host name

Editing network setting

Adding net.em0 to the default runlevel

Setting the root password

You can also be configured to run at startup sshd.

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

Installing the required packages
If dhcpcd is required if you use DHCP.

Exit from chroot environment
Work done in the chroot environment. exit from chroot environment.

Writes boot loader and Cleaning up
Do you want to reboot now ? Just a minute. We forgot to setting the boot loader.

If you select UFS2

If you select ZFS

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

reboot!
Don't have a problem? Now we restart. Don't forget to remove the Installation CD of FreeBSD.

Howto run G/FBSD in vanilla FreeBSD's jail
Details of jail, please see the FreeBSD Handbook.

Setting
Configure jail to start with FreeBSD.

Setting to operate Gentoo/FreeBSD in jail.

run jail
Let's run jail.

Verify that worked.

To enter the jail environment will use the jexec command.

Major Upgrade howto
This guide will show you how to upgrade Gentoo/FreeBSD 9.0 from 8.x version.

Updating the @system
The update to eliminate the problems caused by outdated versions of installed packages.

Change profile
To emerge related to FreeBSD 9.0 is necessary to change the profile.

Get a list of available profiles.

Set the profile of 9.0.

Kernel update
First of all, you need to update your kernel. It is because the package of a userland may use the new function of a kernel.

Please be sure to update a kernel first !

Don't have a problem? Now we restart.

After rebooting your machine, please check if the kernel is new.

Updating userland
The first emerge the core library.

Update the userland of FreeBSD.

Change CHOST, and emerge binutils gcc. (FYI, Changing the CHOST variable)

x86-fbsd users)

amd64-fbsd users)

emerge binutils gcc

check gcc's 8.x stuff

remove 8.x stuff.

also check binutils

remove FreeBSD 8.x env data.

target file name is 04gcc-i686-gentoo-freebsd8.0, 05gcc-i486-gentoo-freebsd8.0 in this case.

Recreate all packages.

Failure to compile the package if any, 'emerge --resume --skipfirst' is your friend. Also, please bug report the problem if you like.

Cleaning
Let's remove the backup files when you have finished all the steps.

can not boot a kernel panic always occurs
Details, see

workaround is to use gcc 4.3 or clang to compile the kernel.

amd64 kernel + x86 stage environment, tar will not work successfully.
Details, see

Error messages: tar: getvfsbyname failed: No such file or directory tar: Error exit delayed from previous errors.

workaround fix

gcc fails to compile, Error message is recompile -fPIC
Details, see.

workaround fix

Emerge fails net-misc/openssh
Details, see

workaround fix for openssh

Emerge fails app-misc/screen
Details, see.

Please use app-misc/tmux instead of app-misc/screen.

cc: not found
Details, see

Emerge fails sys-freebsd/boot0 using >gcc-4.6
Details, see

workaround: