フレイドフォートonBlog

普通とか自由って何ぞや

タグ:SailfishOS

SailfishOS SDK Beta-1707-Qt5 が EA版で出た。
前回記事(その45)

EA版で、2.1.1.24が出ているがそれに合わせて SDKも出たようだ。
日付見ると、8月1日付で出てたみたい。

2.1.1系が出始めてから、Emulator等で更新してたけど、
どうにもしっくりいかない事が多かったので、
SDK同梱の Emulatorで無地状態を試せればと思っていた。
それまでの事は、別記事で書いてるのでそちらで(関連記事)。

今回の SDk更新は、
インストール済みの Mentenance Tools が
なぜか動かなくなってたので新規入れ直し。
動かなかった可能性を考えると、2.1.1のテスト用に
Emulatorだけ入れ直したりしたからだろうか。
インストーラーで上書きは弾かれたので、
一旦旧環境のフォルダを手動削除し、同じ場所へ再インストール。

これまで Mer SDK だったものが、
Sailfish OS Build Engine に名が変わってた。
動きに差は無いと思われる。

とりあえず、目的だった Emulatorで 2.1.1.24 の動き確認。
# pkcon install zypper fingerterm
# zypper in -t pattern jolla*tions jolla*apps
でざっくりとアプリ追加。普段は、この後さらに微調整。

起動時の引っかかりも無く、
ロック画面で、操作不能にはならずに進めた。
2.1.1.24の無地での追加が平気だとするなら、
問題は更新による影響だったと考えるけど、
果たしてそれは何処だったのか・・・。

ひとまず、細かいところは、また後程。

追記、2017-08-12 23:17
イメージ変換して、SDカードに書き込みそこから実機起動してみた。
結果、操作面では大丈夫そう。
更新した環境で問題が出ているのは、
何か大きな変化がどこかであったと推測する。
ただ、ネットブック上で起動した際に、
有線LANを内蔵は未認識なのでUSB接続の物を使ってるが、
2.1.1.24 だとデバイス認識していたものの
IPv4だけ認識されてないぽいのが気になった。
IPv6は使ってないけど、そこは認識されてるみたい。
旧版だと使えてた事を考えると、Kernel等の関係か?
そういえば・・・前の時、TX-70だとボード上の有線使えてたような・・・。
2.1.1.24でどうかは未確認。
機体毎の搭載物の差があるぽいな。
LANの話は二の次で、問題は更新環境と2.1.1系無地環境での差。
あとは、イメージ作成に関してか。
2.1.0系で作って起動する物は出来たけど、幾つか難有。
イメージ作成時に設定されてる何かが有りそうだが、その特定が出来てない。
少なくとも Nokia N9向けとかだと、その段階で調整がある。
現状、UIまですんなり動く環境は Emulator変換で得てるけど、
毎度だと面倒なので、どうにか確認しておきたいところだ。
これが分かれば、バージョン更新における変化も分かるかもしれない。
このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr Clip to Evernote

AsteroidOS を再度試してみる事にした。
と言っても、現行の OpenEmbeddedを使うものではなく、
SailfishOS Emulatorを土台にした場合のリトライ。

これまでの事も踏まえた纏め。
SailfishOS、Nemo 同様に lipstick compositor(Wayland)を使用。
github の AsteroidOS からソースは得られる。
現行の master だと Qt 5.8が対象ぽい。
SailfishOS 2.1.0.11ベースでは、Qt 5.6 なので 1.0-alpha のブランチを使う。
尚、現行ブランチは、master と 1.0-alpha の2種。

先日作った USBメモリー上の Nemo環境で試すことにした。
ハードはネットブック。
まず、開発系パッケージの追加。
githubからソースで得たのは、
qml-asteroid
asteroid-launcher
他にもアプリ類があるが本体はこの2つくらいか。
壁紙は別で
asteroid-wallpapers
を得る。

各々のブランチを 1.0-alphaに切り替えて、
qml-asteroid を導入後、asteroid-launcherを導入。

# cd qml-asteroid
# git checkout 1.0-alpha
# qmake -r && make all && make install

# cd asteroid-lancher
# git checkout 1.0-alpha
# qmake -r && make all && make install

元にあった Nemo Glacier UI は上書きで、AsteroidOSに置き換わる。
戻す時は、Nemoや SailfishOSのホームパッケージを入れ直せば良い。

この段階だと、表示は出るが背景が真っ黒なので壁紙を入れる。
asteroid-lancherのソースから以下の位置を確認。
/usr/share/asteroid-launcher/wallpapers/

github から asteroid-wallpapers を得て、
その中の 320x320/ の中身を先のディレクトリへ置く。
qml ファイルも有り、それも読み込まれる。

とりあえずここまでで、背景有りで時計表示と
他画面にロック、ライト、電池等の表示が出た。
ライトを押すと、ネットブックの液晶の明るさが変わった。
アプリ類も makeして入れてみたが、動かず。
AsteroidOSの UI上には、既存のアプリアイコンも確認出来ずだが、
ベースにした SailfishOSアプリなどは外部から動かせば動いた。
起動中アプリとしての表示も出た。
Nemo上だと、AsteroidOSアプリのアイコンは無画像ながら増えた。
動かない事は変わらず。
コマンドラインから動かしてエラーを見ても分からず。

今回の操作のどこで影響が出たのかわからないが、
起動の度にユーザーnemoのパスワードが変わるようになった。
SailfishOS Emulatorベースだと、1度設定したら変わらなかったはずだが、
Nokia N9にポーティングした環境のように毎度変わる状況になった。
rootのパスワードを設定してあるので、変更は容易だが、
どの段階で変更が行われているかは未特定。
自動変更されたパスワード自体は、
平文で特定のファイルに書き出されるので
それを見る事でも確認は出来る。

ひとまず、今回 AsteroidOS 1.0 Alpha のホームが動く程度は出来た。
masterだと、先に書いたように Qt のバージョンを上げる必要がありそうなので、
それはまた別環境でやるかベースにしてた SailfishOSの更新待ちかな。
OpenEmbeddedで一式作るならまだしも、
他のディストロで試そうと思うなら、
Qt本体以外の固有ライブラリが多いので難有りだとは思う。
これは、AsteroidOSというより、
Nemoや SailfishOSとの共通項といった感じか。

もう少しちゃんと動かせてたら、
USBメモリー環境作りで当初考えてた
SailfishOS、Nemo、AsteroidOS の3環境分けも再考したが、
この状況だと、そこまでする必要はないかな。
このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr Clip to Evernote

SailfishOS 関連のメモ。

まず、バージョンに関して。
先頃、2.1.1.12があるのを知ったので更新してみた。
時期的には、5月末頃から見つかってたらしい。
EA版としての情報は出てないので、
まだそれよりも前段階の物と思われる。

Emulatorで試した段階では、
ロックスクリーンにカメラマークが下方に増えた。
これは、カメラ関連の単独パッケージを確認。
ただ、ロックが外せない状態だったり、
起動中の何かのロードで時間が掛かったりした。
パッケージパターンの内訳にも変化有り。

USBメモリー環境で直のx86環境で試した場合には、
UIの表示も出なかった。
幾つかコピーしたりして、複数環境があるが、
その内の1つに Qtの EGLでエラーも見えたので
UI表示のエラーはその辺の可能性有り?

2.1.1.12は、得られるとしても適用するのは、
実験レベルと考えておく方が良いかも。
ARM環境は未確認なので、そちらは分からないけど。
Xperiaへの事では、2.1.2という情報が出てるので、
2.1.1で新機能入るなら、それ踏まえてって事に
なるのではないだろうか。

次に、x86向けイメージ作成。
2.1.0.11で作ってみる事にした。
結果として、OS起動もしたのだが、
無地のEmulatorを変換した時のように、
パスワードの変更が出来ないのでほぼ詰みな状況に。
UIの表示が出なかったので、色々調整の必要有りだな。
パスワードの件は、jolla-firstsession のパッケージで
初期パスワードの制御をしてそうだったので、
外したいところだったのだが、他への依存が多くて断念。
もしくは、干渉の無かった 2.0.0.10 辺りで
一旦イメージを作る方が楽かも。

後のEFI 対応の件を考えて、
Partition 1 /boot vfat
Partition 2 / ext4
な構成でイメージを作ってみたところ、
起動も出来たので、これは有りかな。
ブートオプションの書き換えも
FATなら Windows上からも書き換え利くしね。

ひとまず、2.1.1.12以降は、
もう少しはっきりした情報出てからかな。
イメージ作りは、構成の見直し。

と・・・ここまでを下書き保存して数時間後。

ksファイルの調整をして、2.1.0.11でイメージ作成後、
パスワードの件は回避出来た。
jolla-firstsession 内の 1つのファイルを消す文を足した事で対処。
だが、GUIの表示は出ない状態。
それでも操作出来る状況にはなったので、
パッケージ操作とかすればどうにか出来るだろう。

追記、2017-07-09 19:20
GUIが出なかったのは、compositorの設定が無かったからだった。
パッケージ内に含まれてた物だと思ってたのだが・・・。
それでも、まだ中途半端な事有り。
他にも不足があるので、再調整。
Qt の EGLのエラーは出てたので、それはまた別件だな。

追記、2017-07-25 22:26
2.1.1.23 EA版が出た。
とりあえず Emulator上で更新してみたが、ロックが外れない・・・。
2.1.1.12の段階でもなってたから変わらずか・・・。
更新を、2.1.1.12からと 2.1.0.10からの2回やってみたが同じ。
SDK自体の更新が出てないから、それ待ちかな。
起動時の何かのロードに時間掛かってるのもあるし、
2.1.1 で大きく変わったところあるんじゃないかと思うが、
どの辺の動きなのかは把握出来てない。
あとは、製品端末での具合は知りたいけど、
手持ちにないから、各所を調べて回るか。

追記、2017-07-31 12:31
2.1.1.24 EA版が出た。
このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr Clip to Evernote

Mer環境の雑記。
今更な話だったり、偏った話なので雑記扱いで。

ここ数日、USBメモリー上でのマルチブートをやってた事に関連して、
過去にやった事を再度したり、新たな事をしたりでの確認事のメモ。

そんな中でも、それら記事中で度々名を出した、TX-70 ボードでの話。
このボードは、いろいろと癖のある物。
時期は、2011〜2012頃の出た
組み込み向け Intel Atom E600番台搭載機。
使えるのは、32bitのみだが、これまでの目的には問題無い。
一番厄介なのは、グラフィックスドライバに EMGDを使う点。
当時試してた限り、MeeGoや Tizen IVI 1.0 だと
リポジトリからパッケージを得られてたが、
Kernelやドライバのバージョンとか、
設定の組み合わせとか面倒だった覚えはある。
とにかく画面出力に難儀な代物で、
一般的な Linuxな場合インストーラー自体も表示されるかどうか・・・。
更に今となっては、EMGD不要な後継もあるようだし、
現状使いどころのない物となっていた。

今回、簡易的なところでテストやイメージ作成用に
動かせれば良いなと思い、今一度使う事にした。
当時も GUIは抜きにして、CUIのみで使うならという事で
その後も幾らかそれらの目的で使っていた。
イメージ作りなら当時の環境のままでも問題は無いが、
現行のSailfishOSベースの環境で作り直したかったのが理由。
手元の残ってる環境のアーキテクチャが、
SSSE3必須な i586だったので、汎用の i486で作っておきたかった。
MeeGo から Mer移行後に i486登場後 i586と
並行して環境を使ってたりしたが、
後述する Kernelの件で、このまま保持する状況となった。

MeeGo〜Mer、Tizen 分岐期に出た
x86向け Kernelパッケージの kernel-adaptation-pc。
このパッケージ登場で 3.0.0系になったが、
その後の更新で 3.6系となり、
現在の SailfishOS Emulator も 3.6.11のそれ。
内部的な変更とかマイナーバージョンの差はある。
ちなみに、Tizen IVI側では後に名称変更されている。

本題は、この Kernelバージョンでの差に関して。
当時にもこの辺りの事は書いたはずだが、
解決には至ってなかったはず。
SDカード(BIOS起動)から 3.0.0で起動すると、
CUI のログイン画面は出るが、
3.6系だと起動メッセージ途中からブラックアウト。
今回、再度試してこの事を思い出したが・・・
ひとまずの対策が出来たので、記事にする事にした次第。

当時見かけてた情報に、
Kernelに Atom の PowerVR系 GPU(GMA500)関連の物が
加わったとかなんとか・・・。
少なくとも理由はその辺ではないかというのは見積もっていた。
その時は結局そこまで止まりだったような気はする。
もし対策出来てたなら、当時使ってた環境に調整してた跡が
あっただろうけど、今回見た限り、それは無かった。

サービスの動きとかも疑っても、
Kernelの差だけで状態が変わったので
調べる対象はそこだけと考えた。

起動メッセージの途中から画面が消えていることから、
読み込むモジュールを探ることにした。
その結果、3.6.11(SailfishOS) には、
/lib/modules/3.6.11-10.1.24.jolla/kernel/drivers/gpu/ に
gma500/ というディレクトリがあった。
3.0.0 の kernel には、これが無い。
この gma500 のディレクトリを、ひとまずリネームで無効化。
再起動してみると、CUIのログイン画面は出た。
欲しい結果は得られたので、この件はここまでかな。

TX-70 の E600番台は、GMA600搭載。
一応の対策後に改めて調べ直したらベースは GMA500らしい。
他のPowerVR系GPUのAtom含め、
MeeGoのリポジトリにパッケージあったけど、
どうだったのかは、ハード持ってて試した人がいればなところ。
今更試す気があっても公式は無くなっているので、
どこかにリポジトリのアーカイブがあればな話だ。

ひとまず、SDカード使用の起動で、
CUI表示で使えるようになったので良しとする。
・・・が、EFI起動だと、形式が違うのか、
文字ノイズがちらっと出てる程度で見えないままだ。
Android-x86使ったからでは?
という事になると、また別問題ってことにはなる。
このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr Clip to Evernote

SailfishOS と Android-x86 のマルチブート環境を
USBメモリー上に作った続き。(前回記事

ただ、BIOSでしか使えないのでは・・・という事で
UEFIで使えるように試していた。
SailfishOS側では、UEFI対応の心当たりが無かったが、
Android-x86で UEFI対応があったのでこれを使う事にした。
(関連記事(その1その2))

Android-x86で UEFI、BIOS両対応環境を作れたので、
そこへ SailfishOS環境を足した。

現状のUSBメモリー上の環境は次の通り。
Partition 1 EFI
Partition 2 Android-x86 BIOS時のGRUB
Partition 3 NemoMobile
Partition 4 SailfishOS

Android-x86 を UEFI環境で作った後に BIOS環境でさらに重ねてインストール。
USBメモリーの空きに SailfishOS、Nemoを追加。
先日、16GBのUSBメモリーを調達してそれを使ったので、容量にはかなり余裕有り。

BIOS起動の場合、
SailfishOS向けを Android-x86の GRUBに書いただけだと、
ブートメニューから選んでもエラーが出て起動出来なかった。
これまでもこの状態は確認済みだったが、まだ具体的なところは未調査。
GRUB上書き以前に、EXTLINUXで起動可のパーティションだと、
そのまま動いてたぽいが、今回の場合、GRUBが先なので状況が違う。
現状そのまま起動出来ない状態だったので、
別環境を起動し、SailfishOS環境をマウントし、
EXTLINUXでのブートローダーをインストール。ただし、MBRは書き換えない。
マウントポイントを mnt とした場合。
# extlinux --install mnt/boot/extlinux

土台の同じ Nemo と合わせて2つ環境があるが、こちらも同様に操作。
でも、GRUBからの直接は、今の段階でうまくいかず。
知識のあやふやさのせいってのも有りそうだけど・・・。
GRUBに chainloader で Nemo側の EXTLINUXを拾えたので、
とりあえず、これを介する事で対処。
ただ、SailfishOSの場合、EXTLINUXでのエラーを出したので、
位置の読み込みとかがおかしいのだと思う。
先に extlinuxの位置違いのインストールをしたせいか?
何にしても要調査。

更に、SailfishOS、Nemo共に既存の起動オプションだと ro で良かった点が、
パーティション全体をリードオンリー化してしまったので、rw で書き換え化に変更。

この段階の構成。
Partition 1 EFI
Partition 2 Android-x86 BIOS時のGRUB
Partition 3 NemoMobile EXTLINUX
Partition 4 SailfishOS

続いて、本題の UEFI対応。
EFIパーティションにある GRUBの設定ファイルを書き換え。
FATフォーマットのパーティションなので、Windowsからも書き換え可。
/boot/grub/grub.cfg の編集。
SailfishOS 2.1.0.11 向けには次を追記。
ディスクデバイスは環境に応じて変更。ここでは、sdbで認識された場合。

menuentry "SailfishOS" {
search --set=root --file /boot/vmlinuz-3.6.11-10.1.24.jolla
linux /boot/vmlinuz-3.6.11-10.1.24.jolla root=/dev/sdb4 rootwait
}

これで、EFIのブートメニューに項目が追加される。
ひとまず、VirtualBoxで試してみる事にした。
ディスクは他が無いので、デバイスは sdaに変更。
起動処理が表示されないので進んでいるのか分からなかったが、
設定記述に問題があれば、その点のエラーは出る。
デバイス違いは出なかったけど・・・。
VirtualBoxだと遅いのかどうなのか分からなかったので中断。

EFI で実機は、手元にTX-70くらいなので、これで再度試した。
こちらもデバイスは sdaに変更。
一瞬何か見えたが、その後画面は出ない。
これはボード特性みたいなもので別問題なのは想定済み。
キーボードランプに反応は有ったので、
有線LANを繋いでSSHで入れるかで起動を確認。
実際、入れたので目的は達せたと考えて良いだろう。

という事で、SailfishOS を Android-x86 の EFI を介して起動出来た。

纏めると、
Partition 1 EFI  (Android-x86、SailfishOS、Nemo)
Partition 2 Android-x86 (BIOS時のGRUB)
Partition 3 NemoMobile (EXTLINUXで SailfishOS、Nemo)
Partition 4 SailfishOS
という構成で、BIOS、EFIの両起動対応の USBメモリーが出来た。

ただ、BIOS起動では先に書いたように問題有り、
EFI起動では画面表示を確認出来てないので、
別途どうにかしないとならない。
このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr Clip to Evernote

このページのトップヘ