- Microsoft Surface Pro 3
- Contents
- Booting into the installer
- Disable Secure Boot
- Boot with Secure Boot
- Installation
- Extra steps
- Enabling Touchpad
- Tuning the Pen
- Virtual Keyboard
- Booting with Secure Boot Enabled
- Troubleshooting
- Invalid signature detected check secure boot policy in setup
- Keyboard Cover not working
- Pen/Touchscreen issues in Xournal
- Как подружить Surface Pro 3 и Linux
- Введение
- Подготовка Windows
- Установка Debian
- Допиливание GRUB
- Уютный Debian
- Послесловие
Microsoft Surface Pro 3
This article or section needs language, wiki syntax or style improvements. See Help:Style for reference.
This article or section does not follow the Laptop page guidelines.
This page aims to document all relevant information on getting Arch Linux working on the Microsoft Surface Pro 3 tablet.
Contents
Booting into the installer
To boot from USB, you will need to instruct the tablet to boot from USB or SD Card. Also, you may want to avoid disabling Secure Boot as this will cause each boot to display an ugly bright red background intentionally clashing with the «Surface» splash logo.
There are three types of boots in the Surface Pro 3 explained here:
- Normal mode
- Just leave the computer go. You can change it from «Alternate Boot order» in the UEFI Setup
- Boot into the UEFI Setup
- With the device powered off (or rebooting, but better play safe)
- Press & hold Volume up
- Press power button
- Wait until the surface logo appears
- Release Volume up
- You will be presented with the UEFI Setup Menu
- Boot into the USB/SD card
- Power off the device
- Press & hold Volume down
- Press power button
- Wait until the surface logo appears
- Release Volume down
Disable Secure Boot
Boot into the UEFI setup, and select Secure Boot Control > Disable. Now continue with the installation. See the Microsoft steps for more information.
Boot with Secure Boot
Installation
This article or section is a candidate for merging with UEFI#Secure Boot.
I have done the installation with systemd’s bootctl Systemd-boot (old Gummiboot). After completing the Installation guide, you should do two more things. Booting in Secure Boot will not work for the new installation, as the vmlinuz has not been registered within its loader.
The easiest way is to do all the setup is the following, just before rebooting:
- Exit from the chroot but do not umount anything
- Move /mnt/boot/EFI/boot/bootx64.efi to /mnt/boot/EFI/boot/loader.efi
- Copy /boot/EFI/boot/bootx64.efi and HashTool.efi to /mnt/boot/EFI/boot/
(If you are unable to find HashTool in /boot, try in /usr/run)
Here, we have enabled Preloader to boot our gummiboot loader, and if it detects that something has not been signed, it will boot the HashTool.efi to sign the vmlinuz-image binary.
The idea is, we take the systemd bootloader and make it the one that PreLoader will boot (the one in its same folder, named loader.efi). Then, we copy both the PreLoader (which is the archiso’s bootx64.efi) and the HashTool (already with that name).
This way, with Secure Boot enabled, you will be able to boot your kernel whenever you wish to, signed or not, repeating the hash storing procedure on the next boot.
Extra steps
Although in latest kernel you have basic support for the touchpad, the screen, etc. the cameras are not yet supported by the kernel. A github repo to track the support of the Surface Pro 3 in Archlinux was created: [1], where you can check for the status.
The easiest way for Arch Linux users is to use a Surface Pro 3 specific package available in the AUR linux-surfacepro3-git AUR . You can check there the support for the different modules available, or take the patch from upstreamGitHub.
Enabling Touchpad
Ref: GitHub In order to enable full functionality of the touchpad (e.g. two-finger scrolling, right click), you need to Install the xf86-input-synaptics package, have the kernel patch applied as well as add the following to /etc/X11/xorg.conf.d/10-multitouch.conf :
Tuning the Pen
The pen buttons might not work out of the box. Install the xf86-input-wacom package and comment the MatchIsTablet section in /usr/share/X11/xorg.conf.d/10-evdev.conf . Furthermore add 1B96:1B05 Pen in the MatchProduct line of N-Trig in /usr/share/X11/xorg.conf.d/50-wacom.conf . Note that the purple bluetooth button is recognized but able to be bound to an action. Ref:Reddit
Virtual Keyboard
Depending on the desktop environment you are using, you might want to use different virtual keyboard. onboard provides a reliable and comfortable experience. A guide for optical tweaking is provided here. If you are using GNOME, these two extension (1, 2) provide a better integration.
Booting with Secure Boot Enabled
This article or section is a candidate for merging with Secure Boot.
The recommended bootloader for UEFI with Secure Boot enabled is systemd-boot
To boot with Secure Boot, you will need the following packages: efibootmgr efitools
Copy /boot/EFI/systemd/systemd-bootx64.efi to /boot/EFI/systemd/loader.EFI . Copy /usr/lib/prebootloader/HashTool.efi and /usr/lib/prebootloader/PreLoader.efi to /boot/EFI/systemd/ . Create an NVRAM entry for PreLoader.efi:
Verify the entry was made and that it is first in the boot order:
Enrolling your kernel in the bootloader: Secure Boot Enroll HashTool.efi and vmlinuz-linux, and then reboot to system. You should now be able to boot with Secure Boot enabled.
Troubleshooting
Invalid signature detected check secure boot policy in setup
This happened to me after deleting the Secure Boot database and initializing it with Microsoft & CAs. I also had to do the recovery of the bitlocker partition, but I would follow these steps:
- After the reset, switch off and try to boot from the sd/usb. If you do not succeed and get the message many times:
- Leaving all TPM & SecureBoot enabled and SSD Only alternate system order
- Do another database reset
- Enroll the Microsoft and CAs again
- reboot into sd/usb with volume down
- It should work now
- Follow steps in the Secure Boot installation
- After the full installation of archlinux, when you have it working, do the BitLocker recovery
If after doing these steps does not still work. Flash the archiso image once more and try again,
Keyboard Cover not working
This can happen sometimes when you restart. The solution was to shutdown and reboot. (not restart)
Pen/Touchscreen issues in Xournal
When using the xf86-input-wacom package there is a bug in the last official release of xournal AUR (0.48.2) where it will incorrectly detect the Surface Pen as the touchscreen device. However it has been fixed in the latest Xournal source as per this bug. Installing the AUR package xournal-git AUR builds the latest source including this fix. Note that you will need to select ‘NTRG0001:01 1B96:1B05’ as the touchscreen device (Options > Pen and Touch).
Источник
Как подружить Surface Pro 3 и Linux
Наверно многие, кто пользовался ноутбуком, хоть раз думали о том, что несмотря на свою портативность, у ноутбуков эта характеристика оставляет желать лучшего — в одной руке не удержишь, в экран не потыкать, шрифты на низком разрешении вблизи режут глаза. Все это типично для большинства ноутбуков. С другой стороны, существуют планшеты, которые частично лишены этих недостатков, но взамен мы теряем клавиатуру, процессор обычно не позволяет ставить сторонние ОС, да и производительность так себе. Линейка Surface Pro, как мне казалось, может стать хорошим компромиссом в данном вопросе.
Сам по себе Surface Pro 3 (SP3) очень интересен. В нем исправлено много недостатков предыдущих поколений, таких, как продолжительность работы от батареи, размеры экрана и разрешение. А процессор Intel Core i3/i5/i7 практически полностью развязывает руки, давая возможность установить полноценный GNU/Linux. Не раздумывая, я начал искать пути его заполучить, и вскоре после начала продаж он оказался у меня.
В данной статье я бы хотел поделиться опытом установки Debian на SP3, а так же возникшими трудностями и их преодолением. Если вам интересно, что у меня из этого вышло — прошу под кат.
Введение
В довесок к самим SP3 и Type Cover 3, нам временно понадобится следующее:
- USB хаб
- USB клавиатура и мышь
- Ethernet/WLAN USB адаптер или телефон, который умеет раздавать (tethering) интернет по USB. Например, у меня с этим неплохо справился Nexus 5.
SP3, как и его предшественники, поставляется только с UEFI. Поэтому, даже на сегодняшний день, большинство инсталяторов Linux и прочие Live CD можно даже и не пытаться запускать, если в корне их образа отсутствует директория EFI.
Мой выбор пал на Debian, который, на данный момент, уже поддерживает установку в UEFI. Касательно версии, нам понадобится именно amd64 релиз, ввиду того, что девайс на борту имеет 64-х битный UEFI. Чтобы не тратить время на скачивание кучи CD/DVD образов, можно воспользоваться миниатюрной netinst, которая весит всего лишь
250 Мб, где все необходимое скачивается уже в процессе установки. В теории, можно было бы установить стабильную ветку Debian 7 Wheezy, но для себя я решил выбрать Testing вариант, в репозиториях которого доступны более свежие версии пакетов.
Вне зависимости от того, выбрали ли вы netinst или установку c образов, дальше нам все равно понадобится доступ в интернет. К сожалению, инсталятор Debian не распознает встроенный в SP3 беспроводной адаптер, поэтому следует раздобыть либо внешний Ethernet/WLAN USB адаптер, либо телефон, который умеет раздавать интернет по USB.
Все готово? Тогда приступим.
Подготовка Windows
Помимо пары основных системных разделов и раздела с установленной Windows, на SSD еще отводится примерно 5 Гб под Factory Recovery, который может легко оказаться абсолютно бесполезным, если что-то случится с другими системными разделами. Я настоятельно рекомендую “скопировать” его на флешку заранее. Необходима будет флешка минимум 8 Гб. В поиске Windows ищем Create a recovery drive.
Выбираем нашу флешку и вперед. Когда по окончанию копирования будет предложено удалить Recovery раздел — соглашайтесь. Впоследствии, с этой загрузочной флешки можно будет вернуть первоначальную разбивку SSD, включая установленную Windows и сам Recovery раздел.
Так как Windows мы удалять не собираемся, мы его немного потесним. По правому клику на (C:) разделе выбираем Shrink Volume.
В появившемся диалоге выставляем желаемый размер свободного места в мегабайтах.
Также нам нужно выключить Hibernate, иначе SP3 будет постоянно уходить в глубокий сон при выключении. Для этого открываем cmd.exe с правами администратора, и выполняем:
Наконец, выключаем SP3 и запускаем с зажатой кнопкой “+” громкости. Это позволит нам попасть в настойки UEFI, чтобы мы смогли отключить Secure Boot и дать возможность грузить ОС отличные от Windows. Выходим и соглашаемся сохранить изменения. Выключаем SP3 снова.
Установка Debian
Подключаем флешку с Debian и включаем SP3 с зажатой на этот раз кнопкой “-” громкости, которая активирует загрузку с USB носителя. Выбираем графический или текстовой тип инсталятора и подключаем сетевой адаптер или телефон к USB порту. Для тех, кто уже ставил Debian, процесс ничем не примечателен, за исключением некоторых моментов. Когда дело доходит до разбивки диска, выбираем Partitioning method: manual и делим выделенное место между корневым разделом “/” и разделом под swap. По привычке, я обычно еще создаю отдельный /boot раздел.
Так как для UEFI используется GPT разбивка, GRUB не будет устанавливаться в MBR. Вместо этого в разделе EFI будет добавлен новый файл EFI/debian/grubx64.efi . Принимаем изменения разбивки и продолжаем установку обычным ходом. По завершению SP3 сам перезагрузится и мы снова попадем в Windows.
Допиливание GRUB
Открываем поиск в Windows, вбиваем recovery и в результатах поиска выбираем Recovery options. В открывшемся окне находим Advanced startup и выбираем Restart now.
Мы попадаем в синее меню загрузки, где нужно выбрать сначала Use a device, и затем debian.
После этого нам явится GRUB, который на таком разрешении будет выглядит катастрофически.
В таком состоянии при попытке выбрать Windows, все будет виснуть. Чтобы это исправить, нам понадобится понизить разрешение меню. Загружаемся в Debian и редактируем /etc/default/grub , где нужно раскомментировать строчку:
Заодно, чтоб еще и разрешение консоли загрузки ядра понизить, дописываем ниже:
Далее обновляем GRUB:
Следующий шаг опционален и позволяет отказаться от предварительной загрузки Windows каждый раз. Вместо этого при включении SP3 будет попадать сразу в GRUB. Для этого идем в консоль и проверяем порядок загрузки. Затем выставляем номер соотвутсвующий debian перед номером Windows Boot Manager, таким образом поменяв 0002 и 0001 местами.
Уютный Debian
Итак, оценим ситуацию. Пока что у нас не работают:
- WiFi
- Bluetooth
- Type Cover 3 с тачпадом
- Перо
- Тачскрин
Что ж, будем исправлять.
WiFi и Bluetooth
За оба отвечает Soc от Marvell. Есть два варианта как получить необходимые драйвера. Внимание: на момент написания статьи в репозитории доступен устаревший пакет драйверов версии 0.43, и с ним не заводится Bluetooth. Поэтому советую воспользоваться вторым вариантом.
В файле /etc/apt/sources.list находим первую строчку с адресом основного репозитория и к секции main дописываем non-free, чтоб получилось примерно следующее:
Затем открываем консоль и выполняем:
Открываем консоль и выполняем:
Если все прошло успешно, все должно ожить после перезагрузки. Внимание: для стабильной работы WiFi необходимо ядро 3.16, инструкции сборки которого приведены ниже.
Type Cover 3
Проблема с Type Cover 3 требует пересборки ядра. Дело в том, что неверно определяется тип устройства у Type Cover 3 и загружаемый драйвер не подходит.
Параметр idVendor=045e соответствует Microsoft. За ним следует idProduct, и нас интересует тот, который 07dc. Как видно, загружается hid-multitouch драйвер. Хотя тачпад на клавиатуре и правда способен на мультитач жесты, в данный момент такой драйвер приводит к неработоспособности всей клавиатуры. Поскольку в уже запущенной системе сложно как-либо повлиять на ситуацию, придется патчить ядро.
Нам нужно ядро версии не ниже 3.13, в которую кстати уже добавлена поддержка тачскрина и пера. Но я настоятельно советую взять ядро 3.16, чтоб WiFi не отваливался каждые 10 минут. На данный момент 3.16 доступно только из experimental репозитория, которое может переехать в testing в любое время. Уточните, доступна ли уже 3.16 в testing, иначе берите из experimental.
Сборка ядра съест 10 Гб, поэтому рекомендую пощадить SSD и воспользоваться виртуальной машиной на десктопе. По окончанию нужно будет скопировать из виртуальной машины полученные два .deb пакета и установить их на SP3.
Перед всей процедурой проапгрейдим систему и потом перезапускаемся.
После чего скачиваем исходники текущего ядра и переходим в директорию с исходниками.
Подлючаем experimental репозиторий, дописав эту строчки в конец /etc/apt/sources.list файла:
Обновляем информацию о пакетах, устанавливаем ядро и его исходники. Затем перезагружаемся в новое ядро.
Распаковываем исходники и переходим в директорию с ними:
Теперь установим все необходимое для сборки ядра.
Создаем файл typecover3.patch со следующим содержимым:
Теперь сконфигурируем ядро. За основу возьмем конфигурацию запущенного ядра.
Загружаем конфигурацию через пункт в меню Load an Alternate Configuration File или просто < Load > и соглашаемся на предложенный .config.
Дальше жмем < Exit > и сохраняем конфигурацию. Приступим к самому главному, к сборке. Для справки, процесс на самом SP3 у меня занял около часа.
Здесь значение параметра “-typecover3” можно заменить на любое другое, оно особой нагрузки не несет. По нему, например, можно в последствии определить, с каким ядром система загрузилась.
Итак, устанавливаем оба .deb пакета
И, наконец, последний штрих. Чтобы завести тачпад, создадим файл /etc/X11/xorg.conf со следующим содержимым:
Перезагружаемся в последний раз и наслаждаемся рабочей системой.
Послесловие
Если сравнить с Windows, энергопотребление в Linux несколько выше, заряда батареи хватает примерно на 6-7 часов, в то время как в Windows ее хватает часов на 8-9. Так что результат очень даже неплохой.
Несмотря на то, что система установлена и работает как надо, остаются еще некоторые проблемы. Если говорить точнее, то не работают кнопки регуляции громкости, кнопки на пере и датчик положения в пространстве.
Источник