31 марта 2009 г.

Поддержка кириллицы в консоли Linux

Для настройки фреймбуфера и кириллицы в терминале пришлось сделать несколько телодвижений и отказаться от загрузки, такого симпатичного, splash-а...
В /boot/grub/menu.lst необходимо дописать vga=792 (фреймбуфер в режиме 1024х768 24м.цвет или 791) и комментируем splash из-за загрузки которого кириллица и пропадает... Должно получиться что-то подобное:

kernel /boot/vmlinuz-2.6.27-11-generic root=/dev/sda2 ro quiet vga=792 #splash

Для наших целей используем console-setup, который у нас уже установлен.Этот пакет предоставляет поддержку кириллицы в консоли Linux и предлагает множество настроек.
Необходимо запустить 'sudo dpkg-reconfigure console-setup' и настроить на шрифт terminus-bold (или с VGA), при локале UTF-8 c codeset KOI8... Так как мне это нужно, то в /etc/default/console-setup добавляем украинскую раскладку "ua"... 'winkeys' можно и не использовать - это дело предпочтений и привычки (Можно писать и ",ua(winkeys)").
Получаем cat /etc/default/console-setup:

# A configuration file for setupcon

# Change to "yes" and setupcon will explain what is being doing
VERBOSE_OUTPUT=no

# Setup these consoles. Most people do not need to change this.
ACTIVE_CONSOLES="/dev/tty[1-6]"

# Put here your encoding. Valid charmaps are: UTF-8 ARMSCII-8 CP1251
# CP1255 CP1256 GEORGIAN-ACADEMY GEORGIAN-PS IBM1133 ISIRI-3342
# ISO-8859-1 ISO-8859-2 ISO-8859-3 ISO-8859-4 ISO-8859-5 ISO-8859-6
# ISO-8859-7 ISO-8859-8 ISO-8859-9 ISO-8859-10 ISO-8859-11 ISO-8859-13
# ISO-8859-14 ISO-8859-15 ISO-8859-16 KOI8-R KOI8-U TIS-620 VISCII
CHARMAP="UTF-8"

# The codeset determines which symbols are supported by the font.
# Valid codesets are: Arabic Armenian CyrAsia CyrKoi CyrSlav Ethiopian
# Georgian Greek Hebrew Lao Lat15 Lat2 Lat38 Lat7 Thai Uni1 Uni2 Uni3
# Vietnamese. Read README.fonts for explanation.
CODESET="CyrKoi"

# Valid font faces are: VGA (sizes 8, 14 and 16), Terminus (sizes
# 12x6, 14, 16, 20x10, 24x12, 28x14 and 32x16), TerminusBold (sizes
# 14, 16, 20x10, 24x12, 28x14 and 32x16), TerminusBoldVGA (sizes 14
# and 16), Fixed (sizes 13, 14, 15, 16 and 18), Goha (sizes 12, 14 and
# 16), GohaClassic (sizes 12, 14 and 16).
FONTFACE="TerminusBoldVGA"
FONTSIZE="16"

# You can also directly specify nonstandard font and ACM to load:
# FONT=/usr/local/share/funnyfonts/sarge16.psf
# ACM=/usr/local/share/consoletrans/my_special_encoding.acm

# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.
XKBMODEL="pc105"
XKBLAYOUT="us,ru,ua"
XKBVARIANT=",winkeys,winkeys"
XKBOPTIONS="grp:menu_toggle,grp_led:scroll"


# Do not update the following md5 sum if you change
# /etc/console-setup/boottime.kmap.gz and Debconf will not overwrite
# your custom keymap. Do not update it even if you want to make
# Debconf overwrite it. Instead simply specify the empty string as
# a md5 sum.

BOOTTIME_KMAP_MD5="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"

#### end ####

Для изменения размера сплаш-изображения 'sudo vim /etc/usplash.conf' пишем значения 1024x768 (можно 'sudo dpkg-reconfigure usplash', но не обязательно), потому что с такими параметрами загружается наш терминал, но это если вам не столь важно иметь кириллицу сразу... Так вот, если у вас включен splash перезапуск console-setup подключает снова русский шрифт в консолях [1-6]: sudo /etc/init.d/console-setup restart

Так же можно установить и использовать пакет console-cyrillic, но не вижу в этом смысла ведь и так все работает, а сплаш не является чем-то критично важным... Тем более что перезапуск console-setup можно где-нибудь прописать, что бы он выполнялся автоматически после того как его настройки были сбиты...

P.S. Хотелось бы знать, что действительно и как правильно что-то изменить, чтобы получить и рус.консоль и загрузку системы со splash...

5 марта 2009 г.

TV-выход и NVIDIA geforce 6600

Вот что-то надоело мне смотреть фильмы и аниме на мониторе и пришлось настраивать себе "второй монитор", а точнее TV-выход на свой "Sansung HDTV 1080i/720p Ready", которым я почти не пользовался со дня его покупки - ну так получилось :-) Из локалной сети беру фильмы/мульты и все без рекламы (депутатов и продуктов), которая ужасно надоела...

Так вот, к делу... У меня NVIDIA Geforce 6600 с tvout s-video на 9pin, о чем раньше не очень задумывался, пока спонтанно не купи кабель. По простоте душевной, не мог и подумать, что видов этих штекеров и т.д. так много... Так вот в наличии у меня оказался THOMSON KTV620 (Advent S-VHS -> S-VHS 10m, 4x4 pin). И уже думал, что нужно будет найти и купить переходник, которого у меня нет или перепаивать один штекер, но порыскав по "гуглу" случайно наткнулся на высказывание о возможности использовать и без переходников. Рискнул, но не многим, отломав стерженек в паяном штекере, который после этих несложных манипуляция вошел в гнездо видео карты. Далее оставалось только экспериментировать с выводом на сам телевизор, что раньше никогда не делал и даже не имел понятия с чего начать ;-)

Экспериментировал в основном с nvidia-settings, если запускать через sudo, то можно сразу внести изменения в /etc/X11/xorg.conf
В инете что-то читал и для начала выбрал в настройках режим TwinView, но мне не понравилось: монитор и все, что на не дублировалось на телевизоре причем с "неправильным" для меня разрешением на телевизоре (рабочий стол не влезает в экран), а так же запуск mplayera на мониторе был не на весь экран, а в четверть оного (вернее самого фильма) и т.д. Незнаю почему, но Xinerama мне тоже не нравится... Одним словом после разных проб пришел к решению настроить телевизор как отдельный монитор в режиме "Separate X screen". Теперь наслаждаюсь Работой на мониторе и возможностью запустить фильм на телевизоре. И к слову, таким образом Рабочий стол Гнома или флукса запускается в размер экрана телевизора, а не больше. Правда не получаю возможность использовать мыш или клавиатуру на телеке (работало только при TwinView), но для меня это не помеха, так как нужно это все только для фильмов (но хотелось бы знать, если такое возможно, как добиться такого результата). Может мои настройки и не самые лучшие, но я добился желаемого результата...

Вот еще что интересно! Использую fluxbox и он на телевизоре отображается без моих настроек (только панель), в Гноме тоже самое то с настройками по умолчанию. И где же менять для второго монитора эти настройки, вот в чем вопрос? ;-) Так же хотелось бы получить 100Hz, а не 50HZ на телевизоре и HorizSync, VertRefresh были автоматически получены от монитора LG что же родное от телевизора тут вписать не знаю и займусь этим когда-нибудь позже. Главное, что все работает так как мне было нужно.

Чуть не забыл написать, как что-нибудь запустить на телевизоре!
DISPLAY=":0.1" имя_программы, хотя использую только mplayer и запускаю фильмы так: 'mplayer -display :0.1 путь_фильм.avi', а если точнее то в tux commandere настроил меню для запуска на мониторе или телевизоре и нужной кодировкой субтитров. А вообще лучше настроить mplayer.conf что бы кучу параметров не вводить в консоли каждый раз...


Свой конфиг прилагаю: cat /etc/X11/xorg.conf

Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" 0 0
Screen 1 "Screen1" 0 0
EndSection

Section "Module"
Load "glx"
EndSection

Section "ServerFlags"
Option "Xinerama" "0"
EndSection

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "XkbRules" "xorg"
Option "XkbModel" "pc105"
Option "XkbLayout" "us,ru(winkeys),ua(winkeys)"
Option "XkbOptions" "grp:menu_toggle,grp_led:scroll"
EndSection

Section "Monitor"
Identifier "Configured Monitor"
EndSection

Section "Monitor"
Identifier "Monitor0"
VendorName "LG"
ModelName "LG FLATRON 795FT Plus"
HorizSync 30.0 - 96.0
VertRefresh 50.0 - 160.0
EndSection

Section "Monitor"
Identifier "Monitor1"
VendorName "Sansung"
ModelName "Samsung HDTV 1080i/720p Ready"
HorizSync 30.0 - 96.0
VertRefresh 50.0 - 160.0
EndSection

Section "Device"
Identifier "Configured Video Device"
Driver "nvidia"
Option "NoLogo" "True"
EndSection

Section "Device"
Identifier "Device0"
Driver "nvidia"
Option "NoLogo" "True"
VendorName "NVIDIA Corporation"
BoardName "GeForce 6600"
BusID "PCI:1:0:0"
Screen 0
EndSection

Section "Device"
Identifier "Device1"
Driver "nvidia"
Option "NoLogo" "True"
VendorName "NVIDIA Corporation"
BoardName "GeForce 6600"
BusID "PCI:1:0:0"
Screen 1
EndSection

Section "Screen"
Identifier "Default Screen"
Device "Configured Video Device"
Monitor "Configured Monitor"
DefaultDepth 24
EndSection

Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "TwinView" "0"
Option "TwinViewXineramaInfoOrder" "CRT-0"
Option "metamodes" "CRT: 1600x1200 +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection

Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "TwinView" "0"
Option "metamodes" "TV: nvidia-auto-select +0+0"
Option "TVOutFormat" "SVIDEO"
Option "TVStandard" "PAL-B"
Option "ConnectedMonitor" "TV" #или "CRT, TV"
SubSection "Display"
Depth 24
EndSubSection
EndSection


*nvidia-auto-select у меня 1024х768, его можно указать и меньше, а также прописать вручную в конфигурационном файле.

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