Как заметил один мой знакомый: русификация консоли слетает в 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.
"Я конечно понимаю, что она нужна абсолютному меньшинству пользователей."
ОтветитьУдалитьНу в Ubuntu может быть. А если у нас Ubuntu Server? Где в наличии только консоль :). А проблема там ровна та же.
Спасибо за заметку! Вылетело из головы название пакета который надо пересобрать... вы помогли.
не сработало
ОтветитьУдалитьинтересный факт! поставил на vortualbox ubuntu 11.04. русские папки отображаются квадратиками. по запрос -locale -a нет ни слова о RU. выключаем машину, в настройках ставим 55мегабайт ОЗУ, включаем. ловим глюки (так и надо)... затем выключаем машину, возвращаем обьем ОЗУ (64+ метра) и до следующей перезагрузке все папки и файлы с русским именем отлично отображаются. проверенно на 4 разных компах с разными версиями базовой ОС, но все на виртуалбоксе. т.е. не меняя никаких настроек, после искусственных глюков на 1 сеанс все становится впорядке. кто сможет обьяснить - буду благодарен, art-kom07@mail.ru
ОтветитьУдалитьДля тех у кого не сработало. Если не трудно, проверьте вот что. В каталоге /boot должен быть образ initramfs для вашего ядра, например initrd.img-2.6.38-8-generic-pae. Все описанные в статье действия имеют целью добавление в init-top скриптов отвечающих за настройку консоли.
ОтветитьУдалитьВ моем случае:
cat /boot/initrd.img-2.6.38-8-generic-pae | gunzip -c - | cpio -t | grep init-top
scripts/init-top
scripts/init-top/bootchart
scripts/init-top/ORDER
scripts/init-top/console_setup <--- нам нужен этот
scripts/init-top/plymouth
scripts/init-top/blacklist
scripts/init-top/framebuffer
scripts/init-top/all_generic_ide
scripts/init-top/brltty
scripts/init-top/udev
scripts/init-top/keymap
Если на вашей системе скрипта console_setup нет, работать не будет. Надо разбираться куда скрипт делся.
Другое дело. если скрипт есть, но не работает. Тоже надо разбираться, я могу предположить, что дело вдрайвере framebuffer. У меня на машине с видео-картой ATI пришлось делать то, что описано в статье. На другой машине с Nvidia файлы появились сами, каким-то
магическим образом. Вполне допускаю, что где-то и наличие setupcon не поможет.
Нужны подробности.
Последним действием должно быть выполнение
ОтветитьУдалитьsudo update-initramfs -u
В противном случае, система не добавит в initrd информацию об активированном framebuffer.
Кстати да. Мой косяк. Спасибо за обнаруженную ошибку. Пойду поправлю.
ОтветитьУдалитьСпасибо!
ОтветитьУдалитьУже есть обновление в репозитарии. После инсталяции сервера - сразуже установите обновления - и будет Вам счастье.
ОтветитьУдалитьПоспешил :-(
ОтветитьУдалитьПосле перезагрузки... опять "грабли".
Сразу же сделал рестарт /etc/init.d/console-cyrillic
- кириллица появилась.
(я не специалист в этом, поэтому сделал всё как обезъяна)
ОтветитьУдалитьПосле перезагрузки русский пропал
dpkg-reconfigure console-setup - отвечал что предлагали
dpkg-reconfigure keyboard-configuration - тоже самое
initrd.img-2.6.38-8-generic-pae - подобных файлов два, initrd.img-2.6.38-10-generic-pae - после настройки дата модификации меняется именно у этого
Система под vmware server 1.0.10
помогло http://m0hn.blogspot.com/2011/05/ubuntu-server-1104.html
ОтветитьУдалитьобновлялся до изменений из репозитария
apt-get update
apt-get updgrade
apt-get dist-upgrade
Автор какой-то извращенный метод тут изобрел.
ОтветитьУдалитьКоторый между прочем у половины не работает, у второй половины работает через анус.
Вот рабочий и гораздо более простой метод:
После установки русской версии Ubuntu-Server 11.04 появилась проблема. Все что написано на кириллице отображалось в виде квадратиков. Правки вносимые в файл /etc/default/console-setup, отвечающий за консоль не приводили к результатам. Было найдено решение:
Устанавливаем пакет console-cyrillic
sudo apt-get install console-cyrillic
Добавляем в /etc/rc.local строку:
/etc/init.d/console-cyrillic start
Далее перезагружаем:
sudo reboot
Готово!
Slevin, как раз твое решение - через анус.
ОтветитьУдалитьУ меня заработало как в статье, но стоит добавить заметку, что к времени настройки фреймбуфер уже должен работать.
ОтветитьУдалитьнапример в файле /etc/default/grub стоять параметр vga=0x317 и выполнена перегенерация скриптов граб sudo update-grub.
У меня на виртуалбоксе вреймбуфер не завелся из коробки.
Автору большое спасибо!!! Самое ценное в заметке разъяснения!!! А то тупые манулы сделать так, а потом не работает уже достали.
Посмотрел на свой пост и понял, что стоит добавить
ОтветитьУдалитьприведенный пример с разрешением соответствует 1024x768X24bit. Остальные разрешения и полную инструкцию смотреть здесь http://www.truediamon.ru/content/vkljuchenie-framebuffer-v-ubuntu
Работает! Спс! =)
ОтветитьУдалитьUbuntu 11.10 Server - работает.
ОтветитьУдалитьАвтору большое спасибо. Статью в закладки.
Спасибо.
ОтветитьУдалитьНо перенастройку пакетов проводить не объязательно.
Спасибо за подсказку, все изрыл и облазил, везде впихивал загрузку фонтов - не помогало никак.
ОтветитьУдалитьFRAMEBUFFER=Y помогло, а когда глубже копнул, по подсказке, накопал еще много интересного, что изложил в статейке на другом ресурсе: http://help.ubuntu.ru/wiki/russian_font_in_console
Спасибо!
PS console-cyrillic - RIP, и не жалко - этот костыль - не нужен.
спасибо за самый быстрый и правильный способ
ОтветитьУдалить