Инструменты пользователя

Инструменты сайта



// Обновлённый графический стек в Ubuntu/Mint

Собственно, не только стек, но и ядро 3.19

Основная ссылка: http://www.opennet.ru/opennews/art.shtml?num=42744

Команда для обновления:

sudo apt-get install --install-recommends linux-generic-lts-vivid xserver-xorg-core-lts-vivid xserver-xorg-lts-vivid xserver-xorg-video-all-lts-vivid xserver-xorg-input-all-lts-vivid libwayland-egl1-mesa-lts-vivid

Стоит отметить, что при наличии PPA xorg-edgers у вас не получится обновиться: нужно сначала вычистить этот PPA и все установленные из него пакеты заменить на дистрибутивные. Но воспользоваться для этого ppa-purge не получится: удивитесь количеству конфликтов.

Я делал вручную по следующему алгоритму…

ВНИМАНИЕ!!! СЛЕДУЙТЕ ДАННЫМ ИНСТРУКЦИЯМ ТОЛЬКО В СЛУЧАЕ, ЕСЛИ ВЫ РЕАЛЬНО ПОНИМАЕТЕ, ЧТО ДЕЛАЕТЕ. УБИТЬ СИСТЕМУ ТАК ПРОЩЕ ПРОСТОГО.

Перво-наперво: выполняйте команды из чистой консоли, а не из терминала. Если вы не понимаете о чём речь, лучше тут и остановиться.

Далее, для простоты на x86_64 системах стоит удалить i386 пакеты - они ставились, например, при установке Skype, TeamViewer или Wine. Соответсвенно, сами программы тоже снесутся. На всякий случай стоит сохранить список:

dpkg -l | grep :i386 | awk '{print $2}' > i386_list.txt

После чего нужно их удалить:

dpkg -l | grep :i386 | awk '{print $2}' | xargs sudo apt-get remove

Нет стоит использовать purge на этой стадии.

Затем нужно удалить в настройках apt репозиторий xorg-edgers и обновить список пакетов:

sudo apt-get update

После, нужно заменить все пакеты в названии которых (точнее версии) содержатся слова xedgers ,sarvatt и ricotz, а так же пакеты:

  • ppa-purge
  • wayland
  • i915

которые содержатся в данном репозитории, но не соответствует правилам вышеприведённым правилам именования, на пакеты из основного репозитория.

Сделать этом можно в два этапа. Сначала удаляем пакеты игнорируя все зависимости:

dpkg -l | grep 'xedgers\|sarvatt\|ricotz' | awk '{print $2}' | xargs sudo dpkg -r --force-depends ppa-purge wayland i915

Затем восстановить поломанные зависимости:

sudo apt-get install -f

Поставятся уже дистрибутивные пакеты.

После этого можно восстановить i386 пакеты и доставить пакеты ppa-purge, i915, если необходимо.

После данных действий, можно будет обновить стек xorg.

// Калькулятор X11 Modeline

Да, времена, когда нужно было считать модлайны, дабы выжать из своего монитора и видюхи максимум уже прошли (вздох, вспомнив пару ADI Microscan 4V и S3 Trio 64V+). Но если вас настигла проблема или вдруг, как мне, для тестов, потребовалось нестандартное разрешение экрана, то вот простой калькулятор: http://www.arachnoid.com/modelines/

Ниже по тексту идёт теория, а так же информация о том, куда нужно вставлять полученный модлайн. Про калькулятор написал, что простой. Не хороший, а простой. Почему так? А потому, что очень много тонких настроек скрыто, по сути, вы задаёте жалемое разрешение и частоту обновления. Ну а для более тонкой настройки есть и другие, типа: http://xtiming.sourceforge.net/cgi-bin/xtiming.pl

В оффлайне, аналогами этих калькуляторов, пожалуй будут: gtf и xvidtune

Первая прячется в пакете (debian-based) xserver-xorg-core, вторая в пакете x11-xserver-utils.

Пользоватся gtf так же просто как первым описанным калькулятором, просто передаём ей разрешение и частоту на вход, получаем результат:

$ gtf 800 480 60

  # 800x480 @ 60.00 Hz (GTF) hsync: 29.82 kHz; pclk: 29.58 MHz
  Modeline "800x480_60.00"  29.58  800 816 896 992  480 481 484 497  -HSync +Vsync

Второй, в интерактивном режиме тюнинм.

// Долго запускаются Xlib/Xt приложения

Столкнулся давно с проблемой: приложения написанные с использованием только Xlib и Xt, например,xclock, xfontsel, или удобная тюнинговалка xvidtune, или мелкая оповещалка xmessage, очень долго запускаются, до 15-20 секунд, при этом давая значительную нагрузку на процессор. Если запускать в терминале, то обычно получаем, среди прочего, такую строку:

Warning: Missing charsets in String to FontSet conversion

Так как эти приложения использовал достаточно редко, то не обращал внимание, но сегодня что-то достало, решил разобраться. Беглый поиск привел на эту страницу: http://www.holoweb.net/~liam/fonts/common-linux-font-problems.html (искать по фразе «Everything starts up really slowly»). Информация старая, ещё для XFree86, ориентировочно 2002 года, но, с небольшими поправками, не потерявшая актуальность и сегодня.

В общих чертах: проблема в fontconfig и локалях Xorg, где указаны кодировки для шрифтов, которых нет в системе. Путей решения получается три:

  1. Запускать через приведенный там скрипт nolocale, добавив туда ещё сточку:
    export LANG=
  2. Поставить шрифты со всеми нужными кодировками
  3. Отредактировать файл локали, убрав (закоментировав) использование несуществующих кодировок

Так как первый способ неудобен, а второй накладен, решил сделать по последнему варианту. Итак, рецепт для ArchLinux (с небольшой адаптацией последнего пункта подходит и для любого другого дистрибутива)

Для начала нужно понять шрифтов в каких кодировках у нас нет.

Для этого бредём в директорию /usr/share/X11/locale/<ВАША_ЛОКАЛЬ>. У меня локаль ru_RU.UTF-8, поэтому директория: /usr/share/X11/locale/ru_RU.UTF-8 и выполним там команду:

cat XLC_LOCALE | grep name | grep -v 'object_name\|encoding_name'

В результате получим примерно такой вывод:

		name	ISO8859-1:GL
		name	ISO8859-1:GR
		name	KOI8-R:GR
		name	MICROSOFT-CP1251:GR
		name	ISO8859-5:GR
		name	JISX0208.1983-0:GL
		name	KSC5601.1987-0:GL
		name	GB2312.1980-0:GL
		name	JISX0201.1976-0:GR
		name	ISO10646-1

На то, что после двоеточия не обращаем внимания, итого, кодировка состоит из двух частей, разделенных «-»: CHARSET_REGISTRY и CHARSET_ENCODING (за подробностями сюда: http://lesstif.sourceforge.net/doc/super-ux/g1ae04e/chap5.html)

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

Итак, шрифты в X11 издревле задавались хитрой строчкой, поля в которой были разделены знаком «-», последние два элемента как раз и есть CHARSET_REGISTRY и CHARSET_ENCODING (в терминах xfontsel: rgstry и encdng соответственно). Теперь просто проверяем по последним двум полям, что есть все комбинации из вышеполученных rgstry-encdng (на регистр внимания не обращаем), те, которые не находим помечаем.

Теперь возвращаемся в каталог с локалью, открываем файл XLC_LOCALE на редактирование находим секцию с несуществующей кодировкой и комментируем её.

У себя я не нашел шрифтов в кодировке microsoft-cp1251 (есть только cp1252), поэтому полностью закомментированная секция выглядит теперь так:

#	fs3 class (MICROSOFT-CP1251)
#fs3	{
#	charset	{
#		name	MICROSOFT-CP1251:GR
#	}
#	font	{
#		primary	MICROSOFT-CP1251:GR
#	}
#}

Все, сохраняемся и выходим. Проверяем, приложения должны стартовать практически мгновенно.

Ну и последний штрих для ArhLinux. Дабы уберечь от перезаписывания этого файла при обновлениях пакета libx11 (а именно ему принадлежат эти файлы локали), его нужно «замаскировать». Для чего открываем на редактирование файл /etc/pacman.conf, находим параметр NoUpgrade и приводим его примерно к такому виду:

NoUpgrade    =  usr/share/X11/locale/ru_RU.UTF-8/XLC_LOCALE

Теперь при обновлениях, если файл в пакете изменился, он будет ставиться под именем XLC_LOCALE.pacnew и соответствующим предупреждением на экране и в логе. Дальнейшие шаги по поддержанию в актуальном состоянии зависят от вас.

Ну и последнее замечание, описанной процедурой можно и просто найти шрифтов в каких кодировках нет в системе и просто поставить их, если они у вас имеются :)

// Xorg 1.8 в extra

Собственно сабж, подробности: http://www.archlinux.org/news/502/

Для пользователей старых карт nVidia небольшая засада.