Linux русские буквы квадратиками

Поддержка русского языка в консоли

Содержание

В 15.10 изменена система загрузки (sustemd) и описанное ниже средство не помогает. Смотрите раздел Решение для ubuntu 15.10 и более поздних.

Почему в консоли квадратики вместо русских букв?

Многие замечали, что из версии в версию в Ubuntu у некоторых слетают русские фонты в консоли (куда можно попасть нажав CTRL+ALT+F1 — F6, а CTRL+ALT+F7 возвращает в графическую среду). Озаботившись причинами почему это происходит я (Sly_tom_cat) облазил кучу мест в поисках решения. Залез и в initrd и смотрел в скрипты upstart и в UDEV… что ни правил — не помогает. Особо порадовал комментарий разработчиков в одном из скриптов Udev 1) . Cуть там примерно такова: «надо бы делать как-то так, но мы попробовали — у нас не вышло. Так что, делаем как получится, а если юзерам нужны нормальные фонты — пускай выполнят setupcon и все будет Ok»

Но все-таки нет такого решения, которого не найти в Интернете. Причем нашел я его даже по русски 2)

Как же правильно лечить больного?

Оказывается, всего навсего, нужно включить поддержку фреймбуфера на этапе инициализации ядра. Это в свою очередь разрешит выполнение нужных скриптов, которые загрузят фонты на самом раннем этапе инициализации ядра.
Для этого:
1. в любом текстовом редакторе с правами рута нужно в файл /etc/initramfs-tools/initramfs.conf добавить строчку FRAMEBUFFER=Y. Это также можно сделать выполнив следующие команды:

2. Обновить образ рамдиска периода инициализации ядра (initrd):

Поле этих манипуляций наконец начнут работать настройки сделанные командой 3) :

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

Возможно потребуется так же настроить и клавиатуру (раскладки, переключение раскладок и compose-key) 4) :

Кому интересно — «откуда ноги растут».

Покопавшись глубже можно обнаружить следующее:
В initrd/scripts/init-top/ лежат скрипты выполняющиеся в самом начале процесса инициализации ядра. И там мы видим все, что могло бы потребоваться для поддержки «правильных» фонтов

Но, если заглянуть в файлы console_setup, keymap и framebuffer то в самом начале скрипта мы увидим такую строчку:

А покопавшись в скриптах инициализации можно понять, что OPTION обрабатывается так, что если значение переменной (что ей присвоено) не задано или не Y, то выполнение самого скрипта пропускается. Т.е. в нашем случае, если FRAMEBUFFER не равно Y, то ни один из скриптов, отвечающих за поддержку фонтов и раскладок клавиатуры, попросту не будут выполнятся в процессе инициализации ядра.
Но без FRAMEBUFFER не возможно загрузить шрифты с поддержкой национальных символов!
Примечательно то, что настройки раскладок клавиатуры все-таки будут применены в процессе загрузки ОС (уже после инициализации ядра). За это отвечает скрипт console-setup системы инициализации upstart, а вот консольные фонты скрипты upstart не настраивают.

Читайте также:  Переменная среды windows path что за

Однако, это совсем не объясняет почему подобная проблема возникает не у всех. И как оказывается — она вылезает у любителей оптимизации системы, да еще и у пользователей серверной версии Ubuntu…

Что можно увидеть в любой инструкции по повышению скорости загрузки ОС?

Правильно — «уберите заставку при загрузке»: в файле /etc/default/grub в переменной GRUB_CMDLINE_LINUX_DEFAULT значение splash замените на nosplash или просто уберите) и выполните sudo update-grub. Ну, а пользователи серверной версии Ubuntu по умолчанию обделены таким «счастьем», как графическая заставка во время загрузки.

Так вот, оказывается, разработчики решили, что фреймбуфер нужен для рисования заставки и … и только для этого. Больше (оказывается) он никому, ни зачем, не нужен. Поэтому, если заставку рисуем — то фреймбуфер разрешаем (а то как же — без него же не нарисовать заставку), а если заставку не рисуем, то и фреймбуфер включать незачем, не включаем…. Нет, позже, после инициализации ядра, фреймбуфер все-таки где-то активируется, но поезд уже ушел — фонты на этапе иницализации ядра не загрузились…. «а кому надо — те пусть вызывают setupcon …»

Решение для ubuntu 15.10 и более поздних

В Ubuntu 15.10 имеется неисправленный баг с настройкой локали https://bugs.launchpad.net/ubuntu/+source/console-setup/+bug/1511975. Поэтому для настройки русского языка необходимо проделать следующее 1.

(настройки в файле /etc/default/console-setup)

(настройки в файле /etc/default/keyboard)

Заменить последнюю строку

Вредные советы

Поиск в сети порой дает много костыльных советов на данную тему. Особенно часто встречаются два из них:
1. костыль из костылей: «Прописать setupcon в /etc/rc.local» — мало того что это костыль, да еще и не помогает иногда 🙁
2. совсем эпический по своей дебильности костыль — персональный пакет для русского языка в консоли — console-cyrillic . …вызывает полное недоумение идея — «под каждый язык на свете создавать персональный пакет для консоли», когда по дефолту в UTF8 кодировке и основных консольных шрифтах есть все, что нужно для поддержки практически любого языка (по крайней мере европейского).

Если вам попадаются такие советы, не поленитесь — объясните людям их глубокое заблуждение и отправьте на эту страницу.

Источник

белые квадратики вместе русских букв Debian 8

Всем привет , поставил дебиан 8 и столкнулся с проблемой — в консоле, вместо русских букв вижу белые квадратики . Подскажите в чем может быть проблема именно в этой версии Дебиана ?

В tty? Скорее всего шрифт консоли без кириллических глифов.

в jessie так оно и есть, а в stretch уже исправили, лично мне квадратики не мешают — забейте на них болт.

там кроме UTF-8 нечего ловить — оно и так по умолчанию.

UTF-8 — это кодировка, которая будет использоваться консолью при чтении stdin-выводе в stdout. Но благодаря наследию VGA 80-х годов, в текстовую консоль без иксов видеокарточка может рисовать только 256 различных глифов. Какие именно — тебе предстоит выбрать на следующем шаге.

У меня, например, выбран Cyrillic KOI8-R and KOI8-U, это значит, что в видеодрайвере окажутся глифы, входящие в эту кодировку, т.е. латинские и кириллические. Это совершенно не значит, что консоль будет использовать KOI8-R, просто она сможет отображать символы из этой кодировки.

Читайте также:  Gamepad emulator windows 10

Можешь потом дать команду showconsolefont — она тебе выведет все возможные глифы.

Спасибо, не знал этой особенности. Всегда выбираю Cyrillic (non-slavic) и обычно всё хорошо работает.

ТСС!! А то ещё немного и свидетели KOI припрутся! ЧУР! ЧУР!

Спасибо ! Выбрал Cyrillic KOi8-R and Koi8-U и больше никаких квадратиков! ) версия tty

После перезагрузки все слетело , как сохранить изменения?

Источник

Квадратики вместо кириллицы, как исправить?

у вас действительно так написано ? или это вы просто неправильно перенесли ?
у меня выглядит так:

по поводу вашего

должно быть
VC Keymap: ru
так как значение оно берет их файла /etc/vconsole.conf а в самом начале я писал что

возможно еще понадобится добавить туда же:
KEYMAP=ru

Да там пробелы лишние получились #localectl list-locales
en_US.utf8
ru_RU.utf8
#cat /etc/locale.conf
LANG=ru_RU.UTF8
VC Keymap: ru
Но только в других tty проблема Таже, мне что в каждом нужно это делать

Но только в других tty проблема Таже, мне что в каждом нужно это делать

нет, оно задаётся сразу для всех tty

так, давайте пропишу шаги с самого начала
——————————————————
1. ЛОКАЛЬ [locale]
1.1 подготовка
оставляем в файле locale.gen только две строки с нужными локалями

1.2 генерация
генерируем локали
$ locale-gen
проверяем что они сгенерировались

1.3 установка
устанавливаем нужную(из с генерированных ранее) локаль
$ sudo localectl set-locale LANG=ru_RU.UTF-8

1.4 проверка установки локали
после выполнения пункта 1.3 в файле /etc/locale.conf автоматом пропишется локаль

также текущая локаль будет выводится командой

2. РАСКЛАДКА КЛАВИАТУРЫ Linux русские буквы квадратиками
2.1 выбираем
смотрим какие раскладки есть в наличии
$ localectl list-keymaps

2.2 устанавливаем (выбрали ru — где переключение раскладки по Ctrl+Shift)
$ sudo localectl set-keymap ru

2.3 проверяем
после выполнения пункта 2.2 в файле /etc/vconsole.conf автоматом пропишется раскладка

также текущая раскладка будет выводится командой

3. ШРИФТ [font]
3.1 какие есть
глянуть какие консольные шрифты есть в системе можно по аддресу /usr/share/kbd/consolefonts/
дополнительные(есть и русские разных размеров) шрифты для консоли можно получить после установки пакеты terminus-font
$ sudo pacman -S terminus-font

3.2 устанавливаем
дописываем в файл vconsole.conf строку с переменной FONT

здесь шрифт(русский) ter-v18b взят из пакета terminus-font, хотя при желании можно прописать и стандартный ширфт cyr-sun16

3.3 проверка
увидить установился ли шрифт можно разве что визуално выведя символы которые потдерживает данный шрифт
прописать в консоле tty команду
# showconsolefont
визуальный вид самих шрифтов из стандартной поставки можно глянуть здесь — Archlinux Console Fonts Previews

Источник

Квадратики вместо русских букв

Когда я перехожу в консоль (сочетанием Ctrl+Alt+F1) вместо русских букв отображаются квадратики. После обновление это само поправилось, а после ещё одного обновления из tumbleweed снова появились в квадратики. Если консоль открыта в окне, то всё норм. Дистр OpenSUSE.

Это старый-престарый баг Суси.

А какие шрифты, поддерживающие русский язык подскажите?

ЕМНИП, нонче какой-то косяк с кодировками. Я в своем арчике сколько ни бился с этими настройками терминала, так русский у меня и не «завелся». Похоже, этой собаке только хрюникод нужен.

Среди первых — отсутствие выбора схемы инициализации системы: выбрать SysV вместо systemd из загрузочного меню больше нельзя. Правда, пакет sysvinit в репозитории имеется (хотя и не устанавливается по умолчанию). И, возможно, схему SysV посредством запуска systemd-sysvinit реанимировать можно. Правда, есть ли в этом смысл — не знаю.

Читайте также:  Epson stylus c86 драйвер windows 10

настало время для изложения новостей плохих. О которых тоже долго распространяться не буду: только ленивый не успел ещё написать и о чудесах подключения к сети во время старта системы, и о квадратиках в консоли. Отдал свой долг этим темам и ваш покорный слуга — так что повторяться нет смысла. Тем более, что все эти штуковины обусловлены тоже не самой openSUSE, а исключительно systemd. И худо-бедно решаются — не костылями, как раньше, во времена SysV, а совершенствованием самой инвалидной коляски.

Жалко что выбор между sysvinit и systemd убрали.

setfont Cyr_a8x16 . Мне помогает на любом дистрибутиве.

Не факт, что дело в кодировке. У меня вот тоже на vconsole.conf арч уже давно не реагирует. Приходится при каждом входе в консоль писать команду, написанную мной выше.

На другом компьютере решил проще: эту же команду прописал в конец .bashrc

и не работает, собака!

Нашёл способ поддерживающий кириллицу шрифт — ter-c16b А можно как-нибудь сделать, чтобы в консоли (не в эм уляторе терминала) автоматически прописывалась такая команда: setfont ter-c16b

Я же тебе написал работающее решение. Я у тебя в игнор-списке?

Номер, сестра, номер. Дело в том, что в 12.1 оно очень даже решаемо. Легальными способами. А именно настройка раскладки:

настройка шрифта консоли

Можно попытаться отключить заставку. Я делал. Получил косяк хуже чем было: в tty1 экран стал забит графическим мусором. Хотя в остальных tty шрифт установился корректно. Я откатил, и решил вопрос иначе: в

Раскладка кстати нормально устанавливается в любом дистре. проблема с фонтом легально решалась только в 12.1. Сорри за некоторую сумбурность.

Ты предлагаешь решение, предполагающее скачку чего-то и установку чего-то. Я тоже предпочитаю более прозрачные решения ^_^ ОПа можно понять.

Чего-то ты длинно очень написал. Можно же в одну строчку:

А все же любопытно. Я не знал, что yast’ом можно рулить из консоли. Неожиданно, для GUI.

А через правила udev не работает (см. арчевики)?

Похоже, этой собаке только хрюникод нужен.

Ко хрюникодной системе нужны хрюникодные шрифты. Они содержат таблицы соответсвия кодов юникода символам конкретного шрифта (шрифт не может быть больше 256 символов, аппаратные ограничения текстового режима видюхи). Можно подгружать эти таблицы отдельно. В сюзе они есть. Но по скольку не пользовался, не помню где. Если они встроены в шрифт, в его названии обычно содержится Uni в начале или расширение psfu (в отличие от обычного psf) Хотя в данной ветке дважды фигурирует незабвенный Cyr_a8x16.gz, не имеющий этих признаков.

Не факт, что дело в кодировке. У меня вот тоже на vconsole.conf арч уже давно не реагирует.

Хуки keymap и consolefont есть?

Ты мне ссылку на что-то страшное дал, с поцтеровысерами. У меня же sysvinit!

Ну было ж по поводу OpenSUSE, нет? udev-то по-любому есть.

Источник

Оцените статью