Если для вас русский шрифт в консоли это такое себе одноразовое действо, то можно просто ввести команду
setfont cyr-sun16
После установки Manjaro всегда! возникает необходимость работы в терминалах tty (Ctrl-Alt-F2) вне Х. По умолчанию кирилица там отсутствует. Исправить это можно так:
1) Редактируем vconsole.conf:
sudo nano /etc/vconsole.conf KEYMAP="ruwin_alt_sh-UTF-8" FONT="cyr-sun16"
Сохраняем, выходим из нано. строка KEYMAP=»ruwin_alt_sh-UTF-8″ устанавливает переключение раскладок по Alt-Shift, другие варианты можно посмотреть так:
ls /usr/share/kbd/keymaps/i386/qwerty
Поэкспериментировать можно с помощью команды loadkeys <имя раскладки> в терминале (Ctrl-Alt-F2 например)
Шрифт задаёт строка FONT=»cyr-sun16″, посмотреть доступные:
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 filesystems fsck"
Сохраняем, выходим из нано.
Пересоздаём initrd:
sudo mkinitcpio -Р
3) Перезагрузка. Проверка.
этого обычно достаточно. НО! на некоторых машинах (в основном на буках ) появлялись странные косяки, выражающиеся в виде белых квадратиков вместо букв и невозможностью авторизации в терминале. т.е. шрифта нет и раскладка не меняется — т.е. вообще ни чего не работает. это связано с SystemD и фреймбуфером. Проблема вот в чём — 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.target After=sysinit.target Before=shutdown.target ConditionPathExists=/dev/tty0
Сохраняем. Перезагружаемся, проверяем ….
делаем правильно как написано здесь
Возможно наверное вообще ограничиться этим способом (П2) не подгружая модуль, т.к
sudo systemctl restart systemd-vconsole-setup
решает проблему из иксов и квадраты исчезнут…
зы. «Фреймбуфер дожен стартовать как можно раньше.» -в арче давно есть хук kms, который автоматом добавляет в инитрамфс, все открытые драйвера для видюх, для раннего старта.
А для пользователей карт nvidia, надо в инструкцию добавить:
Если шрифты не меняются при загрузке или меняются только временно, скорее всего, они были сброшены при инициализации графического драйвера и переключении консоли на кадровый буфер. По умолчанию все драйверы ядра в дереве загружаются раньше, пользователи NVIDIA должны сделать NVIDIA#Ранняя загрузка , чтобы загрузить графический драйвер до /etc/vconsole.conf его применения.
Для базовой функциональности достаточно просто добавить параметр ядра nvidia-drm.modeset=1. Если вы хотите, чтобы он загружался как можно раньше, или заметили проблемы с запуском (например, модуль ядра nvidia загружается после диспетчера отображения ), вы можете добавить nvidia, и в файл initramfs. nvidia_modesetnvidia_uvmnvidia_drm.
За это дополнение благодарю @Dimon_Arch
Квадраты лучше
согласен, красивее
Не надо править
/usr/lib/systemd/system/systemd-vconsole-setup.service
.Когда в один прекрасный день сустемда обновится — этот файл обновится вместе с ней.
Корректно скопировать в /etc/systemd/system/ и редачить там. Потом повторно стартануть сервис, это обновит симлинки.
Либо сделать
systemctl edit --full systemd-vconsole-setup.service
.