Настройка Dual-Head в Linux на примере ноутбука Asus M5200AE



24 коммент.
Итак, нужно настроить режим отображения на два разных монитора - чтобы между разными экранами можно переносить окна приложений. Такой режим, в отличие от Clone Mode (клон, на второй мониторе тоже, что и на первом), называется Dual Head ("две головы", второй монитор отображает другое).

Для этого нужно поправить xorg.conf, и править его придётся несколько больше, чем для Clone mode. В режиме Dual Head требуется описать два монитора и две видеокарты в xorg.conf (напомню, что конфиг этот лежит в /etc/X11/ и отвечает за весь графический режим). После того, как всё это будет сделано, нужно включить расширение Xinerama. Ну и естественно, перед тем, как вы начнёте крошить ваш xorg.conf, нужно сделать резервную копию старого конфига.

Режим Dual Head в Linux - xrandr
Если у вас свежий дистрибутив и xrandr новых версий (старше 1.2), то двухголовый режим можно сделать так:
xrandr --output VGA --auto --output LVDS --mode 1280x800 --left-of VGA
При этом xrandr может выдать ошибку, что режим не может быть установлен - для этого нужно увеличить размер виртуального экрана в конфигурационном файле
/etc/X11/xorg.conf следующим образом:

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"

Subsection "Display"
Virtual 4096 2048
EndSubsection
EndSection
Для отключения режима dualhead в linux пишем в консоли:
xrandr --output VGA --off
Если на консоль у вас аллергия и вообще терминалофобия, есть графические утилиты вроде gxrandr.

Режим Dual Head в Linux - вариант с Xorg.conf
Итак, привожу рабочий конфиг xorg.conf Что-то в нём будет отмечено серым - это не важно. Цветом я выделил наиболее критичные куски, которые ещё отдельно прокомментирую. Начало конфига трогать не надо - там нет ничего, что относится к двухголовости: пути к шрифтам и настройки раскладки клавиатуры. Поэтому пропускаем и идём дальше.

# XF86Config-4 (XFree86 X Window System server configuration file)
#
# This file was generated by dexconf, the Debian X Configuration tool, using
# values from the debconf database.
#
# Edit this file with caution, and see the XF86Config-4 manual page.
# (Type "man XF86Config-4" at the shell prompt.)
#
# This file is automatically updated on xserver-xfree86 package upgrades *only*
# if it has not been modified since the last upgrade of the xserver-xfree86
# package.
#

Section "Files"
# FontPath "unix/:7100" FontPath "/usr/share/fonts/X11/Type1"
FontPath "/usr/lib/X11/fonts/Type1"
FontPath "/usr/share/fonts/X11/CID"
FontPath "/usr/lib/X11/fonts/CID"
FontPath "/usr/lib/X11/fonts/Speedo"
FontPath "/usr/share/fonts/X11/100dpi"
FontPath "/usr/lib/X11/fonts/100dpi"
FontPath "/usr/share/fonts/X11/75dpi"
FontPath "/usr/lib/X11/fonts/75dpi"
EndSection

Section "Module"
Load "bitmap"
Load "dbe"
Load "ddc"
Load "dri"
Load "extmod"
Load "freetype"
Load "glx"
Load "int10"
Load "record"
Load "vbe"
EndSection

Section "InputDevice"
Identifier "Default Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc102"
Option "XkbLayout" "us,ru(winkeys)"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"
EndSection

Section "InputDevice"
Identifier "Configured Mouse"
Driver "mouse"
Option "CorePointer"
Option "Device" "/dev/input/mice"
Option "Protocol" "ImPS/2"
EndSection


Теперь переходим к разделу Device - тут надо описать две видеокарты. Названия идентификаторов важны, так как на них
вы будете ссылаться дальше. Мониторы имеют номера 0 и 1, BusID остаётся один и тот же.
Section "Device"
Identifier "Intel Corporation Intel Default Card"
Driver "i810"
BusID "PCI:0:2:0"
Option "MonitorLayout" "CRT,LFP"
Screen 0
EndSection

Section "Device"
Identifier "Intel Corporation Intel Default Card External"
Driver "i810"
BusID "PCI:0:2:0"
Option "Display" "CRT"
Option "MonitorLayout" "CRT,LFP"
Screen 1
EndSection


Отлично, теперь к двум видеокартам надо описать два монитора. Будьте внимательны и указывайте правильные частоты HorizSync и VertRefresh.
Section "Monitor"
Identifier "Default Monitor"
HorizSync 28-50
VertRefresh 43-75
Option "DPMS"
EndSection

Section "Monitor"
Identifier "External Monitor"
HorizSync 30-81
VertRefresh 56-75
DisplaySize 372 301
Option "DPMS"
EndSection


Дальше описываем разрешения, которые могут реализовать наши мониторы - не перепутайте частоты для Default monitor и External monitor. Также следует указать правильные идентификаторы видеокарт.
Section "Screen"
Identifier "Default Screen"
Device "Intel Corporation Intel Default Card
Monitor
"Default Monitor"
DefaultDepth 24
SubSection "Display"
Depth 1
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 4
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 8
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 15
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Depth 24
Modes "1024x768"
EndSubSection
EndSection

Section "Screen"
Identifier "External Screen"
Device
"Intel Corporation Intel Default Card External"
Monitor
"External Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "1280x1024" "1024x768" "800x600"
EndSubSection
EndSection

А если вы хотите таскать окошки приложений между мониторими, нужно включить расширение Xinerama (оно содержится в пакетах libdmx1 и libxinerama1).
Section "ServerLayout"
Identifier "Default Layout"
Option "Xinerama" "true"
Screen 0 "External Screen"
Screen 1 "Default Screen" LeftOf "External Screen"
InputDevice "Default Keyboard"
InputDevice "Configured Mouse"
EndSection

Section "DRI"
Mode 0666
EndSection
Указание параметра LeftOf, как можно догадаться, делает внешний экран слева от основного.

Если Xinerama не включить, то при старте иксов на внешнем мониторе появится стандартная сеточка, но перетащить туда ничего не получится.

Что ещё
Режим Dual Head особенно актуален: например, вашему научруку резко плохеет от текста статьи, оформленной в LaTeX, но текст нужно обсудить, а перегон в Word это безумие. Что делать? Берём и настраиваем режим Dual Head, на главном мониторе у вас Kile, и вы можете править текст. На внешний монитор вытаскиваем Kdvi, где текст отрисовывается в конечном виде. Все довольны и счастливы: и вы работаете в привычной среде, и ваше начальство видит привычную картинку.

Ссылки

Пример с конфигом взят отсюда, где лежит очень толковое описание процесса.
Для запуска множественных X-сессий можно начать медленно и вдумчиво прокуривать сообщения на форуме.
Читать далее

Немного о lossless кодировании видео в Linux - сжатие видео без потерь



12 коммент.
Некоторое время назад была потребность в том, чтобы сжать видеофайл без потерь в Linux (lossless compression) и воспроизводить сжатый фильм без пропуска кадров. Задача в меру прикладная, и может быть, кому-нибудь будет интересно.

Итак, мы имеем установленный mencoder в Debian GNU/Linux и настойчивое желание сжимать видео без потерь.

Сжимаем видео с помощью Mencoder
Для этого мы отобрали пару кодеков с lossless и начали сжимать наш видеоролик. Исходно в нашем распоряжении был видеоролик размером 341 Мб, в котором полутоновая картинка перемещалась по экрану. Нужно было сжать без потерь ролик так, чтобы он и места занимал немного, и воспроизводился без торможений.


Сжатие FFV1
Сначала сжимали кодеком FFV1 командой:
mencoder -ovc lavc -lavcopts vcodec=ffv1 video-before.avi -o video-compressed-ffv1.avi
Сжалось до 18Мб, что очень хорошо. Однако при попытке такой сжатый файл воспроизвести, возникли проблемы: Mplayer (как и другие) сильно грузит процессор и видео не успевает воспроизводиться с заданным FPS. О том, какие страдания были с воспроизведением и как мы их героически решали, будет сказано ниже.


Сжатие huffyuv
Ещё один метод сжатия без потерь, но жмёт он хуже, чем FFV1, зато быстрее воспроизводится и меньше грузит процессор. При этом использовали mencoder для сжатия huffyuv с параметрами:
mencoder -ovc lavc -lavcopts vcodec=ffvhuff:vstrict=-1:pred=2:context=1:format=422p video-before.avi -o video-compressed-ffvhuff.avi
Получилось видео на 99Мб, что тоже неплохо. Однако при воспроизведении оказалось, что происходит конвертирование в другое цветовое пространство 420p и мы решили отказаться от такого финта:
mencoder -ovc lavc -lavcopts vcodec=ffvhuff:vstrict=-1:pred=2:context=1 video-before.avi -o video-compressed-ffvhuff-420.avi
при этом сэкономили ещё почти 20 Мб - фильм стал занимать 80Мб и воспроизводиться чуть глаже.

Остановившись на сжатии huffyuv без опции format=422p, мы стали перебирать варианты воспроизведения видео с минимальными тормозами. История на этом не кончается...


Воспроизведение видео с помощью Mplayer
Видео у нас сжато слабо, воспроизводить надо без задержек и железо скажем сразу весьма чахлое. Как проигрывать видео в таких условиях?

Перво-наперво, используем замечательные возможности Mplayer по выводу видео куда и на что угодно: поэкспериментировать с параметром -vo было здравой идеей, и через некоторое время мы остановились на варианте -vo gl и -vo sdl для нашей задачи. Однако иксы - это хорошо, но хочется выводить видео на чёрный экран без всяких засветок.

Далее, чтобы отвязаться от дисковой подсистемы как можно больше, используем возможность Mplayer кешировать видео:
mplayer -vo gl -cache 65535 -cache-min 98 video-compressed-ffvhuff.avi
Это значит, что мы просим сделать Mplayer кеш на 64Мб и заполнять его не менее чем на 98%. Это сильно помогло делу, но это ещё не всё.

Условия нашей задачи в меру экзотические: нужно проигрывать видео без масштабирования, "как есть", и желательно на чёрном экране без фона, с максимально возможной плавностью. Всё осложняется тем, что компьютер, на котором видео будет воспроизводиться, управляется Windows, и Linux там можно задействовать только в режиме LiveCD.

Идём дальше и привлекаем для наших нужд Knoppix. В арсенале его параметров загрузки есть неприметный параметр fb1280x1024 для работы с framebuffer. Замечательное дело, и мы решили этим воспользоваться. У нас теперь появилась графическая консоль, чёрная и мрачная, как полярная ночь.

Теперь, чтобы воспроизвести сжатое нами видео, копируем видео в память на Knoppix в каталог Desktop. После этого воспроизводим наше многострадальное видео в консоли так:
mplayer -vo fbdev -cache 65535 -cache-min 98 -quiet video-compressed.avi
Ключик -quiet нужен для того, чтобы при воспроизведении Mplayer не выводил статистику в бегущей строке. Всё, после этого получаем фильм на чёрном экране, который воспроизводится плавно и без затей.

Скорость воспроизведения в Mplayer
На всякий случай, если потребуется запускать фильм с другой скоростью, всегда можно попросить Mplayer изменить число кадров в секунду (вплоть до 1 кадра в секунду) так:

mplayer -fps 1 video-compressed.avi
Эта команда будет воспроизводить фильм со скоростью 1 кард в секунду.
(спасибо тов.linuxfreshman за наводку)

Выводы и ссылки
Воспроизведение таких огромных файлов с большим FPS (у нас это 40FPS) - действительно непростая задача, на любой ОС. Надеюсь, что эта заметка пригодится не только нам, но и тем, кто хочет сжимать видео без потерь. Напоследок приведу интересную ссылку на перечень кодеков, который имеется в арсенале libavcodec.
Читать далее

Как сделать мобильную версию блога на Blogger?



12 коммент.
Очень часто я сам читаю свой блог, когда мне нужно что-то настроить в полевых условиях, где нет интернета и я сижу на своём мобильнике с GPRS. Там мне не до красивого оформления, а нужно просто взять и прочитать то, что я написал. При этом желательно с поиском по сайту.
Поэтому в последнее время озадачился тем, что хорошо бы создать мобильную версию блога. Оказалось, что сделать это даже проще, чем я думал.

Как сделано
Всё довольно просто - есть такой замечательный сервис под названием mofuse, который за несколько минут сделает вам мобильную версию вашего блога вида XXX.mofuse.mobi

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

Идея такая: mofuse берёт вашу RSS-ленту блога и транслирует её по адресу XXX.mofuse.mobi в очень облегчённом виде. При этом mofuse будет сжимать и масштабировать картинки в постах, чтобы они быстрее загружались на мобильное устройство. Можно вставить свои страницы и ссылки, сделав таким образом мини-сайт с транслируемым RSS-потоком.

В общем, вы получаете отдельный сайт, который есть трансляция RSS-ленты вашего блога плюс возможность вставить ссылки (как это сделано сейчас у меня - ссылка на поисковую форму на сайте). Никаких навороченных яваскриптов и флеш-роликов: просто и аскетично.
За все эти прелести mofuse вставит в конец поста на вашем мобильном сайте, после навигации, несколько простых рекламных ссылок - более чем скромная плата за удобный и простой сервис.

Пример того, что получилось у меня, находится по адресу http://mydebianblog.mofuse.mobi/
Прямую ссылку сразу на мобильную версию я уже повесил в боковой панели блога (пока в режиме тестирования), но в общем смотрится на мой взгляд неплохо.

Работу mofuse я проверил на своём смартфоне Motorola A1200E и планшетке Nokia N800. В обоих случаях всё выглядит хорошо: есть трансляция короткой RSS-ленты и гуглопоиск по сайту. В общем это получается мобильная версия всего блога, содержимое которого просто подгоняется под формат отображения на мобильных устройствах.

Так как мобильная версия блога сделана недавно, с удовольствием принимаются пожелания, замечания и конструктивная критика в комментариях.

P.S. Кроме этого, перевёл Feedburner-ленту в Google, измениться ничего не должно (старая лента должна работать). После перехода адрес ленты поменялся на http://feeds2.feedburner.com/debianletters но менять его не обязательно: Гугл обещает, что работать будут оба адреса. Это так, на всякий случай.
Читать далее

Установка MikTeX в Windows



14 коммент.
Время от времени мне присылают письма и спрашивают коллеги - как установить LaTeX в Windows. Далее небольшое руководство по установке дистрибутива MikTeX для глобальной и надёжной ОС Windows.


Установка MikTex.

1. miktex\setup\setup.exe
После этого следует довольно длинная процедура распаковки архивов и установки MiKTeXa версии какой-то выше чем 2.0
Лучше не отменять установку какого-то там TeXTree. Говорят, так лучше работает.
На вопрос об incorporated лично я отвечаю "нет".
Распаковывается и устанавливается действительно ооооочень долго.

2. В корневом каталоге запускаем инсталлятор интегрированной оболочки. Это может быть WinEdit (платный), LyX или TexnicCenter.

3. Настраиваем интегрированную оболочку: прописываем пути к latex-овским командам (если они не прописаны), убираем ненужные меню и прочее.

4. MikTex и русский язык: чтобы при наборе русских букв не вылезала абракадабра, надо всего лишь изменить шрифт. Нажмите Options\Fonts\Courier Cyrillic .

5. Чтобы ТеХ автоматически переносил русские слова (английские и так
будет), надо сделать следующее:

А) MiKTeX Options (кнопочка с шестеренками), далее Languages. Здесь
поставить флажок напротив russian ruhyph.tex .

Б) Пуск\Выполнить
Нужно выполнить две команды (пробелы важны):
initexmf --dump
initexmf --find-tex language.dat

Если не заработает, найдите через поиск файл initexmf и укажите полный путь, примерно так:
C:\Programs\texmf\miktex\bin\initexmf --dump
C:\Programs\texmf\miktex\bin\initexmf --find-tex language.dat
Настоятельно рекомендую сначала попробовать без пути. А то иногда не
работает с путем.

6. Установить ghostscript и imagemagick, для возможности работы с PostScript и конвертированием изображений в разные форматы соответственно.

7. Установить программу для работы с библиографической базой данных JabRef. Идём в интернет и качаем оттуда последнюю версию. Получаем файл .jar, который запускается при помощи Java. Java в Windows, конечно, нет - надо скачивать Java Runtime Environment и устанавливать её.

В общем, дружественная такая процедура. Главное - не терять присутствие духа и стоически бороться.

Компромиссный вариант

Если нужно просто немного поработать с LaTeX-документами в Windows и при этом не устанавливать ничего, можно воспользоваться TexMaker Portable, о котором я уже писал. Версия TexMaker для Windows имеется тут.
Читать далее

Внимание! Блог меняет название, тематику и владельца



40 коммент.
Уважаемые читатели блога "Записки дебианщика"!

Мы рады вам сообщить, что с 1 апреля 2009 года блог "Записки дебианщика" переименован в блог "Vista и Linux" и перемещён на блогодвижок Microsoft Live Spaces. Новая RSS-лента записей блога находится по этой ссылке. В скором времени будут подготовлены статьи о настройке и подробностях работы глобальной и надёжной операционной системы Microsoft Windows Vista.

Автор блога, г-н virens, доставлен в следственный изолятор ближайшего отделения корпорации Microsoft до выяснения обстоятельств. В данный момент с г-ном virens проводятся жёсткие разъяснительные беседы и прочие оперативно-следственные мероприятия, в ходе которых он должен уяснить себе всю глубину собственных заблуждений относительно движения Open Source. После этого г-н virens будет принят в состав Microsoft Documentation Team в качестве технического писателя документации для OS Windows Vista за еду. В случае проявления неповиновения г-н virens будет сослан на исправительно-трудовые работы в Тундру на лесоповал в колонию строгого режима на 25 лет без права переписки.

Однако нет повода для беспокойства*: дознание ведут опытные сотрудники Отдела по борьбе с ересью и инакомыслием корпорации Microsoft. Мы уверены, что г-н virens примет правильное решение и вскоре вернётся к привычному образу жизни. В ближайших планах намечена публикация статей о самой справделивой лицензии Microsoft EULA, сверхнадёжной серверной платформы Microsoft IIS и лучшей десктопной всех времён и народов OS Windows Vista.

С уважением,
Microsoft Documentation Team,
Российское отделение корпорации
Microsoft.


* С завтрашнего дня чтение блога станет платным. Для просмотра документации пользователям следует установить в броузер Microsoft Internet Explorer специальный модуль DRM и оплатить месячный абонемент - всего 99$. За чтение статей, содержащих упоминание торговой марки UNIX, следует заплатить отдельные лицензионные отчисления авторам и владельцам UNIX, корпорации SCO Group.
Читать далее