пʼятниця, 14 січня 2011 р.

KOMPAS 11 vs. WINE 1.2 - установка в Linux

По поводу этого вопроса много сказано в Интернете. Однако каждый раз — по разному. Давайте, наконец-то посмотрим правде в глаза и раскроим великую тайну всего человечества — можно ли заставить работать КОМПАС под вайном? Вот список всего, что я использовал:

     — Mandriva Linux 2010.2
     — wine 1.2-rc4 (стандартный пакет с дистрибьютива)
     — Пакет win32-библиотек
     — Kompas 3D ver.11

Набор стандартен. Многие для этого рекомендуют использовать пакет wine@etersoft, но и он не идеален — я заметил проблемы с курсором и подтормаживания, да и денежку приходится отдавать. От этой идеи пришлось отказаться и пробовать запустить КОМПАС под обычным wine`ом. И, конечно, многолетний мой опыт плясок с бубнами тут пригодился. Поэтому для упрощения жизни себе и не только я собрал все нужное в одном архиве, написал скриптовый инсталлятор и выложил в Интернете тут. Вот как его установить:
$ wget http://moemesto.ru/kondrat/file/10361410/kompas_wine_libs.tar.gz
$ tar -zxvf kompas_wine_libs.tar.gz && cd kompas_wine_libs
$ sh ./prep_inst_kompas
После установки появится программа настройки winecfg. В ней во вкладке «Libraries» в первую строку вставляем строку «msvcrt» (без кавычек) и жмем «Add» Так мы подменили динамическую библиотеку. Все, теперь можно приступать к установке. Все проходит гладко, но программа установки все-таки ругнется по поводу защиты HASP:
Игнорируем. После установки запустим Компас — запускной .desktop-файл лежит в папке«~/.local/share/applications/wine/Programs/АСКОН/КОМПАС-3D V11», который для удобстваможно скопировать на рабочий стол. Сразу перед взором нашим окно с ошибкой явится — опять про защиту лицензии:


Скорее всего Вы уже с ним знакомы. Я с этим справился, а вам не расскажу как — профессиональный секрет, попробуйте додумайтся сами:


понеділок, 10 січня 2011 р.

Задача: поставить драйвер видеокарты NVIDIA в Mandriva 2010

Проблема 1: не знаю как это сделать.
Проблема 2: не устанавливаются драйвера, скачанные с официального сайта.
Какой выбрать?
Сегодня мы попробуем решить эти две проблемы. Сначала давайте определимся, для каких целей и где мы будем использовать наш компьютер. Во-первых, для карточек Nvidia есть аж три драйвера: стандартный nv (пакет для установки — x11-driver-video-nv), немного более «продвинутый» и открытый nouveau (пакет для установки — x11-driver-video-nouveau) и закрытый пропиретарный nvidia. Первый хорошо использовать в офисе, например, чтобы работники в игры не играли. Он не поддерживает трехмерное ускорение, но можно смотреть фильмы, нормально работать с окнами. Именно за ним я вполне нормально прожил целых пол года на заре своего знакомства с линукс, но это от незнания. Второй драйвер, нуво, также открытый. Вот он уже вполне подходит для дома — умеет акселерацию и все, что из этого следует. К сожалению он имеет еще достаточно скудные возможности, недостаточно стабилен и во многом сильно уступает третьему драйверу — nvidia. Вот он все-таки отличный. По крайней мере намного качественнее других производителей, к примеру тех же ATI. Вот только лицензия не позволяет включать его в большинство дистрибьютивов, от куда и проблемы с установкой. Да, я знаю, что в репах мандривы есть и для третьего драйвер пакеты, но их ставить не так не интересно. Куда интереснее их собирать вручную. Делая это, вы рискуете научится! Вот и попробуем :)
Где взять?
Первые два — nv и nouveau есть в стандартных репозиториях в виде собранных пакетов. Просто ставим нужный пакет и все. Можно просто запустить drakx11, которая сама вытянет с интернета или диска нужные драйвера, установит их и настроит так, чтобы работало. Это самый простой способ, не требующий лишних телодвижений. Если жить под стандартным драйвером nv не хочется (и в игры не поиграешь, и современные красивые интерфейсы не запустишь. Хотя кубиком сейчас никого не удивишь), тогда фирменный nvidia и только. Также есть люди, которые принципиально все компилируют и не признают чужеродную бинарщину. Или если доступа к Всемирной нет? Что же делать в таком случае? Можно поступить следующими способами. Купить Mandriva Linux Powerpack — но это довольно дорого, зато содержит пакеты драйверов и другой коммерческий софт, плюс поддержку имеет. Или бесплатно скачать Mandriva One — в ней уже все установлено. Но мы, суровые красноглазые мужики, простые пути не выбираем и трудностей не боимся. Поэтому давайте разберем оффлайн-установку. Тем более, что в мандриве 2010.* сделать это достаточно проблематично. Для простых пользователей — хорошая головоломка. Для начала я дам немного информации про сам драйвер.
Информация.
Драйвер представляет собой файл размером порядка 20-30 МБ с расширением .run. Это самый обычный shell-скрипт, в конец которого приписали .tar.gz архив. Хотя нет, правильнее будет сказать так — архив, в начало которого дописали сценарий. При запуске сначала проверяется его целостность, потом с помощью программы dd он режется надвое: на текстовую и бинарную часть. Так как двоичные данные — это архив, то он распаковывается во временную папку и от туда выполняется программа установки — nvidia-installer. И все бы ничего, только вот разработчики Mandriva 2010 занесли этот и еще несколько драйверов в черный список. Зачем — я так и не понял. Может они решили заблочить потенциально опасное ПО, или дырку в безопасности — кто знает... Я только знаю, что это ничего, кроме лишнего геморроя не приносит. Ну что, будем с этим бороться. Про эту типа «защиту» расскажу позже. 
Подготовка.
Драйвер содержит фирменные бинарные утилиты, библиотеки OpenGL, а также некоторые исходные тексты для сборки модуля ядра nvidia.ko. Для успешной компиляции последнего мы должны поставить инструменты разработчика — исходные тексты и заголовочные файлы для ядра. Это можно сделать с помощью таких команд (все осторожно выполняем от имени root или пользуемся sudo):
# urpmi kernel-source-latest kernel-desktop-devel-latest
По зависимостям вытянутся также и другие нужные нам программы, например компилятор gcc, autoconf,
make и так далее. В общем будет установлено около 350 мегабайт. Когда все будет готово, идем на сайт www.nvidia.com и качаем последнюю версию драйвера. На момент написания статьи это была версия 260.19.21. Сохраняем в домашней папке. Однако прежде, чем начать установку, нужно, чтобы наш графический сервер был отключен — это необходимое требование установщика. Будет исполнено — переходим в виртуальную консоль нажатием клавиш Ctrl+Alt+F1 и логинимся под рутом. Гасим Х:
# /etc/init.d/dm stop
Экран потухнет — это хорошо, значит мы остановили сервис. Возможно нам придется снова вернутся в консоль — опять жмем Ctrl+Alt+F1. Теперь то мы запустим обожаемый мной файловый менеджер Midnight Commander, или просто mc. Если его нет — ставим:
# urpmi mc
Это очень сильно упростит нам жизнь.
А теперь немного теории.
В Linux есть такая технология — динамическая загрузка и выгрузка модулей ядра. Практически все современные ядра являются модульными, и это очень удобно. Модуль — по сути это тот же драйвер. Например, мы установили новое оборудование — видеокарту Nvidia. В идеале мы должны скомпилировать модуль, установить его, подгрузить и спокойно работать. Загружается так:
# modprobe nvidia
Если модуль нам не нужен — выгрузим его:
# rmmod nvidia
Все это сделано для того, чтобы менять оборудование на лету и избежать перезагрузок, как в Windows. И это здорово — особенно очень полезно на серверах, где даже минута простоя может стоить очень дорого. В не динамических (статических) ядрах все иначе. В них нет модулей — все собрано в один большой файл, и чтобы добавить новый модуль, нужно пересобирать ядро, что довольно таки неудобно и долго. И еще одно. В статических ядрах загружаются сразу все драйвера без возможности отключения. Только представьте, сколько лишней ОЗУ будет использовано. А разработчики кидают туда как можно больше всего — на всякий случай, пригодится. Итак допустим, что модуль установлен. Однако криворукость программистов еще никто не отменял и драйвер может либо жутко глючить, либо работать не так, как хочется. Что делать? Удалять модуль не будем — не для того мы его ставили. Просто временно отключим — занесем в черный список. Черный список, иначе blacklist — это набор текстовых файлов, в которые заносят названия модулей, которые нужно отключить при загрузке. Именно так разработчики Mandriva 2010 и поступили. Вы только посмотрите файлы /etc/modprobe.d/blacklist-mdv и /etc/modprobe.d/blacklist-compact — там столько всего вкусненького. Ну что ж, разблокируем драйвера:
# rm -f /etc/modprobe.d/blacklist-compact
# rm -f /etc/modprobe.d/blacklist-mdv
# echo 'blacklist pcspkr' > /etc/modprobe.d/blacklist-mdv
# echo 'blacklist snd-pcsp' >>/etc/modprobe.d/blacklist-mdv
Последние две строчки отключают эту долбаную пищалку, которая поздним вечером как пикнет — усраться можно! И еще один необходимый трюк:
# echo nvidia >> /etc/modprobe.preload
Теперь все готово, приступаем, наконец-то к установке.
Установка.
Распакуем драйвер и соберем модуль:
# chmod +x NVIDIA-Linux-x86-260.19.21.run
# ./NVIDIA-Linux-x86-260.19.21.run -x
# cd NVIDIA-Linux-x86-260.19.21/kernel
# make
# make -f Makefile.kbuild
Драйвера до версии 195 имели другое строение установочного дистрибьютива. Там вместо папки kernel есть usr/src/nv — там и проводим сборку модуля. Компиляция завершится с ошибкой вроде этой: FATAL: Error inserting nvidia (/lib/modules/2.6.33.5-desktop586-2mnb/kernel/drivers/video/nvidia.ko):No such device, но все будет хорошо. Далее устанавливаем и перезагружаемся:
# make install
# reboot
Ошибка возникает потому, что модуль пытается подгрузится, но ему что-то мешает. Перезагружаем компьютер. При загрузке экран будет моргать — это тоже нормально, пытается загрузится модуль из файла /etc/modprobe.preload в неположенное для этого время. Может вылезти сообщение с ошибкой и предложением исправить — не трогаем. Уходим на консоль Alt+F1 и теперь запускаем программу установки:
# cd NVIDIA-Linux-x86-260.19.21/
# ./nvidia-installer
На все вопросы отвечаем «Yes». Все должно работать нормально и Х-сервер запустится сам. Если этого не произошло, делаем ручками:
# echo "" > /etc/modprobe.preload
# /etc/init.d/dm start
В крайнем случае перезагружаемся. Вот и все, можно радоваться 3D ускорению, играм и компизу!
P.S. Напоследок скажу, что это способ найденный мной лично. Но это не значит, что он единственный и неповторимый. Очень даже возможно, что именно Вы найдете способ попроще и напишешете мне о нем :)
P.S.S. Надеюсь в версии 2011 таких проблем не будет и моя статья будет не нужна ;)



понеділок, 27 грудня 2010 р.

Продлеваем срок службы лицензии Windows

Не в моих правилах писать про Windows, но этот трюк меня реально выручил один раз. В Win2k8 бычно дается 2 месяца пробной работы, после чего настойчиво просят зарегистрировать свою Windows или идти вон. Для продления срока действия пробного периода, качаем этот KB948472 и устанавливаем. Внутри его есть скрипт slmgr.vbs Предназначен он для того, что бы узнавать, сколько еще осталось Trial-времени:

C:\> slmgr.vbs -dli

Однако с ее помощью можно сбросить и/или продлить оценочный период еще на 60 дней! Потом еще на 60, еще на 60... В общем, пока что получалось 4 раза продлевать, а это 4х60=240 дней, или 8 месяцев!!! И думаю, это не предел:

C:\> slmgr.vbs -rearm

Процесс можно автоматизировать через виндовый планировщик задач at.
Про его работу расказывать не буду, т.к. не владею им, а  Google еще никто не отменял.
Когда это полезно? Ну, например, когда фирма только начинает свой путь в бизнес, про Линукс не знает, а на лицензию Windows пока денег нет. Да и полистав лицензию от Microsoft, в этих действиях противозаконных мотивов я так и не нашел. Тем более, что мы пользуемся средствами самих
Microsoft :) Ну или вот еще пример. Сервисный центр зарабатывает деньги свинством и через месяц-два люди должны приходить к ним, платить денюшку и им продлят лицензию! Кстати знаю таких, за 300грн. такое делают(!).
Вот. О, и еще, на Windows XP/Vista/Seven не проверял, нету у меня такого. Как только, так сразу *_-

четвер, 23 грудня 2010 р.

Решаем проблему «Вне диапазона»


В первую очередь эта заметка будет полезна для Линукс-геймеров.Как я подозреваю, для них знакома такая ситуация: запускаем игру и экран тухнет, выводя табличку «Вне диапазона». После только Ctrl+Alt+Backspace помогает. Вот только борются они не с причиной проблемы, а с ее последствиями, кстати довольно нелепыми методами — правкой конфигов игры, заставляя ее запускается в оконном режиме, а потом настраивать правильные разрешения. Почему так происходит? Все дело в кривых драйверах, которые правят файл /etc/X11/xorg.conf. При нормальной настройке должны быть прописаны так называемые метамоды - разрешения экрана, в которые драйвер может переключать монитор. Игра обычно запускается  в полноэкранном режиме и с низким разрешением. Тут то драйвер не срабатывает, он просто не знает, поддерживает этот экран такой диапазон, или нет и от греха подальше отключает монитор. Метамоды отличаются в зависимости от размера экрана и соотношения сторон. Я приведу пример, как я решил эту проблему у себя на мониторе LG диагональю 17" и соотношением сторон 4:5. Итак, открываем от имени рута файл /etc/X11/xorg.conf в любимом редакторе и смотрим в секцию Section "Screen". Вот какие разрешения я туда добавил (предпоследняя строка):

Section "Screen"
    Identifier "screen1"
    Device "device1"
    Monitor "monitor1"
    
    Subsection "Display"
        Modes "nvidia-auto-select"
    EndSubsection

    Option "DPMS"

    #  Вот ниже я добавил 4 метамода разрешения экрана:
    Option "metamodes" "1280x1024_60 +0+0; 1024x768_60 +0+0; 800x600_60 +0+0; 640x480_60 +0+0"
EndSection
Теперь перезапустите Х-сервер и все должно работать!

P.S. Я думаю вы поняли смысл изложенного материала, а дальше настроите режимы так, как вам удобнее. Разрешения экрана, которые поддерживает ваш монитор, найдете в инструкции к нему. Удачи и делайте резервные копии почаще!

середа, 22 грудня 2010 р.

Консольные шрифты в Mandriva

Как бы не был X.org удобен и могуч, от Консоли мы никуда не денемся. И за ухоженной консолькой работать, может и не удобнее, но приятней — это точно. Давайте ее немного настроим — поменяем шрифт. Кстати, я имею ввиду именно Консоль, вызываемую клавишами Ctrl+Alt+F1 … Ctrl+Alt+F12, а не эмулятор терминала. Итак, мы за Mandriva, а именно за 2010.1.По умолчанию у Вас уже должен стоять пакет kbd, если нет — установим:
# urpmi kbd
В этом пакете собрано много утилит для работы с консолью, клавиатурой и консольными шрифтами. Вот именно шрифты нас сегодня и интересуют. По-умолчанию они хранятся здесь: /usr/lib/kbd/consolefonts/. Есть три типа файлов — с расширением *.cp.gz, *.psf.gz и *.psfu.gz. Что это за файлы? Давайте их распакуем и пропустим через программу file, она то точно скажет:
[keed'0'@mandrivka tmp]$ file 161.cp
161.cp: DOS code page font data (from Linux?)
[keed'0'@mandrivka tmp]$ file GohaClassic-16.psfu
GohaClassic-16.psfu: Linux/i386 PC Screen Font data, 512 characters, Unicode directory, 8x16
На счет первого не все мне понятно, а вот на счет второго файла — все ясно: шрифт на ЛИНУКС, содержащий 512 символов размером 8х16 в формате Юникод. Мы используем кириллические символы, поэтому берем  шрифты, в именах которых присутствуют такие буквосочетания, как Uni, alt и/или Cyr. Меня заинтересовал шрифт alt-sans-8x16.psf.gz. На нем и потренируемся. Открываем конфигурационный файл /etc/sysconfig/i18n, находим там строку SYSFONT=UniCyr_8x16 и вписываем туда нужный шрифт, предварительно убрав из его названия «.psf.gz». В итоге у нас  должно получится примерно следующее:
LC_TELEPHONE=uk_UA.UTF-8
LC_CTYPE=uk_UA.UTF-8
LANGUAGE=uk_UA.UTF-8:uk
LC_MONETARY=uk_UA.UTF-8
LC_ADDRESS=uk_UA.UTF-8
LC_COLLATE=uk_UA.UTF-8
LC_PAPER=uk_UA.UTF-8
LC_NAME=uk_UA.UTF-8
LC_NUMERIC=uk_UA.UTF-8
SYSFONT=alt-sans-8x16
LC_MEASUREMENT=uk_UA.UTF-8
LC_TIME=uk_UA.UTF-8
LANG=uk_UA.UTF-8
LC_IDENTIFICATION=uk_UA.UTF-8
LC_MESSAGES=uk_UA.UTF-8
Давайте опробуем его. Переключаемся на виртуальную консоль Ctrl+Alt+F1, логинимся как root и даем команду setfont. Не сработало? Жмем Ctrl+D и перелогинимся. Теперь новый шрифт должен заработать!
P.S. Эта заметка, конечно же, справедлива и для Mandriva-based дистрибьютивов, таких как PCLinuxOS, Gamma Linux, Unity и тому подобные.