Установка Ubuntu на Surface Pro 4

Я перешел с win 10 на Ubuntu 16.04. Я пробовал следовать этой статье и этому видео, но все еще сталкиваюсь с проблемами, поскольку последняя версия ядра - 4.6.3.
Я все еще работаю на ядре, которое было установлено с Ubuntu, который является 4.4.0.

Короче говоря, моя клавиатура, сенсорная панель, сенсорный экран, кнопки громкости и питания, стилус, индикатор Wi-Fi (в верхнем правом углу) и камера не работают.
Мне удалось заставить работать Wi-Fi и Bluetooth.

Может кто-нибудь помочь мне с написанием / поиском некоторых патчей и перекомпиляцией ядра?


Пожалуйста, публикуйте все обновления и вопросы по организации My GitHub, и мы ценим любой вклад

производные-конфигурации и модули

Чтобы получить тип обложки рабочего прогона SP4-1 сценарий от производного-конфигурации

6 ответов

Я использовал это руководство на Reddit

Если бы проблемы с зависанием ядра fridgecow и невозможностью его перезагрузки или отключения были бы просто остановлены, логотип Ubuntu ничего не делал.

Я использовал кантенны (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.

У меня довольно хорошее ядро ​​Surface Pro 4, работающее на моей установке Ubuntu.

Краткое изложение

Что работает:

  • WiFi / Bluetooth
  • мультитач
  • ручка
  • трекпад на обложке

Что работает несколько:

  • в спящем режиме - после возобновления работы нет прикосновения или пера

Что не

  • приостановить (см. примечание по энергосбережению ниже)
  • заморозить (версия с режимом ожидания / сна, разряжающая батарею, которая не работает надежно)
  • печатная обложка

Что я не пробовал:

  • камеры

Главная идея

Основная идея этого ядра - взять изменения, внесенные Hyungwoo Yang по адресу https://github.com/ipts-linux-org/ipts-linux-new/wiki и применить их к ядру Ubuntu 4.9rc3. Вот шаги, чтобы привести ядро ​​в порядок. Процесс компиляции занимает около 45 минут с использованием всех ядер Surface 4. Для клонирования репозиториев ядра требуется около 1,5 гигабайта дискового пространства.


Шаги по производству ядра

  1. установить Ubuntu 16.10 яккеты. Для этого вам понадобится USB-концентратор, который может работать как с Ubuntu Live-USB, так и с клавиатурой / мышью.

  2. загрузите Linux с USB-клавиатуры.

  3. подготовить ядро ​​Ubuntu 4.9rc3.

    • клонировать ядро ​​Ubuntu 4.9rc3 (требуется ~1,5 гигабайта):

      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

    • примените патчи к ядру по порядку: do

      git am /path/to/THEPATCH.patch

      для каждого из патчей.

  4. создайте патч с поддержкой touch / pen из ядра ipts-linux-new.

    • клонировать ядро ​​(требует ~1,5 гигабайта места) в другой каталог:

      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 Kernel Compilation)

    cd /path/to/v4.9rc3

    • инициализировать файлы debian:

      fakeroot debian/rules clean

    • настройте ядро, которое вы будете собирать:

      fakeroot debian/rules editconfigs

      • Скажи да только на вопрос amd64. Это покажет интерфейс curses "menuconfig". активируйте следующие две опции:
        • Драйверы устройств -> Устройство быстрой блокировки NVM (y)
        • Драйверы устройств -> Разные устройства -> Intel Precise Touch & Stylus (m)
    • прокомментируйте или удалите "do_zfs = true" в "/path/to/v4.9rc3/debian.master/rules.d/amd64.mk"

    • переименуйте ядро, отредактировав "/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. четыре новых.debs должны быть созданы в каталоге рядом с v4.9rc3. Установите.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/. При замораживании расходуется больше энергии (возможно, батарея разряжается вдвое быстрее, чем если бы компьютер оставлен включенным), и не выглядит надежной. В спящем режиме состояние успешно сохраняется, но, к сожалению, функции касания и стилуса не работают после возобновления работы.

На SP4 сенсорные алгоритмы работают на GPU, поэтому традиционные драйверы не работают

Вот ссылка на github: https://github.com/ipts-linux-org/ipts-linux/wiki

Сенсорный экран, ручка Surface Pro..

IPTS расшифровывается как: Intel Precision Touch и Stylus.

В этом репозитории github есть специальное ядро ​​с драйвером для сенсорного экрана.

Извините, что забрал определенное ядро, но патчи должны быть применимы к любому ядру после 4.4.

Существует личный архив пакетов (PPA) с ядром, упакованным для вас по адресу: https://launchpad.net/~tigerite/+archive/ubuntu/kernel.

Следуйте инструкциям "Добавление этого PPA в вашу систему", а затем выполните указанные команды apt.

Вероятно, лучше начать с установки Xenial (16.04), а не Yakkety (16.10), так как не было недавнего (с мая) обновления PPA.

Я набираю / mousing из Ubuntu 16.10 на SP4, чтобы попасть сюда, я сделал следующее:

  • загрузите Ubuntu с помощью USB-концентратора для поддержки клавиатуры / мыши

  • sudo apt-get install следующие два пакета:

  • ukuu (ЛЕГКО!) Обновление до последнего ядра RC (4.10-rc8). Это теперь поддерживает магнитную клавиатуру / мышь SP4 (спасибо, люди ядра!). ТОЛЬКО NIGGLE: беспроводной, так что отключите Google и исправьте это.

  • grub-customizer выбрать Win10 / Ubuntu / Mint.

Ubuntu работает без шуток, я выбрал 16.10 yakkety, так как мне не нравится 16.04 xenial min/max/close на UL экрана, и я никогда не находил легкий способ обойти это.

Linux MINT также загружается с поддержкой клавиатуры (после обновления ядра до 4.10-rc8), но не с сенсорной панелью мыши.

Я нашел лучшее ядро ​​еще. Он использует тот же набор патчей, который описан в моем другом посте, плюс другие, которые заставляют работать обложку типа вместе с мультитач на трекпаде. У меня это работает с моей установкой 16.10.

Это ядро ​​требует от пользователя небольшой работы, поскольку оно уже скомпилировано в пакеты.deb, которые вы можете загрузить.

Что работает:

  • потрогать
  • ручка
  • Wi-Fi
  • клавиатура
  • трекпад
  • кнопки физической громкости и горячие клавиши клавиатуры

Что не

  • спать
  • иногда глючит

Во мне нет никакого смысла в плагиате направлений, поскольку они динамичны и хорошо поставлены:

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

Другие вопросы по тегам