русский шрифт в консоли:
https://forum.manjaro.ru/viewtopic.php?f=24&t=335Русский шрифт в терминале и ненавистные квадратики
Каждый раз setfont cyr-sun16
или:
После установки Manjaro рано или поздно возникает необходимость работы в терминалах tty (Ctrl-Alt-F2) вне Х. По умолчанию кирилица там отсутствует. Чтобы новым пользователям лишний раз не гуглить, считаю такое руководство не помешает в Русскоязычном сообществе. Исправить это можно так:
1) Редактируем vconsole.conf:
sudo nano /etc/vconsole.conf
KEYMAP="ruwin_alt_sh-UTF-8"
LOCALE="ru_RU.UTF-8"
CONSOLEMAP=
FONT="ter-v16v"
USECOLOR="yes"
Сохраняем, выходим из нано. строка KEYMAP="ruwin_alt_sh-UTF-8" устанавливает переключение раскладок по Alt-Shift, другие варианты можно посмотреть так:
ls /usr/share/kbd/keymaps/i386/qwerty
Пэкспериментировать можно с помощью команды loadkeys <имя раскладки> в терминале (Ctrl-Alt-F2 например)
Шрифт задаёт строка FONT="ter-v16v", посмотреть доступные: ls /usr/share/kbd/consolefonts/ включить нужный шрифт: setfont <имя шрифта>
2) Пересоздаём initrd.
Для этого сначала редактируем файл mkinitcpio.conf. В нём в строке HOOKS="base udev autodetect modconf block keyboard keymap ... должно присутствовать consolefont если нет - дописываем после keymap.
sudo nano /etc/mkinitcpio.conf
HOOKS="base udev autodetect modconf block keyboard keymap consolefont plymouth resume filesystems fsck"
Сохраняем, выходим из нано.
Пересоздаём initrd:
sudo mkinitcpio -p linux316 (linux316 - префикс текущего ядра (моего) - посмотреть свои - в /etc/mkinitcpio.d/)
3) Перезагрузка. Проверка.
В принципе этого обычно достаточно. НО! У меня на некоторых машинах (в основном на буках ) появлялись странные косяки, выражающиеся в виде белых квадратиков вместо букв и невозможностью авторизации в терминале. Явно приходило на ум что логин пишу я на русском, шрифта нет и раскладка не меняется - т.е. вообще ни чего не работает. Перелазив кучу форумов по арчу выяснил, что это связано непосредственно с SystemD и фреймбуфером. Перепробывав много костылей в виде скриптов для udev ничего не приносило желаемого результата. Проблема вот в чём - SystemD распараллеливает запуск служб, и если настройки консоли и шрифта загружаются до инициализации фреймбуфера - получаем такой вот косяк. Чтобы избавить Вас от перечитывания сотен страниц и неизвестного количества экспериментов я и решил поделиться опытом.
1) Фреймбуфер дожен стартовать как можно раньше. (на 100% проблему это не решит но вместо квадратиков появяться русские буквы)
sudo lspci -vk
находим какой модуль ядра отвечает за видео (VGA controller) в моём случае:
00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 09) (prog-if 00 [VGA controller])
Subsystem: Lenovo Device 3800
Flags: bus master, fast devsel, latency 0, IRQ 44
Memory at b5000000 (64-bit, non-prefetchable) [size=4M]
Memory at c0000000 (64-bit, prefetchable) [size=256M]
I/O ports at 6000 [size=64]
Expansion ROM at <unassigned> [disabled]
Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit-
Capabilities: [d0] Power Management version 2
Capabilities: [a4] PCI Advanced Features
Kernel driver in use: i915
Kernel modules: i915
Для этого в пункте 2 выше помимо строки HOOKS редактируем строку
MODULES="i915 ext4 aes_i586 sha256 sha512"
Здесь я добавил i915 - модуль для интегрированного видео от intel - Вы добавляете своё.
2) За загрузку нужных нам параметров консолей отвечает SystemD сервис systemd-vconsole-setup - он отрабатывает не в то время и основной косяк именно здесь!
Исправляем это:
sudo nano /usr/lib/systemd/system/systemd-vconsole-setup.service
находим и приводим к виду
DefaultDependencies=no
Conflicts=
shutdown.targetAfter=
sysinit.targetBefore=
shutdown.targetConditionPathExists=/dev/tty0
Сохраняем. Перезагружаемся, проверяем ....
Возможно наверное вообще ограничиться этим способом (П2) не подгружая модуль, т.к sudo systemctl restart systemd-vconsole-setup решает проблему из иксов и квадраты исчезнут...
Удачи!