在 Surface pro 4 上安装 Ubuntu

在 Surface pro 4 上安装 Ubuntu

我已经从 win 10 转到 Ubuntu 16.04。我尝试过以下操作本文这个视频,但仍然遇到问题,因为最新内核版本是 4.6.3。
我仍然在运行 Ubuntu 安装的内核 4.4.0。

长话短说,我的键盘、触摸板、触摸屏、音量和电源按钮、触控笔、wifi 指示灯(右上角)和摄像头都无法使用。
我设法让 Wifi 和蓝牙正常工作。

有人能帮我编写/找到一些补丁并重新编译内核吗?


请发布所有更新和问题 我的 GitHub 组织任何贡献都将受到赞赏

驱动配置模块

要获取 Type Cover 工作运行SP4-1脚本,请从驱动配置

答案1

我的 Ubuntu 安装上运行着一个相当不错的 Surface Pro 4 内核。

破败不堪

有效的方法:

  • 无线网络/蓝牙
  • 多点触摸
  • 键盘盖上的触控板

什么有点作用:

  • 休眠 - 恢复后没有触摸或笔

不可以做的:

  • 暂停(请参阅下面有关省电的说明)
  • 冻结(挂起/睡眠模式更耗电,且无法可靠运行)
  • 打字盖

我还没尝试过的:

  • 摄像机

大概的概念

这个内核的总体思路是采用 Hyungwoo Yang 在https://github.com/ipts-linux-org/ipts-linux-new/wiki并将它们应用到 Ubuntu 4.9rc3 内核。以下是获取内核的步骤。编译过程使用 Surface 4 的所有核心大约需要 45 分钟。克隆内核存储库大约需要 1.5 GB 的磁盘空间。


生成内核的步骤

  1. 安装 Ubuntu 16.10 yakkety。为此,您将需要一个可以处理 ubuntu live-USB 和键盘/鼠标的 USB 集线器。

  2. 使用 USB 键盘启动 Linux。

  3. 准备 Ubuntu 4.9rc3 内核。

    • 克隆 Ubuntu 4.9rc3 内核(需要~1.5GB 空间):

      git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack v4.9-rc3

    • 下载6个补丁:补丁1 补丁2 补丁3 补丁4 补丁5 补丁6

    • 按顺序将补丁应用到内核:

      git am /path/to/THEPATCH.patch

      对于每个补丁。

  4. 从 ipts-linux-new 内核创建一个支持触摸/笔的补丁。

    • 在另一个目录中克隆内核(需要~1.5GB 的空间):

      git clone https://github.com/ipts-linux-org/ipts-linux-new.git

    • 创建补丁:

      git diff 0c183d92b20b5c84ca655b45ef57b3318b83eb9e > /path/to/ipts-linux-new_patch.txt

  5. 将 ipts-linux-new 补丁应用到 v4.9rc3

    `cd /path/to/v4.9rc3`
    `patch -p1 < /path/to/ipts-linux-new_patch.txt`
    `git add .`
    `git commit -m 'Patch for Surface Pro 4 taken from ipts-linux-new.'`
    
  6. 编译内核并制作 ubuntu .deb 包(复制自Ubuntu 内核编译

    cd /path/to/v4.9rc3

    • 初始化 debian 文件:

      fakeroot debian/rules clean

    • 配置您将要构建的内核:

      fakeroot debian/rules editconfigs

      • 仅对 amd64 问题回答是。这将显示“menuconfig”curses 界面。激活以下两个选项:
        • 设备驱动程序 -> NVM 快速锁定设备 (y)
        • 设备驱动程序 -> 杂项设备 -> Intel Precise Touch & Stylus (m)
    • 在“/path/to/v4.9rc3/debian.master/rules.d/amd64.mk”中注释或删除“do_zfs = true”

    • 通过编辑“/path/to/v4.9rc3/debian.master/changelog”重命名内核

  7. 编译内核(使用比处理器更多的线程来使其更快)

    `fakeroot debian/rules clean` #necessary, but I don't know why
    `DEB_BUILD_OPTIONS=parallel=5 fakeroot debian/rules binary-headers binary-generic binary-perarch`
    
  8. 应该在 v4.9rc3 旁边的目录中创建四个新的 .debs。使用以下命令安装 .debs:

    `sudo dpkg -i linux-image-* linux-headers-4.9.0-040900rc3*`
    
  9. 将驱动程序文件从 Windows 复制到 Linux:

    • 将驱动程序文件从“\Windows\INF\PreciseTouch\Intel”复制到 Linux 目录“/lib/firmware/intel/ipts”。应该至少有 4 个文件,其名称类似于以下内容:

      • iaPreciseTouchDescriptor.bin
      • SurfaceTouchServicingSFTConfigMSHW0078.bin
      • SurfaceTouchServicingDescriptorMSHW0078.bin
      • SurfaceTouchServicingKernelSKLMSHW0078.bin
    • 创建这些文件的符号链接:

      cd /lib/firmware/intel/ipts

      ln -s iaPreciseTouchDescriptor.bin intel_desc.bin

      ln -s SurfaceTouchServicingSFTConfigMSHW0078.bin config.bin

      ln -s SurfaceTouchServicingDescriptorMSHW0078.bin vendor_desc.bin

      ln -s SurfaceTouchServicingKernelSKLMSHW0078.bin vendor_kernel.bin

您现在应该可以启动新内核了。如果链接在正确的位置,那么触摸和手写笔就可以正常工作。


节电注意事项

缺少暂停功能是一个主要缺点。这是由于 Microsoft 的“连接待机”失败造成的:https://lwn.net/Articles/580451/。冻结会消耗更多电量(消耗电量的速度可能是电脑开机时的一半),而且似乎不太可靠。休眠状态下可以成功保持状态,但不幸的是,恢复后触摸和手写笔功能不起作用。

答案2

我用了Reddit 上的本指南

遇到了 fridgecow 内核冻结的问题,无法正常重启或关闭,只会冻结并且 Ubuntu 标志什么也不做。

我使用了 cantenna(6a 和 7a),除了无法从睡眠状态唤醒且音量按钮不工作外,其他都运行良好。

下载这个文件(修补后的内核)

cd到它所在的目录(例如cd Downloads)并安装软件包

sudo dpkg -i './linux-headers-4.4.0-rc8touchkernel+_1_amd64.deb'
sudo dpkg -i './linux-image-4.4.0-rc8touchkernel+_1_amd64.deb'

安装 Windows 分区(您可以从这里如果您删除了 Windows 分区或找不到它们),然后将文件复制到您的 Ubuntu 根目录(您可能需要根据 Windows 分区的挂载点调整路径:

sudo mkdir /itouch
cp /media/$USER/Windows/Windows/INF/PreciseTouch/Intel/* /itouch

现在为文件创建符号链接,以便驱动程序可以找到它们

sudo ln -sf /itouch/SurfaceTouchServicingKernelSKLMSHW0078.bin /itouch/vendor_kernel_skl.bin
sudo ln -sf /itouch/SurfaceTouchServicingSFTConfigMSHW0078.bin /itouch/integ_sft_cfg_skl.bin
sudo ln -sf /itouch/SurfaceTouchServicingDescriptorMSHW0078.bin /itouch/vendor_descriptor.bin
sudo ln -sf /itouch/iaPreciseTouchDescriptor.bin /itouch/integ_descriptor.bin

然后您需要确保您可以选择启动此内核或者通过配置 GRUB 将其设置为默认启动。

答案3

在 SP4 上,触摸算法在 GPU 上运行,因此传统驱动程序不起作用

以下是 github 链接: https://github.com/ipts-linux-org/ipts-linux/wiki

触摸屏、Surface Pro 笔...

IPTS 代表:英特尔精准触摸和触控笔。

在这个 github repo 中有一个带有触摸屏驱动程序的特定内核。

抱歉,我选择了特定的内核,但补丁必须适用于 4.4 之后的任何内核。

答案4

我正在使用 Ubuntu 16.10 SP4 进行打字/鼠标操作,为了到达这里我做了以下操作:

  • 使用 USB 集线器加载 Ubuntu 以获得键盘/鼠标支持

  • sudo apt-get install以下两个包:

  • ukuu(简单!)更新至最新 RC 内核(4.10-rc8)。现在支持磁性 SP4 键盘/鼠标(感谢内核人员!)。唯一的小问题:无线,所以去谷歌搜索并修补它。

  • grub-customizer选择 Win10/Ubuntu/Mint。

Ubuntu 的运行没有任何问题,我选择了 16.10 yakkety,因为我不喜欢 16.04 xenial 在屏幕 UL 上的最小/最大/关闭,而且从来没有找到解决这个问题的简单方法。

Linux MINT 也启动了键盘支持(将内核升级到 4.10-rc8 后),但不支持鼠标触摸板。

相关内容