Подробный гайд: Astra Linux, KScreen и белый экран при запуске 1С - Часть 1
Проблема, при которой 1С:Предприятие запускается с белым экраном в Astra Linux, обычно связана не с одним компонентом, а с целым набором возможных причин.
Чаще всего это:
- масштабирование экрана;
- работа KScreen;
- Wayland/X11;
- аппаратное ускорение графики;
- драйвер видеокарты;
- композитинг окон;
- недостающие библиотеки Qt или XCB;
- пользовательский профиль 1С.
Сам KScreen может быть не единственной причиной, но часто провоцирует проблему, если сохранены некорректные настройки мониторов, разрешения или масштаба.
Ниже приведена первая часть пошагового руководства: от диагностики до сброса KScreen, настройки X11, масштабирования, отключения аппаратного ускорения и проверки зависимостей.
1. Какие причины чаще всего приводят к белому экрану 1С в Astra Linux
1.1. Некорректное масштабирование экрана
1С использует графические компоненты Qt.
Если в системе включено дробное масштабирование, например:
- 125%;
- 150%;
- 175%;
- 200%;
то окно 1С может отрисоваться пустым, белым или некорректным. Особенно часто это проявляется на ноутбуках с HiDPI-экранами и при использовании нескольких мониторов с разным масштабом.
1.2. Проблема с KScreen
KScreen отвечает за:
- определение мониторов;
- разрешение экрана;
- масштабирование;
- расположение дисплеев;
- автоматическое применение профилей экрана.
Если конфигурация KScreen повреждена или содержит несовместимые параметры, графические приложения могут запускаться некорректно.
Признаки возможной проблемы с KScreen:
- белый экран появился после смены разрешения;
- проблема возникла после подключения второго монитора;
- после отключения KScreen 1С запускается нормально;
- в системе сбились настройки дисплея;
- масштаб экрана отличается от 100%.
1.3. Аппаратное ускорение графики
1С может использовать OpenGL и аппаратное ускорение. Если драйвер видеокарты работает нестабильно, окно приложения может быть белым, чёрным или с артефактами.
Часто это встречается на:
- NVIDIA с драйвером nouveau;
- старых Intel GPU;
- гибридной графике;
- виртуальных машинах;
- удалённых сеансах.
1.4. Wayland вместо X11
Некоторые версии 1С и Qt-приложений нестабильно работают в Wayland-сессии. Если система входит в сеанс по умолчанию через Wayland, рекомендуется проверить работу в X11.
1.5. Драйвер видеокарты
Белый экран может быть следствием проблемы с видеодрайвером.
Например:
- используется стандартный драйвер вместо проприетарного NVIDIA;
- не загружен модуль ядра видеокарты;
- в виртуальной машине недоступно 3D-ускорение;
- OpenGL работает через программный рендерер
llvmpipe.
1.6. Отсутствие зависимостей
1С в Linux использует библиотеки:
- Qt;
- XCB;
- OpenGL;
- EGL;
- шрифтовые пакеты;
- библиотеки X11.
Если части этих библиотек отсутствуют, приложение может запускаться, но некорректно отрисовывать интерфейс.
2. Быстрая диагностика перед внесением изменений
Перед тем как менять настройки, выполните базовую диагностику.
2.1. Версия Astra Linux
cat /etc/os-release
uname -a
Нужно понимать, какая редакция и версия Astra Linux используется.
2.2. Тип графической сессии: X11 или Wayland
echo $XDG_SESSION_TYPE
Если вывод:
x11
— это предпочтительный вариант для 1С.
Если вывод:
wayland
— рекомендуется проверить работу в X11.
2.3. Поиск исполняемого файла 1С
Обычно 1С устанавливается в каталог /opt/1cv8.
Проверьте:
command -v 1cv8
command -v 1cv8c
find /opt/1cv8 -type f -name 1cv8 2>/dev/null
find /opt/1cv8 -type f -name 1cv8c 2>/dev/null
Пример возможного пути:
/opt/1cv8/x86_64/8.3.23.1234/1cv8
В дальнейшем этот путь нужно будет подставлять в команды вместо примера:
/opt/1cv8/x86_64/1cv8
2.4. Проверка видеокарты
lspci -k | grep -EA3 'VGA|3D|Display'
Эта команда покажет:
- модель видеокарты;
- используемый драйвер;
- наличие дискретной графики.
Для NVIDIA можно дополнительно выполнить:
nvidia-smi
Если команда завершается ошибкой, вероятно, проприетарный драйвер NVIDIA не установлен или не загружен.
2.5. Проверка OpenGL
Установите утилиту mesa-utils, если она отсутствует:
sudo apt update
sudo apt install mesa-utils
Затем выполните:
glxinfo | grep -E "OpenGL renderer|OpenGL vendor|OpenGL version"
Нормальный пример:
OpenGL renderer string: Mesa Intel(R) UHD Graphics
Если видите:
OpenGL renderer string: llvmpipe
значит, используется программный рендеринг. Иногда это помогает временно запустить 1С, но для постоянной работы лучше разобраться с драйвером графики.
3. Быстрый тест: запуск 1С с безопасными переменными
Этот шаг нужен для быстрой проверки.
Если 1С запускается с этими переменными, значит проблема, скорее всего, связана с:
- масштабированием;
- Wayland;
- аппаратным ускорением;
- Qt-рендерингом;
- KScreen.
Выполните запуск из терминала:
env \
QT_QPA_PLATFORM=xcb \
QT_AUTO_SCREEN_SCALE_FACTOR=0 \
QT_SCALE_FACTOR=1 \
QT_SCREEN_SCALE_FACTORS=1 \
QT_FONT_DPI=96 \
LIBGL_ALWAYS_SOFTWARE=1 \
QT_OPENGL=software \
QT_QUICK_BACKEND=software \
/opt/1cv8/x86_64/1cv8
Если путь к 1С другой, подставьте свой.
Для нескольких мониторов можно попробовать:
env \
QT_QPA_PLATFORM=xcb \
QT_AUTO_SCREEN_SCALE_FACTOR=0 \
QT_SCALE_FACTOR=1 \
QT_SCREEN_SCALE_FACTORS="1;1" \
QT_FONT_DPI=96 \
LIBGL_ALWAYS_SOFTWARE=1 \
QT_OPENGL=software \
QT_QUICK_BACKEND=software \
/opt/1cv8/x86_64/1cv8
Если после этого 1С запустился нормально, далее нужно закрепить решение.
4. Проверка и сброс KScreen
Если проблема связана с KScreen, нужно временно остановить его и сбросить сохранённые конфигурации экранов.
4.1. Временно остановить KScreen
Выполните в пользовательской сессии:
systemctl --user stop plasma-kscreen.service 2>/dev/null || true
killall kscreen 2>/dev/null || true
После этого попробуйте запустить 1С. Если 1С заработал нормально, значит проблема действительно связана с KScreen или с сохранёнными настройками дисплеев.
4.2. Резервная копия настроек KScreen
Перед удалением настроек сделайте резервную копию:
mkdir -p ~/kscreen-backup
if [ -d "$HOME/.local/share/kscreen" ]; then
cp -a "$HOME/.local/share/kscreen" "$HOME/kscreen-backup/"
fi
for f in "$HOME"/.config/kscreen*; do
[ -e "$f" ] && mv "$f" "$HOME/kscreen-backup/" 2>/dev/null
done
Это позволит вернуть старые настройки, если что-то пойдёт не так.
4.3. Удаление конфигурации KScreen
Основной каталог настроек KScreen обычно находится здесь:
rm -rf "$HOME/.local/share/kscreen"
Если есть файлы конфигурации в ~/.config, их также можно перенести в резервную копию:
mkdir -p ~/kscreen-backup
mv ~/.config/kscreen* ~/kscreen-backup/ 2>/dev/null
После этого необходимо:
- завершить сеанс пользователя;
- войти в систему заново;
- проверить запуск 1С.
4.4. Ручная настройка дисплея после сброса
Если после сброса KScreen 1С запускается нормально, выполните безопасную настройку экрана:
- Установите родное разрешение монитора.
- Установите масштаб 100%.
- Отключите дробное масштабирование.
- Если используется несколько мониторов, временно оставьте один.
- Отключите автоматическое изменение параметров экранов, если такая опция есть.
Затем снова проверьте запуск 1С.
Если с масштабом 100% всё работает, а с 125%, 150% или 175% появляется белый экран, проблема связана с Qt-масштабированием.
5. Переключение с Wayland на X11
Если тип сессии:
echo $XDG_SESSION_TYPE
показывает:
wayland
нужно проверить работу в X11.
5.1. Как выбрать X11
- Завершите текущий сеанс пользователя.
- На экране входа найдите список доступных сессий.
- Выберите один из вариантов:
Plasma (X11);KDE Plasma (X11);Astra Linux Desktop (X11);Xorg;- или другой пункт, содержащий
X11.
- Войдите в систему.
- Проверьте тип сессии:
echo $XDG_SESSION_TYPE
Должно быть:
x11
5.2. Принудительное указание Qt использовать XCB
Даже если вы используете Wayland, можно попытаться запустить приложение через XWayland:
export QT_QPA_PLATFORM=xcb
Но для 1С предпочтительнее полноценная X11-сессия.
6. Исправление масштабирования через переменные окружения
Если проблема связана с HiDPI или дробным масштабированием, задайте фиксированный масштаб для 1С.
Основные переменные:
QT_QPA_PLATFORM=xcb
QT_AUTO_SCREEN_SCALE_FACTOR=0
QT_SCALE_FACTOR=1
QT_SCREEN_SCALE_FACTORS=1
QT_FONT_DPI=96
6.1. Быстрый тест
env \
QT_QPA_PLATFORM=xcb \
QT_AUTO_SCREEN_SCALE_FACTOR=0 \
QT_SCALE_FACTOR=1 \
QT_SCREEN_SCALE_FACTORS=1 \
QT_FONT_DPI=96 \
/opt/1cv8/x86_64/1cv8
Если 1С запустился нормально, переменные можно сохранить.
6.2. Сохранение для конкретного пользователя
Откройте файл профиля:
nano ~/.profile
Добавьте в конец:
export QT_QPA_PLATFORM=xcb
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCALE_FACTOR=1
export QT_SCREEN_SCALE_FACTORS=1
export QT_FONT_DPI=96
Сохраните файл и перезайдите в систему.
6.3. Сохранение для всех пользователей через X11-сессию
Если используется X11, можно создать файл:
sudo nano /etc/X11/Xsession.d/90-1c-fix
Вставьте:
export QT_QPA_PLATFORM=xcb
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCALE_FACTOR=1
export QT_SCREEN_SCALE_FACTORS=1
export QT_FONT_DPI=96
Сделайте файл исполняемым:
sudo chmod +x /etc/X11/Xsession.d/90-1c-fix
После этого нужно перезайти в систему или перезагрузить компьютер.
6.4. Альтернативный вариант через /etc/profile.d/
Создайте файл:
sudo nano /etc/profile.d/1c-screen-fix.sh
Содержимое:
export QT_QPA_PLATFORM=xcb
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCALE_FACTOR=1
export QT_SCREEN_SCALE_FACTORS=1
export QT_FONT_DPI=96
Назначьте права:
sudo chmod +x /etc/profile.d/1c-screen-fix.sh
Затем перезайдите в систему.
Важно:
В некоторых графических окружениях переменные из /etc/profile.d/ могут не попадать в приложения, запущенные из меню. В таком случае лучше использовать скрипт-обёртку или править ярлык запуска 1С.
7. Отключение аппаратного ускорения для 1С
Если белый экран связан с GPU, можно перевести 1С на программный рендеринг.
7.1. Временный запуск с программным рендерингом
env \
QT_QPA_PLATFORM=xcb \
QT_AUTO_SCREEN_SCALE_FACTOR=0 \
QT_SCALE_FACTOR=1 \
QT_SCREEN_SCALE_FACTORS=1 \
QT_FONT_DPI=96 \
LIBGL_ALWAYS_SOFTWARE=1 \
QT_OPENGL=software \
QT_QUICK_BACKEND=software \
/opt/1cv8/x86_64/1cv8
Если 1С запустился, значит проблема связана с аппаратным ускорением или видеодрайвером.
7.2. Создание постоянного скрипта-обёртки
Сначала найдите реальный путь к 1С:
find /opt/1cv8 -type f -name 1cv8 2>/dev/null
Например, вывод:
/opt/1cv8/x86_64/8.3.23.1234/1cv8
Создайте скрипт:
sudo nano /usr/local/bin/1cv8-fix
Вставьте:
#!/bin/sh
REAL_1C="/opt/1cv8/x86_64/8.3.23.1234/1cv8"
export QT_QPA_PLATFORM=xcb
export QT_AUTO_SCREEN_SCALE_FACTOR=0
export QT_SCALE_FACTOR=1
export QT_SCREEN_SCALE_FACTORS=1
export QT_FONT_DPI=96
export LIBGL_ALWAYS_SOFTWARE=1
export QT_OPENGL=software
export QT_QUICK_BACKEND=software
exec "$REAL_1C" "$@"
Замените путь к REAL_1C на свой.
Сделайте скрипт исполняемым:
sudo chmod +x /usr/local/bin/1cv8-fix
Проверка:
/usr/local/bin/1cv8-fix
7.3. Изменение ярлыка запуска 1С
Если 1С запускается через меню, найдите оригинальный .desktop-файл:
ls /usr/share/applications/ | grep -i 1c
Скопируйте его в пользовательский каталог:
mkdir -p ~/.local/share/applications
cp /usr/share/applications/1cv8.desktop ~/.local/share/applications/1cv8-fix.desktop
Откройте скопированный файл:
nano ~/.local/share/applications/1cv8-fix.desktop
Найдите строку:
Exec=
Замените её на:
Exec=/usr/local/bin/1cv8-fix %U
Если %U не используется, можно оставить:
Exec=/usr/local/bin/1cv8-fix
Обновите ярлыки:
update-desktop-database ~/.local/share/applications 2>/dev/null || true
8. Отключение композитинга в KDE/Plasma
Если используется KDE/Plasma, белый экран может быть связан с композитным менеджером окон.
8.1. Временное отключение композитинга
Откройте:
Параметры системы → Отображение и монитор → Компоновщик
или
Параметры системы → Композитинг
Временно отключите композитинг и проверьте запуск 1С.
8.2. Что проверить
Если после отключения композитинга 1С заработал:
- можно оставить композитинг отключённым;
- можно попробовать другой метод рендеринга;
- можно обновить драйвер видеокарты;
- можно оставить запуск 1С с программным рендерингом.
Иногда помогают варианты:
- OpenGL 2.0;
- OpenGL 3.1;
- XRender;
- отключение анимаций;
- отключение эффектов окон.
9. Проверка зависимостей 1С
Белый экран может возникать из-за отсутствующих библиотек, особенно если 1С использует Qt и XCB.
9.1. Проверка отсутствующих библиотек
Найдите бинарник 1С:
find /opt/1cv8 -type f -name 1cv8 2>/dev/null
Проверьте зависимости:
ldd /opt/1cv8/x86_64/1cv8 | grep 'not found'
Если вывод пустой, основные зависимости найдены.
Если есть строки:
not found
нужно установить недостающие библиотеки.
9.2. Установка типовых зависимостей
Состав пакетов может отличаться в разных версиях Astra Linux, но обычно полезны следующие пакеты:
sudo apt update
sudo apt install --no-install-recommends \
mesa-utils \
libgl1 \
libglx0 \
libegl1 \
libgles2 \
libdrm2 \
libxrandr2 \
libxinerama1 \
libxcursor1 \
libxcomposite1 \
libxdamage1 \
libxtst6 \
libxkbcommon-x11-0 \
libxcb-xinerama0 \
libxcb-xinput0 \
libxcb-cursor0 \
libxcb-icccm4 \
libxcb-image0 \
libxcb-keysyms1 \
libxcb-randr0 \
libxcb-render-util0 \
libxcb-shape0 \
libxcb-xkb1 \
fonts-liberation \
fonts-dejavu
Если какой-то пакет не находится в репозитории вашей версии Astra Linux, не устанавливайте его из сторонних источников без необходимости.
Сначала проверьте доступность:
apt-cache policy имя_пакета
9.3. Отладка загрузки Qt-плагинов
Полезно запустить 1С с отладочным выводом:
env \
QT_DEBUG_PLUGINS=1 \
QT_QPA_PLATFORM=xcb \
QT_AUTO_SCREEN_SCALE_FACTOR=0 \
QT_SCALE_FACTOR=1 \
/opt/1cv8/x86_64/1cv8
Обращайте внимание на ошибки вида:
Cannot load library ...
libxcb-xinerama.so.0: cannot open shared object file
Если такие ошибки есть, установите соответствующую библиотеку.
Итог первой части
К этому моменту вы выполнили:
- диагностику системы;
- проверку типа сессии X11/Wayland;
- быстрый запуск 1С с безопасными переменными;
- проверку и сброс KScreen;
- настройку масштабирования;
- отключение аппаратного ускорения;
- проверку композитинга KDE;
- проверку зависимостей 1С.
Если после этих действий 1С запускается нормально, проблему можно считать решённой на уровне пользовательской графики. Если белый экран сохраняется, дальнейшая диагностика должна быть направлена на видеодрайвер, профиль 1С, конкретную информационную базу и возможные ограничения безопасности Astra Linux.
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.