目次
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=
これ以外は?
これ以外はまだ特に何もしていません(忘れ物があるかも)...何かあれば,また更新します.