-
Notifications
You must be signed in to change notification settings - Fork 2
/
install-gentoo
419 lines (364 loc) · 31.2 KB
/
install-gentoo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
Установка:
Данный гайд предназначен для того чтобы оптимизировать систему под современный 64-битный ПК, добиться максимальной скорости и помочь избежать распостраненных ошибок при установке.
Это не замена официальной документации, ее все равно придется придерживаться, внося изменения на свой вкус. Это общие рекомендации, а не пошаговый гайд, читать это надо перед установкой по хендбуку.
1. Выбор Live CD
Наиболее удобным и оптимальным считаю SystemRescueCD - поддерживает efi, имеет 64-битное ядро и графическую оболочку, совместим с Gentoo GNU/Linux.
https://www.system-rescue-cd.org/Download
Можно и gentoo minimal CD приспособить для efi:
https://forums.gentoo.org/viewtopic-p-7581718.html
https://wiki.gentoo.org/wiki/LiveUSB/Guide#Adjusting_the_bootloader_configuration
http://www.rodsbooks.com/efi-bootloaders/elilo.html
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 это пережиток прошлого, если мало памяти то оптимизируйте систему под эффективное потребление памяти. Файл подкачки не решает проблему переполнения оперативной памяти, когда она переполняется ПК практически невозможно использовать, что с файлом, что без.
Однако стоет заметить что если вы юзаете suspend 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 /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:
Для uclibc надо указать правильно CHOST CTARGET, убедитесь что не указали там gnu, надо 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
https://www.kernel.org/pub/linux/libs/uclibc/Glibc_vs_uClibc_Differences.txt
Готовый xfce Desktop на uClibc:
https://wiki.gentoo.org/wiki/Project:Hardened_uClibc/Lilblue
musl:
Не забываем про CHOST и СTARTGET, указываем в конце musl
https://wiki.gentoo.org/wiki/Project:Hardened_musl
http://distfiles.gentoo.org/experimental/amd64/musl/
http://distfiles.gentoo.org/experimental/amd64/musl/HOWTO
http://wiki.musl-libc.org/wiki/Pkgsrc_results
Поскольку не все пакеты собираются в мюсле придется добавить оверлеи:
https://github.com/gentoo/musl
https://github.com/lluixhi/musl-extras
https://github.com/N8Fear/musl-overlay
Готовый xfce Desktop на musl:
https://wiki.gentoo.org/wiki/Project:Hardened_musl/Bluedragon
Имейте в виду что на nomultilib/musl/uclibc речи о запуске 32 битных ELF не идет (хотя в uclibc реализуемо), на счастье уже не 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
Конфиг для быстрой системы:
ACCEPT_KEYWORDS="~amd64" //тильда значит тестинг релиз, для скачки сорсов прямо из git добавьте или замените на **.
CFLAGS="-march=native -funroll-loops -O2 -pipe" //native всегда лучше CPU-специфичного параметра, явное указание поколения подтянет опции доступные самому простому процессору из поколения.
CXXFLAGS="$CFLAGS"
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" // Это дефолты для glibc и перенастраивать их крайне нежелательно и не имеет смысла, для uclibc и musl в место gnu указывайте uclibc или musl.
CPU_FLAGS_X86="" //Эту переменную нужно задать с помощью cpuinfo2cpuflags-x86 >> /etc/portage/make.conf
MEDIA="mp3 vorbis ogg bluray" //некоторые флаги вынесены в отдельные переменные для удобства
REJECT="-fortran -nls -readline -ncurses -xattr -gtk" //отключать некоторые аргументы лучше индивидуально, либо потом индивидуально их включать
USE="$MEDIA $REJECT vaapi threads" //vaapi это аппаратное ускорения для карточек intel.
Собирать статические либы имеет только в случае если вы собрались собирать статически слинкованые бинарники, большинство пакетов так собратся не могут.
//Инфо о статических либах:
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="libinput"
Конфиг для экономной системы отличается парой флагов:
CFLAGS="-march=native -Os -pipe"
Если вам интересно посмотреть на готовый 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
Компилятор соберется под ваше железо, станет быстрее компилировать и лучше оптимизировать, можно пересобрать второй раз, чтобы он сам собой был собраным, таким образом убедитесь что он нормально работает и не переоптимизирован (если делали -O3 и выше).
8. Конфигурирование ядра
И тут у нас два стула: монолитное или модульное ядро. Я предпочитаю монолитное, для этого достаточно просто выключить loadable modules support.
Начнем с того что нельзя собирать модулем все то, что обеспечивает доступ к корневому разделу, Ядро должно иметь все необходимое для того, чтобы получить доступ к корневому разделу и считать с него информацию чтобы подтянуть оттуда все модули (Модулем можно собрать драйвера графики, аудио, Ethernet, все файловые системы и разметки дисков кроме тех что использует системный раздел).
Инструмент для определения нужных драйверов ядра:
http://kmuto.jp/debian/hcl/
Еще, чтобы узнать список нужных модулей, надо в своем livecd выполнить:
lsmod
lspci -k
Переходим в каталог исходников активного ядра
# cd /usr/src/linux
Сохраняем на всякий случай конфигурационный файл
# cp -a .config .config.backup
Далее подключите все используемые устройства к компьютеру, чтобы подхватились модули через udev и выполните автоматическую установку только используемых модулей
# make localmodconfig
В этом пункте происходит сильная зачистка конфигурационного файла.
Затем проверьте включение некоторых модулей и при их отсутствии включите. Корневую файловую систему, Ваш контроллер диска, ramdisk, если используете initrd (что совсем не обязательно) включайте их не модулями, а сразу в ядро. Модулями подключите ntfs, файловую систему для cd, включите пункт scsi cd-rom, usb принтеры, мониторы и прочую используемую usb технику, которую не увидел скрипт. Ну и само собой Ваши любимые пункты проверьте на правильность настроек, но как правило скрипт их не затрагивает.
# make menuconfig
Далее сохраните настройки в .config и выходите
Теперь запускаем максимально быструю компиляцию ядра, модулей и их установку, включая пересборку и подключение внешних модулей типа nvidia и virtualbox (у Вас должен быть установлен пакет sys-kernel/module-rebuild)
# make -j(кол-во ядер) && make modules_install
Затем в grub подключаем новое ядро, но возможно даже не придется переделывать grub, если это повторная компиляция. Таким образом Вы получите минимальную систему непосредственно для Вашего компьютера из стандартного конфигурационного файла gentoo.
В случае неуспеха, что маловероятно, скопируйте .config.bak на место .config
# cp -a /usr/src/linux/.config.bak /usr/src/linux/.config
и выполните для компиляции ядра со стандартными параметрами gentoo
# make -j(кол-во ядер)
# make modules_install
P.S. Хитрости.
Перед началом компиляции скопируйте каталог boot, например, в домашнюю директорию. И в случае неудачи Вы всегда сможете быстро восстановить ядро из liveCD (если ядро у Вас только одно), удалением испорченного boot из корневого раздела и восстановлением из Вашей архивной копии.
Для самой быстрой загрузки ядра измените 2 пункта ядра так как показано у меня:
Preemption Model (Preemptible Kernel (Low-Latency Desktop))
и
Timer frequency (1000 HZ)
После этих мероприятий ядро на медленном atom n270 грузится чуть медленнее 1 секунды.
Ядро сжимать лучше алгоритмом lz4, чтобы установить архиватор выполните:
emerge --ask app-arch/lz4
В конфигурации ядра выберете этот алгоритм:
General setup>
Kernel compression mode (LZ4) --->
Потом включите автоопределение процессора компилятором:
Processor type and features --->
Processor family (Native optimizations autodetected by GCC) --->
А также почти все остальное будет полезным перед или во время конфигурации:
https://wiki.gentoo.org/wiki/Kernel/Configuration
https://wiki.gentoo.org/wiki/Kernel/Gentoo_Kernel_Configuration_Guide
https://wiki.gentoo.org/wiki/Handbook:AMD64/Installation/Kernel
http://swift.siphos.be/linux_sea/kernelbuilding.html
После того как отконфигурировали ядро можно отредактировать Makefile добавив флагов оптимизации в переменные:
HOSTCFLAGS = -march=native -pipe
HOSTCXXFLAGS = -march=native -pipe
KBUILD_CFLAGS = -march=native -pipe
В первых двух можно заменить O2 на Os, если у вас raspberry pi. Если мало памяти так-же нужно поставить флаг optimize for size в конфиге ядра.
Обязательно прочтите эту статью если решили не использовать загрузчик и грузить ядро из биоса(efi-stub kernel):
https://wiki.gentoo.org/wiki/EFI_stub_kernel
И еще пара о том-же:
https://lorwiki.ru/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Linux_%D0%BD%D0%B0_EFI
https://wiki.gentoo.org/wiki/Efibootmgr (Но ядро должно грузится и без него, я ним пользуюсь потому что у меня не одно ядро а дуалбут)
Короткий гайд по efi-stub kernel:
Прописываем в /etc/fstab наш раздел как /boot.
>/dev/sda1 /boot vfat noauto 0 0
Далее монтируем получившийся раздел
>mount /boot
2) Компилируем efistub kernel (не забываем в kernel commandline указать / раздел. root=/dev/sdX)
3) Устанавливаем скомпилированное ядро в /boot
>make modules_install && mv arch/x86_64/boot/bzimage /boot/nomultilib
4) Емержим efibootmgr, понадобится нам для того чтобы указать UEFI где находится наше ядро и подписать его.
>sudo emerge efibootmgr
5) Записываем данные о ядре в UEFI
>efibootmgr -c -d /dev/sda -p 1 -L "nomultilib" -l "\\nomultilib" -u "root=/dev/sda2"
6) посмотреть удачно ли записалась информация в загрузчик
>efibootmgr -v
Ели ваше ядро не может получить доступ к корневой директории то надо явно указать адрес раздела PARTUUID:
Just to clarify UUIDs are the only reliable way for the kernel to identify hard drives. There are two types: UUID, which is stored in the filesystem and is not available to the kernel at boot-time, and PARTUUID, which is stored in the partition table and IS available at boot time. So you have to use
root=PARTUUID=SSSSSSSS-PP
as /dev/sd?? can change with devices plugged/unplugged.
Don't forget to capitalize the hexadecimal number SSSSSSSS-PP you get from blkid!
The more easy to use
root=LABEL=
root=UUID=
only work with an initramfs that fetches these identifiers.
So, if you use a non-empty initramfs, you can have all three! With an empty initramfs, you only have PARTUUID.
Паста взята с http://unix.stackexchange.com/questions/93767/why-cant-i-specify-my-root-fs-with-a-uuid#93777
9. Заключительные шаги.
passwd - введите пароль для рута, пользователя добавите уже когда загрузитесь в систему.
10. Настройка fstab
/etc/fstab
#noatime,nobarrier,noinit_itable,nouser_xattr,noacl,noexec,nosuid,nodev //флаги которые вам могут понадобится
/dev/sda2 / ext4 noatime,nobarrier,nouser_xattr,noacl 0 0 //noacl - вполне себе нармальная опция, а вот от атрибутов вам вряд-ли удастся избавится.
/dev/sda1 /boot vfat noauto,noatime,noexec,nosuid,nodev 0 0
/dev/sda3 /home/dmitriy/files/ ext4 noatime,nobarrier,nouser_xattr,noacl 0 0 //файлопомойка не лежит прямо в юзере или хоме, таким образом конфигов и исполняемых файлов в файлопомойке не будет, что оптимизирует работу пк если у вас SSD
shm /tmp/ tmpfs size=3968M 0 0 // Временные файлы хранятся в оперативной памяти, память свободна если там ничего не лежит
shm /var/tmp/ tmpfs size=3968M 0 0 \\ Это ускорит процесс компиляции, и еще много всяких процессов. Подробности в ссылках ниже:
shm ~/.cache tmpfs size=3968M 0 0
Чтобы понять что такое tmpfs и добавить в исключения жирные пакеты, компилирование которых не вместится в вашей памяти прочтите следующие статьи:
https://wiki.gentoo.org/wiki/Portage_TMPDIR_on_tmpfs
https://wiki.gentoo.org/wiki/Tmpfs
11. Установка графической оболочки.
Приведены ссылки по вейланду, с иксами проблем никаких не будет.
Новичкам поясняю что xorg-server сильно устарел, содержит массу ненужных компонентов, поэтому команда x.org взялась за новый протокол, на который уже перешли основные дистрибутивы GNU/Linux.
Под вейланд еще не все приложения заточены, поэтому некоторые будут работать через прослойку xwayland, если захотите, потери производительности меньше 10%.
Создаем файлы:
~/.bash_profile //если у вас dash то ~/.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
man weston
man weston.ini
~/.config/weston.ini
[core]
modules=xwayland.so
repaint-window=16
idle-time=0
[keyboard]
keymap_layout=us,ru
keymap_options=grp:caps_toggle
[shell]
num-workspaces=12
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
На иксах
setxkbmap -layout "us,ru"
setxkbmap -option "grp:caps_toggle,grp_led:caps,compose:ralt"
Wayland:
https://jan.newmarch.name/Wayland/index.html
https://wayland.freedesktop.org/
http://www.chaosreigns.com/wiki/Main_Page
http://www.phoronix.com/scan.php?page=news_item&px=Intel-Ozone-Wayland-Continues
http://projects.genivi.org/wayland-ivi-extension/
http://www.linuxfromscratch.org/blfs/view/systemd/general/weston.html
http://losst.ru/testirovanie-wayland-v-gentoo
https://wiki.gentoo.org/wiki/Wayland
https://en.wikipedia.org/wiki/Wayland_(display_server_protocol
https://wiki.archlinux.org/index.php/wayland
http://manpages.ubuntu.com/manpages/wily/man5/weston.ini.5.html
https://forums.gentoo.org/viewtopic-p-7486872.html#7486872
https://m.reddit.com/r/Gentoo/comments/2e1rn5/wayland_on_gentoo_any_updates/
https://packages.gentoo.org/packages/dev-libs/sway
https://packages.gentoo.org/packages/dev-libs/weston
https://www.collabora.com/about-us/blog/2015/02/12/weston-repaint-scheduling/
http://www.nemoux.net/
http://www.igalia.com/webkitforwayland/
Velox:
https://github.com/michaelforney/wld
https://github.com/michaelforney/swc
https://github.com/michaelforney/velox
Browsers for Wayland:
xombrero
epiphany
midori
konqueror
otter browser
rekonq
Book readers for Wayland:
weston-view from weston-1.4.0
mozilla pdf.js and other js-viewers for browser
fbpdf in framebuffer
Chromium for Wayland:
https://www.phoronix.com/scan.php?page=news_item&px=Google-Chrome-50
https://www.phoronix.com/scan.php?page=news_item&px=Intel-Ozone-Wayland-Continues
https://www.phoronix.com/scan.php?page=news_item&px=MTU5NTU
https://github.com/01org/ozone-wayland/blob/master/README.md
https://docs.google.com/document/d/118Cmq_dedHOr4jfyVeE4jBhV7hXzhnaVCqegNMGano0/edit
https://www.chromium.org/developers/design-documents/ozone
Гайды по установке.
На русском:
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/
Для тех, кто еще новичек в GNU/Linux:
http://swift.siphos.be/linux_sea/
http://nix-sa.blogspot.com/2011/09/linux-gentoo.html
Работа с пакетами:
https://wiki.gentoo.org/wiki/Gentoo_Cheat_Sheet
https://wiki.gentoo.org/wiki/Portage#Usage
http://pastebin.com/BgcPbjG9
Шифрование и безопасность:
https://wiki.gentoo.org/wiki/Dm-crypt
https://wiki.installgentoo.com/index.php?title=Anonymizing_yourself&redirect=no
http://www.unshackledmind.net/2013/05/gentoo-full-disk-encryption/
https://wiki.installgentoo.com/index.php/Encryption
https://wiki.installgentoo.com/index.php/DNSCrypt
http://nix-sa.blogspot.com/2012/03/truecrypt-gentoo-calculate-linux.html
Использование видеопамяти для swap/vramfs:
https://wiki.archlinux.org/index.php/swap_on_video_ram
https://github.com/Overv/vramfs
https://www.opennet.ru/opennews/art.shtml?num=41267
http://www.gentoo-wiki.info/TIP_Use_memory_on_video_card_as_swap
Ускорение ядра с помощью CUDA:
http://hackaday.com/2012/12/14/leveraging-the-gpu-to-accelerate-the-linux-kernel/
http://www.phoronix.com/scan.php?page=news_item&px=OTQxMQ
https://news.ycombinator.com/item?id=2521820
https://github.com/wbsun/kgpu
https://github.com/wbsun/kgpu/wiki/KGPU---Home
https://www.flux.utah.edu/project/kgpu
http://www.cs.utah.edu/~wbsun/
Для работы в консоли:
https://wiki.gentoo.org/wiki/Tmux
https://wiki.gentoo.org/wiki/GPM
w3m - браузер для фреймбуфера, отображает изображения в tty, был патч для поддержки js - w3m-js, не могу найти, есть поддержка мыши.
fbpdf - читалка pdf/djvu в tty.
JFBview - читалка, и может смотреть изображения как и fbpdf, поддерживает содержание pdf.
epub или phyton-epub - смотрелка epub для терминала или tty.
netsurf - полноценный браузер в фреймбуфере (tty), поддерживает js.
Оптимизации:
http://optimization.hardlinux.ru/
https://wiki.gentoo.org/wiki/CFLAGS
Автораспаралеливание циклов с помощью Graphite:
https://gcc.gnu.org/wiki/Graphite/Parallelization
http://yuguangzhang.com/blog/enabling-gcc-graphite-and-lto-on-gentoo/
https://gcc.gnu.org/wiki/Graphite-4.8
Шрифты:
https://wiki.gentoo.org/wiki/Fontconfig
https://www.freedesktop.org/wiki/Software/HarfBuzz/
https://packages.gentoo.org/packages/media-libs/harfbuzz
OpenSWR - самый быстрый софтварный рендер.
OpenSWR>Gallium3D>Mesa
Использование OpenSWR вместо 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
GNU/Linux Graphix stack (mesa, gallium,egl,drm,dri,kms,wayland):
http://blog.mecheye.net/2012/06/the-linux-graphics-stack/
https://habrahabr.ru/post/148954/
http://ppaalanen.blogspot.com/2012/03/what-does-egl-do-in-wayland-stack.html
Информация о пакетах в главном репозитории:
http://gentoobrowse.randomdan.homeip.net/categories
https://packages.gentoo.org/categories
Инфраструктура Gentoo:
https://infra-status.gentoo.org/#pk_campaign=err&pk_kwd=emptypage
Скрипты для бекапа конфигов и вывода информации о железе:
https://github.com/DmitriyHetman/gentoo/tree/master/Scripts