にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ

2017年11月18日

7000円 Acer Windowsタブレット Iconia W4-820 Ubuntu17.10 インストール その1

W4-820.jpg
お次はW4-820。Acer初期のWindowsタブレットで
今は安く変える機種の一つです。
是非Linuxで改造して使いましょう。
ストレージが64GBと大きい機種なので
案外重宝します。





●W4-820
他社と同じくBay-trail初期のタブレットです。
現時点で発売から3年以上経ちまして安くなっています。
Linuxを是非入れてみましょう。
スペックは、

ディスプレイ:8インチIPS 1280×800ドット
CPU:Atom Z3740(1.33GHz 4コア)
メモリ:2GB
ストレージ:64GB(eMMC)
サイズ:218.9×134.9×9.75mm
重量:415g
連続駆動時間:約10時間

特筆する所はありませんがゴツいです。
他のタブレットでもそうですが、ガラス割れに注意を。
問題点として、

UEFI画面でBoot設定で、
USBとWindowsBootManager以外は選択できない。
所がありまして、長年悩んでいました。
Arch Wikiを読んでいますと、

https://wiki.archlinux.jp/index.php/Unified_Extensible_Firmware_Interface

「ファームウェアのメニューに UEFI ブートローダーが表示されない」
という項目があって、ああなる程と思いました。
流石はArchWiki。同じ現象です。
つまり、WindowsのEFI FATにあるbootmgfw.efiを
Bootia32.efiで上書きしてしまえ、という話です。
わかりました。ありがとうございます。

 Intel Z77 チップセットなどが搭載された UEFI マザーボードでは、EFI シェルから efibootmgr や bcfg を使ってエントリを追加しても、ブートメニューのリストに表示されないため使うことができません。

 この問題はマザーボードが Microsoft Windows しかロードしないようになっているのが原因です。解決するには Windows が使っている場所に .efi ファイルを配置するしかありません。

 Arch Linux のインストールメディア (FSO:) から bootxia32.efi ファイルをコピーしてハードドライブ (FS1:) 上の ESP パーティションの Microsoft ディレクトリに配置してください。EFI シェルを起動して以下を実行します:

 FS1:
 cd EFI
 mkdir Microsoft
 cd Microsoft
 mkdir Boot
 cp FS0:\EFI\BOOT\bootia32.efi FS1:\EFI\Microsoft\Boot\bootmgfw.efi

 再起動後、NVRAM に追加されたエントリがブートメニューに表示されるはずです。

●Ubuntu17.10インストール
最初はいつもどおり。途中から追加します。
今回はまっさらにUSBメモリからインストールします。
まずUbuntu17.10のISOをWindowsならRufusかなにかで
USBメモリに焼きます。
その際、bootia32.efiのファイルを拾ってきて、
/EFI/boot/にコピーして保存しておきます。
こうしないとUEFIからUSBメモリが認識しないです。

で、MicroUSBにUSBHUB、キーボード、マウス、
USB-有線LANとUSBメモリを繋いで
「ESC」キーを押しながら電源を入れると
UEFI画面が起動しますので、セキュアブートをOFFにします。
設定出来る所が殆ど無いので、
再起動したら「F12」を長押しすると、
各パーティションからブートするか選択出来ます。
もちろん最初はUbuntuを入れたUSBを選択して起動します。

Grubが起動したら「E」キーを押して、
quietの前に「i915.modeset=0 reboot=pci instel_idle.max_cstate=1」を付けてからF10キーで起動。
こうしないと画面が映りません。注意。
インストーラーが無事起動したら、USB-有線LANで
ネット接続確認。
その後はインストールは通常通り。
ネットに繋がないとgrub-efi-ia32のパッケージはISOになく
インターネット経由からしか落とせません。
まあ後から入れる事も出来ますが、ブートローダーは
CUIで起動して手入力になります。面倒。
一旦ここまでで停止。

●再起動してもGrubが起動しない。
ここで問題です。
GrubがUEFIのブート設定画面にありません。
WindowsBootManagerしかありません。
Ubuntuを起動できません。
困った。
先程のArchWikiを参考に、まずUSBメモリ経由でUbuntuを起動します。

USBから再びgrub2の画面が出たら、
「C」キーを押してコマンドで起動させます。

>> linux (hd1,gpt6)/boot/vmlinux〜 root=UUID=(UUIDのアドレス) i915.modeset=0
>> initrd (hd1,gpt6)/boot/initrd〜
>> boot

ここでシングルブートはgpt2、デュアルブートはgpt6
になるはずですが「Tab」キーを押してチェックしましょう。
その際にストレージのUUIDも表示されるので、
チェックしてroot=UUID=の後にいれます。間違えると起動しません。
で、間違いがなければUbuntuが起動します。
ここまで良いですね?注意して下さい。

その後は、bootia32.efiを偽装します。
まず端末から一応Rootになっておきます。

sudo su
cp /boot/efi/EFI/Microsoft/Boot/bootmgfw.efi /boot/efi/EFI/Microsoft//Boot/bootmgfw.efi.old
cp /boot/efi/EFI/ubuntu/Boot/bootia32.efi /boot/efi/EFI/Microsoft//Boot/bootmgfw.efi

という感じで上書きします。
一応元ファイルは残しておきます。
このファイルを切り替える事でGrubかWindowsBootManagerか
を切り替えるしかないらしいです。
一応消さないように。
間違っていたら他のファイルを。
で再起動。

ここまで進んで初めてタブレットだけでUbuntuが起動します。
で再起動したら今度はまたブートローダーで
「Advanced Ubntu17.10〜」を選んで
一番上のKernel(多分kernel4.13-16のはず?)にして
「E」キーを押して今度はquietの前に「i915.modeset=0 reboot=pci」を付けて「F10」。
これでやっとUbuntuのGUIが起動します。
何故でしょうね?

●問題点

・grubの切り替えをbootmgfw.efiの上書きしか対応出来ない。
・無線LANは最初は使えない。要設定。
・Bluetoothも使えない
・タッチスクリーンはOK
・GPUは要設定
・画面を回転させるか、スクリーンセーバーなどで落ちると
 復帰しない。原因不明。
 省電力モードはOFFにしておきましょう。
・intel_idle.max_cstate=1を付けないとフリーズするかも。

●まとめ
かなり悩みましたが一応解決。
ArchWikiって凄いですね・・・
USBメモリブートだと簡単に起動するんですが。
他の機種でも同じ現象はあるのでご注意を。
一度起動してしまえば、なんとかなります。
安く入手可能なので、是非デュアルブートして使いこなしましょ。

【W4-820の最新記事】
posted by kapper at 20:17 | Comment(5) | W4-820
この記事へのコメント
Kapper 様

Rと申します。
W4-820にAndroid(PhoenixOS)を入れてデュアルブートにしようと試みて、進まなくて、このブログにたどり着きました。
このブログに一筋の光を感じたところです!(^^)!
しかしながら bootx64.efiは手に入れたものの、その後の「ハードドライブ (FS1:) 上の ESP パーティションの Microsoft ディレクトリに配置してください。→どこなの?
EFI シェルを起動して以下を実行します:→どうやって起動するの?でつまずいています…。
何卒詳しく教えていただければ助かります<(_ _)>
Posted by R at 2019年02月11日 17:10
コメントありがとうございます。
PhoenixOSはあまり使っていませんが、
Windows用のEXEインストーラーを使ってください。
インストールガイドはこちらです。

http://www.phoenixos.com/help/installation/help-en

Grub2の設定は難しいので割愛します。

Posted by Kapper at 2019年02月12日 07:18
Kapper 様

Rと申します。
早速の返答ありがとうございます。
こちらで知りたいのは、

1.その後の「ハードドライブ (FS1:) 上の ESP パーティションの Microsoft ディレクトリに配置してください。→どこなの?
2.EFI シェルを起動して以下を実行します:→どうやって起動するの?

です。PhoenixOSは既にインストールしたのですが
デュアルブートしないために、以上のことが知りたいのです。お忙しいところ誠に申し訳ありませんが基本的なことを教えてください。
Posted by R at 2019年02月12日 18:18
申し訳ありません。
その上のbootx64.efiの記載はArch Wikiからのコピペです。
間違いやすいので、bootia32.efiへ修正しました。

まずAndroid-x86のGrub2ブートローダーはデュアルブート非対応です。
自分で理解した上でテキストファイルから書き直す必要があります。
また質問の本文からUEFIの構造を理解されていない、と解釈しています。
何故かと言うと、このW4−820はUEFI32bit機種なので
必要なファイルはBootx64.efiではなくBootia32.efiです。
まずブログ本文にありますように、Arch Wikiを一通り読んでください。
知識として理解してください。
起こり得る事はすべて自己責任でお願い致します。

https://wiki.archlinux.jp/index.php/Unified_Extensible_Firmware_Interface


次にWindowsのEFIファイルの置き場所ですが、
危険なので当然Windowsから読み書きできない様にロックしてあります。
つまりUSBメモリかなにかからLinuxを起動してSSDの/EFI/Bootフォルダを
マウントして読める様にする必要があります。
そこにWindowsとLinuxのブートファイルが置いてあります。
そのファイル名を書き換えます。
ブログではUbuntuを入れた後にGrubを手作業で入力しています。
ちゃんとブログにかいてあるとおりです。
次にgrub.cfgの設定を書き換える必要がありますが、
Ubuntuには公式に自動でデュアルブート出来る様になっていますが、
Android-x86ではこの部分が対応していませんので起動しません。
手動で書き直す必要がありますが、上級者でも難しいです。ご注意を。


もしこの書き込みの内容を読んでご自身で理解できなければ、
まず他の機種で試してみてください。
多分ブートローダーを破壊してWindowsも起動しなくなります。
もう少し新しい世代の他の機種ならもっと簡単です。
再度申し上げますが、慣れるまで他の機種でテストしてください。
自己責任でお願い致します。
Posted by Kapper at 2019年02月12日 19:23
Kapper 様

Rと申します。
早速の返答ありがとうございます。
ハードルが高いことを改めて認識しました。
実際のところW4−820以外のノートとディスクトップはRemix_OSを入れてデュアルブートしているのですが、Remix_OSはタッチパネル不可の為、PhoenixOSを入れてデュアルブートできればと試みたところでした。
Linux、Ubuntuは知識がないので、少し勉強してからトライするか考えてみます。
Posted by R at 2019年02月13日 18:05
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ