GPD Pocket (简体中文) - ArchWiki

# GPD Pocket (简体中文)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态：本文是 GPD_Pocket 的翻译。上次翻译日期：2020-3-5。如果英文版本有所更改，则您可以帮助同步翻译。

本文是关于GPD Pocket的说明。

## 参数

- 显示屏: 7英寸IPS 1920x1200
- CPU: Intel Atom X7-Z8750
- RAM: 8GB LPDDR3-1600
- 存储: 128GB eMMC SSD（不可更换）
- 电池: 7000mAh
- WiFi: Broadcom 4356 802.11ac
- 蓝牙: Broadcom 2045
- 音频: Realtek ALC5645
- 接口: 1 x USB 3 type A, 1 x MicroHDMI, 1 x USB 3 type C, 1 x 3.5mm 耳机插孔

## 安装

### 自动

可以从这里下载预先打好补丁的ISO映像。

### 手动

由于WiFi在默认配置下无法工作，需要首先解决WiFi问题(见#WiFi)，或使用受支持的USB外置以太网/WiFi网卡。

## 配置

### 自动

安装期间请将以下内容加入/etc/pacman.conf：

    /etc/pacman.conf

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

运行以下命令，安装GPD Pocket正常运行Arch所需要的更改：

`# pacman -Syu gpd-pocket-support`

由于alsa-lib的补丁是可选依赖，必须手动安装它才能让音频工作：

`# pacman -S gpd-pocket-alsa-lib`

### 手动

#### WiFi

安装软件包gpd-pocket-support-bcm4356-gitAUR并重新加载WiFi内核模块:

    # modprobe -r brcmfmac
    # modprobe brcmfmac

#### 背光与KMS

修改`/etc/mkinitcpio.conf`如下，以通过KMS早启动来启用背光控制：

    /etc/mkinitcpio.conf

    ...
    MODULES=(pwm_lpss pwm_lpss_platform i915)
    ...

#### Wayland

The factual accuracy of this article or section is disputed.

Reason: Wayland和Xorg节都提到旋转触摸屏，但似乎Wayland节只提到了旋转触控输入，Xorg节只提到了旋转图形界面显示，故需要进一步核实，看是否两项操作都需要进行，不论图形后端为何。 (Discuss in Talk:GPD Pocket (简体中文)#)

##### 基本配置

创建`/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中可以通过标准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>`）以及缩放因子2（`<scale>2</scale>`）。关于非整数倍缩放，见HiDPI (简体中文)#GNOME。

对于GDM，将以上的`~/.config/monitors.xml`文件复制到`/var/lib/gdm/.config/monitors.xml`以设置正确的旋转方向。

##### KDE

在系统设置 > 显示和监控中，将方向改为90°顺时针，并调整缩放显示至合适尺寸。

##### 右键模拟滚动

创建`/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"
      Option          "MiddleEmulation" "1"
      Option          "ScrollButton" "3"
      Option          "ScrollMethod" "button"
    EndSection

##### SDDM

为了改变DPI使文字可读，将以下行加入`/usr/share/sddm/scripts/Xsetup`：

    /usr/share/sddm/scripts/Xsetup

    # Set DPI
    xrandr --dpi 168"

##### 触摸屏手势

安装toucheggAUR，然后编辑`/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

##### 利用Pocket 2上的“半/全”键

出厂状态下`半/全`被设定为发送```符号及按键码49，导致其与原本的``/~`键形成重复。为了把它映射到更有用的功能，请前往GPD2 Firmware然后下载"GPD Pocket 2 Keyboard Firmware (Japan)"（中国大陆地区下载可能需使用代理工具）。此固件必须在Windows 10操作系统（设备原装的）下刷入。由于更新期间键盘和鼠标无法使用，建议使用USB鼠标。

更新完成后`半/全`会发送按键码49及```符号，而``/~`键会发送按键码132。创建`~/.Xmodmap`文件以进行修正：

    ~/.Xmodmap

    keycode  132 = grave asciitilde
    keycode  49  = XF86Launch1 NoSymbol

现在进行测试：

    $ xmodmap ~/.Xmodmap

更多信息请参阅Xmodmap (简体中文)

#### 风扇

使用最新内核时风扇应当直接可以工作。

注意： 如果你的风扇有问题，未能按期望的方式运转，请尝试以下方法：

    # modprobe -r gpd-pocket-fan
    # modprobe gpd-pocket-fan temp_limits=40000,40001,40002

当以上操作完成之后——应当能够在40℃时听到风扇起转，如果听到了咔哒声——关闭设备电源，卸下后盖，之后用手轻轻转几圈风扇。然后重新装上后盖并开机，登录之后再次运行上面的命令。部分设备似乎存在问题，风扇一段时间没有通电之后无法正确地启动。

一旦完成了以上步骤并且风扇工作正常，应当重启系统或重新加载风扇内核模块，从而将温度阈值恢复到默认：

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

注意： 默认状态下，连接交流电源时风扇会一直转动[1]。要更改这一行为，请在内核参数中添加`gpd-pocket-fan.speed_on_ac=0`。

#### 节能

安装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`以关闭实时调度：

    /etc/pulse/daemon.conf

    realtime-scheduling = no

#### 充电控制

可以控制充电电流、充电终止电压及一些其他设定。

更多信息及示例脚本见这篇reddit帖子（中国大陆地区访问可能需使用代理工具）。

## 已知问题

### USB-C电源状态

USB-C电源状态在内核版本4.14-15下不工作。Hans的内核有修复此问题的补丁。

### systemd-gpt-auto-generator failed to dissect

由于此原因，启动时会出现报错信息：

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

向启动引导器添加以下启动参数，可避免该信息出现。

    systemd.gpt_auto=0

## 参见

- https://github.com/njkli/gpd-pocket/
- https://hansdegoede.livejournal.com/

Category:

- GPD (简体中文)

Hidden category:

- Pages or sections flagged with Template:Accuracy