フレイドフォートonBlog

普通とか自由って何ぞや

Ubuntu 18.04 LTS上で
AsteroidOS の QEMU向けイメージを試そうとした際に、
使えないオプションがあったので、
QEMUをソースから buildする事にした。

ちなみに実行コマンドは次の通り。(AsteroidOSのEmulatorページへのリンク
qemu-system-i386 -enable-kvm -kernel bzImage-qemux86.bin -device virtio-vga,virgl=on -net nic -net user,hostfwd=tcp::2222-:22 -drive format=raw,file=asteroid-image-qemux86.ext4 -m 512 -display sdl,gl=on --append "quiet root=/dev/hda rw mem=512M video=800x800"

その際のエラーメッセージ。
SDL1 display code has no opengl support.
Please recompile qemu with SDL2, using
./configure --enable-sdl --with-sdlabi=2.0
qemu-system-i386: OpenGL support is disabled

使えないオプションを外せば、
OSの起動は出来るがGUIが出ないので意味は無い。

ここで調べていた際に GENIVIのページに行き着いた。
GDP の QEMU with hardware graphics acceleration ページへのリンク
GDPは度々試しているので、このサイトは見慣れている。
このページも過去に見た気はするが、
仮想でなくても RPi 2等の実機で可能だったのであまり気にしてなかった。

内容的に AsteroidOSの件の対処方法は、この流れでやればいいだろうと判断。
まずQEMUソースを取得。(QEMUサイトへのリンク
方法は、バージョン毎の圧縮ファイルと gitでの取得の2種。
今回は後者の gitでの取得。
$ git clone git://git.qemu.org/qemu.git
$ cd qemu
$ git submodule init
$ git submodule update --recursive

QEMUのバージョンは、3.0.0系、2.12系、2.11系、2.10系と複数あるが、
gitから取得した物は、この段階でどれか把握してなかった。
後の buildのバイナリでバージョン確認したら、2.12.90 (v3.0.0-rc0-dirty) との表記。

GENIVIサイトに書かれたパッケージ追加。その後不足もあったのでそれも文に追加済み。
$ sudo apt install build-essential libepoxy-dev libdrm-dev libgbm-dev libx11-dev libvirglrenderer-dev libpulse-dev libsdl2-dev libpixman-1-dev

続いて configure、make。
GENIVIサイトの記述では、x64向けのみだったが、
AsteroidOSだと32bit向けが欲しかったので i386向けを追加。
他のオプションは変更無し。
$ ./configure --enable-sdl --with-sdlabi=2.0 --enable-opengl --enable-virglrenderer --enable-system --enable-modules --audio-drv-list=pa --target-list=x86_64-softmmu,i386-softmmu --enable-kvm

デュアルコアCPU環境なので -j2 付けて make。
$ make -j2
スペック的にどうかと思ったのだが、思いのほかすぐに終わった。
ここまでで1時間程度だったように思う。

qemuのソースディレクトリ内に targetに指定した
i386-softmmu、x86_64-softmmu の 2つのディレクトリに実行バイナリがある。

AsteroidOSの QEMU向けを動かすために
i386-softmmu 内の qemu-system-i386 を使って実行。
オプションは前述の通りなので割愛。
そして無事、AsteroidOS が起動した。
AsteroidOS 1.0 の実行は今回が初で初期設定ウィザードも初見。
その後は、自由に操作可能。
過去に SailfishOS Emulator上に入れた時と操作はさほど変わらないが、
AsteroidOS向けアプリが入っていたりと、ちゃんと試せる。

ひとまず目的の QEMUの buildと
AsteroidOS の起動、表示まで出来たので、今回はここまで。
このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr Clip to Evernote

Raspberry Pi 3上で 車載Linuxを試す。
と言っても、既にあるイメージで動かしてみるだけ。
具体的には、
GENIVI Development Platform (GDP)
Automotive Grade Linux (AGL)
の2つ。

GDPに関しては、RPi 2の時に試していたが、
AGLは、RPi 3向けのみなのでVMwareでのみ試した。
どちらも QEMUや VMware等の仮想環境や別ボードで試す事も可。

自前で Buildする事も可能だが、
Yoctoという都合上、リソースの確保は難。

RPi 3で試す場合、
出ているイメージをmicroSDに書き込むだけで動かせる。
GDP、AGL共にデモ UIが動く。

まず GDPから。
現在のバージョンは 13。
何時だったか、大きく UIが変わって以降、
前に試した時と見た目に差は無いかな。

余談だが、
RPi 3のイメージを RPi 2でも起動は出来たが、UIは出なかった。
幾つかのディストロだと両方使える場合があるが、この場合は起動は可。
GDPの場合、RPi 2向けがあるので、そちらを使えば良い。

続いて AGL。
本題に入る前にバージョンの事から。
ふと、コードネームが気になった。
現在のバージョンは 5で eel。すなわち鰻だ。
魚類とかぽいな、という事で調べてみた。
1: albacore ビンナガ ビンチョウの方が馴染みがあるかな。
2: blowfish ふぐ
3: chinook マスノスケ 、キングサーモン
4: dab カレイ
5: eel 鰻
見る限り、アルファベット順で魚の名前らしい。

使ったイメージは、5.0.3。
イメージの取得だが、ディレクトリへ進むとファイルがある。
過去のバージョンだと1つですぐに分かったが、
現バージョンはディレクトリにファイルがたくさん有り、
パッと見でどれを得れば分からない。
単にmicroSDに書き込んで使う場合、
agl-demo-platform-crosssdk-raspberrypi3.wic.xz
を得て、展開したイメージを書き込む。
目印は、wic が付いてる物。
他にも日付の付いてる wic.xzファイルもあるが、
容量も同じで名の違いだけ。

起動後、UIは出たが、左90度横向きに出た。
上下左右もその方向になっているので、
出来るならモニタ自体の向きを変えるのが手っ取り早い。
元のデモ UI自体が縦長なので、尚更。
過去のバージョンでCESのデモUIは試した事あったが、
メニュー位置が上部にあるなどは、そのままのようだ。

GDP、AGL共に Wayland、Qt 5使用 のデモUIであることは変わらず。
とりあえず今回はここまで。
毎度思うのは、自前で Buildしてみるのが良いんだろうなと。
でも Yoctoって気軽にやり難いところはなんとも。

追記、2018-07-08 22:34
AGL 6系が出始めた。
6: flounder ヒラメ
このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr Clip to Evernote

Raspberry Pi 2や 3で数種の Linuxディストロを試しているが、
今回は、openSUSEを試すことにした。

openSUSE自体、かなりご無沙汰。
RPi 3向けに aarch64版があるのでそれを使った。
Leap 15が少し前に出たばかりというのと、
常時更新がある Tumbleweedも様子見兼ねて。
得たイメージは、20180606付のXFCE版。

Leap 15から試すことにした。
rawファイルをmicroSDに書き込み後、起動。
GRUBらしきメニューが出た。
これまで試したものだと直にデスクトップ等のGUIが
出る物ばかりだったので、新鮮だった。
これならデュアルブート出来たりするのかな?

初期パスワードが分からないので、調べた後ログイン。
Webブラウザが入ってないのは意外だった。

無線LANを繋ぎパッケージ操作しようと思ったら、
リポジトリのリフレッシュにエラー・・・。
他からSSHで入れたのでネットワークは使えてる・・・
ローカルで繋がるけど、外には出れないって事か?

ここで一旦 Tumbleweed(以下TW)へ切り替え。
イメージを書き込み後、起動しログイン。
こちらには、Firefoxが入ってた。
ネットワークを設定しても先と同様にリフレッシュ出来ず。

同様事例を見かけて、対策らしき事をやってみたが未解決。
ざっくり言えば、IPv6の無効化関連。

ふと少し前に妙な事を見たのを思い出したので、
YaSTからネットワーク設定。
Wicked から Network Managerへ変更し、さらに IPv6無効化。
これで Zypperのリフレッシュが出来るようになった。

TWでパッケージ操作で大量にやろうとした際に容量不足になった。
microSD自体の容量は十分だったが、元のrawが4G程度で
書き込み時にそのサイズでパーティションが切られてたようで
すぐに一杯になってしまったぽい。

ここから再度 Leap 15で仕切り直し。
ネットワークの件を対処後パッケージ操作。
こちらは、microSDの容量を限界まで使うようにパーティションが設定されてた。
ひとまずSUSE環境はこれで調整を進めようかと思う。

どちらも同じ状況だったのだが、
ネットワークはOSを起動するだけでは繋がらず、
一回GUIでログインしないと繋がらない状況だった。
サービスとかその辺なのかもしれないが、未確認。
あとはデフォルトの Wicked の動きが気になるところ。

現状これ以上の操作はしてないので、ひとまずここまで。

追記、2018-06-17 16:21
XFCEのタスクバー上にネットワークアイコンがあったので
そこから設定していたのだが、Network Manager Appletと
書かれていたのでそれ用なのだろう。
当初気付いてなかったのだけど、
YaSTから変更したのはある意味それで良かったのかも。
WickedでのみYaSTを使うらしく、
NetworkManagerの場合は、YaSTから設定は出来なくなる。
これも気にしてなかったのだけど、切り替え時に
Appletから設定を使うようにとメッセージが出ていた。

2018-06-18 17:37
Leap 15に Firefoxを入れてみたが、画面出ず。
同系のSeaMonkeyも同様。
他のブラウザを探したところ、
Otter Browser があったので入れてみた。
この方が動くかなという印象。
Midoriとかも使えそう。
このエントリーをはてなブックマークに追加 mixiチェック Share on Tumblr Clip to Evernote

このページのトップヘ