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...

Комментариев нет: