, который Следующая попытка состоит в том, чтобы использовать два, отделил chroot деревья файла идентичными деревьями файла Xorg внутри, как раз чтобы два различных сервера Xorg работали, и продолжайте использовать LD_LIBRARY_PATH в userspace.
Для запуска Xorg необходимо поместить все связанные с Xorg библиотеки и программы в chroot. Это можно сделать с помощью автоматических средств, таких как debian chroot, или вручную. Ниже приведено очень краткое начало того, как это сделать вручную (на самом деле, это хорошо сработало для одной музикальной системы в не столь отдаленном прошлом):
В этот момент должны быть готовы X11 серверы. Но многие специфические вещи могут нарушить это, потому что они навязывают какие-то другие современные зависимости (может быть, вам потребуется скопировать и запустить некоторые другие демоны в свои хромы).
Конфигурация клиента: просто укажите своим клиентам различные библиотеки драйверов с LD_LIBRARY_PATH. Вы даже можете поместить клиентов в chroot (и это не потребует больших изменений структуры дерева файлов даже), но вы, вероятно, закончите с зеркального отображения системы дважды.
Клиенты должны подключаться нормально, даже если отсутствует X11 сокет. Это происходит потому, что они используют абстрактное имя, зарегистрированное X-сервером при вызове connect (), не требуя существующего сокета, и это можно увидеть на выходе strace.Но если вашей системе требуется существующий сокет, вам также потребуется связать подключение/tmp.
В качестве альтернативы вам по-прежнему придется усердно хранить серверы Xorg, находя библиотеки, которые загружаются неправильно, и указывая на нужные места с LD_PRELOAD и LD_LIBRARY_PATH. Strace должен работать как root (если вы сделали sudo -i или вошли как root), если это не так, то это, безусловно, ошибка.
NB :Было бы лучше добавить комментарий к ответу Боба, но у меня недостаточно репутации для этого.
У меня была примерно такая же проблема (, но я не следовал обновлению )Ответ и комментарии @Bob также помогли мне (Я думаю... Я выполнил шаги ). Но, кроме того, я бы сказал, что следующая команда не запускала графический интерфейс:
$ sudo systemctl start gdm3.service
Вместо этого я попробовал следующую команду, и она запустила мой графический интерфейс gdm3.service:
$ sudo service gdm3 start
Сначала удалите драйверы nvidia:
sudo apt purge nvidia-*
Затем разрешите Ubuntu установить рекомендуемый драйвер 396:
sudo ubuntu-drivers autoinstall
Перезагрузите ноутбук:
sudo reboot
Поскольку используется Ubuntu 18.04, по умолчанию включено графическое окружение:
sudo systemctl set-default graphical.target
Если вы хотите запустить Gnome Desktop из текущего сеанса без графического интерфейса (многопользовательской -среды ), просто выполните:
sudo systemctl start gdm3.service
Обновление
Поскольку используется гибридная графика, установите nvidia-prime
для переключения между графикой intel
и nvidia
(она может быть уже установлена ):
sudo apt install nvidia-prime
Проверьте, какая видеокарта используется:
prime-select query
Вы можете увидеть intel
или nvidia
в качестве вывода команды. Если вы видите intel
, переключитесь на nvidia
:
sudo prime-select nvidia
Перезагрузитесь и проверьте, нормально ли работает графика. Если prime-select query
возвращает nvidia
, попробуйте переключиться на intel
:
sudo prime-select intel
перезагружаемся и смотрим, все ли в порядке. Если ничего не помогает, пожалуйста, опубликуйте в тексте вопроса вывод команды:
sudo lshw -c display