|
|||||||
|
Поддержка русского языка в консоли
Время создания: 06.08.2018 12:08
Текстовые метки: linux ubuntu console cyrillic
Раздел: Ubuntu
Запись: Velonski/mytetra-database/master/base/1488264331m5k1njaan6/text.html на raw.githubusercontent.com
|
|||||||
|
|
|||||||
|
Почему в консоли квадратики вместо русских букв? Многие замечали, что из версии в версию в Ubuntu у некоторых слетают русские фонты в консоли (куда можно попасть нажав CTRL+ALT+F1 - F6, а CTRL+ALT+F7 возвращает в графическую среду). Озаботившись причинами почему это происходит я (Sly_tom_cat) облазил кучу мест в поисках решения. Залез и в initrd и смотрел в скрипты upstart и в UDEV… что ни правил - не помогает. Особо порадовал комментарий разработчиков в одном из скриптов Udev1). Cуть там примерно такова: «надо бы делать как-то так, но мы попробовали - у нас не вышло. Так что, делаем как получится, а если юзерам нужны нормальные фонты - пускай выполнят setupcon и все будет Ok» Но все-таки нет такого решения, которого не найти в Интернете. Причем нашел я его даже по русски 2) Как же правильно лечить больного? Оказывается, всего навсего, нужно включить поддержку фреймбуфера на этапе инициализации ядра. Это в свою очередь разрешит выполнение нужных скриптов, которые загрузят фонты на самом раннем этапе инициализации ядра. sudo -i echo 'FRAMEBUFFER=Y' >> /etc/initramfs-tools/initramfs.conf exit 2. Обновить образ рамдиска периода инициализации ядра (initrd): sudo update-initramfs -u Поле этих манипуляций наконец начнут работать настройки сделанные командой3): sudo dpkg-reconfigure console-setup Кириллическими фонтами будет показываться все с самого начала - т.е. даже запрос на проверку дисков (возникающий в процессе инициализации ядра) будет выводится кириллицей, а не квадратами. sudo dpkg-reconfigure keyboard-configuration Кому интересно - "откуда ноги растут"... Покопавшись глубже можно обнаружить следующее: scripts/init-top/console_setup scripts/init-top/keymap scripts/init-top/blacklist scripts/init-top/udev scripts/init-top/framebuffer scripts/init-top/ORDER scripts/init-top/plymouth scripts/init-top/all_generic_ide Но, если заглянуть в файлы console_setup, keymap и framebuffer то в самом начале скрипта мы увидим такую строчку: OPTION=FRAMEBUFFER А покопавшись в скриптах инициализации можно понять, что OPTION обрабатывается так, что если значение переменной (что ей присвоено) не задано или не Y, то выполнение самого скрипта пропускается. Т.е. в нашем случае, если FRAMEBUFFER не равно Y, то ни один из скриптов, отвечающих за поддержку фонтов и раскладок клавиатуры, попросту не будут выполнятся в процессе инициализации ядра. Однако, это совсем не объясняет почему подобная проблема возникает не у всех. И как оказывается - она вылезает у любителей оптимизации системы, да еще и у пользователей серверной версии Ubuntu… Так вот, оказывается, разработчики решили, что фреймбуфер нужен для рисования заставки и … и только для этого. Больше (оказывается) он никому, ни зачем, не нужен. Решение для ubuntu 15.10 и более поздних В Ubuntu 15.10 имеется неисправленный баг с настройкой локали https://bugs.launchpad.net/ubuntu/+source/console-setup/+bug/1511975. Поэтому для настройки русского языка необходимо проделать следующее 1. sudo dpkg-reconfigure console-setup (настройки в файле /etc/default/console-setup) /dev/tty[1-6] UTF-8 Combined - Latin; Slavic and non-Slavic cyrillic Let system select suitable font 8x16 2. sudo dpkg-reconfigure keyboard-configuration (настройки в файле /etc/default/console-setup) Generic 105-key (Intl) (выберите вашу клавиатуру) Russian Russian (выберите вашу раскладку) Control+Shift (выберите шорткат для смены раскладки) No temporary switch The default for the keyboard layout No compose key 3. sudo vim /lib/systemd/system/console-setup.service Заменить последнюю строку ExecStart=/usr/bin/loadkeys /etc/console-setup/cached.kmap.gz на ExecStart=/bin/setupcon 4. sudo reboot Поиск в сети порой дает много костыльных советов на данную тему. Особенно часто встречаются два из них: Если вам попадаются такие советы, не поленитесь - объясните людям их глубокое заблуждение и отправьте на эту страницу. HOWTO, Tips, терминал, Консоль 1) даже там есть настройка фонтов консоли, но она не работает 3) эта команда, кстати, тоже инициализирует процесс обновления initrd 4) хотя настройки клавиатуры работают нормально и без манипуляций с фреймбуфером |
|||||||
|
Так же в этом разделе:
|
|||||||
|
|||||||
|
|||||||
|