Итак, чтобы вытащить это в список, вы можете использовать ту же команду, которую я дал вам раньше, но просто отмените требование 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
Вы можете использовать эти данные для моделирования новых правил назначения по своему усмотрению.
Попробуйте разделить команду 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
Это работа -.
Мое решение состояло в том, чтобы приостановить работу/переключить ноутбук в спящий режим, пока он все еще находится на док-станции, и разбудить его, после чего он снова заработал как часы.
У меня такая же проблема с док-станцией Lenovo :Когда я подключаю к ней (работающий )ноутбук, я не могу одновременно включить оба внешних дисплея и отключить дисплей ноутбука в одном xrandr
команда. Это дает то же сообщение xrandr: Configure crtc 1 failed
.
Но вместо случайной деактивации/реактивации мониторов я разбиваю их на два шага, как у Никласа:
У меня это работает воспроизводимо, но мне также было бы интересно найти правильное решение!
Ответ Никласа указал мне на решение, если вы используете arandr. Вы можете обнаружить (, как и я ), что когда вы отключите док-станцию, arandr покажет только основной монитор (моего ноутбука в этом случае ). Однако два других монитора по-прежнему обнаруживаются xrandr, поэтому вам просто нужно повторно -активировать два других монитора, щелкнув правой кнопкой мыши -фон графического интерфейса и включив «активировать» для двух мониторов.
НО, если вы сделаете это для обоих мониторов, вы получите ошибку, о которой упоминал razr. Просто активируйте каждый монитор по одному --, нажимая кнопку с галочкой -между активациями --, и все будет хорошо :)
.РЕДАКТИРОВАТЬ:
Кажется, также нашел надежный способ сделать это, не работая через arandr. Активируйте первый монитор:
xrandr --output DP2-1 --auto
Тогда, если ты подобен мне,это не сработает, если вы попытаетесь активировать второй монитор (, вы все равно получите упомянутую ошибку razr):
xrandr --output DP2-2 --auto
Вместо этого просто запустите сохраненный скрипт arandr. Это было для моего случая:
./dual_monitor_home.sh
И он автоматически -обнаружил второй экран и заработал!
У меня была такая же проблема при использовании 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
Очевидно, пропускная способность ограничена.