Xrandr не удается случайным образом с «Configure CRTC X» на доке с несколькими мониторами

Итак, чтобы вытащить это в список, вы можете использовать ту же команду, которую я дал вам раньше, но просто отмените требование removeable:

% for blk in $(lsblk -ndo name) ; do
>        udevadm info --query=all --name "$/dev/$blk" |\
>        grep -q ID_BUS=usb && printf \
>            'findmnt %s -no TARGET ;'\
>                "/dev/$blk" /dev/"$blk"[0-9]
>        } ; done 2>&- |. /dev/stdin 

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

Что касается почему ваше текущее устройство не регистрируется как извлекаемое, то наиболее вероятный ответ заключается в том, что его драйвер просто не указывает его таким образом. Когда устройства обнаруживаются программой udev она собирает информацию о них, как только может, основываясь на своей базе правил. Вы можете просмотреть все эти классификации с помощью:

% udevadm info --query=all --name /dev/$BLOCK_DEVICE

Это вернет список всех записей ключ=значение, которые система использует для классификации оборудования, на которое ссылается /dev/$BLOCK_DEVICE. В нижней части этого сообщения slm советует, как эту информацию можно легко разобрать для ваших нужд - и это действительно довольно просто. Документация справедливо описывает ее как "человекочитаемую, удобную для grep". Выше я отфильтровал все блочные устройства только до тех, которые находятся на шине usb с помощью:

% grep -q ID_BUS=usb

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

udevadm info --attribute-walk --name /dev/$BLOCK_DEVICE

Вы можете использовать эти данные для моделирования новых правил назначения по своему усмотрению.

4
30.11.2018, 00:37
5 ответов

Попробуйте разделить команду xrandr на несколько команд, как показано ниже:

xrandr --output eDP1 --mode "1920x1080" 
xrandr --output DP2-1 --mode auto --left-of eDP1 
xrandr --output DP2-2 --mode auto --primary --left-of DP2-1

Это работа -.

1
27.01.2020, 20:54

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

1
27.01.2020, 20:54

У меня такая же проблема с док-станцией Lenovo :Когда я подключаю к ней (работающий )ноутбук, я не могу одновременно включить оба внешних дисплея и отключить дисплей ноутбука в одном xrandrкоманда. Это дает то же сообщение xrandr: Configure crtc 1 failed.

Но вместо случайной деактивации/реактивации мониторов я разбиваю их на два шага, как у Никласа:

  1. Включить первый внешний дисплей и отключить дисплей ноутбука
  2. Включить второй внешний дисплей

У меня это работает воспроизводимо, но мне также было бы интересно найти правильное решение!

0
27.01.2020, 20:54

Ответ Никласа указал мне на решение, если вы используете arandr. Вы можете обнаружить (, как и я ), что когда вы отключите док-станцию, arandr покажет только основной монитор (моего ноутбука в этом случае ). Однако два других монитора по-прежнему обнаруживаются xrandr, поэтому вам просто нужно повторно -активировать два других монитора, щелкнув правой кнопкой мыши -фон графического интерфейса и включив «активировать» для двух мониторов.

НО, если вы сделаете это для обоих мониторов, вы получите ошибку, о которой упоминал razr. Просто активируйте каждый монитор по одному --, нажимая кнопку с галочкой -между активациями --, и все будет хорошо :)

.

РЕДАКТИРОВАТЬ:

Кажется, также нашел надежный способ сделать это, не работая через arandr. Активируйте первый монитор:

xrandr --output DP2-1 --auto

Тогда, если ты подобен мне,это не сработает, если вы попытаетесь активировать второй монитор (, вы все равно получите упомянутую ошибку razr):

xrandr --output DP2-2 --auto

Вместо этого просто запустите сохраненный скрипт arandr. Это было для моего случая:

./dual_monitor_home.sh

И он автоматически -обнаружил второй экран и заработал!

3
27.01.2020, 20:54

У меня была такая же проблема при использовании Lenovo Thinkpad на док-станции.

Чтобы исправить это, мне пришлось уменьшить частоту обновления, потому что один монитор по умолчанию имеет частоту 144 Гц.

xrandr --output DP-2-3 --auto --primary --crtc 0 --rotate normal --mode 2560x1440 --rate 59.95
xrandr --output eDP-1 --off
xrandr --output DP-2-2 --auto --right-of DP-2-3 --rotate left

Очевидно, пропускная способность ограничена.

0
16.05.2021, 13:03

Теги

Похожие вопросы