Настройка и работа в Linux

         

Драйвер экрана


Разработчики нынешней версии ядра перешли на использование UNICODE (UCS2) в драйвере консоли, поддержка национальных алфавитов отстала (во всяком случае всякие FAQs, HOWTO и советы, оставшиеся от прошлых времен не помогают; шрифты и таблицы перекодировок просто глючат). Механизм RHL 6.0 действует так: при загрузке вызывается /etc/rc.d/init.d/keytable (там же встроена поддержка клавиатуры), которая вызывает /sbin/setsysfont. setsysfont в свою очередь выполняет (если есть) /etc/sysconfig/i18n, ожидая что та определит переменные SYSFONT (имя файла со шрифтом, берется из /usr/lib/kbd/consolefonts) и UNIMAP (имя файла с таблицей соответствия, берется из /usr/lib/kbd/consoletrans). После чего выполняет
consolechars -f $SYSFONT --sfm $UNIMAP
в качестве SYSFONT я беру koi8-8x16, в качестве UNIMAP - koi8-r. Так что и клавиатура и экран работают в koi8-r и не надо ничего перекодировать (в новой версии использование koi8-r не ломает таблички MidnightCommander, в RH 6.0 вместо русской буквы 'В' выводится тире с точками, в RH 6.2 - поправлено). Есть и другие шрифты (koi8-8x8, koi8-8x14, alt-8x8, alt-8x14, alt-8x16, Cyr_a8x8, Cyr_a8x14, Cyr_8x16), но таблица UNIMAP есть только для koi8-r. Иногда setsysfont (consolechars) не срабатывает с первого раза, приходится повторять. В 2.2.12 вообще перестал работать (клавиатура переключается, но вместо русских букв на экран выдается псевдографика, а вместо псевдографики - русские буквы). В 2.2.14 работает без проблем.



Содержание раздела