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

Linux ブログランキングへ

2016年09月24日

OpenSuse改造日記 Windows10用Bai-Trail世代中華タブレット Win-70B OpenSuse42.1インストールテスト編 その1

CtAdtplVIAA9Zk7.jpg

Ubuntuが中華タブレットにある程度問題ない事が分かりましたので
次はOpenSuseを入れてみました。
Grubの設定とvmlinuz、initrd.imgがどこに保存されているのか
大変悩みましたが解決しました。
ドライバ関係を除くと問題なさそうです。
前回のほぼコピペです。

●Bay-Trail世代中華タブレットとOpenSuse42.1
Windows10タブレットがブームになったのが、
恐らくこのBay-Trail世代かと思います。
2014年から色々と語られ続けてきましたが、
Kernelの対応が遅れ、ドライバとUEFI32bitで悲しい思いを
してきたはずかと思います。
まあGrub2の設定だけなんですけど。

今回のテスト機は従来のと同じです。
Ubuntuの動作実績あります。

・KEIAN WIN-70b
・OS:Windows 10 Home 32bit
・CPU:Intel Bay Trail Z3735G 1.33GHz, 4C/4T CPU
・GPU:Intel HD Graphic(Gen7)
・メモリ:DDR3-L DRAM 1GB
・ストレージ:16GB
・ディスプレイ:7インチIPS 解像度1024 x 600
・タッチパネル:5 ポイントマルチタッチ
・カメラ:インカメラ 0.3M Pixel
・スピーカー:8Ω/0.8W スピーカー x 1
・インターフェイス:Mini HDMI x 1
   Micro USB 2.0 x1
   Micro SD slot(最大32GB) x1
   3.5mm オーディオジャック x 1,
・無線LAN:IEEE Wi-Fi 802.11 b/g/n
・Bluetooth:Bluetooth 4.0
・本体サイズ:188.5×108.5×8.5mm
・本体重量:約271g
・バッテリ / パワー:2600 mAh / 3.7 V / Li-Polymer 、 5V 1.5A
・発売日 2015年9月



秋葉原の某2F PCジャンクショップでOSなし品を
5980円で購入しました。
これUbuntuとか起動しなかったら完全にNG。
初心者は絶対手を出してはいけません。
格安中華タブレットです。

ですが、こいつネットで調べると結構大変で、
Linux使い泣かせの設計しています。
まあ2台目なので、慣れればなんとか。1回目地獄
今回も大体殆どこちらのサイト様を参考させていただきました。
大変感謝です。

 Windows tabletに遊ばれてみた part1 -- NEC TW708/basにubuntuを入れる。


●UEFI32bitとOpenSuse 64bitをインストール
Bay-Trail世代のCPUは64bit版なので、
当然OpenSuse42.1も64bit版が必要です。

ただし、Bay-Trail世代はUEFIが32bitなので
ブートローダー(Grub2)がそのまま入らない設計ですw
実はLinuxではUEFI32bitは標準対応は外してありますw
なので、通常のOpenSuseを使うと32bit版は全て32bit、
64bit版は全て64bitを使う必要があるのですが途中で止まりますw

・ハード 64bit⇒OpenSuse 64bit⇒UEFI 64bit⇒ブートローダー64bit
なら仮に標準でも何の問題もありません。
ただ実際は、

・ハード 64bit⇒OpenSuse 64bit⇒UEFI 32bit⇒ブートローダー64bit(NG)
となってしまい、Grub2を32bit版を後から入れる必要がありますw
つまりインストーラーが途中で落ちますw
面倒な設計ぢゃ

●あると便利なハード
・MicroUSB-USB変換コネクタ
・USBメモリ >2GB
・USBハブ
・USBキーボード
・USB無線LAN
・USBマウス

●USB-ISOイメージからOpenSuse42.1 64bitをインストール
まず、OpenSuse42.1の64bit版ISOをダウンロードしてきて
USBメモリに焼きます。
その際に/EFI/BOOT/にUEFI32をコピーして有効化します。
ここに書いてある様に

 Mouse Computerのスティック型PC m-Stick MS-NH1にUbuntuをインストールする。

https://github.com/jfwells/linux-asus-t100ta/blob/master/boot/bootia32.efi
のbootia32.efiをダウンロードして、
USBメモリのOpenSuseのEFI/BOOT/にコピーして保存します。
これでUEFI32bit機でOpenSuseがブート出来る様になります。
分かれば簡単ですが、そこにたどり着くまでの苦労が忍ばれます。

次にMicroUSBにUSB変換ケーブルとハブ、キーボードとメモリを刺します。
他のハードも空いていれば繋ぎます。

電源ボタンをONにしたら速やかに「DEL」キーを押して
UEFI設定画面を出します。BIOSと同じですね。
機種によってボタンは変わりますのでググるしか。
実はOSがWindows10であろうと無かろうと同じだったりします。

まずセキュアブートをOFFにします。
次にUEFIの起動順番をUSB OpenSuseと書いてあるメモリを先頭にします。
で一旦Save &リセット。
これでUSBから起動出来るはずですが、こいつの場合はNGです。
参考サイト様に書いてありますが、

 EFIメニューのboot overrideからUbuntuインストーラを起動

させる必要があります。
つまりOpenSuseを起動させる為に毎回UEFIの画面を出してBoot overrideから起動w
面倒。
でもそれだけだったり・・・
これに気づくか気づかないかと言われると間違いなく気づかない。
先達様に大変感謝です。

しかし電源を入れるとOpenSuseはUbuntuと違ってGrub画面で止まります。
インストーラーは起動しません(涙

 grub>

と画面に出てくるだけで、何をして良いかわかりません。手強いですw
まあUSB内のvmlinuzとinitrdを指定するだけです。
コマンドを手入力します。タブキーで入力省略も可能です。

 grub> linux (hd0,msdos1)/boot/x86_64/loader/linux root=/dev/mmcblk0p2 nomodeset reboot=pci (改行)
 grub> initrd (hd0,msdos1)/boot/x86_64/loader/initrd (改行)
 grub> boot (改行)
 
とgtub>以降のコマンドを3行入力します。
調べるの大変だったです。
多分ここまでやればBootします。
後は通常通りGUIのOpenSuseのインストーラーが起動するはずです。

OpenSuseのインストーラーが立ち上がりましたら、
パーティションを分けて設定。
と言いたい所ですが、Windows10入っていないので全削除
Windows10込みの場合は無理そう。

 以下のデバイスのパーティションテーブルが変更されます:
 MMC/SDカード1(mmcblk0)

 以下のパーティションは初期化されます:
 MMC/SDカード1(mmcblk0)のパーティション2をbtrfに
 MMC/SDカード1(mmcblk0)のパーティション3をスワップに

通常ですとmmcblk02のパーティションにインストールされるはずです。
要注意なので覚えておきましょう。

日本語やキーボード、時間設定の所を通過してインストール開始しますと
Ubuntuと違ってエラーが出ず再起動します。
ただ、後で調べてみた所、インストールされたGrub2は
grub2-x86_64-efiのパッケージが強制的にインストールされてます。
という事は、当然UEFI32bitタブレットでは起動しませんw
実はOpenSuseにはamd64(64bit)用にビルドしたgrub2-i386-efiの
パッケージは存在しません。i586ビルドだけでした。
勿論、i586ビルドのGrub2を入れても起動しませんw
という事は、OpenSuseはUEFI32bit機種に全く対応する見通しがありません。
全て設計上での想定外w
Grub2はソースコードからビルドする必要があります。
困ったな・・・
まだUSB無線LANやネットやyastは使えません。

ここで再起動
再びUEFI画面からUSB-OpenSuseをBoot overrideから起動
しつこいですが、この機種はUEFIでBoot overrideを選択しないとOpenSuseは起動しません。
また同じ様にGrub2画面がでたら再び、
手動でGrub2から設定します。

 GNU GRUB version xxx
 〜

 grub>

と出たらコマンドをて入力。Tabキーで補完入力しましょう。
直接パーティションとKernelをCUIで指定してOpenSuseを起動させます。
改行は普通にエンターキーです。
 
 grub> linux (hd1,gpt2)/@/.snapshots/2/snapshot/boot/vmlinuz-4.1.12-1-default root=/dev/mmcblk0p2 nomodeset reboot=pci 改行
 grub> initrd (hd1,gpt2)/@/.snapshots/2/snapshot/boot/initrd-4.1.12-1-default 改行
 grub> boot 改行

隠しフォルダの下の下にルートを作ってOSインストールされてんのかよ!!!
そんなの分かるわけ無いじゃん(大爆笑)
俺よく気づいたな、と。
実はノートPCにOpenSuseをインストールした際に、
grub.confは普通に/boot/vmlinuz~となっていました。明らかにおかしいw
どこかの別フォルダーにRootを作ってあるはずだと想定しましたw
ここまで一通り出来ていればOpenSuseが起動するはず。
USBに無線LANを繋いでYastでネットワーク認識しましょう。
端末画面とネットを繋げて確認しましょう。

●Grub2のビルド
また調べて次の機会に

●疑わしい点
起動しない場合は
まず、

・UEFI32bit⇒Boot overrideを選択
・Grub2 32bit⇒手動でソースコードからビルドしてインストール
  OpenSuseにはパッケージはありません。
・Grub2のコマンド入力位置(vmlinuzとinitrdの場所)が違う
 毎回変わる。危険。
・/boot/efi/EFI/bootia32.efiが無い
 ⇒sudo suでスーパーユーザーになってcpしましょう

この4点が怪しいです。
一度確認してみましょう。

結論ですが、UbuntuではISOから直接ブートローダーが起動するのは、
UEFI32bitとUEFI64bitのGrub2が両方入っていて自動認識するだけで、
OpenSuseがISOから起動しないのはGrub2 UEFI32bitのパッケージがそもそも無い所が原因です。
いやあ流石にそこまでは分からないっす。ええ。

OpenSuseコミュニティの皆様に提案

1.grub2-i386-efiのamd64ビルドパッケージを作ってください
  それを自動選択すればインストーラーが起動するはずです。
  無いとかなりヤバイです。もう大抵の人が脱落します。
2.可能であれば、grub2の/@/.snapshots/2/snapshot/~の場所は変えた方が良いです
  毎回~/2/~では無いので、数字は毎回変わります。
  凄くヤバイです
3.bootia32.efiは最初からISOに入っていると楽かと。
  まあLinuxとしてのポリシーもあるかと思いますが
4.ドライバ関係は他のディストリと全く同じなのでKernel関係
  情報はもらってきましょう。


●Wifiとbluetoothドライバ
参考サイトを見ると、

 Wifi:rtl8188bs

だそうな。
githubにドライバソースコードがありますので、
make, sudo make install するだけです。

 sudo apt install build-esential linux-generic git-cvs
 git clone https://github.com/lwfinger/rtl8188bs.git

後はどちらもmake, sudo make installするだけです。

 cp /rtl8723bs
 make
 sudo make install

ビルドしたら再起動



●まとめ
内容は殆ど前回のコピペです。
一応なんとかOpenSuseが起動するはずです。
元のOSがWindows10であろうと無かろうと
UEFI32bitの設定すればLinuxは起動します。
慣れたら色々なディストリを入れてみましょう。

OpenSuseは日本語英語含めてタブレットの情報がやけに少ないので大変苦労しました。
特にGrub2の情報は少なく、結局Kapperの個人の勘しかありません。
1ヶ月悩んで無事回答にたどり着きましたが全て想定外でした。
Ubuntuはそうやって設計していたんだな、と逆に勉強になりましたw
OpenSuseブロガーは自分のやったことを記録に残せ。
日本でUbuntuに情報力で一生勝てないよ・・・
ユーザー全くついてこれないね・・・
そりゃUbuntu使います罠。

でも中華タブレット、普通のWindowsタブレットでOpenSuseが動くのは良いですね。
大変勉強になりました。
是非遊んでみましょう。
posted by kapper at 08:07 | Comment(0) | OpenSuse
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

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

Linux ブログランキングへ