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

Linux ブログランキングへ

2017年10月24日

openSUSE改造日記 Mainline Kernel レポジトリ登録 インストール編 その5


今回はWindowsタブレットで苦戦している
openSUSEのKernelドライバ対策として、
MainlineKernelのレポジトリを登録して
最新のKernelを使う方法をブログにします。
とは言ってもネットで公開されている内容そのままです。
機種によってはopenSUSE Leap 42.3のkernel4.4.90では
辛い事もたくさんあるので、自己責任で試してみましょう。

●openSUSEとMainline Kernel
openSUSE Leapは最近安定志向で、Kernel4.4系を採用しています。
所が、新しいハードウェアを使うには
Firmwareがやや古いので不便です。
機種の仕様に合わせてKernelを新しくしたいです。
Linusが公式に発表しているMainlineKernelは
openSUSEでもレポジトリ化されていまして、
登録すればzypperでも使えます。
参考はこちら。というかそのまま。
感謝です。

How to install Linux Kernel 4.12 on OpenSUSE


●Mainline Kernelのインストール
まずZypp.confの設定。
下記の2行を修正します。
端末から、

sudo nano /etc/zypp/zypp.conf

で下記2行を修正。

multiversion = provides:multiversion(kernel)

multiversion.kernels = latest,latest-1,running,oldest

僕の場合は下の行の,oldestを追加しました。
次はレポジトリの追加。端末から

sudo zypper addrepo -f http://download.opensuse.org/repositories/Kernel:/HEAD/standard/ kernel-repo

で許可すれば登録出来るはずです。
後はアップグレード

sudo zypper dist-upgrade -r kernel-repo

これで更新されるはずです。
後はブートローダーの/boot/grub/grub.cfgを編集して
新しいKernel名に修正しましょう。

●まとめ
簡単に更新できます。
新しいドライバを追加して更新できます。
ただ、これの課題は最初のKernelでちゃんと起動して
ネットにつないで、ブートローダーを修正出来るか?です。
新しいハードの場合、起動しないことが多いので
起動しない場合なんともなりません。
ご注意を。
posted by kapper at 07:13 | Comment(0) | OpenSuse

2017年10月22日

#openSUSE Asia Summit 2017 1日目感想 #opensuseasia17

suta-to.jpg
先日は日本初開催のopenSUSE Asia Summit2017に参加しました。
ブログに残します。
本日もLibreofficeMINIカンファレンスと共同で
行いますので是非ご参加を。
調布の電気通信大学です。

●openSUSE Asia Summit2017
openSUSE japanユーザーグループの竹山さんを中心に
各国のアジアで開催されるカンファレンスを
日本で初開催されました。
竹山さんと関係者の皆様大変お疲れ様でした。
Twitterでその苦労っぷりは伝わってきました。

https://events.opensuse.org/conference/summitasia17

ライブストリーミングもやっていますので、
遠隔の方もセミナーをどうぞ。

http://opensuse.labolive.com/


会場ではインドネシアや中国、欧米などから沢山の
海外参加者がいて国際会議としてとても盛り上がりました。
参加登録者は2日間で180人前後でしょうか。
飛び入り参加しても、まあ問題ないでしょう。
発表要請がありましてKapperも30分のトークをさせて頂きました。
また東海道らぐ共同ブースでしまだ先生中心に
ブース展示もさせて頂きました。
kaijyou.jpg

全体像としてはかなり参加者が多いな、という所と
いつものOSCのメンバーが多数参加しているな。
そりゃ、東海道らぐ東京メンバーと遠征メンバー、
小江戸らぐメンバー、openSUSEjaとLibreofficeユーザーグループ
Debian関係者などなど常連メンバーばかりです。
また海外遠征の方々も多数います。
また学生さんやopenSUSEを使っていない方々も
多数来訪されました。
地方のOSC以上の熱気です。驚きました。

まあでもガジェヲタは関係者には少なかったかな・・・
でもopenSUSE会長 ChairemanエンジニアのRichard Brown‏さんが
GPD-Pocketを使っていた所を見るとやはり
世界万国ガジェッターは共通だなぁと。


●英語プレゼン発表
happyou.jpg
今回英語発表練習をひっそりやっていましたので、
昼間はブースにいなくて関係者各位すみません。
今回は日本語と英語の2カ国語表記にしました。
英語の発表では初の試みです。
文字数が多くなりすぎて申し訳ありません。
OSCとは違って・・・発表が全部英語なのでカンペと練習が
不可欠なのが刺激があってまた良かったです。
終わった後で質疑応答の際に「英語が下手くそ」って言われました(笑
カンペは一式作って練習したのですが緊張して頭に入ってきません。
大変すみませんでしたw
発表資料はこちらです。
Slideshare版から発表版はちょっと直しています。
MainlineKernelの当たりで。
SlideshareはRe-Uploadができなくなってしまったのでご理解を。




http://kapper1224.sakura.ne.jp/Netwalker%20osc%20openSUSE201710.pdf


発表が始まると、最初部屋には10人位だったのですが、
人が入り始めて40人前後まで。
驚きました。
だって、4セミナー同時開催で参加者たぶん120人前後。
ブース含めると分散されるだろうと思っていたので・・・
こんなマニアックなネタで・・・
OSC京都よりもかなり多かったです。
ありがとうございました。
東海道らぐ他でも英語の発表練習したいですね・・・

●ブース展示
今回はしまだ先生の東海道らぐ共同ブースに
タブレットとGPD-WINを展示しました。
GPD-Pocketは発表の際のプロジェクターが映らない時の対策用
で僕が持っていました。
KapperはLinux分野でのガジェヲタ最強です(違
ragu.jpg

・GPD-WIN
もう発売してから1年が立ちますが、見てくれる人はいました。
ゲーム仕様向けなのでLinuxは文字が読みにくいかもしれませんが。
UEFI64bit対応機種なのでKernelのバージョン次第では使いやすいです。

・GPD-Pocket
ブースには展示していませんでしたが、
机の上に置いておくと10人位が触らせてくれと
質問がありましたのでどうぞと(w
やっぱりまだ珍しいらしいです。
Ubuntu Linux対応していますのでKernel4.13以降なら動きます。
openSUSEはインストールがKernelのバージョンの関係で
実際にブートが難しく大変なので今日は断念しました。

・ASUS T100TA
Bay-Trail初期の機種でKernel4.4でほぼ対応している稀な機種。
完成度が高いです。HDD内蔵型オススメ。
openSUSEの様にKernel4.4.90などを採用している機種には
まさに神機種。
最近のArchやUbuntuなどはKernel4.13を採用しているので
他のタブレットでも同等レベルには使える様になっていますが。
展示物はopenSUSEをインストールしてKernel4.14RCにあげてます(ぉ
なので基本完璧です。
どや、>openSUSE勢

・OS無し4980円 Dell VenuePro10 5055シリーズ
最近Yahooで売られていた企業リース流れ品?
定価55,000円って考えると爆安です。
今は売り切れなので入手出来ませんので。問い合わせなしで。
また多分この手のはどこかから出てくるでしょう。
Wacomのタッチスクリーンを使っていますので
Kernel4.4から普通に使えます。openSUSEで実験済みです。
Ubuntu17.10を展示していましたが、
完成度の高さに僕自身が驚きw
実物を見るとやはり全然違います。中華の安物ではありませんね。

他はほたさんのMastodonインスタンスの説明と
しまだ先生のシール。海外の方々にも大人気ですね。
OpencoconのシンクライアントやRaspberryPiのライブCD焼き
などなど。
よろしこ。

カバンの中身一式。記念写真
tenji.jpg

●Tumbleweedの謎について
Tumbleweedで起動しないと発表したら、
中国のエンジニアの方が見せろと。
で写真含め見せたら
「これはSystemDのバグだ。
 最新版では治っているはずだから大丈夫だ。」
とのコメント。ありがとうございます。

しかし、openSUSE Japan関係者や一般ユーザーを含め
実際にTumbleweedを使っている人いるか?と裏でこっそり質問していくと
内情はほぼゼロ(ぉぃ
使いましょうね(汗
僕の方では一生懸命使いこなそうと四苦八苦しているのに・・・
Tumbleweedは起動しないからLeapからアップデートして見るとか・・・謎
えっ。Tumbleweedって動かない、そういうものでしょ、とか(爆

TumbleweedとGentooと大きく違う点があって
Gentooはローリング・リリースでもunstable版とStable版が
ちゃんと分かれておりテストに合格したものから
Stableにリリースされる所。
ArchLinuxでも一応短いけどテスト期間は存在する。多分。
Debianとかでもそうだけど、そこのテスト線引きは重要ですよと。
ローリング・リリースと言うならStable版に相当の手間をかけるべき・・・・
特にChromebookを使うと、商用に耐えられるだけあって
ローリング・リリースでもかなりのパッケージ管理の神経質さに感心します。
と呟いておく。

●さすがは電通大
Latex勉強会とな・・・
さすがは電通大
周りに差をつけろ
何と戦えば良いんだろう(爆
一同大爆笑

Latex.jpg


●懇親会
懇親会では関係者がパーティ形式で。
かなりの人数が参加していました。
色々な人と会話しました。楽しかったです。
OSCと比べると炭水化物が少なくて、最後に出てきた
皆さんパスタとピラフにがっつり食いついていました(ぉぃ
お腹が膨れないと(ぉ
まあOSCの場合、大人の欠食児童が多いから
炭水化物入れないとビールとか飲料でコストかかりますもんね・・・(マテ
あちらはおにぎりと焼きそばが驚くほど山のように出てきますしw

で急遽、懇親会LT大会。
しまだ先生からお前らみんな発表しろと言われて
東海道らぐ勢とLibreOffice勢がみんな5分間発表しました。
日本語ならともかく英語のLT大会の資料なぞ用意していなかった・・・
まあ、いつものOSCのメンバーなのでノリがそのままですかもね。
posted by kapper at 09:25 | Comment(0) | OpenSuse

2017年08月16日

#openSUSE Asia Summit 2017に参加します

突然ですが、月曜日にたけやまさん他沢山のメンバーの方々に
お勧めを頂きまして参加申請しました。

openSUSE Asia Summit 2017
10月21、22日東京の電気通信大学です。
セミナーとブース出展もあるそうな。

openSUSE.Asia Summit 2017 Tokyo を開催します!





直前まで紆余曲折したらしいですが、
かなりの発表者が集まった様子で良かったですね。
締め切り直前まで色々ありましたが、ホスト国の日本として参加者が集まった様子。
一般参加なので・・・・落ちたらどうしよう(笑
コミュニティの方々を優先して英語プレゼンで鍛えさせよ(マテ






LTのセッションはまだ枠があるかもしれません。
我こそはopenSUSEでも戦える!という方も募集中。
全世界へアピールするチャンス
posted by kapper at 18:50 | Comment(0) | OpenSuse

2017年03月08日

OpenSuse改造日記 キーボード付きBay-Tailタブレット ASUS Transbook #T100TA #OpenSuse 42.2 grub2 i386 UEFI32bit ビルド設定Kernel4.10インストールテスト編 その4

opensuse.jpg

OpenSuse42.2をT100TAに入れた記録をします。
結構苦労しましたのでメモしないと。
OpenSuseエンジニアの反応が薄いのが玉にキズですw
ドキュメントがないので自分でテストして作ります。

●OpenSuse42.2とWindowsタブレット
OpenSuseはメジャーなLinuxディストリで
スタンダードな作りなので本来気にする必要がないのですが、
タブレットのドキュメントがあまりになさ過ぎて
苦労すると思います。
なのでインストールの記録を残します。

基本的には前回のWIN-70Bに入れた時の内容と殆ど同じですが、
いくつかやり方を見直した所があります。
余計面倒になりましたが、Kernelとブートローダーの
情報をアップデートしております。
これを元に他のタブレットでも動かしてみてください。

変化点として
・OpenSuse42.2に変更
・ブート時のgrub.cfgの設定で
 linux (hd1,gpt6)/@/boot/vmlinuz 〜
 と言った感じで.snapshotsと隠しファイルにしなくても良くなった。
・kernel4.4なので動くデバイスが増えた
 ただし、それでも十分古いので初期のBay-Trail以外
 Kernelバグの影響で動かすのが厳しい
・Kernel4.10に入れ直した。
 その際にroot=/dev/mmcblk0p6の指定で認識せず
 rootフォルダが認識しなくなった。起動しない。
 update-grubを用いてUUID指定したら起動した。超面倒
・Intel Graphics Driverが自動認識。
 これはKernelを4.10に上げたUbuntuと同じです。
 Blackscreenの問題が解決するので安定起動できます。
 本来の高解像度になります。
・grub2-efi-i386は相変わらずソースコードからビルド
 面倒。
・ローリング・リリースのTumbleweed版はLive版、リリース版ともに
 現時点ではフリーズして落ちて起動しない。使えない。
・今回はWindows10とデュアルブート。
 パーティションの設定方法を微妙に変えています。要注意。
 (hd0,gpt2)⇒(hd1,gpt6)

僕の方は結構レベルUPしましたが、OpenSuseは相変わらず。
UEFI32bitにおいて面倒極まりないディストリです。
英語の資料を発信して全世界のOpenSuse使いに文句を言いたいw
マジで。
このままだと辛くてたまらん。

●基本的なインストール方法 過去ブログ参照
インストールは基本的には全く同じです。

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

 OpenSuse改造日記 Windows10用Bai-Trail世代中華タブレット Win-70B OpenSuse42.1 grub2 i386 UEFI32bit ビルド設定テスト編 その2

●OpenSuse42.2インストール。
まずUSBメモリに焼いたOpenSuseに
bootia32.efiをダウンロードして、
USBメモリのOpenSuseのEFI/BOOT/にコピーして保存します。

セキュアブートをOFFにしてUSBから起動します。
CUIのgrub画面になったら

 grub> linux (hd0,msdos1)/boot/x86_64/loader/linux root=/dev/mmcblk0p2 nomodeset intel_idle.max_cstate=1 reboot=pci (改行)
 grub> initrd (hd0,msdos1)/boot/x86_64/loader/initrd (改行)
 grub> boot (改行)

これで初回は起動します。
今回はWindows10とデュアルブートします。
容量を自動設定で18GBほど確保しました。

 MMC/SDカード1(mmcblk0)のパーティション6をbtrfに

設定されました。
単独インストールだとパーティション2か3
デュアルブートだとパーティション5か6
で今回は6。ちゃんと覚えておきましょう。
起動する際に忘れていたらbtrfのパーティションを探します。

初期ではWifiは使えませんので有線LANカードを必ず刺しましょう。
自動アップデートが有効になるので限りなく楽です。
42.1の時はインストールエラーが出ましたが
今回42.2の時は出ませんでした。

再起動してまたUSBから起動します。
CUIのgrub画面になったら

 grub> linux (hd1,gpt6)/@/boot/vmlinuz-4.4.49-16-default root=/dev/mmcblk0p6 nomodeset intel_idle.max_cstate=1 reboot=pci (改行)
 grub> initrd (hd1,gpt6)/@/boot/initrd-4.4.49-16-default(改行)
 grub> boot (改行)

ここらへんの設定は構成によって毎回変わりますw
怖いです。
TABキーで予測検出できるので最大限に使いましょう。
でないとわかりません。
gpt6は今回のデュアルブート時の自動設定です。
もちろん、root=/dev/mmcblk0p6の6もgpt6のパーティションから来ています。
マジで凄く分からないので要注意。

ここで神に祈ったら再起動します。
起動しなかったら設定が間違っているか
Kernelバグでフリーズしているかどちらかですw
また、一番あるのがroot=/dev/mmcblk0p6の記載間違え。
TABキーで予測入力できないので一番悩み苦しみますw
マジで。

起動して有線LANからネットに繋いだら、
まずgrub2をソースコードからビルド。
前回と同じです。

まずビルド用のパッケージを入れます。
端末から

 zypper install autogen automake autoconf bison gcc flex make git git-cvs nano

でgrub2をダウンロードしてビルドします。

 sudo su
 git clone git://git.savannah.gnu.org/grub.git
 cd grub
 ./autogen.sh
 ./configure --with-platform=efi --target=i386 --program-prefix=""
 make
 make install
 cd grub-core
 ../grub-install -d . --efi-directory /boot/efi --target=i386
 ../grub-mkimage -d . -o bootia32.efi -O i386-efi -p /boot/grub ntfs hfs appleldr boot cat efi_gop efi_uga elf fat hfsplus iso9660 linux keylayouts memdisk minicmd part_apple ext2 extcmd xfs xnu part_bsd part_gpt search search_fs_file chain btrfs loadbios loadenv lvm minix minix2 reiserfs memrw mmap msdospart scsi loopback normal configfile gzio all_video efi_gop efi_uga gfxterm gettext echo boot chain eval
 sudo cp bootia32.efi /boot/efi/EFI/opensuse/


コピペですがOKのはず。
まだgrub.cfg書き換え前です。要注意。

●Kernel4.10インストール
次はgrub.cfgですが今回はKerrnel4.10を先に入れます。
参考はこちらから。

Install Linux Kernel 4.10 in openSUSE

端末から

sudo nano /etc/zypp/zypp.conf

下記の行にoldestを追加。

multiversion = provides:multiversion(kernel)
[...]
multiversion.kernels = latest,latest-1,running,oldest
[...]

保存したら終了してレポジトリを登録

sudo zypper addrepo -f http://download.opensuse.org/repositories/Kernel:/HEAD/standard/ kernel-repo

これで成功したら、こんな文章が出るはずです。

Adding repository 'kernel-repo' ..........................................[done]
Repository 'kernel-repo' successfully added
Enabled : Yes
Autorefresh : Yes
GPG Check : Yes
URI : http://download.opensuse.org/repositories/Kernel:/HEAD/standard/

確認したらアップグレード。

sudo zypper dist-upgrade -r kernel-repo

インストール完了です。
このままではブートローダーで起動しません。

●Kernel4.10のブートローダー設定
ここからは実はヤケですw
実際分からんもんw
実はkernel4.10になるとroot=/dev/mmcblk0p6で起動しません。
いやKernel4.4だと起動するんですけど(汗
grub.cfgの自動設定してみました。

まず/etc/default/grubの設定を追加

sudo nano /etc/default/grub

下記1行を追加して保存。
resume=/dev/mmcblk0p6 は自分のパーティションを指定。

GRUB_CMDLINE_LINUX_DEFAULT="i915.modeset=0 intel_idle.max_cstate=1 reboot=pci resume=/dev/mmcblk0p6 splash=silent quiet showopts"

で、UbuntuやDebianでよく使うupdate-grubを使います。
ただしOpenSuseにはupdate-grubコマンドはないので自作します。
こちらを参考というかそのまま。

Thread: grub2 update-grub?

端末から、

nano update-grub

下記をコピペして保存します。

#!/bin/sh
set -e
exec grub2-mkconfig -o /boot/grub/grub.cfg "$@"

保存したら、実行形式に

sudo chmod +x update-grub
sudo cp update-grub /usr/sbin/

これでOKです。
では実行

sudo update-grub

ガシガシと自動作成されて保存されます。
ただしこのままでは起動しませんw
大々的に書き換えが必要です。
以前作成した内容を参考に。

 grub> linux (hd1,gpt6)/@/boot/vmlinuz-4.4.49-16-default intel_idle.max_cstate=1 reboot=pci (改行)
 grub> initrd (hd1,gpt6)/@/boot/vmlinuz-4.4.49-16-default(改行)
 grub> boot (改行)

を例にしてここの

 linuxefiと
 initrdefiを

linux (hd1,gpt6)/@/boot/vmlinuz-
initrd (hd1,gpt6)/@/boot/initrd-

に変更します。基本的に全部です。
エディタで置換すると便利です。
パーティションを絶対パスにしないと起動しません。
あとはrootをUUIDに設定します。
これは自動設定通りで良いはずです。
これを保存したらOKのはずです。
再起動した際にUEFI画面でgrubとあるのでそれを起動します。
実例は最後にメモを残しておきます。
再起動して無事起動できればOKです。
Kernel4.10ではIntel Graphics Driverが自動起動しますので
nomodesetやi915.modeset=0などのフレームバッファ設定は消して
OFFにしておきましょう。Blackscreenにはならないはずです。

●まとめ
T100TAでもOpenSuseでちゃんと起動、
アップデートできました。
結構強引ですがひとまずOK。
Wifiなどのドライバは別途設定。
だれかブートローダーのパッケージと設定を。
面倒です。
あとT100TAはKernel4.4でも問題なく起動する機種なので
ちゃんと起動しましたが、
Bay-Trail末期とCherry-Trailタブレットは起動しないので注意。
42.3を待つしかなさそうです。


●grub.cfg実例
ちなみに下記が僕の環境の実例です。


# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set btrfs_relative_path="y"
export btrfs_relative_path
if [ -f ${config_directory}/grubenv ]; then
load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
load_env
fi

if [ "${env_block}" ] ; then
load_env -f "${env_block}"
fi

if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
if [ "${env_block}" ] ; then
save_env -f "${env_block}" next_entry
fi
set boot_once=true
else
set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi

function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}

function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}

if [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
else
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
fi
font="/usr/share/grub2/unicode.pf2"
fi

if loadfont $font ; then
echo "Please press t to show the boot menu on this console"
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=ja_JP
insmod gettext
fi
terminal_output gfxterm
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
else
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
fi
insmod gfxmenu
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans-Bold14.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans10.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/DejaVuSans12.pf2
loadfont ($root)/boot/grub2/themes/openSUSE/ascii.pf2
insmod png
set theme=($root)/boot/grub2/themes/openSUSE/theme.txt
export theme
if [ x${boot_once} = xtrue ]; then
set timeout=0
elif [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=8
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=8
fi
if [ -n "$extra_cmdline" ]; then
submenu "Bootable snapshot #$snapshot_num" {
menuentry "If OK, run 'snapper rollback' and reboot." { true; }
}
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/10_linux ###
menuentry 'openSUSE Leap 42.2' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-b2c5a95d-8054-4025-a339-a1dd902ad3f2' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
else
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
fi
echo 'Linux 4.10.0-1.g12a7a6d-default をロード中...'
linux (hd1,gpt6)/@/boot/vmlinuz-4.10.0-1.g12a7a6d-default
root=UUID=b2c5a95d-8054-4025-a339-a1dd902ad3f2 ro ${extra_cmdline} intel_idle.max_cstate=1 reboot=pci resume=/dev/mmcblk0p5 splash=silent quiet showopts
echo '初期 RAM ディスクをロード中...'
initrd (hd1,gpt6)/@/boot/initrd-4.10.0-1.g12a7a6d-default
}
submenu 'Advanced options for openSUSE Leap 42.2' --hotkey=1 $menuentry_id_option 'gnulinux-advanced-b2c5a95d-8054-4025-a339-a1dd902ad3f2' {
menuentry 'openSUSE Leap 42.2, with Linux 4.10.0-1.g12a7a6d-default' --hotkey=2 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-1.g12a7a6d-default-advanced-b2c5a95d-8054-4025-a339-a1dd902ad3f2' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
else
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
fi
echo 'Linux 4.10.0-1.g12a7a6d-default をロード中...'
linux (hd1,gpt6)/@/boot/vmlinuz-4.10.0-1.g12a7a6d-default
root=UUID=b2c5a95d-8054-4025-a339-a1dd902ad3f2 ro ${extra_cmdline}
intel_idle.max_cstate=1 reboot=pci resume=/dev/mmcblk0p6 splash=silent quiet showopts
echo '初期 RAM ディスクをロード中...'
initrd (hd1,gpt6)/@/boot/initrd-4.10.0-1.g12a7a6d-default
}
menuentry 'openSUSE Leap 42.2, with Linux 4.10.0-1.g12a7a6d-default (recovery mode)' --hotkey=3 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.10.0-1.g12a7a6d-default-recovery-b2c5a95d-8054-4025-a339-a1dd902ad3f2' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
else
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
fi
echo 'Linux 4.10.0-1.g12a7a6d-default をロード中...'
linux (hd1,gpt6)/@/boot/vmlinuz-4.10.0-1.g12a7a6d-default
root=UUID=b2c5a95d-8054-4025-a339-a1dd902ad3f2 ro ${extra_cmdline}
echo '初期 RAM ディスクをロード中...'
initrd (hd1,gpt6)/@/boot/initrd-4.10.0-1.g12a7a6d-default
}
menuentry 'openSUSE Leap 42.2, with Linux 4.4.49-16-default' --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.49-16-default-advanced-b2c5a95d-8054-4025-a339-a1dd902ad3f2' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
else
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
fi
echo 'Linux 4.4.49-16-default をロード中...'
linux (hd1,gpt6)/@/boot/vmlinuz-4.4.49-16-default
root=UUID=b2c5a95d-8054-4025-a339-a1dd902ad3f2 ro ${extra_cmdline} i915.modeset=0 intel_idle.max_cstate=1 reboot=pci resume=/dev/mmcblk0p5 splash=silent quiet showopts
echo '初期 RAM ディスクをロード中...'
initrd (hd1,gpt6)/@/boot/initrd-4.4.49-16-default
}
menuentry 'openSUSE Leap 42.2, with Linux 4.4.49-16-default (recovery mode)' --hotkey=1 --class opensuse --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-4.4.49-16-default-recovery-b2c5a95d-8054-4025-a339-a1dd902ad3f2' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
else
search --no-floppy --fs-uuid --set=root b2c5a95d-8054-4025-a339-a1dd902ad3f2
fi
echo 'Linux 4.4.49-16-default をロード中...'
linux (hd1,gpt6)/@/boot/vmlinuz-4.4.49-16-default
root=UUID=b2c5a95d-8054-4025-a339-a1dd902ad3f2 ro ${extra_cmdline}
echo '初期 RAM ディスクをロード中...'
initrd (hd1,gpt6)/@/boot/initrd-4.4.49-16-default
}
}

### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###

### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###

### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (on /dev/mmcblk0p1)' --class windows --class os $menuentry_id_option 'osprober-efi-1A27-B3CF' {
insmod part_gpt
insmod fat
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 1A27-B3CF
else
search --no-floppy --fs-uuid --set=root 1A27-B3CF
fi
chainloader /EFI/Microsoft/Boot/bootmgfw.efi
}
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###

### BEGIN /etc/grub.d/80_suse_btrfs_snapshot ###
if [ -f "/.snapshots/grub-snapshot.cfg" ]; then
source "/.snapshots/grub-snapshot.cfg"
fi
### END /etc/grub.d/80_suse_btrfs_snapshot ###

### BEGIN /etc/grub.d/90_persistent ###
### END /etc/grub.d/90_persistent ###

### BEGIN /etc/grub.d/95_textmode ###

# On EFI systems we can only have graphics *or* serial, so allow the user
# to switch between the two
hiddenentry 'Text mode' --hotkey 't' {
set textmode=true
terminal_output console
}
### END /etc/grub.d/95_textmode ###




posted by kapper at 21:07 | Comment(0) | OpenSuse

2016年10月02日

OpenSuse改造日記 Windows10用Bai-Trail世代中華タブレット Win-70B OpenSuse42.1 grub2 i386 UEFI32bit ビルド設定テスト編 その2

前回はWindowsタブレットにOpenSuseのインストールと起動まで。
今回はブートローダーのGrub2のインストールまでをネタにします。

●WindowsタブレットにOpenSuse
UEFI32bit機種にはブートしますが、
ブートローダーは別で入れないといけないです。
OpenSuseには64bitでビルドしたUEFI32bitのGrub2パッケージが標準に無いので
自分で作る必要があります。
ビルドしてみましょう。

参考はこちらのサイトです。

 http://qiita.com/shirotamago/items/a4b0c8863a492abe50ad

●Grub2のビルド
やり方は参考サイトを真似てみます。
まずビルド用のパッケージを入れます。
端末から

 zypper install autogen automake autoconf bison gcc flex make git git-cvs nano

でgrub2をダウンロードしてビルドします。

 sudo su
 git clone git://git.savannah.gnu.org/grub.git
 cd grub
 ./autogen.sh
 ./configure --with-platform=efi --target=i386 --program-prefix=""
 make
 make install
 cd grub-core
 ../grub-install -d . --efi-directory /boot/efi --target=i386
 ../grub-mkimage -d . -o bootia32.efi -O i386-efi -p /boot/grub ntfs hfs appleldr boot cat efi_gop efi_uga elf fat hfsplus iso9660 linux keylayouts memdisk minicmd part_apple ext2 extcmd xfs xnu part_bsd part_gpt search search_fs_file chain btrfs loadbios loadenv lvm minix minix2 reiserfs memrw mmap msdospart scsi loopback normal configfile gzio all_video efi_gop efi_uga gfxterm gettext echo boot chain eval
 cp /boot/efi/EFI/opensuse/grubia32.efi ../grub/

実はここで作ったgrub.cfgはまともに動作しませんでした。
Ubuntuからパクってきて自分でハックしました。
下記ファイルをテキストエディタで保存します。
grubが最初に読み込むファイルは/boot/grub/grub.cfgですので注意。

 nano /boot/grub/grub.cfg

書いて保存。
実はOpenSuseのはどうしても動かなかったので
UbuntuのUSBからパクってきまして、
自分でOpenSuse用に書き換えましたw


 if loadfont /boot/grub/font.pf2 ; then
  set gfxmode=auto
  insmod efi_gop
  insmod efi_uga
  insmod gfxterm
  terminal_output gfxterm
 fi

 set menu_color_normal=white/black
 set menu_color_highlight=black/light-gray

 menuentry "Boot OpenSuse42.1" {
  set gfxpayload=keep
  linux /@/.snapshots/2/snapshot/boot/vmlinuz-4.1.12-1-default root=/dev/mmcblk0p2 nomodeset reboot=pci,force quiet splash ---
  initrd /@/.snapshots/2/snapshot/boot/initrd-4.1.12-1-default
 }
 

保存して再起動します。
ブート画面でGrub2がテキストで表示されればOKです。
さすがUbuntu。そしてありがとうOpenSuse。
他の機種の場合、nomodesetを書き換えます。

 video=VGA-1:1368x768e

解像度に合わせて設定します。

●まとめ
凄く悩んで苦労しましたがやっとGrub2を入れました。
半自動でOpenSuseがWindowsタブレット上で起動します。
これで完動です。やった〜〜〜〜
すっげー悩みましたが、
最後はgrub.cfgを自分で書いて設定するというのが決めて(ぉぃ
ここまでやれば、OpenSuseでもUbuntuに負けない環境になります。
是非トライ
posted by kapper at 18:58 | Comment(0) | OpenSuse

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 ブログランキングへ