-
Notifications
You must be signed in to change notification settings - Fork 2
Install Gentoo GNU Linux Gude
Dmitriy edited this page Jun 11, 2016
·
7 revisions
Данный гайд предназначен для того чтобы оптимизировать систему под современный 64-битный ПК, добиться максимальной скорости и помочь избежать распостраненных ошибок при установке. Это не замена официальной документации, ее все равно придется придерживаться, внося изменения на свой вкус. Это общие рекомендации, а не пошаговый гайд, читать это надо перед установкой по хендбуку или во время.
- Наиболее удобным и оптимальным считаю SystemRescueCD - поддерживает efi, имеет 64-битное ядро и графическую оболочку, совместим с Gentoo GNU/Linux. https://www.system-rescue-cd.org/Download 2. Разметка диска. Для разметки диска есть множество утилит, предлагаю использовать fdisk, его преимущество в том, что он сначала сделает карту разметки, и только потом запишет изменения на диск. Чтобы начать наберите: fdisk -t gpt /dev/sda В утилите введете m для помощи. g - Создаст новую GPT-разметку Типы разделов которые понадобятся: 1 EFI System Partition 24 Linux root (x86-64) 28 Linux home Еще есть parted, которым пользоватся может показаться проще, но он немедленно записывает изменения на диск. Если делаете разметку parted-ом не забудьте добавить метку esp на соответсвующий раздел. Собственно разметка: 1) EFI System Partition (33-50MB) - Здесь будет лежать ядро весом мегабайт 5, больше 33 мегабайт не имеет смысла делать. 2) Root (60GB) - системный раздел, нельзя делать его 10 гигабайтным, даже если система вместится, при компиляции больших пакетов он будет переполнятся, временные файлы могут занимать 10-20 гигабайт. 3) Home - ваша файлопомойка, здесь будут лежать все файлы, что вы скачивате через торрент и браузер. Обычно во всяких дистрибутивах рекомендуется включать файл подкачки, но по состоянию на 2016 это пережиток прошлого, если мало памяти то оптимизируйте систему под эффективное потребление памяти. Файл подкачки не решает проблему переполнения оперативной памяти, когда она переполняется ПК практически невозможно использовать, что с файлом, что без. Однако стоет заметить что если вы юзаете suspent to disk то должен быть файл подкачки размером с вашу оперативную память, но я его не рекомендую, suspend to RAM гораздо быстрее работает. Пакет для этих режимов: sys-power/suspend 3. Создание файловых систем Прежде всего надо выбрать файловые системы, перечислю 3 актуальных: fat32 - Нужна только для Efi System Partition (ESP) https://wiki.gentoo.org/wiki/FAT f2fs - Файловая система от Samsung для твердотельных накопителей (SSD и флешки), эффективно использует накопитель и продлевает ему жизнь. https://wiki.gentoo.org/wiki/F2FS ext4 - Файловая система для жестких дисков, имеет опции для оптимизации под твердотельные накопители, они выключены по умолчанию. https://wiki.gentoo.org/wiki/Ext4 При создании файловой системы желательно проверить ее на бед-блоки, делается это параметром -c, для подробной проверки на бед блоки его надо указать дважды, например: mkfs.f2fs -c -c /dev/sda2 4. Выбор stage3. Рекомендую nomultilib - он не будет содержать 32-битного кода совершенно. Multilib нужен если вам нужен wine, 32-битные библиотеки или бинарники. Еще есть uclibc - маленький и годный вариант для встраиваемых систем, но почему бы не накатить на свой пк, особенно если мало памяти или хочется еще больше производительности? Сам Я пока не пробывал его на своем десктопе, но собираюсь. uclib/musl могут не поддерживать некоторые пакеты с некоторыми флагами, прежде чем просто устанавливать надо прочитать документацию и HOWTO/README-файлы, добавить оверлеи c патчами, обновлятся как там написано. Можете прочитать так-же про эти либы: http://www.etalabs.net/compare_libcs.html https://blogs.gentoo.org/blueness/2015/08/04/alt-libc-the-state-of-uclibc-and-musl-in-gentoo-part-1/ uclibc: https://wiki.gentoo.org/wiki/Project:Hardened_uClibc http://opensource.dyc.edu/node/345 http://distfiles.gentoo.org/releases/amd64/autobuilds/current-stage3-amd64-uclibc-hardened/ https://dev.gentoo.org/~vapier/uclibc/uclibc.txt Готовый xfce Desktop на uClibc: https://wiki.gentoo.org/wiki/Project:Hardened_uClibc/Lilblue musl: https://wiki.gentoo.org/wiki/Project:Hardened_musl http://distfiles.gentoo.org/experimental/amd64/musl/ Готовый xfce Desktop на musl: https://wiki.gentoo.org/wiki/Project:Hardened_musl/Bluedragon Имейте в виду что на nomultilib/musl/uclibc речи о запуске 32 битных ELF не идет, на счастье уже не 2002 и все можно скомпилировать под 64 бита, но игроделы этому не научились так что с этими профилями вам непаиграть (разве что в опенсорс-игры), стим вроде на эти профили тоже не ставится. Не ставьте Hardened если не знаете что делаете: https://wiki.gentoo.org/wiki/Project:Hardened https://wiki.gentoo.org/wiki/Hardened_Gentoo https://wiki.gentoo.org/wiki/Hardened/FAQ https://en.wikipedia.org/wiki/Hardened_Gentoo http://resources.infosecinstitute.com/gentoo-hardening-part-1-introduction-hardened-profile-2/ 5. make.conf В этом файле определяются основные параметры компиляции, Я опишу два стула - как сделать быструю или экономную систему, но выбрать можно что-то среднее. Путь к файлу: /etc/portage/make.conf Конфиг для быстрой системы: #-masm=att/intel -pthread -mtune= -m64 -m32 -mcpu= -ftree-parallelize-loops= -std=gnu11 -std=gnu++14 - осторожно, не каждый пакет соберется с этими опциями. CFLAGS="-march=native -O2 -pipe" //native всегда лучше CPU-специфичного параметра, явное указание поколения подтянет опции доступные самому простому процессору из поколения. CXXFLAGS="-march=native -O2 -pipe" //Можете добавить -m64 чтобы явно указать компилятору собирать 64-битные пакеты //Если вы выбрали multilib, то не пишите -m64 MAKEOPTS="-j4" // Цифра - количество потоков, количество_потоков+1 работает медленнее пруф: https://blogs.gentoo.org/ago/2013/01/14/makeopts-jcore-1-is-not-the-best-optimization/ CHOST="x86_64-pc-linux-gnu" // Это дефолты и перенастраивать их крайне нежелательно и не имеет смысла. CPU_FLAGS_X86="" //Эту переменную можно задать с помощью cpuinfo2cpuflags-x86 >> /etc/portage/make.conf CTARGET="x86_64-pc-linux-gnu" USE="-fortran -static -static-libs" //Вы можете включить статические библиотеки, это должно дать прирост производительности, но приведет к некоторым неудобствам. //Имейте в виду что если выбрали статически линкованые бинарники при обновлении одной библиотеки прийдется пересобирать части этих библиотек для каждого пакета, статические библиотеки занимают немного больше места на диске и в оперативной памяти, так что может быть лучше их отключить. Если включить то собраные бинарники должны работать быстрее. //Вообще эти флаги лучше задавать локально. //Инфо о статических либах: https://kb.iu.edu/d/akqn https://en.wikipedia.org/wiki/Static_library https://www.akkadia.org/drepper/no_static_linking.html http://sta.li/ # -fortan Уберет компилятор фортрана из gcc, статические библиотеки вызываются быстрее динамических, но потребляют больше памяти, еще поможет избежать проблем с зависимостями при обновлении библиотек. INPUT_DEVICES="evdev" //Если используете тачпад или графический планшет то придется добавить synaptics ACCEPT_KEYWORDS="~amd64" //Начет отображать бета-версии пакетов, как правило большинство из них официально стабильно. Без этой опции будут скачиваться довольно старые пакеты. Конфиг для экономной системы отличается парой флагов: CFLAGS="-march=native -mtune=native -Os -pipe" CXXFLAGS="-march=native -mtune=native -Os -pipe" USE="-fortran -static -static-libs" Если вам интересно посмотреть на готовый make.conf для Intel Core i3 4330 с встроеной графикой можете посмотреть здесь: https://github.com/DmitriyHetman/gentoo/blob/master/make.conf 6. /etc/portage/package.use/localuses В этот файл добавим пару флагов, чтобы gcc собирался без фортрана, а ядро можно было оптимизировать под свою машину. sys-power/suspend -crypt -lzo threads //Программа понадобится если хотите пользоватся спящим режимом, флаги я на свой вкус добавил. sys-kernel/gentoo-sources symlink experimental //Включит патч для оптимизации под свое железо //При конфигурировании ядра в настройках процессора выберите Processor family (Native optimizations autodetected by GCC) ---> sys-devel/gcc -fortran 7. Обновление GCC Для обновления компилятора просто введите в терминал emerge --ask sys-devel/gcc Компилятор соберется под ваше железо, станет быстрее компилировать и лучше оптимизировать, можно пересобрать второй раз, чтобы он сам собой был собраным. cmake тоже не лишним будет обновить и пересобрать под ваше железо. emerge --ask dev-util/cmake 8. Конфигурирование ядра И тут у нас два стула: монолитное или модульное ядро. Я предпочитаю монолитное, для этогод достаточно просто выключить loadable modules support. Начнем с того что нельзя собирать модулем все то, что обеспечивает доступ к корневому разделу, Ядро должно иметь все необходимое для того, чтобы получить доступ к корневому разделу и считать с него информацию чтобы подтянуть оттуда все модули (Модулем можно собрать драйвера графики, аудио, Ethernet, все файловые системы и разметки дисков кроме тех что использует системный раздел). Инструмент для определения нужных драйверов ядра: http://kmuto.jp/debian/hcl/ Еще, чтобы узнать список нужных модулей, надо в своем livecd выполнить: lsmod lspci -k Переходим в каталог исходников активного ядра
- cd /usr/src/linux
- cp -a .config .config.backup
- make localmodconfig
- make menuconfig
- make -j(кол-во ядер) && make modules_install
- cp -a /usr/src/linux/.config.bak /usr/src/linux/.config
- make -j(кол-во ядер)
- make modules_install
- noatime,nobarrier,noinit_itable,nouser_xattr,noacl,noexec,nosuid,nodev //флаги которые вам могут понадобится
man weston
man weston.ini
man xkeyboard-config
Создаем файлы:
~/.bash_profile
if [ -z "${XDG_RUNTIME_DIR}" ]
then
export XDG_RUNTIME_DIR="/tmp/${UID}-runtime-dir"
if [ ! -d "${XDG_RUNTIME_DIR}" ]
then
mkdir "${XDG_RUNTIME_DIR}"
chmod 0700 "${XDG_RUNTIME_DIR}"
fi
fi
~/.config/weston.ini
[core]
modules=xwayland.so
repaint-window=16
idle-time=0
[keyboard]
keymap_layout=us,ru
keymap_options=grp:caps_toggle,grp_led:caps
[shell]
background-image=none
#background-clolor=0x0000000
panel-color=0x00000000
#num-workspaces=3
animation=none
close-animation=none
startup-animation=none
focus-animation=none
[output]
name=VGA1
seat=default
На русском:
https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation/ru https://lisakov.com/blog/gentoo-for-goofy/ http://www.unix-lab.org/posts/install-gentoo/ http://nix-sa.blogspot.com/2011/09/gentoo-1.html https://github.com/for2ch/Linux-F.A.Q/wiki/Install-Gentoo http://pastebin.com/U3Lg1pCpНа английском:
https://wiki.gentoo.org/wiki/Handbook:AMD64/Full/Installation http://xed.ch/h/gentoo http://swift.siphos.be/linux_sea/installgentoo.html https://wiki.installgentoo.com/index.php/Gentoo#Installation_method http://www.unixmen.com/a-beginners-guide-to-install-gentoo/ http://www.wikihow.com/Install-Gentoo-Linux-from-Ubuntu http://www.tecmint.com/gentoo-linux-installation-guide/OpenSWR - самый быстрый софтварный рендер.
OpenSWR>Gallium3D>Mesa http://openswr.org/ https://github.com/OpenSWR https://lists.freedesktop.org/archives/mesa-dev/2015-October/097816.html https://www.phoronix.com/scan.php?page=news_item&px=Intel-OpenSWR-Mesa