Загрузка драйвера видео сбрасывает настройки шрифтов консоли

Автор bob, 12 июля 2017, 14:37:11

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

bob

Здравствуйте.

При регистрации нового драйвера фреймбуфера сбрасываются все прежние настройки фреймбуфер-консоли, в частности, загруженный шрифт. Проблема собственно в том, что в TTY квадратики вместо русский букв. Возникает необходимость перезапускать console-setup.service если нужно использовать TTY и это работает до следующей перезагрузки. Насколько я понял, решения этой проблемы состоит в следующем: изменить сервис console-setup.service так что-бы он запускался после загрузки драйвера. К сожалению, я плохо знаю systemd, прошу помочь. Если существуют другие решение этой проблемы буду рад узнать их.

В иксах все нормально с локалью.

dpkg-reconfigure locales, dpkg-reconfigure console-setup, dpkg-reconfigure keyboard-configuration - настраивал.

cat /etc/default/console-setup
# CONFIGURATION FILE FOR SETUPCON

# Consult the console-setup(5) manual page.

ACTIVE_CONSOLES="/dev/tty[1-6]"

CHARMAP="UTF-8"

CODESET="CyrSlav"
FONTFACE="Terminus"
FONTSIZE="8x16"

VIDEOMODE=

# The following is an example how to use a braille font
# FONT='lat9w-08.psf.gz brl-8x8.psf'


systemctl status console-setup
console-setup.service - Set console font and keymap
   Loaded: loaded (/lib/systemd/system/console-setup.service; enabled; vendor preset: enabled)
   Active: active (exited) since Tue 2017-07-11 15:13:08 EEST; 15min ago
  Process: 500 ExecStart=/lib/console-setup/console-setup.sh (code=exited, status=0/SUCCESS)
Main PID: 500 (code=exited, status=0/SUCCESS)
    Tasks: 0 (limit: 4915)
   CGroup: /system.slice/console-setup.service


cat /etc/systemd/system/multi-user.target.wants/console-setup.service
[Unit]
Description=Set console font and keymap
DefaultDependencies=no
After=console-screen.service kbd.service local-fs.target
RequiresMountsFor=/usr
ConditionPathExists=/bin/setupcon

[Service]
Type=oneshot
ExecStart=/lib/console-setup/console-setup.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

ChubaDuba

Поменяйте в console-setup.service
ExecStart=/lib/console-setup/console-setup.sh
на
ExecStart=/bin/setupcon

bob

Цитата: ChubaDuba от 12 июля 2017, 19:41:56
Поменяйте в console-setup.service
ExecStart=/lib/console-setup/console-setup.sh
на
ExecStart=/bin/setupcon

Заработало.

ChubaDuba, спасибо Вам большое.



Cообщение объединено 12 Июля 2017, 20:49:47

Цитата: ChubaDuba от 12 июля 2017, 19:41:56
Поменяйте в console-setup.service
ExecStart=/lib/console-setup/console-setup.sh
на
ExecStart=/bin/setupcon

А что не так с этим скриптом ? Я думал он запускает setupcon...

cat /lib/console-setup/console-setup.sh
#!/bin/sh

do_configure=no
case "`uname 2>/dev/null`" in
    *FreeBSD*)
        do_configure=yes
        ;;
    *) # assuming Linux with udev

        # Skip only the first time (i.e. when the system boots)
        [ ! -f /run/console-setup/boot_completed ] || do_configure=yes
        mkdir -p /run/console-setup
        > /run/console-setup/boot_completed
       
        [ /etc/console-setup/cached_setup_terminal.sh \
              -nt /etc/default/keyboard ] || do_configure=yes
        [ /etc/console-setup/cached_setup_terminal.sh \
              -nt /etc/default/console-setup ] || do_configure=yes
        ;;
esac

if [ "$do_configure" = no ]; then
    :
else
    if [ -f /etc/default/locale ]; then
        # In order to permit auto-detection of the charmap when
        # console-setup-mini operates without configuration file.
        . /etc/default/locale
        export LANG
    fi
    setupcon --save
fi


Получается драйвер видео здесь не причем ?

Что делает следующая команда ? Уже нашел. Это проверка существует ли этот файл.
ConditionPathExists=/bin/setupcon