Планшеты из линейки Surface Pro от Microsoft выглядят привлекательным рабочим инструментом, потому что они позволяют устанавливать традиционные приложения для настольных компьютеров.

Тема с установкой Linux на Surface не нова и довольно популярна:

  • На Хабре 6 лет назад уже выходила статья как «Как подружить Surface Pro 3 и Linux»;
  • На Reddit существует топик с 8 тысячами подписчиков r/SurfaceLinux, который дает подробное описание текущего положения вещей;
  • На гитхабе в репозитории linux-surface регулярно публикуются новые релизы Linux ядер.


Microsoft Surface Pro с установленной Ubuntu 19.10 (Eoan Ermine)

Мой интерес к Microsoft Surface Pro возник когда я узнал, что американский интернет магазин амазон продает официально восстановленные производителем 12 дюймовые планшеты предыдущих поколений в хороших комплектациях по ценам в два, а то и в три раза дешевле новых устройств последнего поколения. А ведь при покупке такого восстановленного производителем планшета получаешь фактически новое устройство в пленках и коробкой с отметкой Refurbishment и всё это по низкой цене.

В общем я не удержался и купил Microsoft Surface Pro специально для того, чтобы установить на него Linux и использовать в работе.

Продуктовая линейка Surface достаточно широкая и включает в себя планшеты, ноутбуки, интерактивные доски и не всегда бывает понятно какую именно модель имеет в виду продавец на Amazon — бывает что указано шестое поколение, как например в объявлении «Microsoft Surface Pro 4 (2736 x 1824) Tablet 6th Generation (Intel Core i5-6300U, 8GB Ram, 256GB SSD, Bluetooth, Dual Camera) Windows 10 Professional (Renewed)», но фактически продавец вводит в заблуждение упоминая шестое поколение — можно перепутать, думая что это Surface Pro 6, однако на самом деле это Surface Pro 4. Так что внимательность не повредит.

image
Продуктовая линейка Microsoft Surface

Почему именно линукс?


Я использую Windows больше 25 лет, но последние годы всё реже — нет необходимости использовать какие-то специальные программы, которые существуют только под Windows — всё плавно переезжает в облачные сервисы, которые зависят только от браузера.

Тем более, что моё увлечение умными домами способствует использованию командной строки в частности и линукс в целом. Некоторые действия сделать проще или быстрее если у тебя компьютер с Linux.

Про планшеты Surface Pro у меня были некоторые сомнения относительно того, как легко можно будет заменить систему с Windows на Linux, но как оказалось в дальнейшем эти сомнения были совершенно напрасны. Установка Ubuntu прошла без проблем, как на обычном ноутбуке. Именно на ноутбуке, а не планшете, хотя Surface Pro позиционируются производителем как планшет. На мой взгляд это всё же ноутбук, а не планшет — сенсорное управление для Windows и Linux на мой взгляд всё же не в приоритете.


Планшет Surface Pro после покупки работает на Windows

Обратите внимание — по умолчанию в меню запуска вынесен Autodesk SketchBook — про него я расскажу ниже.

Цифровое рисование с помощью Surface Pro


Помимо всех основных функций обычного ноутбука Surface Pro можно использовать как графический планшет (поэтому Autodesk SketchBook и находится в главном меню Windows по умолчанию). Экран Surface Pro при использовании стилуса (не обязательно фирменного, но совместимого) распознает степени нажатия, а это важно для цифрового рисования на экране.


Картинка Autodesk SketchBook из интернета, когда это приложение ещё было платным

При использовании Linux на планшете Surface Pro экран не потеряет своих свойств быть графическим планшетом и хотя Autodesk SketchBook для Linux не существует, есть Krita, бесплатный растровый графический редактор с открытым кодом, входящий в состав KDE. Krita удобна и позволяет создавать красивые рисунки, например, даже существует веб-комикс французского художника Давида Ревуа с открытым исходным кодом под названием Pepper&Carrot.

Забегая вперед скажу, что стилус работает и под Linux — степени давления распознаются.


Главная страница комиксов Pepper&Carrot, нарисованных исключительно в Krita на Kubuntu 18.04 LTS

От общих особенностей планшета Surface Pro перейдём к установке Linux.

Перед установкой Linux


Сразу после покупки планшет работает на англоязычной версии Windows 10 и перед установкой Linux создадим резервный диск Windows.

Для самой установки Linux обязательно понадобится USB хаб для подключения клавиатуры и мыши, потому что физический порт на устройстве всего один, а тачскрин во время установки Linux работать не будет.

Создание диска восстановления Windows 10



Создание диска восстановления на Surface Pro

Даже если нет в планах оставлять Windows на планшете Surface Pro и будете использовать только Linux всё равно лучше создать диск восстановления для того, чтобы можно было восстановить систему, например перед продажей устройства. Подробная инструкция на русском языке как это сделать есть на сайте Microsoft. Англоязычные названия пунктов меню можно посмотреть в другой языковой секции этой же самой инструкции на сайте Microsoft.


Процесс создания достаточно долгий и речь может идти о часах если писать на MicroSD 16 Гб

Surface UEFI


Для настройки загрузки с флешки полностью выключаем компьютер и заходим в BIOS, удерживая кнопку увеличения громкости и нажимая кнопку включения питания для того чтобы изменить порядок загрузочных устройств.


Surface UEFI

В разделе управления загрузкой (Boot configuration) пальцем перетаскиваем загрузку с флешки (USB Storage) на первое место.

Для дальнейших манипуляций уже нужен USB хаб. В моем случае хабом стал монитор с подключенными беспроводными клавиатурой и мышью, а также свободными USB портами для подключения загрузочной флешки.

Установка Linux


Перед выбором конкретного дистрибутива стоит знать, что обе камеры на моделях планшета, начиная с Surface Pro 4 и выше работать под Linux не будут, из-за того что камеры находятся на PCI шине вместо обычной USB шины, как у предыдущих моделей. А на Surface Pro 7 ещё не будет работать под Linux перо (стилус). Выбрать можно любой дистрибутив, основанный на Debian / Arch Linux / Fedora / Gentoo.

Мой выбор пал на Ubuntu, потому что, на мой взгляд, оболочка рабочего стола с его крупными кнопками больше подходит для сенсорного управления. Простая настройка дисплея высокого разрешения HiDPI только плюс этого дистрибутива.

После загрузки планшета с загрузочной флешки появляется меню вариантов загрузки и варианты загрузки можно выбирать при помощи экранной клавиатуры.


GNU GRUB на Surface Pro

После загрузки Ubuntu с флешки сенсорный экран не работает, но Wi-Fi функционирует.


Проба Ubuntu перед установкой

Расписывать шаги установки, наверное, особого смысла не имеет, потому что установка проходит также как на обычном компьютере. Windows решил не оставлять, а полностью стереть диск и установить только Ubuntu.

Сразу после завершения установки Ubuntu и входа в систему не будут работать:
  1. Тачскрин.
  2. Стилус.
  3. Камеры.

Восстанавливаем работоспособность сенсорного экрана и стилуса Surface Pro под Linux


Устанавливаем кастомное ядро


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

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

wget -qO - https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/keys/surface.asc     | sudo apt-key add -

После этого можно добавить сам репозиторий, выполнив:

echo "deb [arch=amd64] https://pkg.surfacelinux.com/debian release main" | sudo tee /etc/apt/sources.list.d/linux-surface.list

Затем обновите списки пакетов для обновлений:

sudo apt-get update


Скриншот терминала с командами добавления репозитория linux-surface

Установим ядро, но не самое последнее ядро surface, которое на март 2020 года было ?версии 5.5.10 — с этой версией ядра у меня ни перо, ни тачскрин, ни мультитач корректно не заработали. Разработчики рекомендуют установить ядро 4.19 (Long-Term Support до конца 2020 года):

sudo apt-get install linux-image-surface-lts linux-headers-surface-lts linux-libc-dev-surface-lts surface-ipts-firmware linux-surface-secureboot-mok libwacom-surface

Но если вы всё-таки хотите попробовать самое последнее ядро, то следует воспользоваться другими командами:

sudo apt-get install linux-headers-surface linux-image-surface linux-libc-dev-surface surface-ipts-firmware linux-surface-secureboot-mok libwacom-surface

Скриншот терминала с командами добавления нового ядра ??4.19 (LTS)

Дальше существует два варианта (если вы не меняли настройки безопасности Secure Boot):

  1. Если вы установили ядро Linux версии 5.5.10 на Surface Pro, то сразу после установки нового ядра перезагрузитесь и введите пароль «surface», который был указан при установке, как на скриншоте, выше. Это можно сделать выбирая пункты меню: Enroll MOK/Enroll the key(s) -> Yes / Password -> surface.

    Настройка Secure Boot после перезагрузки
  2. Если установили ядро 4.19.110, то планшет загрузится как обычно и в меню Enroll MOK вы не попадете .

Идея этой безопасной загрузки состоит в том, чтобы разрешить загрузку только доверенного программного обеспечения на компьютере и, таким образом, заблокировать потенциальные вирусы и руткиты, которые иначе не были бы обнаружены нашей операционной системой. Поскольку пользовательские ядра, такие как которое мы использовали, могут собираться и распространяться любым пользователем, они считаются не заслуживающими доверия вашим загрузчиком, и поэтому, если у вас включена защищенная загрузка, загрузка не будет разрешена.

Редактируем GRUB для задания загрузки другого ядра по умолчанию


После установки нового ядра surface надо обновить загрузчик операционной системы GNU GRUB, указав на это ядро. По умолчанию ядро ??устанавливается вместе с основным, предоставляемым дистрибутивом. Таким образом получается что появляется резервное ядро, которое можно использовать, если что-то пойдет не так.

Здесь возникает также два варианта в зависимости от того, какое ядро поставили:

  1. Ядро версии 5.5 — в загрузчике оно автоматически установится на первое место, делать ничего дополнительно не требуется.
  2. Ядро версии 4.19 (LTS). Чтобы загрузка по умолчанию проходила именно с этим ядром требуется выполнить дополнительные действия.

Действия, которые надо проделать, чтобы прописать в GRUB загрузку ядра surface по умолчанию:

  1. Сначала сделайте резервную копию /etc/default/grub. Если что-то пойдет не так, вы можете легко вернуться к хорошо известной копии:

    sudo cp /etc/default/grub /etc/default/grub.bak
  2. Затем отредактируйте файл, используя выбранный текстовый редактор (например, gedit для Ubuntu):

    sudo -H gedit /etc/default/grub
  3. Найдите строку, которая содержит GRUB_DEFAULT — это то, что надо отредактировать, чтобы установить значение по умолчанию. Для моего случая пишу:

    GRUB_DEFAULT="Advanced options for Ubuntu>Ubuntu, with Linux 4.19.110-surface-lts"
  4. Сохраните файл а, затем создайте обновленное меню GRUB командой:

    sudo update-grub

Используем Linux на Microsoft Surface Pro


После всех этих настроек можно пользоваться планшетом под Linux — все функции Microsoft Surface Pro, кроме камер, работают, но фотографировать ведь и на телефон можно?


Microsoft Surface Pro с установленной Ubuntu 19.10 (Eoan Ermine).

Автор: Михаил Шардин,
30 марта 2020 года