Note

The Funtoo Linux project has transitioned to "Hobby Mode" and this wiki is now read-only.

Upgrade Instructions/1.4-release

From Funtoo
Jump to navigation Jump to search
   Important

The goal of these instructions is to provide Funtoo Linux users with a reliable, consistent set of instructions for upgrading Funtoo Linux from 1.3 to 1.4. Please assist in ensuring that these instructions are complete, make changes to the page that are needed to make these instructions 100% reliable, and if the instructions seem to not work properly, please consider opening a bug at https://bugs.funtoo.org or asking for assistance at https://forums.funtoo.org or #funtoo on freenode. Thank you!

Set Release and Sync

Use your favorite editor in /etc/ego.conf, set the release to 1.4:

   /etc/ego.conf
[global]

release = 1.4

Then, run ego sync:

root # ego sync

Set gfxcard mix-ins and VIDEO_CARDS

In Funtoo Linux 1.4, the VIDEO_CARDS make.conf setting has been updated and mix-ins have been created to allow you to easily choose common configurations. It is strongly recommended that you select your video hardware using Funtoo mix-ins, not VIDEO_CARDS directly, by choosing a mix-in from the following list:

Funtoo Graphics Mix-Ins

gfxcard-intel
This mix-in is equivalent to gfxcard-intel-classic or gfxcard-intel-iris, depending on the release you're running. Currently, it defaults to gfxcard-intel-classic on 1.4-release and to gfxcard-intel-classic on Next release. Do not enable more than 1 gfxcard-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 or emerge 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, blacklist nouveau and add yourself to the video group. See this documentation for more details. Note that Funtoo now has two catpkgs for NVIDIA proprietary graphics -- nvidia-drivers and nvidia-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.

Another important change for NVIDIA proprietary graphics users -- a new package nvidia-kernel-modules is now used to install the NVIDIA kernel modules. nvidia-drivers will only install the userland components. To emerge both, emerge nvidia-kernel-modules which will in turn pull in nvidia-drivers. This is set up this way because it is possible to set up an NVIDIA-accelerated container (see LXD/GPU Acceleration) that needs nvidia-drivers but not kernel modules.

Here is an example of how to add a mix-in to your profile:

root # epro mix-ins +gfxcard-nvidia

=== Enabled Profiles: === 

        arch: x86-64bit
       build: current
     subarch: intel64-westmere
      flavor: desktop
     mix-ins: mediaformat-gfx-common
     mix-ins: gfxcard-nvidia

>>> Set mix-in gfxcard-nvidia.
Updating profiles at /etc/portage/make.profile/parent...

Upgrade Toolchain

Funtoo 1.4, gcc has been updated to 9.1.1 series by default, so lets take advantage of that, and also update binutils and glibc. Note that multiple versions of gcc, 9.1.1 and 7.4.1, may get pulled in in while upgrading gcc. Only 9.1.1 is needed in Funtoo 1.4, so once 9.1.1 is installed, you may cancel the emerge of older versions of gcc to save time.

root # emerge -u1 gcc
root # emerge -u1 binutils
root # binutils-config -l
root # binutils-config 3 (or whatever number corresponds to version 2.32)
root # emerge -u1 glibc

World Update

At this point, you should be all set to perform a world update:

root # emerge -auDN @world --jobs=3

Upgrade Perl

Perl has been updated to 5.28, and it is good to update this next:

root # emerge dev-lang/perl --jobs=3
root # perl-cleaner --all

Finishing Steps

The default Python interpreter in 1.4 is now 3.7, and you will want to set it to be the default python3 interpreter, remove python 3.6, and then perform a preserved-rebuild to rebuild any python modules to no longer include 3.6 support now that it is no longer installed. If other older versions of python3 (e.g., 3.4.8-r1) are installed, uninstall them by repeating this this step for dev-lang/python-3.4*. Keep the latest versions of python2 (2.7.15) and python3 (3.7.3) installed and uninstall the rest.

root # eselect python set --python3 python3.7
root # emerge -C =dev-lang/python-3.6*
root # emerge @preserved-rebuild
root # eselect python cleanup

If you are using debian-sources-lts, it has now been updated to 4.19.37_p6. Edit /etc/boot.conf as necessary and run ego boot update to ensure the new kernel is booted upon next system startup.

root # ego boot update

etc-update and Reboot

Before rebooting, it is a good idea to run etc-update to apply updates to any configuration files that require updating:

root # etc-update

Now, you should be able to reboot into Funtoo Linux 1.4:

root # reboot

Enjoy!