LoginSignup
1
0

More than 1 year has passed since last update.

Surface Pro 8 with Linux (Fedora 36)

Last updated at Posted at 2022-10-05

きっかけ

 以前はMacbook Proの15インチとiPad Proの12.9インチを使っていましたが、電池持ちが良くないため充電器コミコミで2kg強になって買い替えを検討、そこでSurface Pro 8を見つけ家電量販店で試しに使ってみて帰りのハードオフにて同じ機種があったため購入。本体が18万強・ペン・キーボードはセットで新品3万弱で計21万だったが公開はしていない。
結構苦労したので書き残しておこうと思う。

なぜFedoraを入れたのか

 単純にWindowsが使いにくかったから。元々Linux (Debian系)を使っていたのもあるが、あまりGUIメインよりCUIでポチポチ打つほうがやりやすかったのでWindowsでは耐えられなかった。あと試しにサブで使っていたノートパソコンにFedoraを入れてみたら手動でドライバを入れなくても完動して感動したから、ダジャレじゃないです。

スペック

image.png

SSDを256GB -> 1TBに増設している。

動作状況

カメラ以外は基本的に動作している。
Slim Pen 2に関してはまだドライバがないためマウス扱いになるが使えないことはない。

使用モジュール

linux-surface(Surfaceに最適化されたカーネル、大体がこれで動作する)
ithc-linux(Surface Pro 8と7+でタッチパネルを動作させるために必要な前提モジュール、これのみだとシングルジェスチャのみ動作する)
itpsd (fork)(linux-surfaceに入っているiptsdのフォーク、こちらを使うことでマルチジェスチャが動作した)

前提条件

Fedora 36をインストール後インターネットに接続してアップデートを済ませてるものとする。

1. インストール(カーネル)

こちらを参考にカーネルをインストールする

リポジトリ追加

add repository
sudo dnf config-manager \
    --add-repo=https://pkg.surfacelinux.com/fedora/linux-surface.repo

各種インストール

install more
sudo dnf install --allowerasing kernel-surface iptsd libwacom-surface

自動起動有効

enable automatically
sudo systemctl enable iptsd

セキュアブートを有効(未確認)

当方はこちらを入れてセキュアブートを有効にしたが、動作しなかった。

install secure boot
sudo systemctl enable iptsd

ファイル作成

当方はVimを使った。

/etc/systemd/system/default-kernel.path
[Unit]
Description=Fedora default kernel updater

[Path]
PathChanged=/boot

[Install]
WantedBy=default.target
/etc/systemd/system/default-kernel.service
[Unit]
Description=Fedora default kernel updater

[Service]
Type=oneshot
ExecStart=/bin/sh -c "grubby --set-default /boot/vmlinuz*surface*"

自動起動有効(セキュアブート)

enable automatically with secure boot
sudo systemctl enable default-kernel.path

次回時Surfaceカーネルを自動読み込み

enable automaticcaly select surface kernel
sudo grubby --set-default /boot/vmlinuz*surface*

再起動

普通に再起動

2.タッチパネル関係をインストール

再起動すると諸々が使えるようになってると思う。このままでも常用できなことはないが、個人的にタッチパネルが使えないのは辛い。
そこで色々こねくり回した結果、必要なモジュールを個別でソースコードからビルドすることで使えるようになった。

ithc-linux

こちらからソースコードをダウンロード(クローン)後、以下のコマンドを順番に入力する。

事前にdkmsとここからFedora用のdevelと書いたものをインストールしておく。

install ithc-linux
make && sudo make install
sudo modprobe ithc

当方はここで指定のディレクトリが存在しないようでつまづいた。
そのため指定のディレクトリにソース一式を移したあと、もう一度同じコマンドを実行し直したらうまくいった。

その後、dmesgを実行してithc関連でエラーが出てないか確認する。
うまくいけばシングルタッチが動作するようになるが、ここで

Blocked an interrupt request due to source-id verification failure

と出ていたらGRUB2の設定に

GRUB_CMDLINE_LINUX_DEFAULT="loglevel=3 quiet intel_iommu=off intremap=nosid"

書き込んでから

grub2-mkconfig -o /etc/default/grub

実行後再起動する。

iptsd

事前にmesonとninjaが入っていなければインストールしておく
ここからソースコードをダウンロード。

その後ビルドする。

meson build --wrap-mode=forcefallback --buildtype=debugoptimized -Dmarch=native
ninja -C build
sudo build/src/daemon/iptsd

g++関連でエラーが出た場合

sudo dnf install g++

インストール後再試行すればうまくいくはず。

ビルド後、インストールする。

sudo ninja -C build install
sudo systemctl daemon-reload
sudo systemctl disable iptsd
sudo systemctl start iptsd

すべてうまくいけばマルチタッチができるようになっているはずだ。
GNOMEはジェスチャー動作もするようになっているため、直感的に操作できて使いやすい。

最後に

至らぬ点やおかしな表記があれば是非コメントまで。
念願のLinux生活だやったー!

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0