GPD Pocket

提供: ArchWiki
2018年4月10日 (火) 13:38時点におけるNeko (トーク | 投稿記録)による版 (BIOS項目の追加)
ナビゲーションに移動 検索に移動

関連記事

こちらは GPD Pocket を Arch Linux で動作させるガイドです。

スペック

  • ディスプレイ: 7インチ IPS 1920x1200
  • CPU: Intel Atom X7-Z8750
  • メモリ: 8GB LPDDR3-1600
  • ストレージ: 128GB eMMC SSD (交換不可)
  • バッテリー: 7000mAh
  • WiFi: Broadcom 4356 802.11ac
  • Bluetooth: Broadcom 2045
  • オーディオ: Realtek ALC5645
  • 端子: 1 x USB 3 type A, 1 x MicroHDMI, 1 x USB 3 type C 1 x 3.5mm ヘッドホンジャック

BIOS

GPD社が配布するUbuntu起動用BIOSではなく、Windows起動用のBIOSでもArch Linuxは正常に動作します。

Ubuntu起動用BIOSでは、Intel C-stateや、TPM等のチップセットの設定が表示されるようになりますが、最新のWindows起動用BIOSにあてられている電池残量が10%以下でも起動できる修正等が当てられていません。

インストール

自動

こちら から既にパッチが適用された ISO をダウンロードすることができます。

手動(通常のArch ISOからインストール)

デフォルト設定では WiFi が機能しないため、最初に WiFi の設定が必要です (#WiFi を参照)。もしくは USB Ethernet/WiFi ドングルを使ってください。

設定

自動

インストール時に /etc/pacman.conf に以下を追加してカスタムリポジトリを追加してください:

/etc/pacman.conf
...
[gpd-pocket-arch]
SigLevel = Never
Server = https://github.com/joshskidmore/gpd-pocket-arch/raw/master
...

以下のコマンドで GPD Pocket で必要な設定をインストールしてください:

# pacman -Syu gpd-pocket-support

手動

WiFi

こちら から brcmfmac4356-pcie.txt をダウンロードして /usr/lib/firmware/brcm/ にコピーしてください。そして以下のコマンドを実行:

# modprobe -r brcmfmac
# modprobe brcmfmac
ノート: 起動時に以下のエラーが発生する場合:
brcmfmac: brcmf_chip_recognition: chip backplane type 15 is not supported
brcmfmac: brcmf_pcie_probe: failed 14e4:43ec
broadcom-wl-dkms をインストールしてみてください。

バックライトと初期 KMS

初期 KMS でバックライトの制御を有効にするには /etc/mkinitcpio.conf を以下のように変更してください:

/etc/mkinitcpio.conf
...
MODULES=(pwm_lpss pwm_lpss_platform i915)
...

Wayland

基本設定

/etc/udev/rules.d/99-goodix-touch.rules を作成してタッチスクリーンを回転:

/etc/udev/rules.d/99-goodix-touch.rules
ACTION=="add|change", KERNEL=="event[0-9]*", ATTRS{name}=="Goodix Capacitive TouchScreen", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"
右クリックのエミュレーション

マウススクロールのエミュレーションの設定は Xorg のみで機能します。Wayland ではそのような設定はコンポジタが担うことになっています。残念ながら一部のコンポジタ (GNOME Wayland など) では正しく設定できません。しかしながら、libinput で同じような設定が可能です。コンポジタは通常 /etc/profile.d をロードするため、LD_PRELOAD を使って libinput で設定を適用できます。

設定例が こちら に存在します。

Xorg

基本設定

/etc/X11/xorg.conf.d/30-monitor.conf を作成してモニターを回転:

ノート: Identifier は使用するディスプレイドライバーによって異なることがあります (DSI-1 (modesetting) か DSI1 (xf86-video-intel) になります)。
/etc/X11/xorg.conf.d/30-monitor.conf
Section "Monitor"
  Identifier "DSI-1"
  Option     "Rotate" "right"
EndSection
Gnome と GDM

~/.config/monitors.xml を編集してください (存在しない場合は作成してください):

~/.config/monitors.xml
<monitors version="2">
  <configuration>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <scale>2</scale>
      <primary>yes</primary>
      <transform>
        <rotation>right</rotation>
        <flipped>no</flipped>
      </transform>
      <monitor>
        <monitorspec>
          <connector>DSI-1</connector>
          <vendor>unknown</vendor>
          <product>unknown</product>
          <serial>unknown</serial>
        </monitorspec>
        <mode>
          <width>1200</width>
          <height>1920</height>
          <rate>60.384620666503906</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>
</monitors>

上記の設定で向き (<rotation>right</rotation>) とスケールファクタ (<scale>2</scale>) が設定されます。スケールについては HiDPI#GNOME を参照してください。

GDM を使用する場合、上記の ~/.config/monitors.xml/var/lib/gdm/.config/monitors.xml にコピーすることで向きが正しく設定されます。

KDE

System Settings > Display and Monitor から Orientation90° Clockwise に変更して、Scale Display を読みやすいサイズに変えてください。

右クリックのエミュレーション

/etc/X11/xorg.conf.d/50-trackpoint.conf を作成して右クリックを押しながらスクロールできるようにします:

/etc/X11/xorg.conf.d/50-trackpoint.conf
Section "InputClass"
  Identifier      "GPD trackpoint"
  MatchProduct    "SINO WEALTH Gaming Keyboard"
  MatchIsPointer  "on"
  Driver          "libinput"
EndSection
SDDM

/usr/share/sddm/scripts/Xsetup に以下の行を追加して DPI を変更してください:

/usr/share/sddm/scripts/Xsetup
# Set DPI  
xrandr --dpi 168"  
タッチスクリーンのジェスチャ

touchegg をインストールして、/usr/share/touchegg/touchegg.conf の以下の行を編集してください:

/usr/share/touchegg/touchegg.conf
...
<action type="SCROLL">SPEED=7:INVERTED=true</action>
...

/etc/X11/xinit/xinitrc.d/01_touchegg を作成:

/etc/X11/xinit/xinitrc.d/01_touchegg
...
#!/bin/bash

# starts touchegg application
PREFIX="$HOME/.config/touchegg/.run"
mkdir -p "$PREFIX"
PIDFILE="$PREFIX/touchegg.$USER$DISPLAY.pid"
LOCK="$PREFIX/touchegg.$USER$DISPLAY.lock"

start_touchegg() {
        (
                flock -n 9 || exit 1
                touchegg 2>/dev/null >/dev/null &
                PID=$!
                echo "$!" >"$PIDFILE"
                wait $PID
        ) 9>"$LOCK"
}

start_touchegg &

/etc/X11/xinit/xinitrc.d/01_touchegg のパーミッションを設定:

# chmod 0755 /etc/X11/xinit/xinitrc.d/01_touchegg

ファン

最新カーネルでは特に設定しなくてもファンは問題なく動作します。

ノート: ファンが上手く動かない場合、以下のコマンドを試してみてください:
# modprobe -r gpd-pocket-fan
# modprobe gpd-pocket-fan temp_limits=40000,40001,40002

上記のコマンドを実行すると40度でファンが回転し始めるようになります。クリック音が聞こえる場合、デバイスの電源を切って、バックパネルを取り外してファンを数回そっと押してください。それからパネルを戻してからデバイスの電源を入れて、上記のコマンドをもう一度実行してください。一部のデバイスではファンが正しく回転しないという問題が発生するようです。

ファンが正しく機能するようになったら、再起動するか以下のコマンドを実行して温度のリミットをデフォルト設定に戻してください:

# modprobe -r gpd-pocket-fan
# modprobe gpd-pocket-fan

省電力設定

TLP をインストールして、/etc/default/tlp の以下の行を編集してください:

/etc/default/tlp
...
# improve disk IO
DISK_DEVICES="mmcblk0"
DISK_IOSCHED="deadline"
...
# disable wifi power saving mode (wifi speed drops MASSIVELY!)
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=off
...

PulseAudio

/etc/pulse/default.pa に以下の行を追加:

/etc/pulse/default.pa
set-card-profile alsa_card.platform-cht-bsw-rt5645 HiFi
set-default-sink alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645_0__sink
set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645_0__sink [Out] Speaker

/etc/pulse/daemon.conf を編集して realtime_scheduleing をオフにしてください: realtime-scheduling = no

ノート: pactl やデスクトップの設定を使って出力を手動で設定する必要がある場合があります。

既知の問題

USB-C の電源の状態

USB-C の電源状態はカーネル 4.14-15 では動作しません。Hans のカーネルには修正するパッチが含まれています。

systemd-gpt-auto-generator failed to dissect

起動時に以下のエラーメッセージが表示される場合 [1]:

systemd-gpt-auto-generator[199]: Failed to dissect: Input/output error

ブートローダーのブートパラメータに以下を追加してください:

systemd.gpt_auto=0

参照