Ссылка на оригинал: http://ru.gentoo-wiki.com/Ядро_2.6
С версии: 1.5
Ядро Linux позволяет регулировать параметры свопинга двумя способами: автоматически, исходя из того, насколько активно используется та или иная программа, либо вручную задавая агрессивность свопинга.
Содержимое файла /proc/sys/vm/swappiness определяет агрессивность свопинга, а истинность (неравенство нулю) значения в файле /proc/sys/vm/autoswappiness определяет какой из двух режимов будет использоваться. Таким образом, если вы хотите установить агрессивность свопинга вручную, то следует воспользоваться командой:
echo 0 > /proc/sys/vm/autoswappiness
чтобы отключить автоматический режим и уже затем установить желаемый режим вручную. Значения в файле /proc/sys/vm/swappiness изменяются от 0 до 100. При минимальном значении ядро стремится большую часть содержимого держать в физической памяти, при максимальном стремится к экономии физической памяти.Чтобы максимльно сэкономить оперативную память введите:
echo 100 > /proc/sys/vm/swappiness
По умолчанию значение 60, но если поставить 0, это должно побудить систему пользоваться подкачкой только в критических ситуациях. Для медленных систем может ускорить работу. Значение 100 не рекомендуется для тех у кого достаточно медленный жесткий диск. Казалось бы, это значение вообще не желательно для использования, однако, Andrew Morton, один из разработчиков ядра Linux, заявляет, что на своих рабочих компьютерах (десктопах, не серверах) использует значение 100, т.к. считает, что ему совершенно ни к чему эти сотни занятых мегабайт оперативной памяти. И он в некоторых случаях прав, так как известно, что Linux использует свободную оперативную память для кэширования дисковых операций, таким образом, значение близкое или равное 100 может и ускорить систему. Таким образом, решать вам, исходя из количества и ресурсоемкости используемых вами задач. Хотя, вряд ли вы так же активно используете свой десктоп, как Эндрю ;)
Также, возможно заставить систему устанавливать нужный режим при загрузке, прописав в файл /etc/sysctl.conf строку
Файл: /etc/sysctl.conf |
vm.swappiness=100 |
разумеется, вместо 100 следует подставить то значение, которое вам подходит.
Ссылка на оригинал: http://www.gentoo.org/doc/ru/prelink-howto.xml
C версии: 1.0
Перенесено в: 1.5
Большинство приложений используют разделяемые библиотеки. Эти разделяемые библиотеки должны быть загружены в память во время выполнения программы, при этом необходимо определить различные символьные ссылки. Для большинства небольших программ динамическое связывание происходит очень быстро. Но для программ, написанных на C++, имеющих много библиотечных зависимостей, динамическое связывание может занять много времени.
На большинстве систем, библиотеки обычно остаются неизменными и когда программа запускается, операции необходимые для связывания, каждый раз одинаковы. Предварительное связывание использует данную особенность, выполняя связывание и сохраняя библиотеки в выполняемом файле, фактически уже связанными. Для связывания, вам потребуется ld-linux.so в glibc; для распознавания предварительного связывания версия glibc должна быть >= 2.3.1-r2
Предварительное связывание может уменьшить время загрузки приложений. Например, типичные программы KDE могут загружаться на 50% быстрее. Необходимым условием является перезапуск процесса предварительного связывания каждый раз при обновлении библиотек для программ, которые на них ссылаются.
Предварительное связывание производится программой, имеющей название, как не странно, prelink. Она изменяет выполняемый файл таким образом, что он запускается быстрее.
Если зависимые от приложения библиотеки были изменены после того, как были предварительно связаны с приложением, то они потребуют повторного предварительного связывания, иначе вы потеряете преимущества в скорости загрузки.
Изменения выполняемого файла полностью обратимы, поскольку программа prelink имеет функцию undo.
Новые версии portage могут обрабатывать, при помощи программы prelink, изменяющиеся контрольные суммы MD5 и поля mtime выполняемых файлов.
У вас должен быть glibc-2.3.1-r2 или более новый, и бинарные файлы должны быть скомпилированы с binutils-2.13.90.0.xx или выше.
Примечание: Я подразумеваю, что у вас есть Gentoo-1.4, который был собран при помощи gcc-3.2 или более поздней версии и binutils-2.13.90.0.xx. Это требуется для того, что бы выполняемые файлы могли быть предварительно связаны.
Предупреждение: Должен быть установлен glibc 2.3.1 или более новый, иначе программа prelink может испортить все ваши выполняемые файлы!
Для начала обновите свое дерево портежей, потому что многие из необходимых приложений часто обновляются и постоянно выходят исправления ошибок.
Листинг 2.1: Обновление вашего дерева портежей
# emerge sync
Далее, убедитесь, что у вас установлен portage-2.0.26 или более новый. Это требуется для того, что бы portage могло распознать предварительно связанные выполняемые файлы и при необходимости корректно их деинсталлировать. Т.к. предварительное связывание изменяет контрольную сумму MD5 бинарных файлов.
Листинг 2.2: Проверка версии дерева портежей
# emerge ">=portage-2.0.46"
Теперь вы можете вызвать emerge для программы предварительного связывания. Процесс emerge автоматически проверит, что ваша система может безопасно выполнять предварительное связывание.
Листинг 2.3: Устанавливаем предварительное связывание
# emerge prelink
Некоторые люди, в ходе выполнения тестов, получают ошибки выполняя emerge для программы prelink. Тесты размещены в пакете из соображений безопасности, предварительное связывание будет непредсказуемым, если их отменить. Эти ошибки обычно связаны с базовыми пакетами, такими как binutils, gcc и glibс. В таком случае попробуйте выполнить emerge этих пакетов повторно.
Примечание: Если ошибки продолжают появляться, попробуйте скомпилировать и протестировать программу prelink самостоятельно (./configure ; make ; make check ). В случае сбоя вы можете просмотреть *.log файлы в директории с набором тестов. Они могут дать вам некоторые полезные подсказки.
Если вы имеете набор действий, которые демонстрируют ошибки в другой системе, пожалуйста отправьте его на Stefan Jones.
Portage автоматически генерирует файл /etc/prelink.conf, который говорит программе prelink какие файлы требуется предварительно связать.
К сожалению, вы не сможете предварительно связать файлы, которые были скомпилированы старыми версиями пакета binutils. Большинство таких приложений поставляется уже скомпилированными, не имея исходных кодов, и устанавливаются в каталоге /opt. Создайте следующий файл, для того, что бы запретить программе prelink использовать предварительное связывание для подобных файлов.
Листинг 2.4: /etc/env.d/99prelink
PRELINK_PATH_MASK="/opt"
Примечание: Вы можете добавить больше или меньше директорий, в список, разделенный двоеточиями.
Я использую следующую команду для предварительного связывания всех бинарных файлов в директориях, заданных в файле /etc/prelink.conf.
Листинг 3.1: Предварительное связывание заданных файлов
# prelink -afmR
Предупреждение: Наблюдалось, что при наличии небольшого свободного пространства в момент выполнения предварительного связывания для всей системы, существует вероятность усечения выполняемых файлов. Результатом может стать испорченная система. Используйте команду file или readelf для проверки целостности выполняемых файлов. Также вы можете заранее проверить наличие свободного места коммандо df -h
Описание опций:
-a All, применить предварительное связывание ко всем выполняемым файлам.
-f Вынуждает повторить предварительное связывание для файлов, которые уже подвергались ему. Это требуется т.к. программа prelink прекращает обработку существующих старых связанных файлов, зависимые библиотеки которых могли измениться.
-m Сохраняет пространство виртуальной памяти. Это требуется, если вы имеете много библиотек, которые необходимо связать.
-R Random, -- Выбирает случайный порядок адресов, это увеличивает безопасность против переполнений буферов.
Примечание: Более подробно об опциях можно узнать, набрав man prelink
"Предварительное связывание не работает с разделяемой библиотекой, собранной без опции PIC"
Причиной данной проблемы являются объектные файлы разделяемой библиотеки, скомпилированные без опции gcc -fPIC.
Далее следует список проблемных библиотек и список пакетов, для которых требуется повторно вызвать emerge, в случае возникновения данной проблемы.
Листинг 4.1: Исправления
(Для библиотеки ORBit /usr/lib/libIIOP.so.0.5.17)
emerge ">=sys-apps/tcp-wrappers-7.6-r4" ORBit
(Для библиотеки zlib /usr/lib/libz.so.1.1.4)
emerge ">=sys-libs/zlib-1.1.4"
(Для svgalib, /usr/lib/libsvga.so.xx)
emerge ">=media-libs/svgalib-1.9.16"
(Для библиотеки XFree openGL, libGLU.so.1)
emerge ">=x11-base/xfree-4.2.1-r2"
(Для libpcap.so.0.6)
emerge ">=net-libs/libpcap-0.7.1-r2"
(Для библиотеки lcms, /usr/lib/liblcms.so.1)
emerge ">=media-libs/lcms-1.09"
Примечание: Многие библиотеки статично связаны с zlib и/или tcp-wrappers, так что сначала попробуйте выполнить emerge для них, после чего, повторно запустите emerge для проблемных библиотек.
Если вы имеете проблемы с предварительным связыванием QT/KDE, то сначала попытайтесь обновить x11-base/xfree до версии 4.2.1-r2 или более новой и x11-libs/qt до версии 3.1.0-r1 или более новой. Если QT так и не работает, тогда попробуйте скомпилировать его без поддержки xinerama, задав строку myconf="-no-xinerama ${myconf}" в файле ebuild для qt.
Далее приводится список библиотек, которые пока не работают или не могут работать вообще:
Библиотеки в пакете wine, включая windex. Они в любом случае не могут ускорить выполняемые файлы MS Windows.
Библиотека в media-video/mjpgtools, /usr/lib/liblavfile-1.6.so.0
Если у вас есть проблемы с библиотекой, которой нет в списке, пожалуйста сообщите об этом, предпочтительно, добавив -fPIC к соответствующим CFLAGS.
Прерывание предварительного связывания файла, с выводом сообщения, вида: "1631 Aborted ...."
Вам необходимо использовать опцию -f программы prelink; т.е. повторить предварительное связывание для всей системы с нуля. Попробуйте запустить prelink -af
"Ошибка: <file>: error while loading shared libraries: unexpected reloc type..."
Это было исправлено в пакете sys-libs/glibc-2.3.1-r2 2002/11/18, выполните emerge для glibc, если у вас более старая версия.
Так же запустите prelink -u -a -m ; prelink -a -m это должно помочь. Если все это не помогает, просто запустите prelink -u <file>
У меня проблемы с библиотеками Nvidia openGL
Ускоренные библиотеки openGL идущие с пакетом nvidia-glx скомпилированы нестандартным образом, и программа prelink выводит массу предупреждений. Здесь нет повода для беспокойства, и это не может быть исправленo кем-либо помимо компании nvidia. Вы всегда можете вернуться к xfree версии библиотеки libGL.so, если вам не требуется ускорение 3D. Хотя драйвер xfree nvidia работает нормально.
После предварительного связывания моей системы, некоторые статичные выполняемые файлы более не работают
Там где участвует glibc, не бывает такой вещи как 100% статичный выполняемый файл. Если вы статично скомпилировали выполняемый файл с glibс, он может продолжать оставаться зависимым от других системных файлов. Далее приводится объяснение от Dick Howell.
"Я предполагал, что все должно находиться в скачанном файле и не должно быть никаких зависимостей с локальными библиотеками на целевой системе. К сожалению, в Linux, и я думаю везде, где используется GLIBC, это до сих пор не совсем верно. Существует библиотека "libnss" (name service switch - переключатель сервиса имен, некоторые люди думают, что это network secutiry system - сетевая система безопасности) которая предоставляет функции для доступа к различным базам данных для аутентификации, сетевой информации и для других вещей. Эта библиотека предполагает сделать приложения независимыми от отдельно сконфигурированных сетевых окружений машины. Хорошая идея, но изменения GLIBC может вести к проблемам ее загрузки. И вы не можете статически связать "libnss" так как она сконфигурирована для каждой машины индивидуально. Я думаю, что, главным образом, это происходит из-за статического связывания других GLIBC библиотек, особенно "libpthread, "libm" и "libc", откуда приходят несовместимые вызовы к функциям "libnss""
Предварительное связывание обрывается с ошибкой"prelink: dso.c:306: fdopen_dso: Assertion `j == k' failed."
Это известная проблема, любезно продиагностирована здесь. Программа prelink не может справиться с выполняемыми файлами сжатыми методом UPX. Для версии prelink-20021213 нет другого способа решить эту проблему, кроме как спрятать выполняемые файлы во время предварительного связывания. Смотрите раздел конфигурации выше, где обсуждается вопрос о том, как это осуществить.
Предварительное связывание может решительно ускорить время запуска для некоторых больших приложений. Его поддержка встроена в дерево портежей. Предварительное связывание безопасно, т.к. вы всегда можете отменить его действие для любого выполняемого файла, если вы столкнетесь с какими-либо проблемами. Помните что когда вы обновляете glibc или другие библиотеки, с которыми вы осуществили предварительное связывание, вам надо будет перезапустить prelink. В общем, удачи!
Ссылка на оригинал: http://ru.gentoo-wiki.com/Тюнинг системы и запуска некоторых программ
С версии: 1.5
Многие программы и части системы Linux работают по-умолчанию не на полную "мощность", т.к. они должны корректно работать на широком спектре системных конфигураций. Иногда, это может создать иллюзию о том, что Linux - более медленная система чем другие. Это не так. В данной статье будут рассмотренны наиболее важные настройки, которые дадут вам наибольший прирост скорости и эффективности системы.
Тонкая настройка дисковой подсистемы (hdparm, планировщики ввода-вывода) перенесена в отдельную статью
Желательно использовать -vo xvidix или -vo xv, чтобы перенести нагрузку с CPU на вашу видео-карту
Собирайте mplayer с поддержкой особенностей именно вашего процессора (используйте emerge mplayer -pv - там много всего полезного), многие части кода mplayer оптимизированы для использования на конкретных процессорах.
При проигрывании используйте
hdparm -u1 -A1 -a 128 /dev/hda (или что там у вас вместо hda)
Ипользование команды nice при запуске mplayer с приоритетами -5 и -10 также дает преимущества
Как и для mplayer не забудьте собрать XMMS с поддержкой особенностей вашего процессора
Установите значение для output-buffer побольше (где-то 2500-3000)
Preferences → Output Plugin → Configure → Buffering → Buffer size(ms)
или то же самое, но для локализованной версии
Настройки → ВАШ плагин вывода звука → Настройка → Дополнительные настройки → Размер буфера (милисек)
Старайтесь использовать качественные звуковые карты, которые имеют более полную обработку звука на уровне железа
Ссылка на оригинал: http://ru.gentoo-wiki.com/Тюнинг настроек программ из семейства Mozilla
С версии: 1.5
Браузеры семейства Mozilla имеют большое количество настроек, все из которых легко доступны, если набрать в строке адреса вместо URL строку 'about:config'. Следующие пять настроек позволят ускорить загрузку страниц:
network.http.pipelining
network.http.pipelining.firstrequest
network.http.pipelining.maxrequests
network.http.proxy.pipelining
nglayout.initialpaint.delay
Настройка pipelining позволит браузеру делать одновременно несколько запросов к серверу. По-умолчанию используется одно соединение. Соответственно, значения network.http.pipelining, network.http.pipelining.firstrequest и network.http.proxy.pipelining следует выставить в true. Параметр network.http.pipelining.maxrequests отвечает за максимальное количество соединений. Но не стоит его делать слишком большим, т.к. это может привести к ошибкам при загрузке, рекомендуется выставить его в районе 12. И, наконец, nglayout.initialpaint.delay это визуальное ускорение, то есть задержка между тем как браузер начал получать ответ от сервера и началом отображения в окне браузера. Стоит поставить здесь 0 т.к. это позволит вам получить доступ к уже загруженной части страницы.
Примечание: вторая и пятая настройки по пока невыясненным причинам могут отсутствовать в вашем браузере. Чтобы их задействовать, можно добавить их вручную (правая кнопка мыши→New→тип значения).
browser.turbo.enabled
И выставляем ему значение 'true'
Далее ищем
network.http.max-connections-per-server
network.http.max-persistent-connections-per-proxy
network.http.max-persistent-connections-per-server
Выставляем всем этим параметрам значение '8'
С версий Firefox 1.5.x и Seamonkey 1.0.x стала доступна функция быстрого перехода по открытым ранее страницам за счет хранения отрендереной страницы в оперативной памяти. Не всем это понравилось т.к. броузер стал потреблять больше оперативной памяти и много и в качестве лекарства предлагали отключить эту функцию, установив в about:config опцию
browser.cache.memory.enable
соответственно в false. В то время как можно тонко оттюнинговать отведенный для этой функции размер памяти с помощью опции
browser.cache.memory.capacity
Которая по умолчанию отсутствует, соответственно тип имеет - integer, а значение задается в килобайтах. Проверить изменения, а также просто просматривать сатистику кешей (memory и disk) можно открыв about:cache до и после.
Есть две опции для включени/выключения логотипов сайтов в табах и адресной стрке:
browser.chrome.favicons boolean
browser.chrome.site_icons boolean
Как я понял это два стандарта (если не прав, поправьте[favicon.ico обычно лежит в корне сайта, как обстоит с site_icon не знаю]). Например gentoo.ru использует favicon, а на странице mult.ru (непосредственно на той на каторой загружается выбранный мульт, на главной странице никакого лого не показывается) показывалось лого при выключенном favicons и включенном site_icons.
Не знаю как вам а мне в Firefox нравится функция сохраняющая и соответственно показывающая эти самые лого при просмотре закладок. И перейдя с недавних пор на Seamonkey мне очень ее недоставало, ибо зрительно с ней гораздо удобней отыскивать нужную закладку, но по умолчанию эта функция там отключена. А управляется она оказывается опцией
browser.chrome.load_toolbar_icons integer
0 - соответственно отключена
1 - включена (но сохраняются только при следующем после включения, посещении сайта)
2 - включаются иконки для всех сайтов для которых это возможно (толком не понял, толи проверяет все сайты на их наличие [и тогда не понятно при каждом запуске или... ?], толи показывает сохраненные ранее т.к. закладки я скопировал из Firefox)
Итак с недавних пор появилась такая небольшая функция как thumbnail просматриваемой картинки на табе и в адресной строке, но к сожалению у некоторых эта малозначимая функция вызывает тормоза интерфейса, но не все знают как ее отключить не отключая favicon(логотип сайта). Делается это с помощью опции
browser.chrome.image_icons.max_size
для которой можно задать размер картинки, по умолчанию ее значение 1024 (килобайт или разрешение?), соответственно чтобы отключить ее, нужно установить значение 0.
Ссылка на оригинал: http://www.opennet.ru/base/sys/htparm_tune.txt.html
Перенесено в: 1.5
К сожалению настройки по-умолчанию для IDE жёстких дисков сделаны с уклоном в надёжность работы, в том числе на некачественном оборудовании. На большинстве же современных материнских плат и жёстких дисков можно заметно увеличить производительность IDE подсистемы, причём это не потребует много времени.
Для получения характеристик IDE устройства выполните команду:
hdparm -i /dev/hda
Вместо /dev/hda можно указать любое другое IDE устройство
Расшифровка
Max Mult Sect?: Это поле содержит максимальное число секторов, которое ваш жесткий диск может прочитать за «один присест».
Mult Sect?: Текущая настройка количества секторов, считываемых за один раз.
PIO modes и DMA modes: Здесь перечисляются режимы, которые поддерживает жесткий диск. Режим, помеченный символом «звездочка» (*), является текущим.
Advanced PM?: Признак 'yes' указывает на то, что жесткий диск поддерживает APM (Advanced Power Management – Расширенное Управление Питанием).
Запустив другую команду, вы получите дополнительную информацию:
darkstar:$ hdparm /dev/hda
Результат работы команды:
/dev/hda:
multcount = 0 (on)
I / O? support = 0 (16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
nowerr = 0 (off)
readonly = 0 (off)
readahead = 8 (on)
geometry = 2482/255/63, sectors = 39876480, start = 0
Коротко...
multcount – число секторов, считываемых одновременно;
I / O? support – режим обмена с жестким диском (16/32/32sync);
using_dma – указывает, используется ли в настоящий момент режим DMA или нет;
keepsettings – указывает, сохраняются ли настройки после программного сброса (изменять эту настройку не рекомендуется, если вы не уверены в том, что делаете);
readonly – обычно установлен в 1 только для CD-ROM, этот флаг сообщает системе является ли устройство read-only или нет;
readahead – количество секторов для опережающего чтения;
ПРЕДУПРЕЖДЕНИЕ! Неправильная настройка может привести к потере данных на
жёстком диске, а возможно и самого дика.
I / O? Support
-с0 — установка 16-и битного режима (по-умолчанию)\\
-c1 — установка 32-х битного режима (обычно то, что вам нужно)\\
-c3 — установка 32-х битного синхронного режима (мне не известно, когда именно это надо)
Multicount
Количество секторов передаваемых сразу (одним блоком). Степень двойки, максимальное число — параметр Max Mult Sect? в выводе hdparm -i. Чаще всего вам именно его и нужно указывать.
Включение DMA
Большинство современных чипсетов и HDD поддерживают DMA под линуксом. Для некоторых самых новых чипсетов в данный момент поддержки DMA может не быть, однако это не так часто бывает. Обычно в течении нескольких недель после выхода нового чипсета появляется его поддержка в последнем ядре, так что если DMA у вас не включается, то следует, скорее всего, обновить ядро.
-d0 — запрещение DMA\\
-d1 — включение DMA
DMA mode и PIO mode
Самая опасная настройка — её неправильное использование чаще всего приводит
к повреждению данных или оборудования.
-X<число> — установка режима PIO или DMA
Режимы multiword DMA:
32 (базовое число) + номер режима:
-X32 — mdma0
-X33 — mdma1
-X34 — mdma2
Для PIO базовое число 8, для Ultra DMA? 64.
-X64 — udma0
-X65 — udma1
-X66 — udma2
-X67 — udma3
-X68 — udma4
-X69 — udma5
Readahead (опережающее чтение)
На сколько секторов вперёд читать при запросе. Ускоряет производительность
при чтении файлов большого размера, однако замедляет работу с файлами
небольшого размера.
Лучше всего установить то же значение, что и для multicount.
-aN — опережающее чтение N секторов
Тестирование
Для тестирования наберите:
hdparm -t <имя устройства>
Желательно это делать, когда заметной дисковой активности нет.
Потом попробуйте какой-нибудь вариант конфигурации, например:
hdparm -u1c1d1m8a8 <имя устройства>
После чего опять повторите:
hdparm -t <имя устройства>
И сравните результаты.
По результату этого теста не стоит подбирать опции -a и -m, для этого лучим тестом будут реальные приложения, исполняемые на вашей машине. Если это домашняя машина, а не боевой сервер, на котором важна сверхтонкая подстройка (но на таких серверах редко оказываются IDE-диски, о которых здесь идёт речь), то тогда параметр multicount (-m) ставите на максимум, а параметр read-ahead (-a) равным multicount.
Ссылка на оригинал: http://ru.gentoo-wiki.com/Ускорение загрузки системы
Перенесено в: 1.5
Одно из достоинств Gentoo Linux - это возможность настроить и оптимизировать буквально ВСЮ систему, в том числе и её загрузку. Данное направление оптимизации практически неисчерпаемо. При желании (но и при большом риске убить систему) загрузку можно довести и до нескольких секунд. Здесь же мы рассмотрим некоторые наиболее простые и безопасные методы ускорения загрузки.
Параллельный запуск
Первое, что может дать заметный прирост скорости загрузки, это распараллеливание запуска системных сервисов. В файле /etc/conf.d/rc замените NO на YES в переменной RC_PARALLEL_STARTUP. Файл: /etc/conf.d/rc
...
RC_PARALLEL_STARTUP="YES"
...
Если у вас нет такой переменной, обновите пакет baselayout emerge -u baselayout
Примечание: Если эта настройка создаст проблемы при загрузке (некоторые сервисы могут пытаться загрузиться не тогда, когда это нужно), то верните значение NO.
Значительно был улучшен механизм параллельного запуска в новых (нестабильных) версиях baselayout echo "sys-apps/baselayout ~x86" >> /etc/portage/package.keywords emerge sync && emerge sys-apps/baselayout -u
Для совсем реактивного запуска используйте initng
emerge sys-apps/initng
Если вы часто работаете без подключения к локальной сети, то наверняка заметили, как много времени уходит на определение настроек сети (точнее, на определение того, что настраивать нечего). В этом случае поможет демон ifplugd, который определяет, подключен ли сетевой кабель (точнее, активна ли сеть). Итак:
emerge -n ifplugd
теперь добавляем ifplugd в список запускаемых сервисов:
rc-update add ifplugd boot
Обновление зависимостей и переменных окружения
Каждый раз при загрузке Gentoo обновляет зависимости модулей и переменные окружения, разумеется, что это имеет смысл лишь тогда, когда вы действительно внесли изменения в вашу систему. Чтобы это осуществить, сделаем следующие изменения.
Меняем:
Файл: /etc/init.d/modules - оригинал
...
ebegin "Calculating module dependencies"
/sbin/modules-update &>/dev/null
eend $? "Failed to calculate dependencies"
...
Файл: /etc/init.d/modules - замена
...
if [ /etc/modules.d -nt /etc/modules.conf ]
then
ebegin "Calculating module dependencies"
/sbin/modules-update &>/dev/null
eend $? "Failed to calculate dependencies"
else
einfo "Module dependencies are up-to-date"
fi
...
Меняем:
Файл: /etc/init.d/bootmisc - оригинал
...
if [ -x /sbin/env-update.sh ]
then
ebegin "Updating environment"
/sbin/env-update.sh >/dev/null
eend 0
fi
...
Файл: /etc/init.d/bootmisc - замена
...
if [ -x /sbin/env-update.sh ]
then
if [ /etc/env.d -nt /etc/profile.env ]
then
ebegin "Updating environment"
/sbin/env-update.sh >/dev/null
eend 0
else
einfo "Environment up-to-date"
fi
fi
...
Примечание: при использовании данного трюка следует быть внимательным при обновлении baselayout, т.к. обновление каждый раз будет пытаться вернуть изменения, сделанные вами.
Можно подправить сервис localmount, чтобы он монтировал локальные файловые системы не одну за другой, а все сразу.
Замените:
Файл: /etc/init.d/localmount - оригинал
...
mount -at ... >/dev/null
...
Файл: /etc/init.d/localmount - замена
...
mount -aFt ... >/dev/null
...