ラベル GPD WIN の投稿を表示しています。 すべての投稿を表示
ラベル GPD WIN の投稿を表示しています。 すべての投稿を表示

2016/12/26

Linux 4.10.0-rc1でGPD WINのXがintelドライバで起動し画面も回転できた

Linuxカーネル 4.10.0-rc1でGPD WINのLinuxでXがintelドライバで起動し画面も回転できました。

dmesgでエラーが出ていますが、特に問題なく動いているように思います。

[ 1185.682005] [drm:intel_pipe_update_end [i915]] *ERROR* Atomic update failure on pipe B (start=9392 end=9393) time 8 us, min 1272, max 1279, scanline start 1280, end 1281

dmesg
Xorg.0.log

2016/12/20

GPD WINのPlamo Linuxでバッククォートが入力できない

GPD WINのPlamo Linuxでバッククォートが入力できない問題に気付きました。
コンソールでの問題です。

/etc/rc.d/rc.keymapでk2esc-dの読み込みを削除して実行したところ、バッククォートが入力できるようになりました。

$ cat /etc/rc.d/rc.keymap 
#!/bin/sh
#/usr/bin/loadkeys /usr/share/keymaps/i386/qwerty/defkeymap.map.gz  /usr/share/keymaps/i386/qwerty/cl2c-d.map.gz  /usr/share/keymaps/i386/qwerty/k2esc-d.map.gz 
/usr/bin/loadkeys /usr/share/keymaps/i386/qwerty/defkeymap.map.gz /usr/share/keymaps/i386/qwerty/cl2c-d.map.gz
$ sudo /etc/rc.d/rc.keymap 
パスワード: 
Loading /usr/share/keymaps/i386/qwerty/defkeymap.map.gz
Loading /usr/share/keymaps/i386/qwerty/cl2c-d.map.gz

k2esc-dは半角/全角キーをESCキーにする設定らしいので要らないかなと。

2016/12/19

GPD WINのPlamo Linuxにfbtermを入れた

GPD WINのPlamo Linuxにfbtermを入れてみました。
fbterm_1.7.orig.tar.gz

コンソールを回転させるためにgrubの起動オプションにfbcon=rotate:1を指定したのですが、そうするとUNICONで日本語表示できなくなってしまったためです。
Native Linux on the GPD Win

fbtermとついでにuim-fepをログイン時に起動させるため、$HOME/.bash_loginに下記の記述を追加しました。

if [ $TERM = linux ] ; then
  if [ -x /usr/bin/fbterm ] ; then
    if [ -x /usr/bin/uim-fep ] ; then
      fbterm -nIPAGothic -a -r1 -s24 --cursor-shape=1 -- uim-fep
    else
      fbterm -nIPAGothic -a -r1 -s24 --cursor-shape=1
    fi
  fi
fi


$TERMを見ているのは、SSHでログインした場合に「stdin isn't a interactive tty!」というエラーが出るのを防止するためです。
ですが、Linuxのコンソールからsshでアクセスすれば同じ値になってしまいますね。

2016/12/17

GPD WINのPlamo Linuxでタッチスクリーンが使えるようになった

GPD WINのPlamo Linuxでタッチスクリーンが使えるようになりました。

ちょっと弄っていたら、どうやらタッチスクリーンを回転させれば良さそうだと(今更)気づきました。
Xを回転して使用しているため、タッチスクリーンも回転させる必要があったようです。
GPD WINにPlamo Linuxをインストールしてみた その1


下記のサイトを参考にしました。
Linuxでタッチスクリーンを回転して利用する
$ xinput set-prop 'Goodix Capacitive TouchScreen' 'Coordinate Transformation Matrix' 0 1 0 -1 0 1 0 0 1


私はこのコマンドを.xinitrcに記述しました。

2016/12/14

GPD WINのeMMCにPlamo Linuxをインストール

GPD WINのeMMCにPlamo Linuxをインストールしました。

現在動いているUSBメモリのPlamo Linuxを単純にeMMCへコピーすることにしました。
GPD WINにPlamo Linuxをインストールしてみた その1
GPD WINのPlamo LinuxにUbuntuのパッチを当てたカーネル


今回は/bootと/のパーティションを分けております。
理由は/パーティションのファイルシステムをXFSにしたかったのですが、/bootだけはext4にしたほうがいいだろうと考えたためです。
この辺は確信がありません。

XFSを使用するため、コピー元のUSBメモリ版Plamo LinuxにXFSのツールをインストールしました。
xfsprogs_4.3.0+nmu1ubuntu4.tar.gz

いろいろ苦労しましたが、一番苦労したのは起動するカーネルを作成することでしょうか。

起動時にeMMCを認識しないらしく、カーネルパニックになってしまいました。
そのため、eMMC関連らしきものをモジュールではなくカーネルに組み込んでいます。
config-4.8.13-20161214

・eMMCにPlamo Linuxをインストールする領域を作成する


fdiskで確認したところ、デフォルト状態では下記のようになっていました。
なお、/dev/mmcblk0がeMMCです。

# fdisk /dev/mmcblk0

fdisk (util-linux 2.29) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): p
ディスク /dev/mmcblk0: 58.2 GiB, 62537072640 バイト, 122142720 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 4EEC3CEA-F555-48F5-ACB8-D148006E3032

デバイス        開始位置  最後から    セクタ サイズ タイプ
/dev/mmcblk0p1      2048    206847    204800   100M EFI システム
/dev/mmcblk0p2    206848    239615     32768    16M Microsoft 予約領域
/dev/mmcblk0p3    239616 119582687 119343072  56.9G Microsoft 基本データ
/dev/mmcblk0p4 119582688 120504287    921600   450M Microsoft 基本データ
/dev/mmcblk0p5 120504288 122142679   1638392   800M Microsoft 基本データ

/dev/mmcblk0p3を削除してその領域に/bootと/用に100MBのパーティションを作成します。
さらに空き領域全てのパーティションを作成します。
その後、x を実行して特殊機能へ移動し、f を実行してパーティションの順序を修正しました。

結果、eMMCは下記のようになりました。

# fdisk /dev/mmcblk0

fdisk (util-linux 2.29) へようこそ。
ここで設定した内容は、書き込みコマンドを実行するまでメモリのみに保持されます。
書き込みコマンドを使用する際は、注意して実行してください。


コマンド (m でヘルプ): p
ディスク /dev/mmcblk0: 58.2 GiB, 62537072640 バイト, 122142720 セクタ
単位: セクタ (1 * 512 = 512 バイト)
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスクラベルのタイプ: gpt
ディスク識別子: 4EEC3CEA-F555-48F5-ACB8-D148006E3032

デバイス        開始位置  最後から    セクタ サイズ タイプ
/dev/mmcblk0p1      2048    206847    204800   100M EFI システム
/dev/mmcblk0p2    206848    239615     32768    16M Microsoft 予約領域
/dev/mmcblk0p3    239616    444415    204800   100M Linux ファイルシステム
/dev/mmcblk0p4    444416 119582687 119138272  56.8G Linux ファイルシステム
/dev/mmcblk0p5 119582688 120504287    921600   450M Microsoft 基本データ
/dev/mmcblk0p6 120504288 122142679   1638392   800M Microsoft 基本データ


mmcblk0p3は/bootなのでext4で、mmcblk0p4は/なのでXFSでフォーマットします。

# mkfs.ext4 /dev/mmcblk0p3
# mkfs.xfs -f /dev/mmcblk0p4


作成したパーティションをマウントします。

# mkdir /mnt/boot
# mkdir /mnt/root
# mount /dev/mmcblk0p3 /mnt/boot
# mount /dev/mmcblk0p4 /mnt/root



・USBメモリ版Plamo Linuxからコピーまたはディレクトリを作成する


USBメモリ版Plamo Linuxからコピーできるものはコピーするのですが、/procや/devなどはシステムが作成するのでコピーできません。

このあたりよく分かっていません。
(2016/12/15 修正)

# cp -a /bin /etc /localtime /opt /sbin /usr /home /var /lib /root /lib64 /mnt/root
# cd /mnt/root
# mkdir boot dev proc sys mnt media tmp
# cd /mnt/boot/
# cp -a /boot/* .



・eMMC側の環境整備

まず、コピー用にマウントした/mnt/bootをアンマウントします。

# umount /mnt/boot


準備を整え、eMMC環境へchrootします。
下記のサイトを参考にしています。
chrootする際には/procと/devだけでなく/sysもmountしよう

# mount -o bind /dev /mnt/root/dev
# mount -t proc none /mnt/root/proc
# mount -o bind /sys /mnt/root/sys
# chroot /mnt/root


fstabを編集し、/bootと/tmpをマウントします。
(2016/12/15 修正)

# vi /etc/fstab
# cat /etc/fstab
/dev/mmcblk0p3       /boot        ext4        defaults   1   1
/dev/mmcblk0p4       /        xfs        defaults   0   0
/dev/sr0       /cdrom   iso9660   user,ro,noauto,exec,iocharset=euc-jp 0   0
none             /proc    proc        defaults   0   0
none             /sys     sysfs       defaults   0   0
none                /tmp     tmpfs       defaults   0   0
none            /dev/pts        devpts  gid=5,mode=620    0 0
none            /proc/bus/usb             usbfs        noauto   0   0
# mount /boot
# mount /tmp


・grubのインストール

ここも試行錯誤したところです。
(2016/12/15 修正)

# mount /dev/mmcblk0p1 /boot/efi
# grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=grub --boot-directory=/boot/efi --recheck
# grub-mkconfig -o /boot/efi/grub/grub.cfg
# /sbin/grub_partuuid.sh



記憶を頼りにブログを書いてみましたが、こんな感じでとりあえず起動しています。

$ df -Th
ファイルシス   タイプ   サイズ  使用  残り 使用% マウント位置
/dev/root      xfs         57G   18G   40G   31% /
devtmpfs       devtmpfs   1.9G  468K  1.9G    1% /dev
/media         tmpfs      1.9G     0  1.9G    0% /media
/tmp           tmpfs      1.9G  2.3M  1.9G    1% /tmp
/dev/mmcblk0p3 ext4        93M   34M   52M   40% /boot



余談。
grubのインストールを試行錯誤していた際に何度か方法を変えてgrub-installコマンドを使っていたのですが、試しに--bootloader-idオプションで指定した値がGPD WINのブートローダーの選択画面の項目に残ってしまいました。

調べた結果、efibootmgrコマンドで消せることが分かりました。
GRUBとEFIの組み合わせで使うときのメモ またはEFI全般のtips

2016/12/10

GPD WINのPlamo Linuxで内蔵無線LANが使えた

GPD WINのPlamo Linuxで内蔵無線LANが使えました。

動作確認したカーネルは4.8.13で、Ubuntuのconfigをもとに作成したものです。
GPD WINのPlamo LinuxにUbuntuのパッチを当てたカーネル

下記のサイトのパッチで作成されるbrcmfmac4356-pcie.txtを/lib/firmware/brcm以下に置き、brcmfmacモジュールを再読み込みします。

# modprobe -r brcmfmac
# modprobe brcmfmac

android-x86 / device/generic/firmware / Diff of /brcm/brcmfmac4356-pcie.txt


ちなみに、内蔵無線LANはBroadcomのBCM4356というらしいです。


# lspci
00:00.0 Host bridge: Intel Corporation Device 2280 (rev 20)
00:02.0 VGA compatible controller: Intel Corporation Device 22b0 (rev 20)
00:0b.0 Signal processing controller: Intel Corporation Device 22dc (rev 20)
00:14.0 USB controller: Intel Corporation Device 22b5 (rev 20)
00:1a.0 Encryption controller: Intel Corporation Device 2298 (rev 20)
00:1c.0 PCI bridge: Intel Corporation Device 22c8 (rev 20)
00:1f.0 ISA bridge: Intel Corporation Device 229c (rev 20)
01:00.0 Network controller: Broadcom Corporation BCM4356 802.11ac Wireless Network Adapter (rev 02)
# lspci -vnns 01:00.0
01:00.0 Network controller [0280]: Broadcom Corporation BCM4356 802.11ac Wireless Network Adapter [14e4:43ec] (rev 02)
        Subsystem: Gemtek Technology Co., Ltd Device [17f9:0036]
        Flags: bus master, fast devsel, latency 0, IRQ 313
        Memory at a1400000 (64-bit, non-prefetchable) [size=32K]
        Memory at a1000000 (64-bit, non-prefetchable) [size=4M]
        Capabilities: [48] Power Management version 3
        Capabilities: [58] MSI: Enable+ Count=1/16 Maskable- 64bit+
        Capabilities: [68] Vendor Specific Information: Len=44 
        Capabilities: [ac] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [13c] Device Serial Number 00-00-38-ff-ff-00-38-0f
        Capabilities: [150] Power Budgeting 
        Capabilities: [160] Virtual Channel
        Capabilities: [1b0] Latency Tolerance Reporting
        Capabilities: [220] #15
        Capabilities: [240] #1e
        Kernel driver in use: brcmfmac


brcmfmac4356-pci.txtが無いと下記のエラーとなります。

Dec 10 10:02:10 PlamoGPD kernel: [ 6325.390851] usbcore: registered new interface driver brcmfmac
Dec 10 10:02:10 PlamoGPD kernel: [ 6325.500576] brcmfmac 0000:01:00.0: Direct firmware load for brcm/brcmfmac4356-pcie.txt failed with error -2

2016/11/29

GPD WINのPlamo LinuxにUbuntuのパッチを当てたカーネル

備忘録です。

GPD WINのPlamo LinuxでUbuntuのパッチを当てたカーネルを動かしてみました。

Ubuntuからlinux_4.8.0-26.28.diff.gzをもらってきて、それを4.8のカーネルに当ててmakeしました。

カーネルconfigは、Ubuntu 16.10のインストーラーからもらったconfig-4.8.0-22-genericをもとに、makeできないオプションを外し、さらにGPD WINで必要になるであろうオプションを組み込んだものです。(USB_STORAGEをyにするなど)
configファイル


今迄使っていたカーネルと比べての特徴は下記の通りです。

この結果を得るためにUbuntuのパッチを当てる必要が本当にあるのかはまだ検証していません。

もしかしたらPlamo Linuxのカーネルソースでも同じカーネルconfigを行えば同様の結果を得られるのかもしれません。


(2016/11/30 追記)
Plamo Linuxで配布されているカーネル4.8.5のソースを、Ubuntuのconfig-4.8.0-22-genericをもとに作成した.configファイルでmakeしたところ、上記の3項目に関しては同様に機能するカーネルができました。
configファイル

2016/11/26

GPD WINにPlamo Linuxをインストールしてみた その1

GPD WINにPlamo Linux-6.1をインストールしてみました。

インストール方針や注意点は下記の通りです。
  1. USBメモリにインストールする
  2. USBメモリをGPT形式にする
  3. カーネルビルド用に別のマシンが必要 
  4. grubでカーネルオプションに「rootdelay=10 i915.modeset=0」を指定する
  5. コンソールは縦のまま、Xは横に回転することが可能
  6. 内蔵無線LANは動きません
  7. →動きました(GPD WINのPlamo Linuxで内蔵無線LANが使えた)
  8. タッチパネルは動作しません
  9. →反応はするようになりました(GPD WINのPlamo LinuxにUbuntuのパッチを当てたカーネル)
  10. 音は出ません
  11. →いつのまにか音が出るようになりました(2016/12/10)

1.については、GPD WINのWindows10領域を減らしたくなかったのが理由です。

しかし実際にインストール作業を始めてみて気付いたのですが、Plamo Linuxのインストーラーから内蔵eMMCが見えません。

結果的に私のスキルでは内蔵eMMC以外にインストールするしかなかったという側面もあります。

今回使用したUSBメモリはSanDiskのSDCZ43-128Gです。



2.についてですが、当初は何も考えず従来のBIOS形式でインストールをしてみたところ、USBメモリからPlamo Linuxが起動できませんでした。

BIOS形式でのインストール失敗後にGPD WINのBIOSをアップデートしていたりもするので本当にGPT形式でないと起動できないのかは検証が甘いですが、勉強の為GPT形式にしてみました。

GPT/UEFIに関しては、今回下記のサイトを読んで勉強しました。
玩式草子─ソフトウェアとたわむれる日々第78回 Plamo LinuxのGPT/UEFI対応[その2]


3.については、Plamo LinuxのデフォルトカーネルではGPD WINで起動できないようです。

Plamo-6.1のデフォルトカーネルである4.3.5、及びこのブログ執筆時点で最新である4.8.5で確認しましたが、いずれもカーネルパニックになってしまいました。もちろん4.のカーネルオプションを指定してです。

エラーメッセージの内容からおそらくUSBメモリの読み込みができていないのだと当たりを付け、USBメモリを読み込めているインストーラーでlsmodして必要なモジュールを調べ、それを幾つか組み込んだカーネルを作成しました。

上記の方針で作成したカーネルは、4.3.5と4.8.5の両方がGPD WINで起動することを確認しました。

私が作成したカーネルのconfigファイルと、Plamo Linuxで配布されているカーネルのconfigファイルの差分を下記に置きます。バージョンは4.8.5です。
kernel-4.8.5.diff

私は別のマシンも当然のごとくPlamo Linuxにしましたが、カーネルのmakeだけなので他のLinuxでもできるのではないでしょうか。


4.についてですが、rootdelay=10を指定しないとカーネルパニックに、i915.modeset=0を指定しないと起動時に画面がブラックアウトします。

おそらくrootdelay=10を指定する必要があるのはUSBメモリにインストールしたのが原因だと思います。

i915.modeset=0の指定は下記のサイトを参考にしました。
新世代UMPC Cherry-Trail #GPD-WIN Wubi for Ubuntu16.10 改良と新規リリース その2


5.について、コンソールは縦画面になってしまい大変見辛いですが、Xは横画面へ回転することが可能です。

/usr/share/X11/xorg.conf.d/10-monitor.confを作成して下記の内容を記述します。
Section "Device"
Identifier "Configured Video Device"
Driver "fbdev"
Option "UseFBDev" "true"
Option "Rotate" "CW"
EndSection

Section "Screen"
Identifier "Default Screen"
Monitor "Configured Monitor"
DefaultDepth 24
SubSection "Display"
Depth 24
Modes "800x1280"
EndSubSection
EndSection
これも下記のサイトを参考にしました。
新世代UMPC Cherry-Trail #GPD-WIN Wubi for Ubuntu16.10 改良と新規リリース その2


6.から8.に関してはこれから確認するということで…。