DISPLAY(2)——OK3399 Ubuntu 双屏扩展显示+双屏异触

使用xrandr和xinput实现Linux双屏扩展与异触控制
本文介绍了如何利用xrandr命令在Ubuntu系统中管理多显示器设置,包括双屏扩展显示和主副屏切换。同时,通过xinput命令对多个触摸屏设备进行管理,实现双屏异触,即不同的触摸屏与不同显示器的绑定,以达到独立操作的效果。示例中展示了如何将wch.cnUSB2IIC_CTP_CONTROL与HDMI-1,以及ILITEKILITEK-TP与eDP-1进行绑定。

xrandr命令

“xrandr” 是一款官方的 RandR扩展配置工具。它可以设置屏幕显示的大小、方向、镜像等。对于多屏幕显示的情况,可以使用xrandr进行管理。

参考链接:
https://wiki.archlinux.org/index.php/xrandr_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
forlinx@forlinx:~$ xrandr --help
usage: xrandr [options]
  where options are:
  --display <display> or -d <display>
  --help
  -o <normal,inverted,left,right,0,1,2,3>
            or --orientation <normal,inverted,left,right,0,1,2,3>
  -q        or --query
  -s <size>/<width>x<height> or --size <size>/<width>x<height>
  -r <rate> or --rate <rate> or --refresh <rate>
  -v        or --version
  -x        (reflect in x)
  -y        (reflect in y)
  --screen <screen>
  --verbose
  --current
  --dryrun
  --nograb
  --prop or --properties
  --fb <width>x<height>
  --fbmm <width>x<height>
  --dpi <dpi>/<output>
  --output <output>
      --auto
      --mode <mode>
      --preferred
      --pos <x>x<y>
      --rate <rate> or --refresh <rate>
      --reflect normal,x,y,xy
      --rotate normal,inverted,left,right
      --left-of <output>
      --right-of <output>
      --above <output>
      --below <output>
      --same-as <output>
      --set <property> <value>
      --scale <x>x<y>
      --scale-from <w>x<h>
      --transform <a>,<b>,<c>,<d>,<e>,<f>,<g>,<h>,<i>
      --off
      --crtc <crtc>
      --panning <w>x<h>[+<x>+<y>[/<track:w>x<h>+<x>+<y>[/<border:l>/<t>/<r>/<b>]]]
      --gamma <r>:<g>:<b>
      --brightness <value>
      --primary
  --noprimary
  --newmode <name> <clock MHz>
            <hdisp> <hsync-start> <hsync-end> <htotal>
            <vdisp> <vsync-start> <vsync-end> <vtotal>
            [flags...]
            Valid flags: +HSync -HSync +VSync -VSync
                         +CSync -CSync CSync Interlace DoubleScan
  --rmmode <name>
  --addmode <output> <name>
  --delmode <output> <name>
  --listproviders
  --setprovideroutputsource <prov-xid> <source-xid>
  --setprovideroffloadsink <prov-xid> <sink-xid>
  --listmonitors
  --listactivemonitors
  --setmonitor <name> {auto|<w>/<mmw>x<h>/<mmh>+<x>+<y>} {none|<output>,<output>,...}
  --delmonitor <name>

双屏扩展显示

OK3399 Ubuntu系统支持xrandr命令管理多屏扩展显示。
同时接入eDP屏幕和HDMI屏幕,系统会默认非热插拔显示设备作为主屏,所以eDP会被识别为primary screen。默认会设置两个屏幕为扩展显示。

forlinx@forlinx:~$ xrandr
Screen 0: minimum 320 x 200, current 2560 x 1440, maximum 8192 x 8192
eDP-1 connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 276mm x 156mm
   1920x1080     60.00*+
HDMI-1 connected 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440     59.95* 
   1920x1080     60.00    50.00    59.94  
   1680x1050     59.88  
   1280x1024     75.02    60.02  
   1440x900      59.90  
   1280x960      60.00  
   1280x720      60.00    50.00    59.94  
   1024x768      75.03    70.07    60.00  
   832x624       74.55  
   800x600       72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480       75.00    72.81    66.67    60.00    59.94  
   720x400       70.08

可以使用xrandr在两个屏幕中选择哪个做主屏,哪个做副屏。

xrandr --output eDP-1 --right-of HDMI-1 --auto

也可以将两个屏幕设置成同显。

xrandr --output HDMI-1 --same-as eDP-1 --auto

xinput命令

xinput命令用于管理系统的输入设备。

forlinx@forlinx:~$ xinput --help
usage :
        xinput get-feedbacks <device name>
        xinput set-ptr-feedback <device name> <threshold> <num> <denom>
        xinput set-integer-feedback <device name> <feedback id> <value>
        xinput get-button-map <device name>
        xinput set-button-map <device name> <map button 1> [<map button 2> [...]]
        xinput set-pointer <device name> [<x index> <y index>]
        xinput set-mode <device name> ABSOLUTE|RELATIVE
        xinput list [--short || --long || --name-only || --id-only] [<device name>...]
        xinput query-state <device name>
        xinput test [-proximity] <device name>
        xinput create-master <id> [<sendCore (dflt:1)>] [<enable (dflt:1)>]
        xinput remove-master <id> [Floating|AttachToMaster (dflt:Floating)] [<returnPointer>] [<returnKeyboard>]
        xinput reattach <id> <master>
        xinput float <id>
        xinput set-cp <window> <device>
        xinput test-xi2 [--root] <device>
        xinput map-to-output <device> <output name>
        xinput list-props <device> [<device> ...]
        xinput set-int-prop <device> <property> <format (8, 16, 32)> <val> [<val> ...]
        xinput set-float-prop <device> <property> <val> [<val> ...]
        xinput set-atom-prop <device> <property> <val> [<val> ...]
        xinput watch-props <device>
        xinput delete-prop <device> <property>
        xinput set-prop <device> [--type=atom|float|int] [--format=8|16|32] <property> <val> [<val> ...]
        xinput disable <device>
        xinput enable <device>

分别插入了“wch.cn USB2IIC_CTP_CONTROL”和“ILITEK ILITEK-TP”两个usb电容触摸屏。

forlinx@forlinx:~$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ wch.cn USB2IIC_CTP_CONTROL                id=9    [slave  pointer  (2)]
⎜   ↳ ILITEK ILITEK-TP                          id=6    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ rk_headset                                id=7    [slave  keyboard (3)]
    ↳ rk29-keypad                               id=8    [slave  keyboard (3)]
    ↳ InputEmulator                             id=10   [slave  keyboard (3)]

双屏异触

使用xinput对触摸设备和显示设备进行绑定。
ILITEK ILITEK-TP触摸设备的id是6,将其与eDP-1绑定。
wch.cn USB2IIC_CTP_CONTROL触摸设备的id是9,将其与HDMI-1绑定。

forlinx@forlinx:~$ xinput map-to-output 6 eDP-1
forlinx@forlinx:~$ xinput map-to-output 9 HDMI-1

这样就可以实现双屏异触了。测试了一下,两个屏幕各自的触摸效果还不错。

<think>好的,我需要帮助用户在Ubuntu 20.04上配置双屏显示。首先,我需要回顾用户提供的引用内容,看看有没有相关的指导。 用户引用了四个参考资料。引用[1]提到了安装软件、配置文件和重启,但主要是关于虚拟显示器的设置。引用[2]和[3]都提到了外接显示器和显卡驱动的问题,尤其是引用[3]明确指出需要安装NVIDIA官方驱动,并记住文件名。引用[4]是关于HDMI音频的问题,可能和显示设置有关,但主要解决音频输出。 用户的问题是如何在Ubuntu 20.04上配置双显示器。根据引用[3],配置双屏需要安装正确的显卡驱动。步骤可能包括安装驱动、配置显示设置。此外,引用[1]中的配置文件和重启步骤可能也适用,但需要区分虚拟显示器和物理显示器的情况。 接下来,我需要整理步骤: 1. 安装显卡驱动:根据引用[3],从NVIDIA官网下载驱动,并记住文件名。安装过程可能需要禁用Nouveau驱动,进入命令行模式安装。 2. 连接显示器:使用HDMI或DP线连接,注意引用[2]中提到的驱动问题可能导致无信号,所以确保驱动正确安装。 3. 配置显示设置:Ubuntu自带的设置工具可能可以调整双屏的位置、分辨率等。如果自动检测不到,可能需要手动修改配置文件,如引用[1]中的xorg.conf,但需注意虚拟显示器和物理显示器的区别。 4. 处理常见问题:如引用[2]中的闪屏或无信号,可能需要检查驱动版本或线缆连接;引用[4]中的音频问题可能与显示设置无关,但确保配置正确。 需要注意,不同的显卡(NVIDIA、AMD、集成显卡)可能需要不同的驱动安装方法。用户引用[3]提到的是NVIDIA,所以重点放在NVIDIA驱动的安装步骤。 可能的步骤详细说明: - 下载驱动:访问NVIDIA官网,选择对应显卡型号和系统版本,下载.run文件。 - 禁用Nouveau驱动:编辑/etc/modprobe.d/blacklist.conf,添加blacklist nouveau,然后更新initramfs。 - 进入命令行:关闭图形界面,sudo service lightdm stop或使用TTY。 - 安装驱动:运行下载的.run文件,按照提示安装。 - 重启后配置显示设置:使用nvidia-settings工具或Ubuntu设置中的显示器选项,排列双屏,设置主显示器等。 可能的命令包括: sudo apt install nvidia-driver-xxx sudo bash NVIDIA-Linux-xxxx.run nvidia-settings 需要提醒用户备份数据,因为安装驱动可能有风险。同时,双屏的排列方式(扩展、镜像)和分辨率调整也是关键点。 还需要检查引用中是否有其他需要注意的问题,比如引用[2]中的驱动问题导致外接显示器无信号,可能需要安装特定版本的驱动或调整配置。此外,引用[1]中的配置文件方法可能适用于虚拟显示器,但物理显示器可能需要不同的设置,比如xorg.conf中的Monitor和Screen部分。 总结回答结构: 1. 安装显卡驱动(引用[3]) 2. 连接硬件 3. 使用系统设置配置显示器 4. 使用NVIDIA设置工具(如果有) 5. 处理常见问题(驱动问题、信号问题,引用[2][3]) 确保步骤清晰,引用正确,并生成相关问题。</think>### 在 Ubuntu 20.04 上配置双屏显示的步骤 #### 1. 安装显卡驱动 双屏显示需要显卡驱动的支持。对于 NVIDIA 显卡,需从官网下载对应驱动并手动安装[^3]。 **操作步骤**: - 访问 [NVIDIA 驱动下载页面](https://www.nvidia.cn/Download/index.aspx),选择显卡型号和系统版本,下载 `.run` 文件。 - 禁用系统默认的 Nouveau 驱动: ```bash sudo nano /etc/modprobe.d/blacklist.conf # 添加一行:blacklist nouveau sudo update-initramfs -u ``` - 重启后进入命令行模式(按 `Ctrl+Alt+F3`),关闭图形界面: ```bash sudo service lightdm stop ``` - 安装驱动(替换为下载的文件名): ```bash sudo bash NVIDIA-Linux-x86_64-xxx.xx.xx.run ``` - 完成后重启:`sudo reboot` #### 2. 连接显示器 使用 HDMI 或 DisplayPort 线连接两台显示器。若显示器无信号,检查驱动是否安装成功或尝试更换线缆[^2][^3]。 #### 3. 配置显示设置 Ubuntu 系统内置了显示器配置工具: - 打开 **Settings → Displays**,系统会自动检测连接的显示器。 - 拖动屏幕图标调整物理位置(如左右或上下排列)。 - 选择分辨率(建议设为 $1920 \times 1080$)和刷新率。 - 勾选 **Primary Display** 设置主屏幕。 #### 4. 使用 NVIDIA 控制工具(可选) 若使用 NVIDIA 显卡,可通过 `nvidia-settings` 进一步优化: ```bash sudo apt install nvidia-settings nvidia-settings ``` 在此工具中可调整色彩、3D 设置及多屏同步参数。 #### 5. 常见问题解决 - **外接显示器无信号**: 检查驱动版本是否兼容,或尝试重新安装驱动[^3]。 - **音频无法通过 HDMI 输出**: 使用 `alsamixer` 解除静音并设置音频输出模式[^4]。 - **闪屏或显示异常**: 降低分辨率或刷新率,或更换线缆。 --- ###
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值