Skip to content

4. Warnings and limitations

fabnicol edited this page Oct 12, 2021 · 22 revisions

Warnings

  • The install media will wipe out all data on the Desktop main disc /dev/sda. It leaves no choice of the target disk and runs non-interactively from beginning to end.
    Use it with care and only if you want to do a fresh install of your main PC disk. You have been warned.

  • Building the platforms comes in with the third of available threads as a default.
    If resources are strained, rerun with N cores by adding ncpus=N to commandline.
    The ncpus number of jobs is used to implement the portage CFLAGS parameter in make.conf, so that the building process is in line with ressources granted to the virtual machine. User should review this parameter later on according to the characteristics of the target platform.

Limitations

  • The ISO output should not be greater than 4096 MB. This limit is unchecked.
  • Currently video card support is limited to Intel and Nvidia (Nouveau driver).
  • Legacy BIOS bootloaders (command line option bios) have not been tested, if possible stick to EFI (default).
  • Internationalization is untested except for French.
    To test support for another language, for example for German, use the command line option vm_language=de_DE vm_keymap=de
    Check the Gentoo localization guide.
  • Gentoo profiles other than Plasma, Gnome and OpenRC Hardened (experimental) are not supported.

VirtualBox limitations

MKG uses Oracle VirtualBox (VB) to run a virtual machine Gentoo distribution builder.
This implementation choice implies a handful of VB-related limitations.

No hyperthreading support

VirtualBox does not support (Oct. 2021) hyperthreading. This means that you should set the value of ncpus at a maximum of your number of physical cores N (and more safely at N-1). Even if your CPU supports hypertheading, which presents 2 logical cores to the OS, you will not be able to put this feature to good use with MKG as VB will only see N cores, not 2N. By default, ncpus is set at $(nproc)/3. When hyperthreading is supported, this value will almost surely be two thirds of the number of physical cores, and one third of the number of logical cores. When hyperthreading is not supported, it will be one third of physical cores (with an obvious minimum of one core).

Unsupported CPU extensions

At the time of writing (March 2021), VB has known limitations w.r.t the implementation of CPU extensions for post-Ivy Bridge generations. Concerned CPU features are notably: fma, f16c, bmi, bmi2. However the AVX and AVX2 features are supported. When specifying cflags=\'[...,-march=generation]\' with generation equal or superior to sandybridge, build failures may result if configured packages depend on these CPU features. This is notably the case for the Qt5 libraries. Pending VB upgrades, the following policies should be followed when using the cflags option with a -march specification higher than sandybridge (or ivybridge if AVX2 is the only new CPU feature used by builds).
It is therefore advised, until these limitations are fixed by Oracle developers, either not to specify -march=... or to stick to:

cflags=\'[...,-march=native]\'

This will not, however, create a build with the full range of host CPU optimizations, unlike what usually happens when -march=native is used in the make.conf CFLAGS variable. If you wish to optimize your installed platform when fully operational, you should later on rebuild it using:

emerge -e @world

The cflags option -march=... should therefore be limited to downgrading the CPU model to the following list of values:

‘x86-64’, ‘i386’, ‘i486’, ‘i586’, ‘pentium’, ‘lakemont’, ‘pentium-mmx’, ‘pentiumpro’, ‘i686’, ‘pentium2’, ‘pentium3’, ‘pentium3m’, ‘pentium-m’, ‘pentium4’, ‘pentium4m’, ‘prescott’, ‘nocona’, ‘core2’, ‘nehalem’, ‘westmere’, ‘sandybridge’