Cinnamon/OpenGL вылетает при запуске с виртуальной коробкой после установки драйверов AMD
Я установил систему (Linux Mint Debian Edition) на флешку, которую я запускаю либо на реальной машине дома (с картой AMD Radeon), либо внутри виртуальной коробки, когда я на чьем-то компьютере.
С драйвером Radeon с открытым исходным кодом все работало нормально, единственной проблемой, с которой я столкнулся, был вентилятор графической карты, работавший на полной скорости и очень шумный.
Поэтому я установил проприетарные драйверы от AMD, и он отлично работает на реальной машине, но теперь он не загружается внутри виртуальной коробки. Я исправил первую проблему с xorg.conf (удаление или создание нового файла решает проблему с загрузкой), и теперь он загружается нормально до запуска Cinnamon, а затем у меня появляется всплывающее окно с сообщением о сбое Cinnamon, и он находится в режиме отката.
В ~/.xsession-errors
У меня, между прочим, есть эти ошибки:
[...]
Error getting login monitor: -2
[...]
libEGL warning: GLX/DRI2 is not supported
[...]
(cinnamon:3203): GLib-CRITICAL **: g_strsplit: assertion 'string != NULL' failed
(cinnamon:3203): Clutter-CRITICAL **: Unable to initialize Clutter: The OpenGL version could not be determined
Window manager error: Unable to initialize Clutter.
[...]
Кажется, проблема в OpenGL. Например, если я начну glxgears
я получил
Xlib: extension "GLX" missing on display ":0".
Error: couldn't get an RGB, Double-buffered visual
Я хотел бы загрузить старый драйвер (каким бы он ни был) в виртуальную коробку и загрузить драйвер AMD на реальную машину с картой Radeon. Это возможно? Я был бы в порядке, например, со сценарием, который обнаруживает при запуске внутри виртуальной коробки, и соответственно регулирует настройки, но я не знаю, что нужно настроить...
1 ответ
На основе комментария @essjae и этого ответа суперпользователя, вот шаги, которые решили мою проблему:
- переустановить дополнения virtualbox
- это исправляет проблему драйверов virtualbox, которая испортила установщик ATI
- но, к счастью, это не мешает драйверам ATI, то есть оба драйвера теперь сосуществуют в системе
- добавление скрипта (
/etc/rc.local
), который делает символическую ссылку на правильныйxorg.conf
файл каждый раз при загрузке системы
Здесь /etc/rc.local
скрипт, который я использую:
if [ -L /etc/X11/xorg.conf ]
then
rm /etc/X11/xorg.conf
fi
if [ `dmidecode -s system-product-name` = "Z68X-UD3P-B3" ]
then
ln -s /etc/X11/xorg.conf.ati /etc/X11/xorg.conf
else
ln -s /etc/X11/xorg.conf.auto /etc/X11/xorg.conf
fi
Вы должны запустить dmidecode -s system-product-name
Команда в каждой системе, которую вы хотите использовать, чтобы увидеть, что она выводит и использовать это в ваших тестах. И, конечно, создать каждый /etc/X11/xorg.conf.*
файл, на который ссылается ваш скрипт В моем случае, xorg.conf.ati
содержит конфигурацию, созданную установщиком ATI, а xorg.conf.auto
это просто пустой файл, позволяющий системе автоматически обнаруживать все.