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

Дополнительные таблицы перекодировки (screenmap)


Выше я сказал, что при выводе символа, syscons просто отправляет его код в видео-контроллер. Это не совсем верно.

Перед этим syscons "прогоняет" символ через внутреннюю таблицу перекодировки. Эта "таблица перекодировки" (screenmap) представляет из себя просто табличку из 256 байт, то есть каждый выводимый код символа может быть заменен на код какого-нибудь другого символа. Понятно, что если вам ничего заменять не нужно, эта таблица заполняется такими значениями, которые не меняют исходный код.

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

Но, с другой стороны, если у вас нет под рукой нужного шрифта (например, русские буквы в кодировке cp1251), то составить таблицу перекодировки очень легко с помощью подходящей программы-"перекодировщика". А нарисовать новый шрифт, или хотя бы "перекроить" один из существующих - более трудоемкая задача. Кроме того, "таблица перекодировки" помогает решать и некоторые другие проблемы (например, смотри

"Русификация: Зачем так сложно?").

Как и шрифты, screenmap можно заменить с помощью программы vidcontrol

(подробности в описании vidcontrol).

Учтите, что "таблица перекодировки" в syscons одна на все виртуальные терминалы (хотя это и не очень приятно). Поэтому ее изменение на одном из виртуальных терминалов отразится и на всех остальных. Правда, в отличии от перезагрузки шрифтов, которая сразу же перерисует символы на всех других терминалах, смена screenmap подействует только на следующий выводимый текст.



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