воскресенье, 7 октября 2012 г.

Проблемы с Х-ами после обновления

В одной из предыдущих заметок был описан процесс обновления системы Calculate Linux. Если во время этого процесса обновляется также и ядро, то необходимо проделать еще дополнительные действия.

В моем случае после обновления перестала загружаться графика. Это произошло потому, что драйвера для моей встроенной видеокарты Nvidia представлены в виде модуля ядра. Модуль был собран для предыдущей (не обновленной) версии ядра и с новым ядром перестал запускаться. В этом случае помогает пересборка модулей ядра, выполняемая командой:

# module-rebuild -X rebuild

Но такой фокус проходит не всегда. Например, для видеокарты intel (драйвера встроены в ядро) нужно пересобрать несколько пакетов: xorg-server, xorg-drivers и xf86-video-intel. Делается это командой:

# emerge -1 xorg-server xorg-drivers xf86-video-intel

Флаг -1 нужен, чтобы не записывать в world имена устанавливаемых пакетов, поскольку эти пакеты уже содержатся в мета-пакетах дистрибутива. 

Переустановка одного только драйвера xf86-video-intel ситуацию не исправляет.

Могу предположить, что описанные действия (с небольшими изменениями) могут применяться практически для всех видеокарт.

суббота, 6 октября 2012 г.

Добавление Windows в меню загрузки Grub2

При очередной загрузке компьютера было обнаружено отсутствие пункта загрузки Windows в меню Grub. Встал вопрос - как его туда добавить.

После недолгих поисков было выяснено, что в дистрибутиве установлен Grub2. Как известно этот загрузчик не позволяет напрямую редактировать файл конфигурации (вообще-то позволяет, просто при очередном обновлении он его перезапишет) - он создает его автоматически с помощью скриптов, расположенных в каталоге /etc/grub.d. Посмотрим, что там есть:

# ls /etc/grub.d

00_header
10_linux
20_linux_xen  
30_os-prober
39_memtest86+
40_custom
41_custom

Скрипты из этого каталога выполняются по порядку от меньшего номера к большему.

Скрипт 00_header считывает настройки из файла /etc/default/grub. Там содержатся общие настройки вроде разрешения экрана при загрузке, фоновой картинки и т.п.

Скрипт 10_linux проверяет какие есть ядра linux и добавляет их в меню загрузки. 20_linux_xen - специфический скрипт для систем, работающих с XEN виртуализацией.

Скрипт 30_os-prober проверяет наличие других операционных систем, таких как Windows (требует наличия установленного  sys-boot/os-prober), и добавляет их в меню.

Скрипт 39_memtest86+ добавляет в меню пункты для проверки памяти. Ну а номера 40 и 41 предназначены для дополнительных пользовательских скриптов.

Поскольку все скрипты на месте, то нам осталось только сгенерировать конфигурационный файл. Делается это командой:


# grub-mkconfig -o /boot/grub/grub.cfg

которая пересоздаст файл /boot/grub/grub.cfg. Это тот самый файл, который можно отредактировать и вручную, но прийдется это делать после каждого обновления. 

пятница, 5 октября 2012 г.

Обновление системы

Для поддержания системы в актуальном состоянии необходимо обновлять установленные программы. Для установки программ (равно как и их обновления) используется программа emerge. Но сначала необходимо обновить локальную базу прорграмм с помощью команды

# eix-sync

Эта команда выполняет последовательно обновление оверлеев, портежей и базы пакетов eix.

По умолчанию в Calculate используется бинарный профиль - он подойдет для тех, кто не любит особенно заморачиваться, поскольку отлично работает. Но настоящий линуксоид хочет получить все. Чтобы узнать какой профиль выбран в нашей системе нужно выполнить команду

# eselect profile list

Она выдаст нумерованный список доступных профилей, где звездочкой помечен выбранный для нашей системы. Бинарные профили помечены "binary". Чтобы изменить профиль выполним команду

# eselect profile set X

где X - номер профиля.

Теперь можно обновлять систему. Запускаем команду

# emerge -uDNa --keep-going world

Флаг -u, собственно, и означает, что мы хотим обновить систему.

Флаг -D (или --deep) заставляет emerge обновлять не только явно установленные нами пакеты, но и их зависимости.

Если мы меняли USE-флаги, то нужно добавить флаг -N (или --newuse). Тогда Portage проверит требует ли изменение устрановки новых пакетов или перекомпиляции существующих.

Флаг -a (--ask) перед обновлением выведет список пакетов и спросит разрешения продолжить установку.

Обычно при установке если какой-нибудь пакет собирается с ошибкой, команда emerge выводит эту ошибку в консоль и завершается. Флаг --keep-going заставляет emerge пересчитать зависимости заново после ошибки и продолжить установку тех пакетов, для которых ошибочный пакет не является необходимым.

После обновления может случиться нарушение зависимостей. Чтобы найти и исправить их можно (или даже нужно) выполнить команду:

# revdep-rebuild

Также во время обновления могут изменятся файлы настроек, но они не заменяются сразу, а предлагается воспользоваться специальной утилитой:

# dispatch-conf

После запуска программа будет выводить на экран содержимое подлежащего изменению файла с пометками "+", если эта строка добавлена в новом файле и "-", если строка в новом файле удалена. Чтобы согласится с изменениями и использовать новый конфигурационный файл нужно нажать "u", а чтобы пропустить изменение настроек - "z".

Источник здесь.

четверг, 4 октября 2012 г.

Оптимизация Calculate

На днях удалил Debian со своего домашнего копа и установил дистрибутив Calculate Linux 12.0.3 (номер версии не важен - у дистриба непрерывный цикл обновлений). Не потому, что Debian так уж плох, просто Gentoo-подобные дистрибутивы вызывают в моей душе больший трепет.

В этой статье дан своеобразный каркас для проведения оптимизации Gentoo подобного дистрибутива. Это значит, что небольшие изменения будут описаны прямо здесь, а изменения сложные, требующие пояснений, многочисленные и т. п. будут описаны в отдельных статьях. Здесь будут приведены ссылки на эти статьи - своего рода оглавление.

Начнем настройку производительности с инструкции на сайте дистрибутива.

Первым делом прописываем параметр rc_parallel="YES" в файле /etc/rc.conf, что позволит (как обещают разработчики) выиграть несколько секунд при загрузке благодаря "распараллеливанию" запуска процессов.
  
Добавляем PRELINKING="yes" в файл /etc/conf.d/prelink, но там уже все есть :-) Prelink - это механизм предварительного связывания пакетов.

И, наконец, самое главное - флаги компиляции. Это то, в чем вся сила Gentoo-подобных дистрибутивов - возможность влиять на зависимости, размер, доступные функции (и т. п.) устанавливаемого (точнее, компилируемого) ПО. В общем, вся та гибкость которую предоставляет Linux (свободное ПО). Начать стоит с настройки файла /etc/make.conf.

Для повышения быстродействия большое значение имеют параметры жесткого диска HDD. Здесь есть два пути. Первый - настройка таблицы разделов, файловых систем на разделах, и файла /etc/fstab. Второй - настройка параметров жесткого диска с помощью программы hdparm. Если у вас диск SSD, то настройка производится по другим правилам - многое не имеет смысла, что-то работает по другому, присутствуют параметры отсутствующие для HDD.

Следующий не менее важный, но самый сложный этап - настройка ядра.

Получаем слудующее оглавление:

  1. Настройка /etc/make.conf.
  2. Настройка HDD.
  3. Настройка ядра.