Отображение русского в консоли Ubuntu 11.04 Natty

Как заметил один мой знакомый: русификация консоли слетает в Ubuntu через версию. Видимо 10.04 она тоже слетала, а теперь пришла очередь 11.04. Пока возился с настройками после обновления, ненадолго застрял в консоли и обнаружил, что вместо русских букв там теперь квадратики. Выяснение причин вскрыло абсолютно раздолбайское отношение разработчиков к консоли. Я конечно понимаю, что она нужна абсолютному меньшинству пользователей. И все же это место, где мы обычно оказываемся, когда все остальное уже не работает.

В общем, если вас коснулась эта проблема и вам, надо срочно привести консоль в рабочее состояние предлагаю делать следующее:

  • Установить или удостовериться в наличии необходимых пакетов:

    env LANG=C sudo aptitude install console-setup keyboard-configuration
  • Выполнить настройку консоли (или перенастройку):

    env LANG=C sudo dpkg-reconfigure console-setup
    sudo dpkg-reconfigure keyboard-configuration
  • Включить настройку консоли при загрузке. Для этого в файл /etc/initramfs-tools/initramfs.conf необходимо добавить параметр FRAMEBUFFER=Y

  • Обновить initramfs, чтобы в него добавились нужные скрипты:

    sudo update-initramfs -u
Для тех кому интересны подробности

Корень проблем видимо в непрекращающейся глобальной переделке процесса начальной загрузки. До Natty за настройку шрифтов в консоли отвечал скрипт /etc/init.d/console-setup.sh, но в Natty его наконец переделали в upstart job /etc/init/console-setup.conf. Однако, по дороге из него исчезли все упоминания о настройке шрифтов в консоли. Там нет ни одного вызова setupcon. Настраивать шрифты в консоли теперь просто некому.

Кстати, тупо добавлять вызов setupcon в console-setup.conf все равно не выход (#668812). В результае настраивается только одна консоль, а надо все. Соответствующим скриптом видимо никто не озадачивался. Патч по идее будет тривиальный.

В принципе, решение убрать setupcon из init было, возможно, верным. Консоль может быть настроена раньше, еще до запуска upstart. За этот этап отвечает initramfs-tools, который использует скрипты console-setup. Однако, разработку этого пакета шарахает из стороны в сторону и похоже давно. Баги плодятся, но не похоже, чтобы их кто-то решал исправлял. Сейчас багов около 400.

Где-то в районе версии 0.94 (Maverik), настройку консоли и framebuffer из initramfs выкинули, а потом в версии 0.98 (Natty) включили обратно, но по-умолчанию отключили, и, докучи, забыли задокументировать произведенные изменения (#789141).

Так что в результате, настройка шрифтов консоли оказалась отключеной и все языки использующие не английский набор символов, теперь отображаются, как бог на душу положит, вплоть до ручного запуска setupcon.

RSS-материал