четверг, 11 марта 2010 г.

wine Disciples 2

Решил я тут поглядеть на Disciples 3. Игра красивая, занятная. Ставится вообще без бубна и идёт лучше пятых героев (правда, с nodvd от triviuma, который для hotfix 8, игра не запускается вообще, и юзать надо что-то предыдущее, например, nodvd для 5-го хотфикса; однако, сейвы работать не будут; c 7-м - вылетает при заходе в режим строительства). Вообще, насколько я понял, игру допилят только к выходу европейской версии. По причине того, что без сейвов играть скучно (и спустя часа эдак 3 пропали текстуры земли в главном режиме) я решил глянуть вторую часть. О чём и пойдёт речь в данной заметке.

Итак, последняя часть у нас именуется "Восстание эльфов" (Rise of the elves). Аддон этот не требует наличия ничего кроме свободного места на диске. Перед установкой я, дабы не наступить лишний раз на грабли, примонтировал оба образа (образы от Руссобит-М) и скопировал содержимое в отдельную папку, из которой уже и производил установку. Ставится оно без шуму и пыли.

Вообще говоря, по поводу установок виндовых игр/приложений. Если игра требует каких - либо вендовых либ: будть то директиксовые либы, или что-нибудь типа msvbvm60.dll; или же требует наложения патчей на какие-либо элементы самого вайна, то для такого приложения лучше завести отдельное окружение:
env WINEPREFIX="/home/username/.wine_appname" winecfg
Соответственно, для запуска бинарника, например, установочного нужно писать следующее:
env WINEPREFIX="/home/username/.wine_appname" wine setup.exe
Ну ты понел.
Для всех программ, использующих MS .NET Framework лучше завести окружение типа ~/.wine_dotnet и все эти программы ставить в него.
Софт же, который не требует никаких лишних телодвижений, изменений реестра и прочего прочего, лучше ставить в окружение по умолчанию (~/.wine). Так и установщики пускать проще (простым двойным тычком) и свободного места на диске больше.

Для игры, являющейся предметом разговора, нужно завести отдельное окружение (напр. ~/.wine_disciples2). Для тех кому надо только команды посмотреть:

env WINEPREFIX="$HOME/.wine_disciples2" winecfg

$HOME - это переменная окружения, которая содержит полный путь до домашней директории текущего пользователя. Интерпретатор автоматически заменяет её на соответствующее ей значение. То есть, фактически, вышеуказанная команда "введётся" так: env WINEPREFIX="/home/username/.wine_disciples2" winecfg, где username - имя вашей учётной записи.

Создавать отдельное окружение для disciples 2 необходимо, так как данное приложение не работает без эмуляции виртуального рабочего стола. Поэтому, в winecfg переходим во вкладку "графика" и включаем эмуляцию рабочего стола, например, 1024х768.

Если не включить эмуляцию рабочего стола, то при попытке запустить Disciples 2 вы скорее всего услышите музыку заставки, но не увидите никакой картинки (на экране будет изображено последнне, что было на нём до запуска игры).

После успешной установки игры необходимо сначала её настроить. Для этого запускаем соответствующий бинарник:

env WINEPREFIX="$HOME/.wine_disciples2" wine "C:\путь_до_папки_с_игрой\ConfigEditor.exe"

Если вы создали ярлык на рабочем столе, то всю команду можно скопировать из него, заменив, конечно, Discipl2.exe на ConfigEditor.exe. В настройках игры необходимо включить поддержку Direct3D (иначе ролики, главное меню будут не на весь экран, и в игре будет тормозить мышка). Выставляем также соответствующее рабочему столу разрешение. Например, 1024х768. Да, и игра у нас должна быть на полный экран, а не в окне. Иначе вы встретите сообщение "Can't initialize Disciples 2".

За сим всё. Игра запускается и играется без нареканий.

Теперь пара слов об издании Disciples 2 Gold от Акеллы. Установщик игры не производит копирования целой кучи весьма важных файлов (на данной стадии даблтык по ярлыку на рабочем столе не приводит вообще ни к чему). Поэтому, после окончания установки игры необходимо скопировать по соответствующим местам файлы из папки data на диске с игрой. После того, как скопируете, нужно перейти файловым менеджером в папку с игрой, и внимательно посмотреть, что же там скопировалось (ибо теперь при попытке запустить игру вылетает сообщение "Can't initialize Disciples 2"). Поскольку никсы система регистрозависимая, вы там увидите такие папки как Globals и globals, Interf и interf и так далее. Собственно говоря, переносим файлы из папки с маленькой буквы в соответствующую папку с большой и удаляем пустую. У меня ещё папка Video была с маленькой буквы. Я это дело поправил. После чего игру можно запускать.

Да, конечно, nocd/nodvd наше всё.

Живи и процветай!

воскресенье, 7 марта 2010 г.

Прыгающий нод lirc'а

Вечно забываю поститься тут. Буду навёрстывать.

Данная заметка всецело пригодиться пользователям пультов дистанционного управления для своих электронно-вычислительных машин (напр. продукция фирмы avermedia). Пользователи, активно использующие данные девайсы, наверняка сталкивались с внезапно не реагирующим на манипуляции курсором мыши прямо сразу после загрузки иксов и, всё так же внезапно, своей машиной, напрочь не реагирующей на команды, посылаемые с, собственно, ПДУ.

Вышеописанную проблему можно решить двумя способами:
1. Перетыкнуть (отсоединить-подсоединить) манипулятор типа "мышь". Мышка сразу заработает. Делать cat на всяческие /dev/input/event* и смотреть, реагирует ли оно на нажатия клавиш на ПДУ. Найденный прописать в /etc/conf.d/lircd и перезапустить lircd. Не забыть запустить офигевший от не того девайса irexec. Пульт работает. Повторять по мере необходимости и надеятся, что когда-нибудь оно само рассосётся.

2. Первый способ, конечно, действенный, но от него, почему-то, очень быстро устаёшь. :) Поэтому, легче всего немножко разобраться во всём этом.

Вообще говоря, раньше была очень удобоваримая нода типа pci-blablabla-blabla-event-ir, лежала она по адресу /dev/input/by-path/ и никуда она оттуда не девалась. Поэтому проблемы не существовало. Однако, после очередного когда-то произведённого emerge -DNu world данная проблема себя проявила: статическая нода исчезла и файлик конфигурации lirc'а пришлось исправить на event4 (например 4, у вас может быть, и скорее всего, будет по-другому). Собственно, работало оно очень долго, до очередного апдейта, после которого уже индекс ноды генерился как Бог на душу пошлёт (в порядке, в котором девайсы появляются в системе).


К чему я это? Да к тому, что если снова сделать статический нод и прописать его в соответствующем месте в /etc/conf.d/lircd то о проблеме можно будет забыть (хотя бы до следующего апдейта xD). Сделать такое можно при помощи udev'a (почитать о нём можно на сайтах и в манах).
Итак, в кратце, удев у нас строго следует определённым правилам. Правила эти лежат в каталоге /etc/udev/rules.d/. Если там уже есть файл 10-local.rules, то писать новое правило можно в него. В противном случае создаём указанный файл самодержавно. Что же в него писать? Для начала нужно найти правильный event* в каталоге /dev/input/. Делаем cat /dev/input/event4 (тыкайте табом и смотрите, какие там есть, перебирайте), тыкаем кнопки на пульте. Если в консоле появляется вывод - вы нашли верный файл устройства.

Для удобства изложения, положим, event4 - файл верный. Вы же, далее по тексту, вместо event4 представляйте свой вариант верного имени.

Затем выполняем следующую команду (фактически - две команды): udevadm info -a -p `udevadm info -q path -n /dev/input/event4` (это не одинарная кавычка, а штрих, который находится на одной кнопке с тильдой и буквой "Ё"; набирается в английской раскладке; текст, обрамлённый данными знаками интерпретируется интерпретатором как отдельная команда; можно подставлять в иные команды; детально об этом можно почитать в книжках по интерпретатору Борна, например). В выводе данной команды нас интересуют параметры первого parent (родительского) девайса (в случае использования пульта ДУ через/от tv-тюнер(а)). Нужна нам строчка ATTRS{name} (у меня оно выглядит так: ATTRS{name}=="bttv IR (card=41)"). Копируем данную строчку в буфер обмена. Далее возвращаемся к нашим баранам. То есть, открываем/создаём файл /etc/udev/rules.d/10-local.rules и пишем в него следующее:

KERNEL=="event*", ATTRS{name}=="bttv IR (card=41)", SYMLINK+="irremctrl"

Обратите внимание: никаких переносов, ибо удев расценит перенесённую на другую строку часть как отдельное правило, и получится ноое знает что. Вместо ATTRS{name}=="bttv IR (card=41)" вставляем из буфера ту самую строчку, что скопировали в него ранее. По-русски данное правило звучит следующим образом: когда (если) в системе появится устройство, проименованное ядром как event*, у которого атрибут "имя" соответствует bttv IR (card=41) - создать дополнительный (прирастить) симлинк irremctrl (в каталоге /dev). Теперь остаётся только перезапустить удев (/etc/init.d/udev restart). После перезапуска удева появится новая нода: /dev/irremctrl. Открываем /etc/conf.d/lircd и в соответствующем месте, вместо чего-то типа
LIRCD_OPTS="--driver=dev/input -d /dev/input/event4 /etc/lircd.conf"
Прописываем что-то типа
LIRCD_OPTS="--driver=dev/input -d /dev/irremctrl /etc/lircd.conf"
То есть меняем /dev/input/event4 на /dev/irremctrl.
Перезапускаем lircd и запускаем irexec, конечно.

Вот и всё.
Живи и процветай!

вторник, 30 декабря 2008 г.

Enlightenment e17 svn: грабли evas и etk

В целом, значит. Если компиляция evas валится и перед смортью много раз громко кричит "initialization from incompatible pointer type", то это из-за влючённого флага cairo. Добавляем -cairo в use файл и собираем.
*** не волнуйтесь. Поддержка cairo в данной момент багонута и написана только на половину. Это слова одного из девов e17
Кроме того, чтобы компиляция etk ушла дальше for "fonts/Edje.Vera" font entry "Vera.ttf" compress, нужно добавить ему use fbcon (и перед этим пересобрать также evas и ecore с поддержкой fbcon).

Для сборки e17 юзайте гайд http://en.gentoo-wiki.com/wiki/E17

Почему, вообще, надо собирать из svn? Потому что снэпшот версии не содержат трея. Чтобы в e17 был tray нужно собрать engage.
При сборке engage вылазит No package 'ecore-desktop' found. Это потому, что по умолчанию оно отключено в ecore. Нужно в ecore-9999.ebuild изменить --disable-ecore-desktop на--enable-ecore-desktop. Обновить манифест и собирать. Но, лично у меня, оно всё равно вываливалось (econf failed). Так шта этат абатц чисто для того, чтоп самому не забыть, если соберусь - таки докопаться до истины. :)

вторник, 16 декабря 2008 г.

SynCE: Evolution contacts & internet through

Столкнулся снова с проблемой синхронизации адресной книги КПК (wm6.1) с Evolution.
Если оно ни в какую опять не хочет цеплять контакты из эволюшена, нужно в нём (в эволюшене) создать новую адресную книгу и переместить в неё все контакты из старой (ctrl+a, rmb click...). Затем с помощью тех же манипуляций возвращаем из новой в старую. И новую книгу (пустую) можно удалить. Теперь при синхронизации с помощью msynctool все контакты передадуться.
В принципе, это нужно, чтобы контакты стали "новыми". Тут фишка кагбэ в следующем: оно просто считает, что контакты кагбэ "старые". И поэтому они не передаются. Ибо попробуйте обновить любой контакт (даже не внося изменения, просто введите в любое поле единицу, сотрите её и нажмите ок) и синхронизировать зверя мсинктулом. Этот "обновленный" контакт педерастся. Передастся, в смысле. :)
Ранее, так же, был замечен баг: если хотя бы у одного контакта есть что-либо в поле "Примечание" (Notes) - контакты передаваться не будут. :)

Если зверёк не хочет лезть в инет через ББ (десктоп), то нужно действовать хитропопо. Нужно создать учётку (partnership) в ActiveSync под виндой (я это сделал в vmware). Синхронизировать ничего не нужно, поэтому, во избежании гемора с восстановлением контактов, галки у контактов, календаря и т.д. не ставьте. В настройках (или доп. параметрах) укажите, что компьютер подключён к интернету. После "ок" оно сохранит параметры на зверьке. Теперь, собсно, можно удалить (если указывали в параметрах записи контакты - они снесуться при удалении этой записи; поэтому, заранее продумайте момент - бекапить контакты или есть возможность восстановить из Эво) эту вендовую учётку со зверька (прям в активсинке). В инет оно теперь спокойно лазает теперь через usb. :)
Интересно, что указание подобного на самом звере в настройках адаптеров не даёт аналогичного эффекта.

вторник, 18 ноября 2008 г.

Figaro's Password Manager 2 (fpm2) ebuild

Сидел я, сидел. И подумал.
Как весело иметь генератор паролей. И централизировнное шифрованное хранилище для них.
Ну уссаца просто, как же прикольно.

Нарыл такой вот манагер. Написал ебилд - решил поделиться.

В своём оверлее (например, /usr/local/portage/) создаём (mkdir -p) x11-misc/fpm2 и кладём туда ебилд. Далее из этой же директории делаем ebuild fpm2-0.72.ebuild digest. И можно ставить.

Монтирование образов из pop-up меню по правому клику в Xfce

С образами дисков сталкиваемся мы очень часто. Обычно, для того, чтобы примонтировать образ диска нам нужно открыть консоль, перейти в директорию с образом, создать маунтпоинт и потом только набрать привычное mount -o loop (или fuseiso). В принципе, у всех нас, наверняка есть /mnt/iso и шаг создания маунтпоинта мы можем избежать. Но порой, всё - таки, бывает жутко лениво выпускать из левой руки чашку с чаем, прекращать ею чесать в затылке, или же просто вытаскивать из под 5-й точки в холодный день :) для того, чтоб всё это набрать. Можно, конечно, кричать, что это GUI - это для ламеров, но, когда юзаешь линух уже несколько лет - прикольно иметь простой гуй.

Юзаю я xfce4. В ней используется файловый менеджер Thunar. И речь тут идёт о том, как добавить возможность маунта образов в меню по клику правой кнопкой мыши на образе в этом браузере. О как. Собственно, едва не изобретя :) велосипед, я наткнулся на документацию Thunar' custom actions. Если настройки особых действий у вас в манагере нету, то надо поставить плагин thunar-uca (в Gentoo thunar ставится с ним).

Теперь сурово по пунктам, что нужно сделать:

1. Открываем файловый менеджер Thunar, тыкаем "Правка -> Настроить особые действия". Появится менюшка.
2. Нажимаем на кнопку с плюсиком справа.
3. В менюшке заполняем поля:
Имя: Монтировать образ
Описание: Создаёт точку монтирования и монтирует образ с помощью mount -o loop
Команда: mkdir Образ.%n && sudo mount -o loop %n ./Образ.%n && thunar Образ.%n

Можно поставить красивый значок. Например, в "Значки устройств" есть красивые диски, которые тут будут в кассу. :)
Теперь переходим во вкладку "Условия появления" во всё той же менюшке.
4. Заполняем поля:
Шаблон имени файла: *.iso
Галочку оставляем только у "Другие файлы".
5. ОК.

Так как стандартный mount не умеет монтировать всякие mdf-ы, советую поставить fuseiso (http://freshmeat.net/projects/fuseiso/).

Для монтирования с помощью fuseiso прямо из манагера выполняем следующие шаги:
1. Открываем файловый менеджер Thunar, тыкаем "Правка -> Настроить особые действия". Появится менюшка.
2. Нажимаем на кнопку с плюсиком справа.
3. В менюшке заполняем поля:
Имя: Монтировать образ (FUSE)
Описание: Создаёт точку монтирования и монтирует образ с помощью fuseiso
Команда: mkdir Образ.%n && fuseiso %n ./Образ.%n && thunar Образ.%n
Теперь переходим во вкладку "Условия появления" во всё той же менюшке.
4. Заполняем поля:
Шаблон имени файла: *.iso;*.bin;*.mdf;*.mds;*.nrg;*.img
Галочку оставляем только у "Другие файлы".
5. ОК.

И теперь, чтоб была возможность так же просто размонтировывать образы, делаем следующее:
1. Открываем файловый менеджер Thunar, тыкаем "Правка -> Настроить особые действия". Появится менюшка.
2. Нажимаем на кнопку с плюсиком справа.
3. В менюшке заполняем поля:
Имя: Размонтировать образ
Описание: Размонтирует образ и удаляет точку монтирования
Команда: sudo umount %n && rm -r %n
Теперь переходим во вкладку "Условия появления" во всё той же менюшке.
4. Заполняем поля:
Шаблон имени файла: Образ.*
Галочку оставляем только у "Папки".
5. ОК.

Yeah, Piece of cake. ;)

пятница, 17 октября 2008 г.

FlightGear CVS Concorde

(emerge cvs)
mkdir cvs
cd cvs
cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 login
Password: guest
cvs -d :pserver:cvsguest@cvs.flightgear.org:/var/cvs/FlightGear-0.9 co data/Aircraft/Concorde
sudo rm -r /usr/share/games/FlightGear/Aircraft/Concorde/
cp -r data/Aircraft/Concorde /usr/share/games/FlightGear/Aircraft/

Чтоб не забыть.
Люблю этот самолёт.