在Surface pro 4上安装Ubuntu

我已经从胜利10变为Ubuntu 16.04。 我已经尝试过这篇文章和这个video ,但仍然遇到问题,因为最新的内核版本是4.6.3。
我仍在运行安装了Ubuntu 4.4.0的内核。

长话短说,我的键盘,触摸板,触摸屏,音量和电源按钮,手写笔,wifi指示灯(右上角)和相机都无法正常工作。
我设法让Wifi和蓝牙工作。

任何人都可以帮我写出/找到一些补丁并重新编译内核吗?


请在My GitHub组织上发布所有更新和问题, 我们对任何贡献表示赞赏

deriver-config和Modules

要获得类型封面工作, SP4-1SP4-1 -config运行SP4-1脚本

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

破败不堪

什么有效:

  • WIFI /蓝牙
  • 多点触摸
  • 钢笔
  • 打字封面上的触控板

有些作用:

  • hibernate – 恢复后没有触摸或笔

什么不:

  • 暂停(参见下面关于节电的说明)
  • 冻结(暂停/睡眠的电池耗尽版本不能可靠地工作)
  • 打字封面

我没有尝试过:

  • 相机

大概的概念

这个内核背后的一般想法是通过https://github.com/ipts-linux-org/ipts-linux-new/wiki进行Hyungwoo Yang的更改并将它们应用到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.5gig的空间):

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

    • 下载6个补丁: Patch1 Patch2 Patch3 Patch4 Patch5 Patch6

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

      git am /path/to/THEPATCH.patch

      对于每个补丁。

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

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

      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

您现在应该可以启动新内核了。 如果链接位于正确的位置,那么触摸和笔将很好地工作。


关于省电的注意事项

缺少暂停function是一个主要缺点。 这是由于微软“连接待机”惨败: https : //lwn.net/Articles/580451/ 。 冻结使用更多电池(将电池耗尽的速度可能是打开计算机时的一半),并且似乎不可靠。 通过hibernate,状态成功保留,但不幸的是,触摸和手写笔function在恢复后不起作用。

我在Reddit上使用了这个指南

如果icecow的内核冻结并且无法正常重启或关闭,那么就会冻结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将其设置为默认引导。

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

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

触摸屏,Surface Pro笔..

IPTS代表:Intel Precision Touch和Stylus。

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

很抱歉拿起特定的内核,但补丁必须适用于4.4之后的任何内核。

我找到了最好的内核。 它使用我的其他post描述的相同补丁集,以及使类型封面与跟踪板上的多点触控一起工作的其他补丁集。 我用16.10安装运行它。

这个内核需要用户很少的工作,因为它已经编译成可以下载的.deb包。

什么有效:

  • 触摸
  • 钢笔
  • 无线上网
  • 键盘
  • 触控板
  • 物理音量按钮和键盘热键

什么不:

  • 睡觉
  • 偶尔马车

我剽窃方向是没有意义的,因为它们是动态的并且很好:

https://www.reddit.com/r/SurfaceLinux/comments/4t64zt/getting_the_sp4_running_with_ubuntu_1604/

我在SP4上从Ubuntu 16.10打字/鼠标,为了到这里我做了以下事情:

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

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

  • ukuu (EASY!)更新到最新的RC内核(4.10-rc8)。 这个现在支持磁性SP4键盘/鼠标(谢谢内核人!)。 只有NIGGLE:无线,所以谷歌和补丁这个。

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

Ubuntu的工作没有匆匆忙忙,我选择16.10 yakkety因为我不喜欢16.04 xenial min / max / close在屏幕上的UL,并且从来没有找到一个简单的方法来解决这个问题。

Linux MINT也可以通过键盘支持启动(在将内核升级到4.10-rc8之后)但不支持鼠标触摸板。

有一个个人包存档(PPA),包含为您打包的内核: https : //launchpad.net/~tigerite/+archive/ubuntu/kernel 。

按照“将此PPA添加到系统”中的说明进行操作,然后执行指定的apt命令。

安装Xenial(16.04)而不是Yakkety(16.10)可能更好,因为PPA最近没有(自5月以来)更新。