6月後半ぐらいから、GPDがクラウドファンディングを行っていたGPD MicroPC が出資者の元に届き始めました。今回はMicroPCにUbuntuをインストールする方法を紹介しましょう。
GPD MicroPCとは
GPD MicroPC はGPD社が開発する小型のノートPC(UMPC)シリーズのひとつで、第543回 や第544回 で紹介したGPD Pocketの派生品です。
GPD Pocketやその後継機種であるGPD Pocket2、そして最近クラウドファンディングを開始したGPD P2 Max などが、一般的な小型PCとしての位置づけなのに対して、GPD MicroPCは「プロフェッショナル向けポケットパソコン」を謳っています[1] 。
具体的には1GbEに対応したRJ-45(8P8C)やRS-232用のEIA-574コネクタ、小型PCとしては珍しい3つものUSB Aコネクタなど、最近のPCでは省かれがちなさまざまなインターフェースを備えていることが特徴です。耐衝撃も従来機種より強度になっており、eMMCの代わりにM.2 SSDを採用しています。ストラップホールが付いているのも他にはない特徴ですね。
その代わりなのかどうかはわかりませんが、GPD Pocket 2に比べるとディスプレイサイズは7インチ(1920x1200)から6インチ(1280x720)と小さくなっていますし、タッチパネルも非対応になりました。重量は減っているものの、バッテリー容量も減っています。
GPD MicroPCのスペックは次のとおりです。
CPU
Intel Celeron N4100 (64bit、4コア4スレッド、1.1GHz/2.4GHz)
Memory
8GiB LPDDR4 2133 MHz
Storage
128GB M.2 SATA SSD(BIWIN製) 、microSDXCカードリーダー(Realtek製)
GPU
UHD Graphics 600
Display
720x1280、6inch、タッチパネル非対応
Ethernet
Realtek RTL8168
Wi-Fi
2.4GHz/5GHz、802.11 ac/b/g/a/n(Intel Wireless 3165)
Bluetooth
Bluetooth 4.2(同上)
Sound
Realtek ALC269VC、モノラルスピーカー・マイク
Battery
3100mAh[2]
Connectors
USB Type-C(USB 3.1 Gen 1、DisplayPort Alt Mode、PD) 、HDMI 2.0、
USB Standard-A(USB 3.1 Gen 1)x3、ヘッドフォンジャック
Size
153mm x 113mm x 23.5mm、440g
キーボード左上には右クリック・スクロール・左クリックボタンが、右上にタッチパッドが配置されています。このため両手で抱えるようにして持つことで、親指のみでの操作が可能です。
図1 小型PCの命運を左右するキー配列
キーボード自体は既存のGPD Pocket/Pocket2に比べるとしっかりした作りに見えます。英字のキー配置も比較的まともなので、キー入力に迷うこともないでしょう。なお、タッチパッドを配置するためか、数字と記号類も2段になっています。これに関しては、そのまま6以降がそのままずれただけなので、そこまで違和感はないはずです。一応左手親指だけで数字を入力できる仕組みのようです。
ただしサイズの都合上タッチタイピングはかなり難しいです。指の太さ次第ではありますが、タッチパッド操作と同じく両手でホールドしつつ親指でタイプする方法がベストだと思われます。
ちなみにキーボードにはバックライトが備わっています。よって暗いところでもキーを確認できる仕様です。
Ubuntuの起動とインストール
GPD MicroPCは現状Ubuntuをサポートしていません。しかしながら、将来的にUbuntuをサポートする予定ではあります。
とはいえ「ただのPC」なので、今の段階でもUbuntuが起動しないわけではありません。というわけで実際にUbuntuをインストールしてみましょう。
今回はUbuntu 19.04を使います。また、Ubuntu MATEやXubuntuなど他のフレーバーでもこれから説明する方法で起動できます。理論上は18.04や現在開発中の19.10でも同じです。
ストレージのサイズが大きい(128GiB)ので、Windowsとのデュアルブートも可能です[3] 。ただし今回はWindowsを消して、クリーンインストールすることにします。なお、1月ぐらいに公開された分解動画 を見る限り、「 M.2 Type 2242(B & M Key) 」のようなので、一般的なM.2 SATAカードで換装が可能だと思われます。このあたりeMMCとは異なるメリットですね。
ポイントは次の3つです。
2019年6月時点のUbuntuはいずれもそのままでは画面が表示されません(ディスプレイを認識できません) 。
nomodeset(safe graphics mode)を利用することで上記は回避可能ですが、左に回転してしまいます。つまりディスプレイから見るとポートレートモードで表示されます。
より新しいカーネルとパッチを導入すればいずれも解消可能です。
言い方を変えると、ディスプレイ以外に見た目上の大きな問題は見受けられませんでした。
まずはUbuntu 19.04のリリースイメージ (ubuntu-19.04-desktop-amd64.iso)をダウンロードします。ダウンロードしたイメージをddコマンドや第488回 でも紹介されているEtcherでUSBメモリーなどに書き込みましょう。
作成したUSBメモリーをGPD MicroPCに接続し、GPD MicroPCを起動します。
GPDのロゴが表示されたらFn+7(F7)キーを押し続けてください[4] 。起動デバイスの選択画面(Please select boot device)が表示されるので、カーソルキーで「UEFI: デバイス名, Partition2」を選択します。「 デバイス名」の部分はおそらくUSBメモリーのベンダーなどが表示されるはずです。もし表示されない場合は、USBメモリーを接続するポートを変更して再起動してください。
[4] Fnキーと7キーを押し続けます。もしくはESCキーを押し続けることで表示されるBIOSメニューからブートデバイスを選択してもかまいません。今回はBIOSメニューも起動デバイスの選択画面も、きちんとランドスケープの画面になっています!
GRUBメニューから縦置きの画面になってしまいます。カーソルキーをうまく駆使して「Try Ubuntu without installing (safe graphics) 」を選択してください。「 safe graphics」のほうを選ぶのがポイントです。「 safe graphics」ではないほうを選ぶと、画面が暗転したまま何も表示されません。その場合は一度強制的に電源を切って、再度起動し直してください。
Liveセッションが起動するので、Wi-Fi・キーボード・タッチパッド・サウンドあたりの動作を確認します。画面の回転はサポートしていないので注意が必要です[5] 。画面が縦置きのままでは使いづらいので、インストールしてから動作を確認する手順にしても良いかもしれません。
[5] それどころかシステム設定(Settings)から「ディスプレイ(Displays) 」を選択するとエラー終了してしまいます。しかも、その後システム設定を起動しようとするとディスプレイ設定を表示しようとしてまたエラー終了してしまいます。別の設定を表示するには、一度端末から「gnome-control-center mouse
」などと実行し、ディスプレイ設定以外の画面を表示してください。
特に問題なければ、デスクトップ上の「Install Ubuntu 19.04」をダブルクリックしてインストールを開始しましょう。マウスカーソルを合わせるのが面倒なら、「 Super + 1」を入力するとインストーラーが起動します。言語は日本語を選択してもかまいませんが、キーボードレイアウトは「英語(US) 」を選びます。
図2 ポートレート表示だと インストーラーが見切れてしまう
縦置きな上に短辺の解像度が720pxしかないため、インストーラーが見切れてしまいます。この状態でのインストールはなかなか難儀ではありますが、マウスとタブキー、それにこれまでUbuntuをインストールしたときの記憶を駆使して対処してください。皆様のUbuntuへの愛が問われています[6] 。
ポイントはウィンドウタイトルをAlt+左 クリックで移動できることです。もしくはウィンドウ上でAlt+F7を押すとウィンドウグラブモードに移行するので、タッチパッドやカーソルキーで移動した上で左クリックもしくはEnterキーで位置を確定できます。
あとは普通のUbuntuとインストール方法は一緒です。ただしインストールが完了しても「再起動してはいけません 」 。
再起動するかどうか問い合わせられたら、「 試用を続ける」を選択してください。これは再起動前にGRUBの設定を「safe graphics」モードに変更する必要があるためです[7] 。
[7] 理論上は再起動後にGRUBメニューに入れば再設定可能ではあるのですが、メニューのタイムアウトが0に設定されているためか、メニューを表示できませんでした。もし誤って再起動した場合は、もう一度Live USBで起動したのち、端末から「$ sudo mkdir /target && sudo mount /dev/sda2 /target
」と実行してから、本文中の手順を実行してください。
Ctrl-Alt-Tで端末を起動した上で、次のコマンドを実行してください。
$ sudo sed -i "s/splash/splash nomodeset/g" /target/boot/grub/grub.cfg
$ sudo sed -i "s/splash/splash nomodeset/g" /target/etc/default/grub
本来であれば「/etc/default/grub
」を編集して「update-grub
」を実行するのが正しいやり方ではありますが、今回のようなLive USB環境だと「update-grub
」がきちんと動くように設定するのに手間がかかります。そこで「とりあえずの措置として」起動用のgrub.cfgを直接編集しています。また、起動後に「update-grub
」を実行した時のために、「 /etc/default/grub
」も合わせて更新しています。
あとは通常どおりシステムをシャットダウンしてください。Liveセッション終了時にUSBメモリーを取り外すよう指示されるので、取り外した上でEnterキーを入力しましょう。
GPD MicroPCのBIOS事情
画面が縦置きのままだと使いづらいので、まずはその対処を行います。これはより新しいカーネルをインストールすることで対応可能です。
2019年4月26日以前のBIOSの場合:Kernel 5.6.0-rc5以降をインストールします
2019年5月28日以降のBIOSの場合:Kernel 5.6.0-rc5以降にパッチを当てたものをインストールします
GPDのBIOSは伝統的にシステム関連の情報がまったく入っていませんでした。このためカーネル側でディスプレイ関連の情報に対してソフトウェア的な補正を行おうにも「GPDのデバイスである」ことがわからなかったのです。
これまでは「システム情報が初期値であり、BIOSのリリース日がこの日だったらおそらくGPDのはずだ」という無理やりな判断基準で補正を行っていました。つまりBIOSが更新されるたびにカーネルも修正する必要があったのです。そのため、GPD系のデバイスでUbuntuを動かす場合は特定のBIOSに固定する方法が一般的でもありました。
2019年5月28日版のBIOSから、晴れてシステム情報が登録されるようになります。
$ sudo dmidecode -t 0,1
Handle 0x0000, DMI type 0, 26 bytes
BIOS Information
Vendor: American Megatrends Inc.
Version: 4.09
Release Date: 05/28/2019
(中略)
Handle 0x0001, DMI type 1, 27 bytes
System Information
Manufacturer: GPD
Product Name: MicroPC
(後略)
つまり今後は「Manufacturer: GPD」と「Product Name: MicroPC」だけ確認すれば良く、BIOSが更新されても(これらの文字列がそのままであれば)引き続きMicroPC用の補正は有効になるということです。
なお、Kernel 5.6.0-rc5まではManufacture/Product Nameが「Default string」でマッチングしていたため、新しいBIOSでは補正が反映されません。そのためより新しいBIOSを使っているのであれば、GPD/MicroPCに対応したパッチ が必要になるのです。このパッチが5.2のリリースに間に合うかどうかは不明です。もし間に合ったらUbuntu 19.10からは特に何もせずとも利用できる見込みです。
インストールされているBIOSは届いた時期によって異なるようです。上記文字列やBIOSのリリース日はBIOS画面のMainタブからでも確認できます。
MicroPC対応カーネルのインストール
さて、前置きが長くなりましたが、MicroPC対応カーネルをインストールしましょう。
初回起動時に表示されるオンラインアカウントの登録の画面 はとりあえず無視して、Ctrl-Alt-Tで端末を開きます。まずはパッケージ一式を最新のものに更新しておきましょう。
$ sudo apt update
$ sudo apt full-upgrade
ここではあとの作業と一連の操作になるので端末で実行していますが、パッケージを更新する処理自体は、おそらく初回起動後に表示されているであろう「パッケージの更新ダイアログ」からでもかまいません。更新後の再起動をするかどうかは、どちらでも結構です。
パッケージを更新したら、カーネルをインストールします。前述のとおり2019年4月26日以前のBIOSであれば5.2.0-rc5以降のカーネルで問題ありません。テスト目的で提供されているMainlineカーネル を使うのが簡単でしょう。詳しいことは第524回 の「新しい開発中のカーネルをビルド&インストールする」を参考に、先日リリースされたばかりのv5.2-rc7 をインスールしてみてください。最近有償ソフトウェアとなったukuu を使うという手もあります。
今回は2019年5月28日版のパッチも適用した自家製PPA を使うことにします。
$ sudo add-apt-repository ppa:cosmos-door/linux-gpd
$ sudo apt install \
linux-image-unsigned-5.2.0-050200rc7gpd1-generic \
linux-modules-extra-5.2.0-050200rc7gpd1-generic
とりあえず必要最低限なもののみを指定しています。使い方によっては他にもパッケージが必要になるかもしれません。詳しいことはPPAの詳細 からパッケージ情報を確認してください[8] 。
インストールが完了したら起動オプションからnomodesetを外して、safe graphicsモードをオフにします。
$ sudo sed -i "s/ nomodeset//g" /etc/default/grub
$ sudo sed -i "s/TIMEOUT=0/TIMEOUT=10/g" /etc/default/grub
$ sudo update-grub
何か問題があったときのために、GRUBのタイムアウトを長めの10秒まで伸ばしています。うまく起動できることを確認したら、0秒に戻してしまっても良いでしょう。
ここまでできたら再起動しましょう。GRUBでは自動的にインストールしたカーネルが選択されているはずですので、横置きの画面のままログイン画面に遷移するかと思います。
図3 きちんと横置きで表示される
GPD MicroPCにおけるUbuntuの使い方
Ubuntuそのものの使い方は、GPD MicroPCでも違いはありません。端末やブラウザー(Firefox)を起動したり、Ubuntuソフトウェアやaptコマンドでパッケージをインストールするなど、普通のPCとして使用できます。第543回 や第544回 の設定も参照してください。
日本語入力IBus/Mozcを使います。英語キーボードなので、「 Ctrl+Space」で日本語入力をオンオフできるよう設定が必要です。
まずはシステム設定の「地域と言語」を開きます。「 入力ソース」の設定は好みが分かれるところですが、日本語入力の割合が多いなら、「 日本語 (Mozc)」を一番上に持ってきておくと良いでしょう。「 英語 (US)」を消してしまってもかまいません。ここにリストアップされているものは、Super + Spaceで切り替えられます。
図4 日本語 (Mozc)を一番上にする
次に「インストール冴えている言語の管理」を選択します。初回起動時は「言語サポートが完全にはインストールされていません」と表示されるので「インストール」を押してパッケージをインストールしておきましょう。インストールが完了したら「閉じる」を押しておいてください。
図5 初回起動時は未インストールのパッケージのインストールが促される
ここまでできたら、一度ログアウトしてからログインしなおします。画面右上のキーボードインジケーターが「A」もしくは「あ」になっているので、それをクリックし、「 ツール」の「プロパティ」を選択します。
図6 Mozcプロパティ
「キー設定の選択」から「編集」を押し、現れたダイアログの「入力キー」でソートします。このうち「Hankaku/Zenkaku」になっているものをゆっくりと3回クリックして「Mozcキーバインディング設定」ダイアログを表示し、好みのキー入力(たとえばCtrl + Spaceなど)に変更してください。
図7 Mozcキー設定で「Hankaku/Zenkaku」を順に変更していく
最後に「Mozcキー設定」ダイアログと「Mozcプロパティ」ウィンドウのそれぞれで「OK」を押して、設定を反映します。もう一度ログアウトして、ログインし直したら設定の反映が完了です。
ハードウェアの構成
GPD MicroPCのスペックは前掲の通りですが、Ubuntu側からはどのように見えているでしょうか。第522回 や第543回 のように、lshw
の簡易出力を取得してみましょう。
$ sudo lshw -short
H/W path デバイス クラス 詳細
==========================================================
system MicroPC (Default string)
/0 bus Default string
/0/0 memory 64KiB BIOS
/0/23 memory 8GiB システムメモリー
/0/23/0 memory 4GiB DIMM LPDDR4 同期 2133 MHz (0.5 ns)
/0/23/1 memory 4GiB DIMM LPDDR4 同期 2133 MHz (0.5 ns)
/0/2e memory 224KiB L1 キャッシュ
/0/2f memory 4MiB L2 キャッシュ
/0/30 processor Intel(R) Celeron(R) N4100 CPU @ 1.10GHz
/0/100 bridge Intel Corporation
/0/100/0.1 generic Intel Corporation
/0/100/2 display Intel Corporation
/0/100/e multimedia Intel Corporation
/0/100/f communication Intel Corporation
/0/100/12 storage Intel Corporation
/0/100/13 bridge Intel Corporation
/0/100/13/0 wlp1s0 network Wireless 3165
/0/100/13.2 bridge Intel Corporation
/0/100/13.2/0 eno1 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/15 bus Intel Corporation
/0/100/15/0 usb1 bus xHCI Host Controller
/0/100/15/0/3 input USB KEYBOARD
/0/100/15/0/4 communication Bluetooth無線インターフェース
/0/100/15/1 usb2 bus xHCI Host Controller
/0/100/15/1/1 scsi2 storage USB3.0-CRW
/0/100/15/1/1/0.0.0 /dev/sdb disk SD/MMC
/0/100/15/1/1/0.0.0/0 /dev/sdb disk
/0/100/16 generic Intel Corporation
/0/100/16.1 generic Intel Corporation
/0/100/16.2 generic Intel Corporation
/0/100/16.3 generic Intel Corporation
/0/100/17 generic Intel Corporation
/0/100/17.1 generic Intel Corporation
/0/100/17.2 generic Intel Corporation
/0/100/17.3 generic Intel Corporation
/0/100/18 generic Intel Corporation
/0/100/18.1 generic Intel Corporation
/0/100/18.2 generic Intel Corporation
/0/100/18.3 generic Intel Corporation
/0/100/19 generic Intel Corporation
/0/100/19.1 generic Intel Corporation
/0/100/19.2 generic Intel Corporation
/0/100/1c generic Intel Corporation
/0/100/1f bridge Intel Corporation
/0/100/1f.1 bus Intel Corporation
/0/1 scsi0 storage
/0/1/0.0.0 /dev/sda disk 128GB BIWIN SSD
/0/1/0.0.0/1 volume 511MiB Windows FAT ボリューム
/0/1/0.0.0/2 /dev/sda2 volume 118GiB EXT4ボリューム
GPD Pocketに比べてデバイスの数が増えているように見えるのは、I2C/UART/SPIコントローラーなどが有効化されているためです。
例のごとくdmesg
やcpuinfo
の結果などは次のURLにアップロードしてあります。
ちなみにGPD Pocketのときと異なり、Wi-Fi/Bluetoothを使うにあたってファームウェアの追加インストールは不要です。
外部ディスプレイの利用
GPD MicroPCには外部ディスプレイ接続端子として、Micro HDMIとUSB Type-C(DisplayPort Alt Mode対応)が用意されています。
カーネルが新しくなったからか、第543回 のときと状況が異なり、USB Type-C経由のDisplayPortもつながるようになりました。もちろんサウンドの出力も可能です。
HDMI端子も、普通のHDMIケーブルでかまいません。また、4Kまで出力できました。
図8 1280x720に比べると広大な4K空間
ちなみにGPD MicroPCのグラフィックスコントローラーはVAAPI に対応しています。第532回 と同様にVAAPI対応のソフトウェアをインストールすれば、ハードウェアエンコード・デコードが可能になります。
シリアルコンソールの利用
MicroPCの特徴と言えば、なんといっても最近のPCでは特定のモデル以外とんとご無沙汰なEIA-574コネクタが載っていることです。
まずはシリアルコンソールアプリケーションをインストールしましょう。minicomやC-Kermit(のGPL版のG-Kermit)など必要に応じてインストールすると良いでしょう。ちなみにUbuntu 19.04からckermitパッケージは削除されました 。ここではscreenを使うことにしましょう。
$ sudo apt install screen
背面のシリアルコンソールポートは/dev/ttyS1として認識されています。
$ dmesg | grep -A1 "8250/16550"
[ 2.214416] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[ 2.239606] 00:02: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
よってシリアルコンソールケーブルを接続したら、次のようにして通信が可能になります。
$ sudo screen /dev/ttyS1 115200
第555回 でも説明しているように、シリアルコンソールデバイスはdialoutグループに属しています。よってsudoを使ってアクセスしているのですが、毎回sudoを打つのが面倒なら第555回のようにユーザーをdialoutグループに所属させてください。
なお、screenは「Ctrl-a k」で終了できます。これは「現在開いているウィンドウを閉じる」キーバインディングです。