You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

微软Surface Pro 4安装Ubuntu 22.04.2 LTS后触摸屏无法使用

微软Surface Pro 4安装Ubuntu 22.04.2 LTS后触摸屏无法使用

Hey there, sorry to hear your touchscreen's acting up on your Surface Pro 4 with Ubuntu 22.04.2 LTS—let's walk through some targeted fixes for newer Ubuntu versions, since you mentioned older solutions aren't working. All other hardware is running fine, so we can focus specifically on getting that touchscreen back online.

第一步:先确认硬件是否被系统识别

First up, let's check if Ubuntu even sees your touchscreen:

  • Open your terminal and run xinput list
  • Look for entries with "Touchscreen" or "Microsoft Surface Touch" in the name. If you don't see anything like that, the issue is likely with kernel drivers not loading. If you do see the device, we can skip to fixing configuration/permissions.

第二步:更新到HWE内核(针对硬件优化的新版本)

Ubuntu 22.04's default kernel might not have the latest Surface touchscreen support. Let's install the Hardware Enablement (HWE) kernel:

  • Update your system packages first: sudo apt update && sudo apt upgrade -y
  • Install the HWE kernel: sudo apt install linux-generic-hwe-22.04 -y
  • Reboot your system with sudo reboot
  • After restarting, run xinput list again to check if the touchscreen shows up, then test the touch function.

第三步:手动加载触摸屏驱动模块

If the kernel update didn't do the trick, let's manually load the required module for Surface touchscreens:

  • Run sudo modprobe i2c_hid_acpi in the terminal—this loads the touchscreen driver module temporarily
  • To make it load automatically on every boot, run echo "i2c_hid_acpi" | sudo tee -a /etc/modules-load.d/modules.conf
  • Reboot your device and test the touchscreen again.

第四步:修复设备权限或启用触摸屏

If xinput list shows the touchscreen but it's unresponsive, it might be disabled or have permission issues:

  • Note down the device ID from xinput list (it'll look like id=XX where XX is a number)
  • Enable it with xinput enable XX (replace XX with your actual device ID)
  • To avoid doing this every time you boot, add the command to startup applications:
    1. Open "Startup Applications" from your system menu
    2. Click "Add" and name the entry something like "Enable Surface Touchscreen"
    3. Paste the command xinput enable XX (with your device ID) in the command field
    4. Save the entry, and it'll run automatically on boot.

第五步:检查并更新设备固件

Sometimes outdated firmware can break touchscreen functionality on Surface devices:

  • Install the firmware update tool: sudo apt install fwupd -y
  • Refresh and install available updates: sudo fwupdmgr refresh && sudo fwupdmgr update
  • Follow any on-screen prompts, then reboot once updates are done.

第六步:调整内核参数作为最后尝试

If all else fails, tweaking a kernel parameter might resolve polling issues with the touchscreen:

  • Edit the GRUB configuration file: sudo nano /etc/default/grub
  • Find the line starting with GRUB_CMDLINE_LINUX_DEFAULT and add i2c_hid.polling_mode=1 inside the quotes. For example:
    GRUB_CMDLINE_LINUX_DEFAULT="quiet splash i2c_hid.polling_mode=1"
    
  • Save the file (press Ctrl+O, hit Enter, then Ctrl+X to exit nano)
  • Update GRUB with sudo update-grub
  • Reboot your system and test the touchscreen.

If none of these steps work, you can check for specific error logs by running dmesg | grep -i touch in the terminal—this might give clues about what's going wrong with the touchscreen driver.

备注:内容来源于stack exchange,提问作者Okey

火山引擎 最新活动