ユーザ用ツール

サイト用ツール


debian:20170816_debian9_gpdpocket

GPD Pocket に Debian 9 をインストールした時のメモ

GPD WIN に Debian 9 をインストールできたので,GPD Pocket にもLinuxを入れてみることにしました.

GPD Pocket での Linux ディストリビューションは,ネットを調べると Arch Linux や Ubuntu での事例が多いのですが,私は普段は Debian を使うことが多く, Debian 9 をインストールしてみることにしました.

免責:ここでは忘れないためのメモ的に書いているので,抜けや間違いなどあるかも知れません m(_ _)m. インストールの保証が出来る(起動保証ができる)ものではないのでご了解おねがいします.抜けや間違いに気づいたら,可能な時間で都度修正します.

もし,このメモでお気づきの点があれば, https://twitter.com/tosihisa にメンションなど頂けたらと思います.

準備物

GPD Pocket への Debian 9 自身のインストールは,インストールそのものはあまり難しくはないのですが,下記が必要に思います.

  • 母艦PC(Debian9 amd64)
    後述しますが,GPD Pocket に Debian 9 を入れた後は,カスタムカーネルを入れる必要があります.このカスタムカーネルのビルドに母艦PCが必要です.
    母艦PCは,deb ファイルが作成できればよいのですが,私は念のため母艦PCにも Debian 9 を入れました.
  • USBイーサネットアダプタ
    Debian 9 インストール時に使います.
    私は “j5create JUH470” http://j5create.com/jpn/our-products/usb-hub/juh470.html を使いました.これはイーサネット+USB 3.0ハブなので,USBメモリも挿せて便利です.
  • USBメモリ
    Debian 9 インストールイメージ(debian-9.1.0-amd64-netinst.iso)を入れて,Debian 9 のインストールに使います.

インストールの前準備

カスタムカーネルのビルド(母艦PC)

GPD Pocket は GPD WIN のカスタムカーネルが使えるようです(どの程度使えるかは不明ですが…)

https://wiki.archlinuxjp.org/index.php/GPD_Win に記載のある,Hans de Goede のパッチがあたったカーネルの情報を元に,GPD Pocket(GPD WIN)用のカスタムカーネルをビルドします.

このカスタムカーネルのビルドに母艦PC(Debian9)を使います.まぁ,GPD Pocket でもやってやれなくは無いとは思いますが,時間を要するとは思います.

以下は,母艦PCで作業します.

# apt-get build-dep linux
# apt-get install git fakeroot

これで,カスタムカーネルをビルドするためのツール類がインストールされます. 次に,カスタムカーネルのソースコードを git で得ます.

$ git clone https://github.com/jwrdegoede/linux-sunxi.git

私が git clone した時のカーネルバージョンは,4.13.0-rc3 でした.

上記の方法だと,git を丸ごと clone するので,

$ git clone --depth 1 https://github.com/jwrdegoede/linux-sunxi.git

と最新のみを得るようにするのでも良いかもしれません.

このカスタムカーネルの注意点は, この git リポジトリにに入っている .config をそのまま使う事です. Debian 9 の config( /boot/config-4.9.0-3-amd64 ) を元にconfigすると,下記のエラーでビルドに失敗します.

ERROR: "xhci_intel_cap_init" [drivers/usb/host/xhci-pci.ko] undefined!

https://www.reddit.com/r/GPDPocket/comments/6idnia/linux_on_gpd_pocket/ にも同じ書き込みがあり,https://github.com/jwrdegoede/linux-sunxi/commit/e101037 の修正を戻せば良さそうと読めますが,git に入っている .config をそのままビルドに使えば,上記のビルドエラーや左記の修正なしにビルドが出来ます.

カスタムカーネルのビルドは下記のように実行します.

$ cd linux-sunxi
$ make deb-pkg LOCALVERSION=-gpdwintt2 KDEB_PKGVERSION=$(make kernelversion)-1

LOCALVERSION や KDEB_PKGVERSION は適宜修正してください.また,make -j4等で並列コンパイルするとビルドが早く進みます.

ビルドが成功すると,下記の4つのファイルができているはずです.

$ ls -l ../*.deb
-rw-r--r-- 1 tosihisa tosihisa   956962  8月 15 01:26 ../linux-firmware-image-4.13.0-rc3-gpdwintt2_4.13.0-rc3-1_amd64.deb
-rw-r--r-- 1 tosihisa tosihisa 10969892  8月 15 01:26 ../linux-headers-4.13.0-rc3-gpdwintt2_4.13.0-rc3-1_amd64.deb
-rw-r--r-- 1 tosihisa tosihisa 42203104  8月 15 01:27 ../linux-image-4.13.0-rc3-gpdwintt2_4.13.0-rc3-1_amd64.deb
-rw-r--r-- 1 tosihisa tosihisa   961596  8月 15 01:26 ../linux-libc-dev_4.13.0-rc3-1_amd64.deb

これでカスタムカーネルの deb パッケージが出来ました.

インストール用 USB メモリの作成(母艦PC)

https://www.debian.org/index.ja.html から debian-9.1.0-amd64-netinst.iso をダウンロードし,dd コマンドで書き込みます.

# dd if=debian-9.1.0-amd64-netinst.iso of=[USBメモリのデバイスファイル] status=progress

dd コマンドに status=progress が設定できるようになり,これを設定すると書き込み状態が出力されるので非常に便利です これで母艦PCでの作業は一旦終了です.

Debian 9 インストール領域の作成(GPD Pocket)

GPD Pocket に入っている Windows パーティションのサイズを縮小して,Debian 9 をインストールするための領域を空けます. 私は 55GByte を Debian 9 のために空けました.

もし,Win 10 home → Win 10 Pro にアップグレードしており,なおかつ bitlocker でドライブ暗号化している場合,パーティションの縮小は出来ますが,Debian 9 インストール後の Win 10 Pro 起動で bitlocker 回復キーの入力が求められるので,bitlocker で暗号化している場合は,回復キーが保管できているか確認が必要です.

GPD Pocket へ Debian9インストール

GPD Pocket へ Debian 9 をインストールします.カスタムカーネルはインストール後に dpkg コマンドでインストールします.

j5create JUH470 にイーサネットと母艦PCで作成したインストール用USBメモリを挿入し,GPD PocketのBIOSからUSBメモリを選択してインストーラを起動します.

ここでの注意点は,画面が全て90度左向きに表示されることです. 私はとりあえずこのまま(90度左向き表示のまま),Debian 9 をインストールしました.Debian 9 のインストール自身は,そのまま特に問題なくインストール出来ました.

あ,インストールの際に下記があります.

  • もしかすると,gnome ではうまく動かないかもしれません(動くかもしれません)
    私は xfce4 と lxde を入れて,GUIログインは lightdm を使っています.
  • ssh経由で設定したほうが楽なので,sshサーバをインストール時に入れました.

Debian 9 インストール後の作業

Debian 9 をインストールした後,以下の状態のはずです.

  • 表示が90度左向き(操作は可能なのでGUIログインも可能)
  • Wifiが使えない.
  • ファンが回りっぱなし

まず, j5create JUH470 で有線LANを使ったまま GPD Pocket へリモートログインします(GPO Pocketで作業できなくはないのですが見難くて…)

sources.list の修正(non-freeの追加)

残念ながら,GPD Pocket はいくつか non-free のパッケージが必要のようですので,sources.list を修正し,non-freeを追加します.

/etc/apt/sources.list
...
deb http://ftp.jp.debian.org/debian/ stretch main non-free
deb-src http://ftp.jp.debian.org/debian/ stretch main non-free
 
deb http://security.debian.org/debian-security stretch/updates main non-free
deb-src http://security.debian.org/debian-security stretch/updates main non-free
 
# stretch-updates, previously known as 'volatile'
deb http://ftp.jp.debian.org/debian/ stretch-updates main non-free
deb-src http://ftp.jp.debian.org/debian/ stretch-updates main non-free

追加したら,apt-get updateします.

カスタムカーネルのインストール

母艦PCで作成した4つの deb ファイルを scp コマンドで GPD Pocket に転送し,

# dpkg -i *.deb

で全部インストールします.特にエラーなどは発生しないはずです.

いくつかのパッケージをインストール

下記を追加でインストールします.

# apt-get install firmware-brcm80211
# apt-get install firmware-intel-sound

上記は non-free ですので, /etc/apt/sources.list に non-free を追加していないとパッケージが見つからないはずです.

brcmfmac4356-pcie.txtの保管

https://wiki.archlinuxjp.org/index.php/GPD_Win を参考に, brcmfmac4356-pcie.txt を /lib/firmware/brcm へコピーします.

grub の設定

下記のようにします.

/etc/default/grub
...
GRUB_CMDLINE_LINUX_DEFAULT="video=efifb fbcon=rotate:1 dmi_product_name=GPD-WINI55"
...

video=efifbは,本当に必要か未確認です(多分に不要な気がします...).修正できたら,

# update-grub

で grub を更新し, GPD Pocket を再起動します.

再起動後の GPD Pocket の挙動

以下のようになっているはずです.

  • grub ブートローダは90度左向きのまま(このまま起動します)
  • Linux カーネル出力の表示向きはOK(fbcon=rotate:1)
  • X が起動し,lightdm は90度左向き

ここで,そのままログインし,(少し操作しにくいですが)ターミナルエミュレータを起動して,

$ xrandr -o right

を実行すると,表示が90度周り,期待した表示になるはずです. (なお,私は今のところ,GPD Pocketを起動する度に毎回 xrandr -o right を入れています)

  • Wifi は利用できるようになっているはずです.
  • バッテリーモニタも利用できているはずです.
  • 輝度調整もできているはずです.

ファンの制御

Fan control daemon for GPD Pocketをインストールすると,GPD Pocket の温度に応じてファン制御が行われるようになります.

入れてみると,確かにファン制御が行われるようになります.なお,Windows と比べると,ファンの回転が細やか(表現を変えるとよく変わる)様です.

LCD表示の回転とタッチパネル

2017年8月20日追記

xrandr を使うと画面を回転できますが,同時にタッチパネルも追従できればと思います.

調べると,xinput で入力を出力にマップ出来そうですので,下記のシェルスクリプトを作成しました.

# apt-get install xinput
right.sh
#/bin/sh
 
xrandr -o right
 
TSID=`xinput list --id-only 'pointer:Goodix Capacitive TouchScreen'`
xinput map-to-output $TSID DSI-1

このシェルスクリプトを実行させると,xrandr で回転後,xinput でタッチスクリーンの入力を出力DSI-1(LCD)にマップさせます.

これでLCD画面が回転し,タッチスクリーンもそれに追従するようです.

私は,“xterm -e このスクリプト” を実行するランチャを xfce のパネルに追加しました.起動後にこのランチャを実行すれば,画面が回転してタッチパネルも合います.

LightDM の表示文字を大きくする

2017年8月22日追記

GUIログインには LightDM を使うようにしていますが,GPS Pocket で表示すると文字が小さく,老眼(!!)の私には厳しいので,文字を大きくします.

LightDM の文字を大きくするには,/etc/lightdm/lightdm-gtk-greeter.conf の xft-dpi に値を設定します.

私は以下のように設定しました.

/etc/lightdm/lightdm-gtk-greeter.conf
...
[greeter]
...
#xft-antialias=
xft-dpi=276
#xft-hintstyle=

これ以外は?

これ以外はまだ特に何もしていません(忘れ物があるかも)...何かあれば,また更新します.

debian/20170816_debian9_gpdpocket.txt · 最終更新: 2019-01-20 17:51 by tosihisa@netfort.gr.jp