Решил попробовать для расширения рабочего пространства, сенсорного ввода и удаленного управления использовать планшет как дополнительный экран к своему ноутбуку c Linux. Нашлось 2 способа сделать это. Чем и делюсь.
Все дальнейшие действия выполняются на ноутбуке. Для подключения на планшет надо установить любой VNC клиент.
Первый способ, с помощью vnc4server и x2x
Установим vnc4server и x2x:
1
|
sudo
apt
-
get
install
vnc4server
x2x
|
При первом запуске vnc4server спросит пароль для подключения. После чего запустит X сессию и будет ждать vnc подключения на 5901 порту. Конфигурация сессии задается в файле ~/.vnc/xstartup.
Для управления сессией с компьютера можно использовать x2x:
1
|
x2x
-
to
:
1
-
east
|
Теперь при перемещении курсора мыши за правую границу экрана, он будет появляться на планшете и ввод с клавиатуры будет переключаться туда же.
Такой способ имеет недостаток: нельзя перетащить окно с одного экрана на другой.
Второй способ, с помощью драйверов
Использовать dummy драйвер в качестве второй видеокарты, объединить их с основной с помощью xinerama и отдать часть рабочего стола через x11vnc.
1
|
sudo
apt
-
get
install
xserver
-
xorg
-
video
-
dummy
x11vnc
|
Придется написать конфигурацию для xorg. Пример конфигурации /etc/X11/xorg.conf:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
#Основная видеокарта, надо указать нужный драйвер
Section
"Device"
Identifier
"Configured Video Device"
#тут ваш драйвер, можно подсмотреть в /var/log/Xorg.0.log
Driver
"radeon"
EndSection
Section
"Monitor"
Identifier
"Configured Monitor"
EndSection
Section
"Screen"
Identifier
"Default Screen"
Monitor
"Configured Monitor"
Device
"Configured Video Device"
EndSection
#Dummy видеокарта
Section
"Device"
Identifier
"Videocard0"
Driver
"dummy"
VideoRam
256000
EndSection
Section
"Monitor"
Identifier
"Monitor0"
HorizSync
10.0
-
300.0
VertRefresh
10.0
-
200.0
DisplaySize
300
200
#The following modeline is invalid (calculator overflowed):
#Modeline "32000x32000@0" -38917.43 32000 32032 -115848 -115816 32000 32775 32826 33601
Modeline
"16384x8192@10"
2101.93
16384
16416
24400
24432
8192
8390
8403
8602
Modeline
"8192x4096@10"
424.46
8192
8224
9832
9864
4096
4195
4202
4301
Modeline
"5120x3200@10"
199.75
5120
5152
5904
5936
3200
3277
3283
3361
Modeline
"3840x2880@10"
133.43
3840
3872
4376
4408
2880
2950
2955
3025
Modeline
"3840x2560@10"
116.93
3840
3872
4312
4344
2560
2622
2627
2689
Modeline
"3840x2048@10"
91.45
3840
3872
4216
4248
2048
2097
2101
2151
Modeline
"2048x2048@10"
49.47
2048
2080
2264
2296
2048
2097
2101
2151
Modeline
"2560x1600@10"
47.12
2560
2592
2768
2800
1600
1639
1642
1681
Modeline
"1920x1200@10"
26.28
1920
1952
2048
2080
1200
1229
1231
1261
Modeline
"1920x1080@10"
23.53
1920
1952
2040
2072
1080
1106
1108
1135
Modeline
"1680x1050@10"
20.08
1680
1712
1784
1816
1050
1075
1077
1103
Modeline
"1600x900@20"
33.92
1600
1632
1760
1792
900
921
924
946
Modeline
"1440x900@20"
30.66
1440
1472
1584
1616
900
921
924
946
Modeline
"1360x768@20"
24.49
1360
1392
1480
1512
768
786
789
807
#common resolutions for android devices (both orientations):
Modeline
"800x1280@20"
25.89
800
832
928
960
1280
1310
1315
1345
Modeline
"1280x800@20"
24.15
1280
1312
1400
1432
800
819
822
841
Modeline
"720x1280@25"
30.22
720
752
864
896
1280
1309
1315
1345
Modeline
"1280x720@25"
27.41
1280
1312
1416
1448
720
737
740
757
Modeline
"768x1024@25"
24.93
768
800
888
920
1024
1047
1052
1076
Modeline
"1024x768@25"
23.77
1024
1056
1144
1176
768
785
789
807
Modeline
"600x1024@25"
19.90
600
632
704
736
1024
1047
1052
1076
Modeline
"1024x600@25"
18.26
1024
1056
1120
1152
600
614
617
631
Modeline
"536x960@25"
16.74
536
568
624
656
960
982
986
1009
Modeline
"960x536@25"
15.23
960
992
1048
1080
536
548
551
563
Modeline
"600x800@25"
15.17
600
632
688
720
800
818
822
841
Modeline
"800x600@25"
14.50
800
832
880
912
600
614
617
631
Modeline
"480x854@25"
13.34
480
512
560
592
854
873
877
897
Modeline
"848x480@25"
12.09
848
880
920
952
480
491
493
505
Modeline
"480x800@25"
12.43
480
512
552
584
800
818
822
841
Modeline
"800x480@25"
11.46
800
832
872
904
480
491
493
505
Modeline
"320x480@50"
10.73
320
352
392
424
480
490
494
505
Modeline
"480x320@50"
9.79
480
512
544
576
320
327
330
337
Modeline
"240x400@50"
6.96
240
272
296
328
400
408
412
421
Modeline
"400x240@50"
6.17
400
432
448
480
240
245
247
253
Modeline
"240x320@50"
5.47
240
272
288
320
320
327
330
337
Modeline
"320x240@50"
5.10
320
352
368
400
240
245
247
253
#resolutions for android devices (both orientations)
#minus the status bar
#38px status bar (and width rounded up)
Modeline
"800x1242@20"
25.03
800
832
920
952
1242
1271
1275
1305
Modeline
"1280x762@20"
22.93
1280
1312
1392
1424
762
780
783
801
Modeline
"720x1242@25"
29.20
720
752
856
888
1242
1271
1276
1305
Modeline
"1280x682@25"
25.85
1280
1312
1408
1440
682
698
701
717
Modeline
"768x986@25"
23.90
768
800
888
920
986
1009
1013
1036
Modeline
"1024x730@25"
22.50
1024
1056
1136
1168
730
747
750
767
Modeline
"600x986@25"
19.07
600
632
704
736
986
1009
1013
1036
Modeline
"1024x562@25"
17.03
1024
1056
1120
1152
562
575
578
591
Modeline
"536x922@25"
16.01
536
568
624
656
922
943
947
969
Modeline
"960x498@25"
14.09
960
992
1040
1072
498
509
511
523
Modeline
"600x762@25"
14.39
600
632
680
712
762
779
783
801
Modeline
"800x562@25"
13.52
800
832
880
912
562
575
578
591
Modeline
"480x810@25"
12.59
480
512
552
584
810
828
832
851
Modeline
"848x442@25"
11.09
848
880
920
952
442
452
454
465
Modeline
"480x762@25"
11.79
480
512
552
584
762
779
783
801
Modeline
"800x442@25"
10.51
800
832
864
896
442
452
454
465
#32px status bar (no need for rounding):
Modeline
"320x448@50"
9.93
320
352
384
416
448
457
461
471
Modeline
"480x288@50"
8.75
480
512
544
576
288
294
297
303
#24px status bar:
Modeline
"240x376@50"
6.49
240
272
296
328
376
384
387
395
Modeline
"400x216@50"
5.50
400
432
448
480
216
220
222
227
Modeline
"240x296@50"
5.02
240
272
288
320
296
302
305
311
Modeline
"320x216@50"
4.55
320
352
368
400
216
220
222
227
EndSection
Section
"Screen"
Identifier
"Screen0"
Device
"Videocard0"
Monitor
"Monitor0"
DefaultDepth
24
SubSection
"Display"
#разрешение плашета
Virtual
1024
768
EndSubSection
EndSection
#Задаем схему из 2х экранов: левый основной, правый dummy(планшет)
Section
"ServerLayout"
Identifier
"dummy_layout"
Screen
0
"Default Screen"
Screen
1
"screen0"
rightof
"Default Screen"
Option
"Xinerama"
"1"
EndSection
|
Все остальное настраивается Xorg автоматически.
Перезагружаем xorg сервер, заходим в сеанс и запускаем:
1
|
x11vnc
-
clip
1024x768
+
1280
+
0
|
Порт по умолчанию 5900.
В данном случае у меня 1280 размер экрана ноутбука по горизонтали, это число является смещением, и 1024x768 - размер экрана планшета.
Данное решение позволяет работать с двумя экранами в одной сессии и перемещать окна между устройствами.
Для подключения я использую vnc клиент androidVNC. На ноутбуке Ubuntu 12.04.