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

Установка DirectX9.0c в Wine

Перевод статьи twickline, опубликованной в блоге http://wine-review.blogspot.com/2007/11/directx-90c-on-linux-with-wine.html.
с примечаниями.

Эта статья, кстати, теперь недоступна. Они рестурктуризовали свой блог и теперь она куда-то у них провалилась.

Microsoft DirectX – это коллекция API для выполнения задач, связанных с мультимедиа, особенно программирования игр и видео на платформе Microsoft. Названия этих API начинается со слова Direct. Например: Direct3D, DirectDraw, DirectMusic, DirectPlay, DirectSound и так далее. DirectX – это общий термин, обозначающий все эти Direct-чтонибудь-API. И этот термин дал название коллекции. За прошедшие годы многие API были изменены и перемещены, так что это соглашение о наименовании больше не действительно. К примеру X заменил Direct в первых частях названий некоторых новых DirectX технологий, таких как XAct, Xinput и т. д.

Direct3D (графический API в составе DirectX) широко используется в разработке компьютерных игр для Microsoft Windows, Microsoft Xbox и Microsoft Xbox 360. Direct3D так-же используется другими приложениями для визуализации и обработки графики, что особенно заметно в инженерных приложениях CAD/CAM, потому что они способны быстро обрабатывать высококачественную 3D графику, используя DirectX-совместимое аппаратное обеспечение. Так как Direct3D – это широкоизвестный API в составе DirectX, нередко название DirectX используется вместо Direct3D.

Настройка Wine.
Действия производились с чистой конфигурационной директорией Wine на виртуальном рабочем столе 1024x768

$ winecfg

у вас же стоит самая последняя Mandriva c Pulse Audio?
тогда пишите padsp winecfg

Как только директория .wine будет создана, запуститься конфигурационная утилита, в которой вы сможете установить параметры виртуального рабочего стола на вкладке Видео. Так-же хорошей идеей будет выбрать Ваш аудио драйвер на вкладке Аудио.
А там надо кроме ALSA выбрать также OSS. И не забудьте проверить звук при помощи кнопочки "Проверить звук".

Следующий шаг – это установка родной mscoree.dll и streamci.dll в директорию /system32
из установленной Windows.
Перейдите в ~/.wine/drive_c/windows/system32 и переименуйте
d3d8.dll,
d3d9.dll,
ddraw.dll,
dsound.dll,
dsound.vxd,
quartz.dlls

в *.bak.

Вам будет необходимо поставить большое количество dll, для корректной работы инсталлятора. Ниже приведен полный список dll, которые должны быть установлены.

"d3d8"="native"
"d3d9"="native"
"d3dim"="native"
"d3drm"="native"
"d3dx8"="native"
"d3dxof"="native"
"dciman32"="native"
"ddrawex"="native"
"devenum"="native"
"dinput"="native"
"dinput8"="native"
"dmband"="native"
"dmcompos"="native"
"dmime"="native"
"dmloader"="native"
"dmscript"="native"
"dmstyle"="native"
"dmsynth"="native"
"dmusic"="native"
"dplay"="native"
"dplayx"="native"
"dpnaddr"="native"
"dpnet"="native"
"dpnhpast"="native"
"dswave"="native"
"dxdiagn"="native"
"mscoree"="native"
"quartz"="native"
"streamci"="native"

Установка Directx
Скачайте DirectX 9.0c November release.

directx_nov2007_redist.exe Извлечет файлы инсталлятора в выбранную Вами директорию.

tom@tuxonfire ~ $ wine directx_nov2007_redist.exe
fixme:advapi:DecryptFileA "z:\\home\\tom\\directx-9\\" 00000000
fixme:midi:OSS_MidiInit Synthesizer supports MIDI in. Not yet supported.
tom@tuxonfire ~ $

Теперь перейдите в директорию, в которую Вы распаковали DirectX и запустите DXSETUP.EXE.

Если у вас Pulse Audio не забывайте ставить padsp перед wine!

tom@tuxonfire ~ $ cd /home/tom/directx-9
tom@tuxonfire ~/directx-9 $ wine DXSETUP.EXE
fixme:midi:OSS_MidiInit Synthesizer supports MIDI in. Not yet supported.

Запустите winecfg снова и установите d3d8, d3d9, ddrawex, dinut, dinput8 как встроенные wine.

Теперь запустите dxdiag.exe

tom@tuxonfire ~/directx-9 $ cd /home/tom/.wine/drive_c/windows/system32
tom@tuxonfire ~/.wine/drive_c/windows/system32 $ wine dxdiag.exe
fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),1,3,(nil),0,(nil)) - stub!

Теперь мы можем протестировать ddraw, ddraw 3D, D3D8 и D3D9

После удачного тестирования необходимо установить gm.dls для теста Direct Music, этот драйвер поместите в ~/.wine/drive_c/windows/system32/drivers

Вы получите уведомление в system32 d3dx9_24.dll до d3dx9_36.dll установлены, это поможет Вам при запуске игр, которые требуют дополнительных библиотек DirectX.

Теперь Вы имеете возможность запускать многие библиотеки DirectX в режиме native или builtin. К примеру, если игра падает со встроенной библиотекой Wine quartz.dll, Вы можете попробовать запустить ее с оригинальной Windows dll и посмотреть как это улучшит ситуацию.

Не забывайте, что d3d8, d3d9, ddraw будут работать только как builtin, и во многих случаях Вы должны будете попробовать использовать встроенные dsound и dinput. Кстати, у меня были некоторые успешные попытки запуска (dsound and dinput) в оригинальном режиме Windows... Причина для использования встроенных библиотек – это необходимость прямого доступа к Вашему железу. direct music и direct play могут быть использованы в native windows mode в большинстве случаев.

Взято отсюда

Элементарно! (1) - ISO

Как подключить ISO образ в Linux?

mount -t iso9660 -o loop nameofiso.iso /mnt/vcdrom

где

nameofiso.iso - соответсвенно образ

/mnt/vcdrom - папка, куда образ будет примонтирован. Надеюсь, понятно, что /mnt/vcdrom - это пример. Папка может быть любая.

понедельник, 28 июля 2008 г.

Формат Страницы A4

Недавно столкнулся с такой проблемкой.
Обнаружилось, что в OpenOffice формат листа по умолчанию почему-то Letter. Хотя в настройках принтера выставлено - А4. И каждый раз формат А4 надо устанавливать руками.
После гугления выяснилось что эта штука лечится очень просто -
нужно под рутом в файле /etc/papersize написать - a4.
И все. Если этого файла нет, то его надо создать.

воскресенье, 4 мая 2008 г.

Новости Печати или Phaser ML 1710

Сегодня возникла задача - печать с Linux на Windows.
Казалось бы, что за задача? А задача осложняется тем, что этот принтер - Phaser 3150 и драйверов для него (PPD файлов) на диске нет.
Они есть. На сайте Xerox в архиве старых моделей. При распаковке скачанного архива найдутся и искомые PPD файлы. Тем не менее ссылок не дам, потому что это все фуфло.
Не работает. Во всяком случае под Mandriva 2008.1 - ни тушкой (подключением через smb) ни чучелком (через lpd) эта штука печатать не захотела.
В итоге вспомнив, что принтеры Xerox это на самом деле принтеры Samsung, проблему решить удалось.
Во первых, на Windows был поставлен LPD. Это делается в панели управления, в Установке программ - Установка компонентов Windows - Другие сетевые компоненты - Печать Unix. (держите дистрибутив Windows под рукой, так как установщик потребует с него дополнительные файлы).
Почему LPD? - Потому что не потребуется незащищенная передача паролей, как в варианте с Самбой.
Во-вторых - сетевой принтер на Madrive 2008.1 подключается через LPD, а в качестве драйвера выбирается Samsung ML-1710.
И все работает.

Подозреваю что для Phaserов других моделей тоже надо искать аналоги среди Samsung-ов.

четверг, 27 марта 2008 г.

Разбивка диска при установке - II

После некотрого опыта работы пришел к выводу, что для обычного компьютера (рабочая станция офисного планктона или домашний интернет-серфитель-музыка-игратель-видео-смотритель) достаточно такой разбивки

80 Мb - /boot - Primary. ext3. Особые эстеты могут взять ext2)

512 Mb - swap -Primary. (Ну сейчас я так понимаю ОЗУ меньше найти уже трудно. При 128 Мб возьмите swap 256 Мb ) Больше 512 брать не рекомендуется даже при 1 Гб ОЗУ.

20 Gb под / - Primary. ReiserFS. (Слухи о его ненадежности пока не подтвердились. А с мелкими файлами он работает эффективно)

Остальное под /home - Extended. ReiserFS (То же самое касается мелких файлов. Впрочем, если вы поклонник хранения видео на диске, то ставьте XFS )

Если вы обладатель диска меньше 40 Gb и не хотите потратить 1000 руб на 100 Gb б/у диск ( именно столько они стоят на Савелке) то под корневой каталог отдайте 6 Gb. Меньше не рекомендую. Остальное под /home.

вторник, 25 марта 2008 г.

Mandriva 2008.1 RC2 и Vmware Console

Скачал и установил Mandriva Free 2008.1 RC2 . Точнее не установил, а обновил свой PowerPack. Впечатлений пока мало, пока заметно только появление в трее Krandr ( штука для быстрого изменения разрешения, частоты и ориентации экрана), нормальной русификации drakconf (в 2008.0 она была неполной) и офиса 2.4. Блин, вот он-то поставился с нерусифицированным меню.
Ну, и версии всех программ обновились по максимуму. Что приятно.

Неожиданно выкинула фортель vmware-server-console.
У меня была версия 1.02. Так она не запускалась, так как не находила кучу каких-то бибилиотек. Скачал и установил самую последнюю 1.05. Вот отсюда.

Все равно она выдавала
/usr/lib/vmware-server-console/bin/vmware-server-console: /usr/lib/vmware-server-console/lib/libgcc_s.so.1/libgcc_s.so.1: version `GCC_4.2.0' not found (required by /usr/lib/libstdc++.so.6)

Лечится этот бред очень просто - созданием ссылки на нужную библиотеку
Вот так :
ln -sf /usr/lib/libgcc_s.so /usr/lib/vmware-server-console/lib/libgcc_s.so.1/libgcc_s.so.1

среда, 13 февраля 2008 г.

Бесшовный Терминал

Организация терминального доступа к Windows с Linux-компьютеров. Недорого.

Несмотря на всю прелесть, удобство и мощность Linux, существует еще немало нужных программ, которые в нем (или в ней?) работать не хотят. В частности это весьма характерно для нишевых и сугубо специальных приложений, разработчики которых дерут такие деньги за свои продукты, что на фоне этих цен, стоимость Windows XP выглядит просто несерьезно.
Например R-Style RS-Bank 5.0 Или Swift Alliance Entry. Или вот MS Access 2003 особенно. Переход на подобные продукты, совместимые с Linux, часто невозможен как и по финансовым, так и по организационным причинам.
Ни серверная часть (что неудивительно), ни клиентские части (что удивительно) этих приложений работать даже под Wine от Ethersoft (*) не хотят.
Тем не менее и в данном случае можно прекрасно обойтись без установки Windows на рабочие станции пользователей.
Вариантов решения проблемы несколько.
Первая и всем известная - .использование Terminal Services в Windows Server Standart и выше. Нужные приложения устанавливаются на компьютере с Windows Server , устанавливается Terminal Licensing Service, покупается и активируется нужное количество лицензий для подключения пользователей к данному терминальному серверу. После чего на стороне Linux станций используется замечательная программа rdesktop (www.rdesktop.org). Практически все современные дистрибутивы содержат в себе эту программу. В моей любимой Mandirva она есть точно.
Если же вас интересует не периодическая, а постоянная работа с терминальным сервером, то вам скорее сюда, к ThinStation. Это дистрибутив Linux, который только и умеет, что подключаться к терминальным серверам Citrix ICA, NoMachine NX, 2X ThinClient, MS Windows Terminal Services (RDP), Cendio ThinLinc, Tarantella, X, telnet, tn5250, VMS term и SSH. Но умеет это хорошо. А мы вернемся к rdesktop.

С помощью rdesktop можно осуществлять доступ ко всему рабочему столу Windows,
1 вариант (рабочий стол в отдельном окне)
Ключ -g определяет размер рабочего окна в пикселах
rdesktop -g 800x600 TERMSERVER

2 вариант (Рабочий стол на весь экран — без границ окна).
Ключ -D отключает границы окна, а размер в пикселях придется подбирать на глаз или с помощью KRuler.

rdesktop -D -g 1024х720 TERMSERVER

С помощью rdesktop можно запускать отдельные приложения и без рабочего стола. Для этого используется ключ -s
rdesktop -s «c:\prog\program.exe» TERMSERVER
Вот так:


Обратите внимание, хоть приложение запустилось и без рабочего стола, отдельно, все равно оно находится внутри терминального окна. И при минимизации оно уходит не на панель задач, а некрасиво и неудобно сворачивается внизу окна терминала.
Вот так :
Пытливые умы программистов и тут придумали, как решить и эту задачу.
На помощь придет так называемый Seamless Shell.
-----------------------------------------------------------------------------
seamless прил. 1) бесшовный, сделанный из одного куска.
Seamless underwear — бесшовное бельё
2) плавный; совершающийся без резких переходов, пауз; однородный Seamless procession of days — непрерывная череда дней
-----------------------------------------------------------------------------
Разыскал я его вот здесь - http://www.cendio.com/seamlessrdp
Его надо скачать отсюда http://www.cendio.com/files/thinlinc/seamlessrdp/seamlessrdp.zip
и распаковать в любой каталог на терминальном сервере.
Пусть будет, например - c:\seamless. В том каталоге окажется и программ а seamlessrdpshell.exe
Что она делает? А делает она очень интересную вещь.
При запуске rdesktop с командной строкой

rdesktop -A -s «c:\seamless\seamlessrdpshell.exe program.exe» TERMSERVER

-A и есть тот ключ для включения seamless-режима.
Причем никаких ключей для принудительного выставления размеров типа -g 800x600 указывать нельзя, так как они с этим режимом несовместимы.
После предварительного моргания терминальным окном в итоге вы получите вот что
И при минимизации, это окно свернется, как и полагается, в панель задач KDE. Я не пробовал, но думаю, что и в GNOME будет тоже самое.
Внешне- полная имитация запуска приложения на рабочем столе пользователя. Хотя само приложение выполняется на терминальном сервере.

Что касается собственно серверной части, то лично у меня лицензионная политика Microsoft своей запутанностью, и неудобностью всегда (а последнее время особенно) вызывала раздражение.
Использование штатного Terminal Server от Microsoft имеет, кроме всего прочего, такие недостатки, как необходимость развертывания службы Terminal Licensing Service. Причем надо иметь в виду, что существуют как отдельные лицензии на подключение к самому Windows Server, так и отдельные лицензии на подключение к Terminal Server внутри этого сервера.
И вообще, как советовал мне менеджер Microsoft, «вашей организации необходимо иметь отдельного специалиста по управлению лицензиями». Было не смешно совершенно.
На закуску хочется добавить, что терминальный сервер для приложений, пригодный для подключения и работы более двух пользователей, у Microsoft встроен только в такие продукты как Windows Server и выше. Ни на Small Business Server, ни на Windows XP, ни на Vista Ultimate штатными средствами это сделать не удастся. (Существуют, правда рецепты ломового принуждения с заменой dll и правкой реестра, но они ,мягко говоря, не очень надежны — что для постоянной повеседневной работы неприемлемо)
Citrix Metaframe? По цене это будет практически то же самое, что и натуральный Windows, если не дороже. И работать будет также только на Windows Server.
И ладно бы если это касалось крупных и богатых организаций(**), а как быть организациям небольшим? В которых 5-10 человек?
Обратите внимание на продукт фирмы Thinstuff http://www.thinstuff.com/
Thinstuff XP/VS Terminal Server for Windows. Это практически точная копия Microsoft Terminal Server по функциональности. Тем не менее отличается от него существенными деталями
1.Он может работать на Windows Small Business Server, Windows XP и Windows Vista. Что делает его очень привлекательным для небольших организаций, в которых мощность и цена Windows Server явно избыточна. Или которые в свое время купили Windows Small Business Server.
2.По заявлениям разработчиков, он куда более совместим со старыми приложениями, несовместимыми с обычным Terminal Server.
3.Позволяет передачу RDP протокола через защищенное SSL HTTPS соединение.
4.Осуществляет доступ к приложениям через Web-портал.
5.Выполняет балансировку нагрузки.
Последние три вкусности доступны для Enterprise версии, а для небогатых покупателей предлагается Light и Standard.
Light-версия, например, на 10 пользователей стоит 200 долларов. Для небольшой организации это вполне доступно. Даже если учесть цену Windows XP, общая стоимость в любом случае будет ниже 500 долларов, что значительно дешевле Windows Server Standard. И это не учитывая возни с лицензированием клиентов в стандартном Terminal Server. Установка же XP/VS Terminal Server проста до неприличия.
Cо стороны RDP-клиентов ( в частности программы rdesktop) никаких изменений и переделок не требуется.
Еще есть аналогичный вариант от другого производителя Elsuvia Terminal Server Pro . Он предназначен исключительно под Windows XP или Small Business Server. Его цена 250 долл.

Систему удаленного управления VNС и ей подобные, я рассматривать не буду, так как это не многопользовательская, а однопользовательская система. Да, она бесплатная, да она многоплатформенная, но для одновременной удаленной работы нескольких пользователей на терминальном сервере эта система не годится.
А вот VmWare Virtual Server опишу с удовольствием.
Многоплатформенная бесплатная система виртуализации, позволяющая иметь на одном компьютере-сервере несколько одновременно работающих операционных систем. Причем практически любых. И DOS и Windows и Linux и FreeBSD и Solaris и.... Даже такую узкоспециализированную как MicroTik.
Удаленный доступ к этим виртуальным машинам легко осуществим и с Windows и с Linux при помощи фирменной программы-консоли от VmWare. Разумеется, бесплатной. Причем никаких лицензий на пользователей не требуется. Зато хоть и VmWare-компьютеры виртуальны, то лицензии на операционные системы, установленные на этих виртуальных машинах, потребуются самые настоящие.
На мой пристрастный взгляд, устанавливать VmWare Virtual Server лучше на Linux, чем на Windows. Во первых быстрее работает. Во-вторых ни Windows XP, ни Windows Server Standard не «видят» оперативной памяти свыше 2 гигабайт. А Linux — видит и использует. Ну и в третьих — дешевле.
И все-таки роли Terminal Server и Virtual Server различны.
Terminal Server — выгоден и удобен тогда, когда с одним приложением должны работать несколько удаленных пользователей одновременно.
Virtual Server удобен и выгоден тогда, когда с приложением в нестандартной ОС (а в Linux-сети такой осью будет именно Windows) должны работать несколько удаленных пользователей не одновременно. А еще он очень удобен при использовании узкоспециализированных программ, требующих строго определенного системного окружения.