Предыстория такова, что 19.08.2013 я нас своей рабочей машине FreeBSD 8.4-PRERELEASE (32х битка) делаю:
# portsnap fecth update && portupgrade -a
Придя на следующий день на работу и выполняя привычную команду:
# startx
Вместо иксов с enlightenment я получаю черный экран и усё…. приплыли. На клаву вообще никак не реагирует.. ни свернуть исксы, ни убить иксы не пашет… Пришлось зайти с другой машины по SSH и прибить процесс enlightenment_start руками. Тогда черный экран пропадает и возвращается в консоль.
Просмотр лога /var/log/Xorg.0.log ничего не дает, т.к. ошибок (EE) там никаких нет и ничего даже смутно не указывает на какую либо проблему.
Посмотрев что именно обновлялось стало понятно что апдейтились дрова nvidia и сам enlightenment . Пробовал откатить дрова nvidia, перебрал несколько версий, но тщетно — черный экран и ничего более.
Затем пробовал стартануть исксы без конфига, т.е. сносил /etc/X11/xorg.conf как класс, но результат тот же — черный экран и ничего. Затем попробовал стартануть иксы с автосгенеренным конфигом:
# Xorg :1 -configure
# X -config /root/xorg.conf.new
История та же — ошибок нет, наблюдаем черный экран. Гуглил.. либо ничего, либо не помогает, либо без решения.
В очередной раз выполнив в google.ru запрос поиска по: startx blank screen freebsd
Нашел только что можно добавить опцию -retro:
# X -config /root/xorg.conf.new -retro
И о чудо, вместо черного экрана наблюдаем просто какие то невнятные обои и курсор мышки, который нормально бегает по экрану.
После этого пришла мысль попробовать стартануть иксы без window manager`а вообще, тупо только с xterm:
# startx `which xterm`
Все ОК, никаких черных экранов, иксы стартуют, xterm нормально открывается. Такссс. Теперь пробуем самый простенький window manager, который идет с иксами по дефолту:
/usr/local/bin/twm (в портах лежит тут: /usr/ports/x11-wm/twm)
Редактируем /root/.xinitrc, ремим запуск enlightenment и добавляем запуск twm с xterm:
#exec /usr/local/bin/enlightenment_start
xterm &
exec /usr/local/bin/twm
Стартуем иксы и снова все хорошо — twm работает, xterm открылся. До кучи попробовал ещё один простенький wm /usr/ports/x11-wm/fvwm — результат тот же — все работает.
Ну тут, как говорится «К бабке не ходи», все понятно, проблема в самом enlightenment . Открываю xterm и пробую стартануть enlightenment руками оттуда, получаем последней строкой:
/usr/local/lib/enlightenment/utils/enlightenment_init ‘/usr/local/share/enlightenment/data/themes/default.edj’ ‘0’ ‘Enlightenment’ ‘0.17.4’
и все… ничего не происходит… Далее я делал кучу всякой всячины, которую не буду описывать т.к. ничего не помогало. В итоге я пришел к выводу о downgrade enlightenment с 0.17.4 обратно на 0.17.3, т.к. с этой версией проблем не было.
Сказано — сделано. Ставим /usr/ports/ports-mgmt/portdowngrade и приступаем.
Просто даунгрейд порта /usr/ports/x11-xm/enlightenment ничего не дал… черный экран остался. Становится понятно, что придется даунгрейдить и его зависимости…
Ищем зависимости enlightenment и составляем полный список портов на downgrade согласно зависимостям одного порта от другого.
Делал я это с помощью команды:
# pkg_info -r enlightenment-0.17.3,2 | grep «: e»
А затем до кучи проверил тупо по версии:
# pkg_info | grep 1.7.8
Пройдясь по всем портам из составленного списка командой:
# pkg_info -R FULL_INSTALLED_PORT_NAME
Я расставил порты на downgrade в таком порядке исходя из их зависимостей:
- 1. ecore-ipc-1.7.8 devel/ecore-ipc
- 2. ecore-sdl-1.7.8 graphics/ecore-sdl
- 3. edje-1.7.8,2 graphics/edje
- 4. evas-loader-png-1.7.8 graphics/evas-loader-png
- 5. evas-loader-jpeg-1.7.8 graphics/evas-loader-jpeg
- 6. evas-loader-eet-1.7.8 graphics/evas-loader-eet
- 7. embryo-1.7.8,2 lang/embryo
- 8. eio-1.7.8 devel/eio
- 9. efreet-1.7.8 x11/efreet
- 10. e_dbus-1.7.8,1 devel/e_dbus
- 11. ecore-evas-1.7.8 graphics/ecore-evas
- 12. ecore-imf_evas-1.7.8 x11/ecore-imf_evas
- 13. ecore-input_evas-1.7.8 x11/ecore-input_evas
- 14. ecore-file-1.7.8 devel/ecore-file
- 15. ecore-con-1.7.8 net/ecore-con
- 16. ecore-imf-1.7.8 x11/ecore-imf
- 17. ecore-x11-1.7.8 x11/ecore-x11
- 18. ecore-input-1.7.8 x11/ecore-input
- 19. ecore-main-1.7.8 devel/ecore-main
- 20. evas-engine-x11-1.7.8 graphics/evas-engine-buffer
- 21. evas-engine-opengl-1.7.8 graphics/evas-engine-opengl
- 22. evas-engine-buffer-1.7.8 graphics/evas-engine-buffer
- 23. evas-core-1.7.8 graphics/evas-core
- 24. eet-1.7.8,2 devel/eet
- 25. eina-1.7.8 devel/eina
- 26. enlightenment x11-wm/enlightenment
Приступаем к downgrade:
# mkdir /usr/downgrade
# cd /usr/downgrade
# portdowngrade x11-wm/enlightenment | more
Смотрим до какой ревизии откатываемся:
------------------------------------------------------------------------
r318442 | gblach | 2013-05-18 23:36:31 +0400 (Sat, 18 May 2013) | 5 lines
- Update EFL libraries to 1.7.7
- Update Enlightenment to 0.17.3
Approved by: crees (mentor)
Вот r318442 то что нам и надо.
Выполняем с названием каждого порта из составленного списка команду portdowngrade ИМЯ_ПОРТА r318442, пример :
# portdowngrade x11-wm/enlightenment r318442
Затем я отмувил даунгрейднутые порты из папки /usr/downgrade на их законные места в папке /usr/ports, т.к. например ecore-sdl при сборке лазает в папку с портом ../../devel/ecore-main.
Теперь начинаем пересбор всех этих портов. Сначала удаляем установленный порт, затем собираем по новой, но уже даунгрейднутый.
Пример:
# pkg_delete -f ecore-ipc-1.7.8
# cd /usr/ports/devel/ecore-ipc
# make; make install
И так с каждым портом из списка. В итоге мы получаем:
# pkg_info | grep enli
enlightenment-0.17.3,2 A very artistic X window manager
Стартуем startx и все СНОВА РАБОТАЕТ !!! УРА !!!!
З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !
Авторы: Панфилов Алексей (lehis (at) subnets.ru) и Николаев Дмитрий (virus (at) subnets.ru)
madmax сказал:
Удалось вычитать следующее решение (помимо даунгрейда)
http://www.mail-archive.com/enlightenment-users@lists.sourceforge.net/msg20032.html
Суть его — отключение splash screen в настройках enlightenment
Апгрейдиться и на себе экспериментировать не хочется, но может кому-то, уже попавшему в засаду, поможет.
22.08.2013, 18:21