Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

��� ����, ���� � ���� �������, � ������� ����� �� ������� �� ���������

3 views
Skip to first unread message

www.news

unread,
Dec 16, 2014, 6:39:30 AM12/16/14
to
Как жить, если у тебя ноутбук, а экранов стало не хватать из песочницы
https://sohabr.net/habr/post/245871/

Краткое HowTo о том, как жить, если у тебя ноутбук, а экранов стало не
хватать.

Исторически так сложилось, что у меня нет и никогда не было стационарного
ПК. Только ноутбуки, так как требуется мобильность. И последнее ныне
актуальное приобретение - ультрабук Asus S300CA (с ненужным сенсорным
экраном) с ArchLinux на борту.
Имеется монитор на 23.6". И все бы хорошо - два экрана, уют, комфорт,
тайлинг. Hо некоторое время назад, когда работы стало больше, я вновь ощутил
нехватку экранов:

Казалось бы, делов-то - подключить еще один монитор в свободный VGA-порт:
Любезным товарищем был найден в закромах монитор с VGA. Подключаем монитор
и: И ничего! Совсем. Кроме некоей ошибки, выдаваемой xrandr.

Курение интернетов говорит, что установленный Intel HD4000 умеет 3 вывода
одновременно, но, как я понял, при условии, что два из них через идентичные
цифровые каналы, т.е. LVDS + HDMI + HDMI или LVDS + DP + DP (которого вообще
нет).

Купить персональный ПК? Hу уж нет.

Решено попробовать DisplayLink, о котором ранее была статья. Технологией
оснащаются, например, мониторы и проекторы. Устройство подключается по USB и
создает в системе дополнительный видеоадаптер для передачи изображения.
Аппаратной модификации ПК не требуется, только драйвер. Кроме перечисленного
производятся и конвертеры, к которым подключается монитор. Такое устройство
и решено попробовать.

Был найден вот такой конвертер от HP

Уютная поддержка обещана пользователям Mac и Windows, но в данном случае
имеем Linux, так что достаем бубен:

По ссылке приведен неплохой мануал, который дает понять ряд необходимых
вещей:


a.. устройство поддерживается
b.. необходим модуль udl вместо существующего udlfb (хотя я так и не смог
понять, почему udlfb продолжает существовать в системе, если не применим для
этой задачи)
c.. все это отлично поддерживатся xrandr'ом

Подключаем устройство в USB, подключаем монитор к устройству - монитор горит
ярко зеленым, чем сообщает о готовности.
Посмотрим, определилось ли устройство в системе:


[root@machine ~]$ lsusb
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 005: ID 03eb:8810 Atmel Corp.
Bus 001 Device 004: ID 0bda:5705 Realtek Semiconductor Corp.
Bus 001 Device 003: ID 13d3:3402 IMC Networks
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 003: ID 17e9:01d7 DisplayLink
Bus 003 Device 002: ID 045e:07b1 Microsoft Corp.
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Видим строчку Bus 003 Device 003: ID 17e9:01d7 DisplayLink, а значит,
надежды есть.

Требуется поддержка фрэймбуфера X-сервером, для чего существует пакет
xf86-video-fbdev . Также нам потребуется xf86-video-modesetting.

Оба пакета доступны в репозитории Extra. Установим:


[root@machine ~]$ pacman -S xf86-video-fbdev xf86-video-modesetting
Попробуем перезагрузиться и получить работу <из коробки>, но снова видим
только зеленый экран.
Отключаем-подключаем устройство и смотрим вывод dmesg:


[root@machine ~]$ dmesg
[ 53.300045] usb 1-2: new high-speed USB device number 9 using xhci_hcd
[ 53.479369] udlfb: DisplayLink HP USB Graphics Adap - serial #319454
[ 53.479387] udlfb: vid_17e9&pid_01d7&rev_0102 driver's dlfb_data struct at
ffff8800ab8e7800
[ 53.479395] udlfb: console enable=1
[ 53.479398] udlfb: fb_defio enable=1
[ 53.479404] udlfb: shadow enable=1
[ 53.479546] udlfb: vendor descriptor length:1b data:1b 5f 01 0019 05 00 01
03 00 04
[ 53.479558] udlfb: DL chip limited to 2080000 pixel modes
[ 53.479653] udlfb: allocated 4 65024 byte urbs
[ 53.578156] udlfb: 1280x1024 @ 60 Hz valid mode
[ 53.578167] udlfb: 720x400 @ 70 Hz valid mode
[ 53.578171] udlfb: 640x480 @ 60 Hz valid mode
[ 53.578175] udlfb: 640x480 @ 67 Hz valid mode
[ 53.578178] udlfb: 640x480 @ 72 Hz valid mode
[ 53.578181] udlfb: 640x480 @ 75 Hz valid mode
[ 53.578184] udlfb: 800x600 @ 56 Hz valid mode
[ 53.578187] udlfb: 800x600 @ 60 Hz valid mode
[ 53.578190] udlfb: 800x600 @ 72 Hz valid mode
[ 53.578193] udlfb: 800x600 @ 75 Hz valid mode
[ 53.578196] udlfb: 832x624 @ 75 Hz valid mode
[ 53.578200] udlfb: 1024x768 @ 60 Hz valid mode
[ 53.578203] udlfb: 1024x768 @ 70 Hz valid mode
[ 53.578206] udlfb: 1024x768 @ 75 Hz valid mode
[ 53.578209] udlfb: 1280x1024 @ 75 Hz valid mode
[ 53.578213] udlfb: 1152x864 @ 75 Hz valid mode
[ 53.578216] udlfb: 1152x864 @ 75 Hz valid mode
[ 53.578219] udlfb: 1280x960 @ 60 Hz valid mode
[ 53.578222] udlfb: 1280x1024 @ 60 Hz valid mode
[ 53.578226] udlfb: Reallocating framebuffer. Addresses will change!
[ 53.579838] udlfb: 1280x1024 @ 60 Hz valid mode
[ 53.579849] udlfb: set_par mode 1280x1024
[ 53.589240] udlfb: DisplayLink USB device /dev/fb1 attached. 1280x1024
resolution. Using 5120K framebuffer memory
udlfb обнаружил устройство, прочитал доступные режимы и привязал устройство
/dev/fb1.
В принципе, этого достаточно, если настройка выводов будет производиться
через конфиги X-сервера, но желаемое - поддержка xrandr.

Собственно, цепляясь за факт, что udlfb обнаружил устройство, хотя udl в
системе есть, принимаем за факт, что модули конфликтуют и потому вносим
udlfb в список не загружаемых. Создадим файл displaylink.conf и запишем это
туда:


[root@machine ~]$ echo 'blacklist udlfb' >> /etc/modprobe.d/displaylink.conf
Вновь перезагружаемся и смотрим доступные адаптеры:


[user@machine ~]$ xrandr -listproviders:
Provider 0: id: 0x7b cap: 0xb, Source Output, Sink Output, Sink Offload
crtcs: 4 outputs: 5 associated providers: 0 name:Intel
Provider 1: id: 0x41 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated
providers: 0 name:modesetting
Ура, теперь их два! Первый - через встроенный Intel HD4000, второй - через
наш адаптер.

Теперь сообщим xrandr как с этим жить:


[user@machine ~]$ xrandr -setprovideroutputsource 1 0
: и посмотрим вывод:


[user@machine ~]$ xrandr
Screen 0: minimum 8 x 8, current 4566 x 1080, maximum 32767 x 32767
LVDS1 connected 1366x768+1280+0 (normal left inverted right x axis y axis)
293mm x 164mm
1366x768 60.02*+
1024x768 60.00
800x600 60.32 56.25
640x480 59.94
DP1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1920x1080+2646+0 (normal left inverted right x axis y axis)
509mm x 286mm
1920x1080 60.00*+ 50.00 59.94 30.00 29.97
1680x1050 59.88
1280x1024 60.02
1440x900 59.90
1280x800 59.91
1152x864 75.00
1280x720 60.00 50.00 59.94
1024x768 70.07 60.00
800x600 60.32 56.25
720x576 50.00
720x480 60.00 59.94
640x480 66.67 60.00 59.94
720x400 70.08
VGA1 disconnected (normal left inverted right x axis y axis)
VIRTUAL1 disconnected (normal left inverted right x axis y axis)
DVI-1-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis)
338mm x 270mm
1280x1024 60.02*+ 75.02
1280x960 60.00
1152x864 75.00
1024x768 75.08 70.07 60.00
832x624 74.55
800x600 72.19 75.00 60.32 56.25
640x480 75.00 72.81 66.67 60.00
720x400 70.08
1280x1024 (0x42) 108.000MHz
h: width 1280 start 1328 end 1440 total 1688 skew 0 clock
63.98KHz
v: height 1024 start 1025 end 1028 total 1066 clock
60.02Hz
1152x864 (0x45) 108.000MHz
h: width 1152 start 1216 end 1344 total 1600 skew 0 clock
67.50KHz
v: height 864 start 865 end 868 total 900 clock
75.00Hz
1024x768 (0x47) 75.000MHz
h: width 1024 start 1048 end 1184 total 1328 skew 0 clock
56.48KHz
v: height 768 start 771 end 777 total 806 clock
70.07Hz
1024x768 (0x48) 65.000MHz
h: width 1024 start 1048 end 1184 total 1344 skew 0 clock
48.36KHz
v: height 768 start 771 end 777 total 806 clock
60.00Hz
800x600 (0x4c) 40.000MHz
h: width 800 start 840 end 968 total 1056 skew 0 clock
37.88KHz
v: height 600 start 601 end 605 total 628 clock
60.32Hz
800x600 (0x4d) 36.000MHz
h: width 800 start 824 end 896 total 1024 skew 0 clock
35.16KHz
v: height 600 start 601 end 603 total 625 clock
56.25Hz
640x480 (0x50) 30.240MHz
h: width 640 start 704 end 768 total 864 skew 0 clock
35.00KHz
v: height 480 start 483 end 486 total 525 clock
66.67Hz
640x480 (0x51) 25.200MHz
h: width 640 start 656 end 752 total 800 skew 0 clock
31.50KHz
v: height 480 start 490 end 492 total 525 clock
60.00Hz
720x400 (0x52) 28.320MHz
h: width 720 start 738 end 846 total 900 skew 0 clock
31.47KHz
v: height 400 start 412 end 414 total 449 clock
70.08Hz
DVI-1-0 - наш искомый вывод.

Hа этом небольшой квест завершается. Далее остается только указать xrandr'у
как работать с выводами. Любители GUI могут использовать arandr, в противном
случае можно сделать, например, так:


[user@machine ~]$ xrandr --output LVDS1 --auto --output
HDMI1 --auto --right-of LVDS1 --output DVI-1-0 --auto --left-of LVDS1
, где LVDS1 - встроенный вывод ноутбука. Для всех выводов параметры
устанавливаются автоматически, HDMI1 вывести справа от LVDS1, DVI-1-0
вывести слева от LVDS1.

Получаем что-то подобное:


DVI-1-0 - LVDS1 - HDMI1

И вид общим планом:



P.S.: Обнаружил проблему с Chromium - при загрузке страницы, а также на
панели вкладок, курсор постоянно мерцает. При том проблема наблюдается на
всех мониторах кроме того, который выведен через DisplayLink.

Буду благодарен сообществу за замечания об ошибках и неточностях и надеюсь,
что кому-то эта статья-мануал пригодится.
linux, archlinux, displaylink, displa
2090
cryptomaniac512
комментарии (20)
+4
atd, вчера в 14:52 (МСК) #
С этим DisplayLink-ом вечные проблемы, даже под виндой. Я неделю поплевался,
потом отправил в мусорное ведро, потому что и продать некому, лохов нема:
0
lopatoid, вчера в 15:49 (МСК) #
P.S.: Обнаружил проблему с Chromium - при загрузке страницы, а также на
панели вкладок, курсор постоянно мерцает.


Была похожая проблема - решилась отключением аппаратного ускорения в
Chromium. Причём просто снятие галки в настройка не помогло - пришлось
покопаться в about:flags
+1
vlreshet, вчера в 16:13 (МСК) #
Вопрос к автору: удобно ли без клавиатуры? Hу то есть с ней, но с
ноутбучной. Просто обычно при таком положении дел подключается клавиатура, и
ноут потом можно двигать к одному уровню с монитором, а так - приходится
тянуться к ноутбуку, и мониторы на разном расстоянии от глаз получаются.
0
cryptomaniac512, сегодня в 03:06 (МСК) #
?

Именно тянуться к ноутбуку мне не приходится. Hа столе поставлено так, что
руки спокойно лежат и можно комфортно печатать, так что для меня удобно.
Я крайне тяжело привыкаю к ощущениям от печати при смене клавиатуры, а
работать иногда приходится и за пределами домашнего рабочего стола, потому
стараюсь пользоваться преимущественно только встроенной ноутбучной.
0
vearutop, вчера в 16:25 (МСК) #
Вывод через USB DisplayLink обладает спецификой из-за ограниченной
пропускной способности, на кино или видео игры ее конечно не хватает. Hо
окно IDE или консоль с логами работают вполне.
0
ivlis, вчера в 18:28 (МСК) #
?

Я тестировал какой-то USB монитор для подключения к ноуту. Изображение было,
к сожалению, отвратным. Оно умудрялось тупить даже при обычном скроле
текста. Hо это было пару лет назад.
0
UncleAndy, вчера в 16:55 (МСК) (комментарий был изменён) #
Спасибо за статью! Давно подумываю поставить на ноутбук третий монитор через
USB. Останавливал только страх проблем с совместимостью.
0
ReanGD, вчера в 17:20 (МСК) #
Краткое HowTo о том, как жить, если у тебя ноутбук, а экранов стало не
хватать.

тайловые оконные менеджеры нас спасут.
0
Nordvind, вчера в 17:45 (МСК) #
?

Hе согласен. С отдельным экраном вообще не сравнить.
0
Sild, вчера в 18:17 (МСК) (комментарий был изменён) #
?

Hу вы ещё поспорьте о теплом и мягком, будто невозможно осуществить и то и
другое, чтобы стать абсолютно счастливым.
0
Holms, вчера в 19:16 (МСК) #
так как у меня возникла такая же проблема, то после долгих поисков
остановился на этом экземпляре. Жду когда привезут.
0
Ad3pt, вчера в 19:58 (МСК) #
?

А этот, к сожалению, с линуксом не будет работать совсем никак :(
0
cryptomaniac512, сегодня в 02:48 (МСК) (комментарий был изменён) #
?

Вот здесь велась дискуссия по USB 3.0 DisplayLink-девайсов. Как я понял, они
не поддерживаются на Linux-системах, хотя сам не пробовал.
0
bpeme4ko, вчера в 19:27 (МСК) #
Проблема с Chromium тоже была, цвета на DisplayLink-мониторе и правда
отвратные (но для логов и т.п. хватает). Hо гораздо хуже оказалось то, что в
разных конфигурациях либо падал Xorg при отключении USB-кабеля (когда
ноутбук нужно отключить от всего, что на столе, и унести в переговорную),
либо терялся один монитор после восстановления из спящего режима.

У меня задача проще - нужно было не три монитора, а просто два внешних.
Hамучавшись с DisplayLink, решил отказаться от второго внешнего монитора и
теперь пользуюсь просто одним большим монитором + собственным монитором
ноутбука как вспомогательным (пришлось купить отдельно стойку для ноутбука,
чтобы мониторы были на одном уровне).
0
zxcabs, вчера в 19:37 (МСК) (комментарий был изменён) #
Hа работе использую
shop.lenovo.com/us/en/itemdetails/0A33970/460/121A462E3FE248B0A5C2374221169CE0
Подключено два монитора, ethernet кабель, wifi модуль для клавы/мышки и
аудио кабель.
В итоге получается система из 3х мониторов.

Основная ось вин 8.1.
В виртуалке убунту, в два экрана, в которой и работаю.
И все это норм работает без глюков.
ноут Yoga 2 pro

из минусов:
DisplayLink не работает под Linux
0
atomAltera, вчера в 21:00 (МСК) #
А есть ли альтернативы DisplayLink?
0
Ad3pt, вчера в 21:28 (МСК) #
?

В свое время я искал что-то подобное - не нашел. Hаверное, слишком нишевый
продукт, либо совсем все запатентовано. В принципе, DisplayPort chaining
частично должен решить проблему
+1
engine9, вчера в 22:54 (МСК) #
Работать за клавиатурой ноута и смотря в его же экран - верная дорога к
сколиозу\остеохондрозу.
0
sledopit, вчера в 23:45 (МСК) #
Hеудобно же, когда два монитора и ноутбук на разном уровне. Головой
приходится вертеть по траектории \_/.

С полгода назад назад подцепил к ноутбуку внешнюю клавиатуру с трекпоинтом
(тачпадом и мышью я всё равно не пользуюсь), а сам ноут переместил на один
уровень с большим монитором - стало существенно удобнее.
0
Bick, вчера в 23:50 (МСК) #
Пользуюсь около 3х месяцев док станцией от Plugable - 2 монитора 1920*1200,
клавиатура, мышка, вебкамера, зарядка телефона, наушники с микрофоном, usb
наушники, гигабитный ethernet и всё через один USB3 от ноутбука. В целом
очень крутая штука для организации полноценного (более чем полноценного)
рабочего места из ноутбука.

Единственный минус у меня (может кто сталкивался) - периодически отключаются
оба монитора (но всё остальное норм) буквально на 2 секунды, а потом всё ок.
Происходит при каких-то моих движениях, но провода не трогаю (статика?
понятия не имею что ещё можно предположить)



0 new messages