1

У меня есть старая система, где все работает отлично, и новая система, где она не работает. Чтобы быть конкретным: X не запускается.

Я проследил ошибку до того, что альтернативы обновления по какой-то причине находятся в ручном режиме для групп glx и nvidia.

Это из работающей системы:

update-alternatives --display glx   
glx - auto mode
  link currently points to /usr/lib/nvidia
/usr/lib/mesa-diverted - priority 5
  slave glx--libGL.so.1-i386-linux-gnu: /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1
/usr/lib/nvidia - priority 100
  slave glx--libGL.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libGL.so.1
  slave glx--libXvMCNVIDIA.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libXvMCNVIDIA.so.1
  slave glx--libXvMCNVIDIA_dynamic.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libXvMCNVIDIA_dynamic.so.1
  slave glx--libnvidia-cfg.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libnvidia-cfg.so.1
  slave glx--linux-libglx.so: /usr/lib/nvidia/libglx.so
  slave glx--nvidia-bug-report.sh: /usr/lib/nvidia/nvidia-bug-report.sh
  slave glx--nvidia_drv.so: /usr/lib/nvidia/nvidia_drv.so
Current 'best' version is '/usr/lib/nvidia'.

И это из системы, которая имеет ошибку:

update-alternatives --display glx  
glx - manual mode
  link currently points to /usr/lib/mesa-diverted
/usr/lib/mesa-diverted - priority 5
  slave glx--libGL.so.1-i386-linux-gnu: /usr/lib/mesa-diverted/i386-linux-gnu/libGL.so.1
/usr/lib/nvidia - priority 100
  slave glx--libGL.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libGL.so.1
  slave glx--libXvMCNVIDIA.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libXvMCNVIDIA.so.1
  slave glx--libXvMCNVIDIA_dynamic.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libXvMCNVIDIA_dynamic.so.1
  slave glx--libnvidia-cfg.so.1-i386-linux-gnu: /usr/lib/i386-linux-gnu/nvidia/libnvidia-cfg.so.1
  slave glx--linux-libglx.so: /usr/lib/nvidia/libglx.so
  slave glx--nvidia-bug-report.sh: /usr/lib/nvidia/nvidia-bug-report.sh
  slave glx--nvidia_drv.so: /usr/lib/nvidia/nvidia_drv.so
Current 'best' version is '/usr/lib/nvidia'.

Как видите, по какой-то причине группа glx установлена на ручную. Это также относится и к группе nvidia. Все приоритеты установлены правильно.

Теперь я знаю ручное решение (которое будет правильно запускать update-alternatives --config glx ), поскольку моя система автоматически устанавливается и после этого должна работать идеально (просто посмотрите старую систему). Поэтому я хочу понять причину.

Вы должны знать, что эта проблема уже присутствует сразу после новой установки. Никакого ручного вмешательства не произошло. Я пытаюсь понять, почему и когда происходит этот ручной режим.

Мануал альтернативных обновлений подразумевает, что только --set или --config переключает группу в ручной режим. Однако я не могу найти ничего, что выполняет любую из этих команд.

Я полагаю, что единственная разница между этими двумя системами состоит в том, что более новые версии используют более свежие пакеты от Debian Wheezy. Я уже сравнил все сценарии сопровождающего постинста между старой и новой версиями, и в соответствующих пакетах ничего не изменилось.

Я не знаю много об альтернативах обновления, поэтому я надеюсь, что кто-то может мне помочь.

2 ответа2

0

Я уже сравнил все сценарии сопровождающего постинста между старой и новой версиями, и в соответствующих пакетах ничего не изменилось.

Это может быть очень старая версия пакета или другой пакет, или вы пытались его починить. Существует слишком много возможных подозреваемых (включая вас), которые трудно точно определить, какой именно процесс изменил это ... но, по крайней мере, вы можете знать, когда. Обновление альтернатив имеет файл журнала в /var/log/alternatives.log . Если у вас слишком долго не установлена ваша система, возможно, ответ на вопрос, когда и где вы можете выяснить, кто. В ваших помещениях все правильно.

0

Я нашел ответы сам. По-видимому, в обновлении сценария прямой сборки Debian были добавлены группы ссылок glx и nvidia. Мы используем live-build для создания системы, о которой я говорил. Пример /usr/share/live/build/hooks/0320-update-glx-alternative.chroot

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .