openSUSE@ARM

Оказывается, после того как OBS научился собирать пакеты под самые хитрые архитектуры, возникла логичная идея портировать openSUSE на ARM (v5 и v7). Некоторые пакеты уже доступны: http://download.opensuse.org/repositories/Ports:/ARM:/, есть описание в виде презентации на openSUSE conference '09. В ней же, объяснено о том, что такое прозрачная кросс-компиляция.

Ожидается, что к концу лета будет доступен полностью портированный openSUSE 11.2. В свете того, что на июль запланирован выход 11.3 следует ожидать, что вскоре будет готова и эта версия. В данный момент архитектура ARM в различных вариантах используется во множестве встраиваемых устройств, промышленных компьютеров, мобильных телефонов, в то же время и в некоторых моделях нетбуков.

ATI Mach64 X.org

Есть такая серия очень старых видеоадаптеров от ATI, но на них даже работает "3d ускорение", но с бубнами и танцами. И еще у меня очень глючит и дедлочится:

01:00.0 VGA compatible controller: ATI Technologies Inc 3D Rage Pro AGP 1X/2X (rev 5c)

возможно кому-то повезет больше. Инструкцию для настройки под openSUSE 11.2 оставил на форуме openSUSE: ATI Mach64

fuseiso

Утилита для монтирования .iso образа в user-space, не требует привилегий root.

fuseiso image.iso ./mountpoint

отмонтировать

fusermount -u ./mountpoint

openSUSE Build Service 1.7

Недавно был выпущен новый релиз OBS 1.7:

http://news.opensuse.org/2010/02/09/opensuse-build-service-1-7-now-available.

Представляет из себя значительно усовершенствованный продукт по сравнению с 1.6. Описания нововведений тут не будет, их можно прочитать в анонсе и инструкции. Особенно важно, что из интерфейса выкинута все символика openSUSE, а страница Server Status стала такой вебдванольной с кучей графиков: теперь смогу наблюдать свои собирающиеся два пакета в день в виде дельта-функций на этих графиках. При обновлении OBS потянул за собой рельсы 2.3 и кто-то из них еще потянул memcached.

Далее идет подробный список граблей, заботливо разложенных разработчиками:

  • Как и во всех прошлых версиях, в пакете obs-signd бинарик /usr/bin/sign едет без SUID-бита. Верные права:

    -rwsr-x--- 1 root obsrun 45710 Фев 9 11:47 sign
  • В /etc/init.d/obssignd традиционно не прописан лог-файл.
  • Рабочие анонсируют себя по SLP, выключить это можно OBS_USE_SLP="no" в /etc/sysconfig/obs-worker.
  • Переменная relsync_pool в BSConfig.pm должна быть проверена и выставлена в соответствии с желанием:

    http://lists.opensuse.org/archive/opensuse-buildservice/2010-01/msg00149.html
  • В cron добавлены правила для отрисовки графиков, которые запускаются от lighttpd:

    cron: Permission denied
  • Подробную инструкцию по миграции можно прочитать в README.UPDATE и ReleaseNotes.
  • Задачи из крона запускаются раз в минуту, что оставляет сообщения в /var/log/messages
  • Если рабочие обнаруживают присутствие kvm в системе — они запускаются с ключем --kvm, повергая этим скрипт build в полнейшее неработоспособное состояние

Цветной grep

В большинстве современных дистрибутивов программы из пакета grep, и некоторые программы из пакета coreutils(например ls) давно уже умеют выдавать разукрашенный вывод на консоль.

Если же почему-то вывод не цветной(администратор или мейнтейнеры пакетов установили такие настройки глобально), просто добавьте в ваш .bashrc или .aliases следующую строчку:

alias grep='grep --color=auto'

Цветовую схему можно настраивать, для этого служит переменная окружения GREP_COLORS: Grep Environment Variables.

django + lighttpd

Как заставить вместе работать lighttpd и django. Готовый пример конфигурации, которую необходимо складывать в vhosts.d:

$SERVER["socket"] == "0.0.0.0:8888" {
        server.document-root = "/srv/www/django/htdocs"

        url.access-deny = ( "~", ".inc", ".svn/" )

        fastcgi.server = (
                "/dispatch.fcgi" => (
                "main" => (
                        "socket" => "/srv/www/django/run/fcgi.sock",
                        "bin-path" => "/srv/www/django/manage.py runfcgi --pythonpath=/srv/www/django --settings=djangoapp.settings-production method=threaded",
                        "max-procs" => 2,
                        "check-local" => "disable",
                        "fix-root-scriptname" => "enable",
                )
                ),
        )

        alias.url = ( "/static" => "/srv/www/django/htdocs", )

        url.rewrite-once = (
                "^(/static.*)$" => "$1",
                "^/favicon\.ico$" => "/static/favicon.ico",
                "^(/.*)$" => "/dispatch.fcgi$1"
        )
}

Предполагается, что проект лежит в /srv/www/django/, где для него существует рабочая версия настроек в файле settings-production.py. lighttpd сам запустит fcgi-сервер в количестве max-procs экземпляров. Опция check-local необходима для того, чтобы отключить проверку существования файлов на локальной машине, которую делает lighttpd; так как запрашиваемые URL существуют лишь в логике django, а не в файловой системе.

Для правильной работы тегов типа {% url %} необходимо добавить строчку FORCE_SCRIPT_NAME = '' в настройки проекта написанного на django, иначе ко всем ссылкам в начало будет добавляться название /dispatch.fcgi.

xrandr

RandR(The X Resize and Rotate Extension) — это расширение сервера x11 позволяющее динамически менять разрешение экрана, его размер, ориентацию и другие параметры без перезапуска X-сессии. Может быть очень полезен при подключении мультимедийного проектора к ноутбуку. Взаимодействие пользователя осуществляется с помощью одноименной утилиты xrandr, хотя оконные менеджеры предоставляют свои графические обертки для работы с RandR.

xrandr оперирует с выходами(outputs), самый простой способ узнать их наименования и поддерживаемые параметры: xrandr --prop. Общий синтаксис: xrandr --output name --command. Подключая или отключая VGA-устройства во время работы компьютера можно использовать команду xrandr --output VGA --auto для того, чтобы разрешить вновь подключенный выход, или выключить отсоединенный. Есть отдельная команда xrandr --output VGA --off.

Может возникнуть такая ситуация, что экраны должны быть сконфигурированы для показа одно экрана(как в случае мультимедийных проекторов), либо для показа разных участков(два монитора): xrandr --output VGA --same-as LVDS (варианты --left-of, --right-of, --above, --below).

Разрешения двух выходов могут не совпадать, можно использовать команду xrandr --output VGA --mode mode для установки нужной моды, список доступных покажет команда --prop.

Когда физическое отношение сторон экранов двух выходов в режиме --same-as не совпадает(например, если ноутбук 16:10, а мультимедийный проектор 4:3), необходимо либо вырезать нужную часть экрана командой xrandr --output VGA --pos xxy, установив левый верхний угол в позицию x, y., либо использовать команды --scale, которые к сожалению поддерживаются только начиная с версии 1.3 протокола. К счастью, например okular в режиме показа презентаций оставляет черные поля по бокам слайдов 4:3, таким образом использование --pos даже предпочтительно, позволяя отцентрировать выход проектора, отрезав черные поля.