Как заметил один мой знакомый: русификация консоли слетает в 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, как раз твое решение - через анус.
ОтветитьУдалить+ много.
УдалитьЭпический по своей сути костыль этот console-cyrillic!
Вы только представьте репозиторий:
console-german
console-spain
console-arabic
console-cyrillic
....
И так под любой язык или группу языков с отличающимися начертаниями символов. :)
У меня заработало как в статье, но стоит добавить заметку, что к времени настройки фреймбуфер уже должен работать.
ОтветитьУдалитьнапример в файле /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, и не жалко - этот костыль - не нужен.
Аналогично лечился добавлением строки FRAMEBUFFER=Y.
УдалитьUbuntu 12.04.02 sever
спасибо за самый быстрый и правильный способ
ОтветитьУдалитьСпасибо, похожая проблема в xubuntu 11.10, помогло. Однако это не объясняет почему в kubuntu 11.10 таких проблем нет.... Странно, так как в kubuntu framebuffer=Y не прописано.
ОтветитьУдалитьСложно сказать. У меня есть два компьютера оба с kubuntu 11.10, на одном видеокарта NVidia с драйвером nouveau и там проблем с русским нет, на другом ATI со драйверами radeon и проблема есть.
ОтветитьУдалитьУ меня сложилось впечатление, что баг как-то связан с реализацией framebuffer. У radeon framebuffer относительно новый (в логах "fb0: radeondrmfb frame buffer device"), как и сама подсистема DRM. Может быть скрипты распознают более старые типы framebuffer, а новые или криво реализованные нет, вот и получается что баг воспроизводится через раз. Чтобы сказать точнее надо трассировку гонять, но у меня никак руки не доходят.
По поводу фреймбуффера я раньше лечил это пересборкой ядра и установкой дров, но, не всегда они встали гладко и конфиг приходилось ручками править, теперь просто необходимости нет. В своем вопросе я разобрался,потратил день чтоб разобраться в mkinitramfs и у в kubuntu обнаружил хук для установки FRAMEBUFFER=Y и еще пары опций. В xubuntu такого хука не было. Возможно, все зависит от того как человек провел установку, какие параметры указывал при установке.
ОтветитьУдалитьПро фреймбуфер я немного накопал тут http://help.ubuntu.ru/wiki/russian_font_in_console.
УдалитьСуть в том, что если есть сплаш скрин - то для него фрейм буфер включают и все ОК, если сплаша нет - нет и буфера - нужно его явно разрешать как в статье.
Спасибо за статью, помогло.
ОтветитьУдалитьСпасибо! Все вылечилось.
ОтветитьУдалитьСтатья отличная, помогла в виртуал бокс решить проблему, спасибо! Остальные методы в инете(как и с console-cyrillic) не увенчались успехом :(
ОтветитьУдалитьреально сработало, был огорчен, когда увидел кубики. Установил недавно ubuntu 11.04, потому что не хочу работать в UNIT, баг до сих пор остался...Исправлено благодаря Вам!
ОтветитьУдалитьUbuntu Server 12.04 Подтверждаю, эта статья реально помогла установить русские буквы в консоли сервера сразу при старте, без запуска каких-либо скриптов при каждой загрузке. Спасибо!
ОтветитьУдалитьДелать вам всем, простите, нечего... :( Это что за ПО такое: глюки сразу после установки??? :( А я надеялся, я верил...
ОтветитьУдалитьСпасибо, помогло. Года два такая проблема была, сильно правда не мешала - при входе по ssh шрифты нормально отображаются. Но хочется уже, что бы всё нормально работало.
ОтветитьУдалитьСделал как у Slevin 23 июля 2011 г., 6:51. Ubuntu 12.4 gnome . Русский отображается нормально. Единственный минус - не переключается раскладка на русский, хотя устанавливал по cntrl_shift. Но мне вообщем-то и не нужно. МС выручает. Спасибо.
ОтветитьУдалитьПоторопился, похоже этот совет только для серверов подходит. После входа в gui с последующей перезагрузкой все назад вернулось, русского в консоли не наблюдается.
Удалитьпомогло спасибки
ОтветитьУдалитьСпасибо
ОтветитьУдалитьСпасибо. 13 год заканчивается, а баги теже
ОтветитьУдалитьСпасибо автору, полезная статья. Мне так же помогло решить проблему с Ubuntu на VirtualBox.
ОтветитьУдалитьК слову, надо первым действием добавить включение прав "суперюзера": sudo -i . Ввести пароль указанный при установке.
По моему, народ просто из под "юзера" пытается env.. выполнить.