- Linux on windows surface
- Linux on windows surface
- [WIP] Secure Boot and Linux for Surface RT
- Breadcrumb
- ShapeShifter499
- Установка Ubuntu на Microsoft Surface Pro
- Почему именно линукс?
- Цифровое рисование с помощью Surface Pro
- Перед установкой Linux
- Создание диска восстановления Windows 10
- Surface UEFI
- Установка Linux
- Восстанавливаем работоспособность сенсорного экрана и стилуса Surface Pro под Linux
- Устанавливаем кастомное ядро
- Редактируем GRUB для задания загрузки другого ядра по умолчанию
- Используем Linux на Microsoft Surface Pro
Linux on windows surface
Linux running on the Microsoft Surface devices. Follow the instructions below to install the latest kernel.
- Surface Book
- Surface Book 2
- Surface 3
- Surface Go
- Surface Go 2
- Surface Laptop
- Surface Laptop 2
- Surface Laptop 3
- Surface Laptop Go
- Surface Pro 3
- Surface Pro 4
- Surface Pro 2017
- Surface Pro 6
- Surface Pro 7
- Surface Pro 7+
- Surface Studio
Features / What’s Working
See the feature matrix for more information about each device.
- For the most part, things are tested on a Surface Book 2. While most things are reportedly fully working on other devices, your mileage may vary. Please look at the issues list for possible exceptions.
Installation and Setup
We provide package repositories for the patched kernel and other utilities. Please refer to the detailed installation and setup guide. There, you may also find device-specific caveats.
If you want to compile the kernel yourself (e.g. if your distribution is not supported), please have a look at the wiki.
- If you are getting stuck at boot when loading the ramdisk, you need to install the Processor Microcode Firmware for Intel CPUs (usually found under Additional Drivers in Software and Updates).
- Using TLP can cause slowdowns, laggy performance, and occasional hangs if not configured properly! You have been warned.
- If you want to use hibernate instead of suspend, you need to create a swap partition or file, please follow your distribution’s instructions (or here).
If you have questions or need support, please use our Gitter Community! For development related questions and discussions, please consider joining our IRC channel on freenode ( freenode/##linux-surface ) or the equivalent Matrix bridge.
Linux on windows surface
Linux running on the Microsoft Surface devices . Follow the instructions below to install the latest kernel and config files.
Just a heads up to those that are interested. I had to take a break from this project, but there are big things planned and this project will be active again very soon!!
- Surface Book
- Surface Book 2
- Surface Go
- Surface Laptop
- Surface Laptop 2
- Surface Pro 3
- Surface Pro 4
- Surface Pro 2017
- Surface Pro 6
- Surface Studio
- Keyboard (and backlight)
- Touchpad
- 2D/3D Acceleration
- Touchscreen
- Pen
- WiFi
- Bluetooth
- Speakers
- Power Button
- Volume Buttons
- SD Card Reader
- Cameras (partial support, disabled for now)
- Hibernate
- Sensors (accelerometer, gyroscope, ambient light sensor)
- Battery Readings
- Docking/Undocking Tablet and Keyboard
- Surface Docks
- DisplayPort
- USB-C (including for HDMI Out)
- Dedicated Nvidia GPU (Surface Book 2)
What’s NOT Working
- Dedicated Nvidia GPU (if you have a performance base on a Surface Book 1, otherwise onboard works fine)
- Cameras (not fully supported yet)
- Connected Standby is not supported yet
- For the most part, things are tested on a Surface Book. While most things are reportedly fully working on other devices, your mileage may vary. Please look at the issues list for possible exceptions.
Download Pre-built Kernel and Headers
The setup.sh script in the below Instructions will handle downloading these for you. Otherwise, you may still download them directly (not recommended as you will want to run the setup.sh script).
Downloads for ubuntu based distros (other distros will need to compile from source using the included patches):
You will need to download the image, headers and libc-dev deb files for the version you want to install.
- (Prep) Install Dependencies:
- Clone the linux-surface repo:
- Change directory to linux-surface repo:
- Run setup script:
- Reboot on installed kernel.
The setup script will handle installing the latest kernel for you. You can also choose to download any version you want and install yourself: Install the headers, kernel and libc-dev (make sure you cd to your download location first):
Compiling the Kernel from Source
For Debian-Based Systems
If you don’t want to use the pre-built kernel and headers, you can compile the kernel yourself following these steps:
- (Prep) Install the required packages for compiling the kernel:
- Clone the mainline stable kernel repo:
- Go into the linux-stable directory:
- Checkout the version of the kernel you wish to target (replacing with your target version):
- Apply the kernel patches from the linux-surface repo (this one, and assuming you cloned it to
/linux-surface):
- Use config for kernel series (may need to manually change for your distro):
- Compile the kernel and headers (for ubuntu, refer to the build guide for your distro):
- Install the headers, kernel and libc-dev:
For Arch-Based Systems
Have a look at this repository.
Signing the kernel for Secure Boot
Please consult the SIGNING.md.
- If you are getting stuck at boot when loading the ramdisk, you need to install the Processor Microcode Firmware for Intel CPUs (usually found under Additional Drivers in Software and Updates).
- Do not install TLP! It can cause slowdowns, laggy performance, and occasional hangs! You have been warned.
- If you chose to use hibernate over suspend, please follow the instructions here.
If you have an issue with the kernel, please feel free to create on issue here to track it. If you have questions or need support, please use our Gitter Community!
[WIP] Secure Boot and Linux for Surface RT
Breadcrumb
ShapeShifter499
Senior Member
We need some serious help and organization. This thread will be dedicated to getting Linux on these Surface RT tablets. We already have the secure boot unlock so why don’t we have a full Linux install? I believe it’s because all the information is strewn about the internet with incomplete information and broken links. So please keep this thread topic only on the topic of secure boot unlock and Linux booting on Surface RT.
Ok so about the unlock, for those who are asking you can get it here, check the end of the post. To run the secure boot unlock: Move the SecureBoot zip to the desktop, unpack it, and run the script InstallPolicy.cmd as an administrator. (right click and «run as administrator»). In my case it was not working properly because I was trying to run it off a removable usb thumb drive, you should run it from the desktop. Your tablet should reboot then you should get the «secure boot debug policy applicator» install menu with a bunch of warning text. If your RT device has a removable keyboard then please use the volume keys as the «arrow keys» to select accept and confirm it by taping the «windows key» below the screen, I had to do that for my Surface RT. It now should reboot back to windows and at this point you’ll want to open a CMD in administrator mode (search for CMD, right click and «run as administrator») and run the command as mentioned in the included readme file.
Now reboot one last time and your good.
So now what? How do you boot? You can boot anything now by going to settings in the side bar menu, clicking «change PC settings», navigating to «general» settings, and at the bottom of that you should see an «advanced startup». Selecting «restart now» underneath «advanced startup» should bring you to a menu that will allow you to select a USB drive to boot off of. Included at the bottom is also a grub bootloader that’s been created for these RT devices and a couple of other possibly related zips.
WE NEED PEOPLE WORKING ON GETTING THE KERNEL TO BOOT! SHARE THIS TO ANYONE YOU KNOW WHO COULD HELP! I was trying to use the source for a related (but not totally the same) hardware known as the «Cardhu Development Board» from Nvidia. The source code for that can be found here, and their own released version of Ubuntu Linux for Cardhu can be found here. I couldn’t get the compiled kernel from source to boot but maybe some drivers can be had from that repository.
I DID NOT CREATE ANY OF THESE HACKS, I’m just more a hobbyist learning computers and programming who also loves Linux. Credit seems to go to users @Wack0Distractor, @black_blob, and the folks at ROL for the original hacks. Credit goes to @ [email protected] @f for recovering the files, his original post is here, seems ROL had a bit of a issue and a lot was lost but their IRC is still up.
Установка Ubuntu на Microsoft Surface Pro
Планшеты из линейки 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. Так что внимательность не повредит.
Продуктовая линейка 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 и входа в систему не будут работать:
- Тачскрин.
- Стилус.
- Камеры.
Восстанавливаем работоспособность сенсорного экрана и стилуса Surface Pro под Linux
Устанавливаем кастомное ядро
Для восстановления работоспособности тачпада и пера воспользуемся кастомным ядром для соответствующего дистрибутива. Команды для Ubuntu приведены ниже.
Перед добавлением репозитория вы должны импортировать ключи, которые разработчики используют для подписи пакетов.
После этого можно добавить сам репозиторий, выполнив:
Затем обновите списки пакетов для обновлений:
Скриншот терминала с командами добавления репозитория linux-surface
Установим ядро, но не самое последнее ядро surface , которое на март 2020 года было версии 5.5.10 — с этой версией ядра у меня ни перо, ни тачскрин, ни мультитач корректно не заработали. Разработчики рекомендуют установить ядро 4.19 (Long-Term Support до конца 2020 года):
Но если вы всё-таки хотите попробовать самое последнее ядро, то следует воспользоваться другими командами:
Скриншот терминала с командами добавления нового ядра 4.19 (LTS)
Дальше существует два варианта (если вы не меняли настройки безопасности Secure Boot):
- Если вы установили ядро Linux версии 5.5.10 на Surface Pro, то сразу после установки нового ядра перезагрузитесь и введите пароль « surface », который был указан при установке, как на скриншоте, выше. Это можно сделать выбирая пункты меню: Enroll MOK/Enroll the key(s) -> Yes / Password -> surface.
Настройка Secure Boot после перезагрузки - Если установили ядро 4.19.110, то планшет загрузится как обычно и в меню Enroll MOK вы не попадете .
Идея этой безопасной загрузки состоит в том, чтобы разрешить загрузку только доверенного программного обеспечения на компьютере и, таким образом, заблокировать потенциальные вирусы и руткиты, которые иначе не были бы обнаружены нашей операционной системой. Поскольку пользовательские ядра, такие как которое мы использовали, могут собираться и распространяться любым пользователем, они считаются не заслуживающими доверия вашим загрузчиком, и поэтому, если у вас включена защищенная загрузка, загрузка не будет разрешена.
Редактируем GRUB для задания загрузки другого ядра по умолчанию
После установки нового ядра surface надо обновить загрузчик операционной системы GNU GRUB, указав на это ядро. По умолчанию ядро устанавливается вместе с основным, предоставляемым дистрибутивом. Таким образом получается что появляется резервное ядро, которое можно использовать, если что-то пойдет не так.
Здесь возникает также два варианта в зависимости от того, какое ядро поставили:
- Ядро версии 5.5 — в загрузчике оно автоматически установится на первое место, делать ничего дополнительно не требуется.
- Ядро версии 4.19 (LTS). Чтобы загрузка по умолчанию проходила именно с этим ядром требуется выполнить дополнительные действия.
Действия, которые надо проделать, чтобы прописать в GRUB загрузку ядра surface по умолчанию:
- Сначала сделайте резервную копию /etc/default/grub. Если что-то пойдет не так, вы можете легко вернуться к хорошо известной копии:
Затем отредактируйте файл, используя выбранный текстовый редактор (например, gedit для Ubuntu):
Найдите строку, которая содержит GRUB_DEFAULT — это то, что надо отредактировать, чтобы установить значение по умолчанию. Для моего случая пишу:
Сохраните файл а, затем создайте обновленное меню GRUB командой:
Используем Linux на Microsoft Surface Pro
После всех этих настроек можно пользоваться планшетом под Linux — все функции Microsoft Surface Pro, кроме камер, работают, но фотографировать ведь и на телефон можно?
Microsoft Surface Pro с установленной Ubuntu 19.10 (Eoan Ermine).
Автор: Михаил Шардин,
30 марта 2020 года
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.