GNOME Boxes part 3

前回の続き。

Boxes が勝手に名づける名前が長くて面倒なので変更してみる。

まず libvirtd プロセスが起動していたら終了させる。

仮想イメージ本体は下記ディレクトリにある。
~/.local/share/gnome-boxes/images

設定は以下の XML ファイル。
~/.libvirt/quem

コレを Ubuntu1210, Ubuntu1210.xml とリネーム。

そして XML の <name>, <source file> セクションを書き換える。

SELinux を無効化(又か…)

Boxes を起動、リネームされていることを確認。
ちなみに LXDE に変更済み、3D の Unity 重すぎる。
$ sudo apt-get install lxde
と以前と同じコマンドだけで入るよ。

Ubuntu1210 を起動、成功すると Ubuntu1210.log が作成される。
もう解るよね、またしても SELinux context を restorecon コマンドで変更する必要がある。

Ubuntu を終了、Boxes 自体も終了、libvirtd を殺す。

restorecon コマンドを行って SELinux を戻す。
おしまい、面倒くさいよ。

Boxes 自体の設定は
~/.config/gnome-boxes/sources/QEMU Session
のようだ、見事に超シンプルな本体の設定しか無いけど。

しかし何故ファイル名にスペースを入れるかなぁ…
スペースがあると右クリックメニューから GEdit で開く等ができないんだが。

********************

それにしても。

LXDE だとメモリ使用量たったコレだけかよ。
ワンテンポ遅れる感もまったくなくなったし、Unity って何だろうな。
仮想で使って Linux 使いのフリしているだけの輩を皆殺しにでもしたいのだろうか、自殺行為だと思うけど。

とにかく Boxes は予想していたよりずっと使えるようだ。
後はマウスホイールさえなんとかなればなぁ。

GNOME Boxes part 2

前回の続き。

色々試してみた。
どうやら動作が遅かったのはスワップが起こっていただけのようだ。
Boxes が勝手にメモリ量を決めておいていきなりスワップとは泣ける。

  <memory unit='KiB'>1048576</memory>
  <currentMemory unit='KiB'>1048576</currentMemory>
  <vcpu>2</vcpu>

と XML でメモリ量を倍にしたらかなりストレスは減った。
やはりワンテンポ遅れる感はあるけど Unity が原因かも…

ついでに CPU を 2 つに指定したけどあまり意味が無かった。
4 コア中の 2 つを使うのではなく単にエミュレーションで 2 つあるように見せかけているだけみたい。
無限ループのコードをうっかり書いてしまった時の保険にはなるな。

XML の書き換えを反映するにはホストの Fedora を再起動。
何かのサービスを restart させればいいと思うけど解らなかったので強行手段。

それと一番困った SELinux のブロックは通知ブラウザーのトラブルシュートでアッサリ解決。

$ sudo restorecon -v "/home/sasakima-nao/.libvirt/qemu/log/Ubuntu Precise Pangolin LTS.log"

にて Enforcing のまま起動できた。

ついでに virt-manager というアプリを入れてみたけどまったく関係ないようだ。
GUI で設定を弄くれるアプリがあると思うのだが今は解らない。

仮想マシンの立ち上げはシングルクリックで良かった…

これで後は 1920×1080 にできないこと以外は問題無くなった。
ということで Ubuntu 12.10 は Boxes でいこうと思う。

Windows 8 も出たし安いしで入れてみたいなと思い電気屋に見に行った。
MS ゴシックのガタガタなフォントのままであるのを見て買う気分が一騎に失せた。
無償で使える Linux に劣るのフォントを何時まで使うのつもりだ…
これ Windows しか使えない人は気がつかないみたいね。

********************

とにかく 12.10 だ。

日本語 remix の ISO を落とす。
ISO のままだと余計に面倒くさいので素直に DVD-R を焼いてみた。

まず ISO を焼いた DVD-R を入れる、USB 接続の外部でもイケる。
というか内蔵の奴が壊れているのでミニノート用のを使っただけだが…

SELinux を無効化します sudo setenforce 0

Boxes を起動、「新規」「続行する(O)」とボタンを押す。

ISO を勝手に認識するので選ぶ。

するとフルスクリーンになってインストールが始まる。
解像度はディスプレイと一致しないので注意。
ウインドウ化したい場合は右上の右から二番目ボタンで。

終わったら DVD-R が出て…こなかった。
ボタンで DVD-R を出して virsh コマンドで強制終了させた。

virsh destroy "ubuntu-ja-12.10-desktop-i386.iso 2"

SELinux を元に戻すのを忘れないようにと。

どうせこのまま起動するとスワップが起こるので上記を行ってホストの再起動。
メモリがコッチは 512000kb になっていたので 1024000kb に指定と。
cdrom を取り出しても記憶してしまうようなのでセクションを消して。
sudo restorecon -v “/home/sasakima-nao/.libvirt/qemu/log/ubuntu-ja-12.10-desktop-i386.iso 2.log”

12.10 は Unity 2D が無くなったのか…
なんと 3D で仮想環境が立ち上がった、おかげで超激重!
ウインドウの立ち上げやメニューがスローモーション、駄目だ使えネェwww
立ち上げているだけで CPU ファンが超ウルセェwww

今は実験と確認用途だからいいのだが、LXDE にでも変えるか…
Unity を使ってほしいなら 2D を残せよ。

1024000kb でもスワップしているし、おまえは Vista カヨ!
1536000kb に変更してやっとスワップ地獄から開放された。

この工程で気がついたけど libvirtd プロセスを一旦殺せば XML の指定を反映できる。
Boxes を立ち上げれば自分で殺すまで残りつづけるようだ。

何故か 12.10 では 1920×1080 の指定があった。
ドライバーの違いかな、これならフルスクリーンでもイケるね。
何にせよ別途でドライバー等が不要な仮想環境は嬉しいね。

********************

/usr/lib/girepository-1.0
で ls してみる

Gst-1.0 は無かった…
ぶっちゃけコレの確認のためにだけ入れたんだが。

GNOME Boxes

そろそろ次期 Fedora を入れる準備をしておかねば。
Ubuntu はもう出ているね、GStreamer が 1.0 になっているか試したい。
その前に GNOME 3.6 のリリースノートでも見るか。

GNOME 3.6 リリースノート

Nautilus までメニューバーが無くなってしまうようで。
うーん微妙だ、拡張スクリプトが使い辛くなると困るんだが。

GStreamer は 0.10 と 1.0 の共存になるという解釈でいいのかな。
でなきゃ困るが。

Boxes

これが気になる。
KVM の単なるフロントエンドみたいだが GNOME に統合されたなら突然無くなる恐れは少ない。
とはいえ Seed さえ止まっているんだよな…

GNOME Boxes – YouTube

Aero もイケるようだね、エミュレートだから劇重だろうけど…
KVM も初期の笑っちゃうほど不安定な頃のしか試していないし現状は使えるレベルになったかどうか試してみたいところだ。
Fedora 17 も「追加と削除」から入れられるし試してみるべ。

仮想環境はコレのみチェックで揃うようだ。
起動、恐るべきシンプルな外観で逆に戸惑うよ。
終了ボタンすら無い、アプリケーションメニューから
と思ったけどマウスで上部を掴んで引いたらウインドウ化できた。

とにかく早速 Ubuntu 12.04 の ISO を試しに入れてみる。

インストールは SELinux にブロックされる。
sudo setenforce 0
で Permissive に切り替えして
終わったら sudo setenforce 1 で SELinux を Enforcing に戻す。
(getenforce コマンドで確認できます)

なんかディスク容量や割り当てメモリは勝手に決められてしまったのだが。

ご存知だと思うけど Ubuntu はインストール後に CD が自動で出てくる。
ISO からのインストールでは強制終了して ISO を取り除く必要がある。

~/.libvirt/qemu/hoge.xml

を開いて <disk type=’file’ device=’cdrom’> の項目を消せばイケた。
XML なので <!– –> のコメントアウトでもいいみたい。

この hoge 部の名前は virsh list –all コマンドで調べる。
第5回 KVM仮想マシンの操作:KVMで始めるプライベート・クラウドへの第一歩|gihyo.jp … 技術評論社

$ virsh list         起動中の仮想マシンを一覧表示
$ virsh list --all      停止中の仮想マシンを含めて一覧表示
$ virsh start hoge   仮想マシンを起動
$ virsh shutdown hoge  仮想マシンをシャットダウン
$ virsh destroy hoge  仮想マシンを強制停止

sudo は必要無いみたい。

Ubuntu Precise Pangolin LTS という名前が勝手に私には付いていた。
長すぎ、変更する方法はあるのかな?

ここまでやれば後は Boxes 上から W クリックで起動できる。
Unity 2D で起動しないとフリーズするようだ。

なんじゃコリャ!
2560×1600 って何でデフォルトがこんな解像度になるんじゃい。
しかも一番多いだろう 1920×1080 指定が無い、なんてことかしら。

設定画面のディスプレイから「ゲストをリサイズ」をオフにすれば指定解像度以上にはなるけど以下にはならないようだ。
これを利用してウインドウ状態で使うしかなさそうだな。

あぁやっと使える状態になった。
ということで少し試す。

マウス統合がデフォで切り替えもスムース。
以前は暴走したりマウスカーソル位置が変だったが何ともない。
でもウインドウ一つ動かすのもガックガク。
アプリの起動が死ぬほど遅い。
文字入力の反映でさえもワンテンポ遅れる。
マウスホイールが使えないみたいなんだけど。

GUI を使うにはまだ厳しいのかな…
つーか SELinux が Permissive でないと起動できないヤン!
うー、あんまりオフにしたくないなぁ…

VirtualBox や VMWare は本当によくできているもんだ。
とりあえずもう少し試してみる。
問題なさそうなら 12.10 もコイツに入れてみたい。

続き

Shell Extension

GNOME 3 は Shell Extension というものが使える。
作り方は下記の人が日本語でまとめてくれている。
GNOME Shell Extension を調べてみた – ふとしの日記

サンプルを見たい人や「自分で作るって、どこかに無い?」な人は下記。
GNOME Shell Extensions

って、全部いらネェ…

なんか UserMenu に gnome-terminal のランチャを仕込むのとかあるし。

cmd

#!/bin/sh
gnome-terminal &

なんてスクリプトを書いて $HOME/bin に突っ込んで Alt+F2 のほうが便利だろ。
余計なメニューやアイコンも増えないし三文字でイケる。

私は余計なものが無い GNOME 3 が気に入ったので Fedora を使っているのだし…
とはいえそのうち何か斬新なモノが現れるかもしれないから覚書っと。

********************

インストールしたい Extention をクリックして左上のスイッチを On にする。
するとダイアログが出てインストールするかどうかを質問される。

[インストール] を選択すると即座にインストールされ有効になる。

具体的には
$HOME/.local/share/gnome-shell/extensions/
以下に extension.js 等が展開され、更に gsettings の
org.gnome.shell enabled-extensions
に登録された状態になる。

削除は同じページの [Installed extensions] をクリック。
バッテンマークのアイコンをクリックするとファイルが削除される。
gsettings は再ログインで消えるけど残った場合は手動で消す。

gnome-shell-extension-prefs コマンドで設定もできるみたい。
簡単ですね。

面白いのはコレを絶賛するブログ主は GNOME 2 の再現ばかりやっている。
タスクバー代わりは Alt+F1 もしくは Windows キーを押せばいいし、ダイナミックワークスペースは Ctrl+Alt+上下矢印キーで切り替えできて超便利だし、メニューに至っては Alt+F2 と Tab キーを使わないの?だし。
古くさい UI に戻すためにこんな拡張方法を用意したわけじゃないだろうに。
更に gnome-tweak なんとかを必ず使っているとかetc…

********************

は、どうでもよくて。

つまり Web から $HOME のファイルにアクセスできている、驚いた。
それどころか gsettings まで弄くれてしまうってことじゃないの。

これってセキュリティ的にはどうなんだろう。
「ユーザーが明示的にボタンを押す」等の制限はあるのか?
root は保護されているだろうけど悪用は可能だよね。

よし悪用のため、ではなく…
seemex の Web 版を HTML5 で作ろうとして断念したが「方法はある」ということかも。
いや、見ての通り現在は Chrome メインなんだけど Opera はメーラーとして活躍中w
とにかく Ctrl+u でソースを調べる、Opera と同じキーなので乗り換えしやすい。

require.js を使っている、調べれば解るけどややこしい…
data-main 属性なんて無いけど main.js は見つかったので表示して…
なんとか extensions.js なるアヤシイものを見つける。

https://extensions.gnome.org/static/js/extensions.js

正直、今の私ではほとんど理解できないというオチが。
とにかく dbus を使えばこんなことが可能になるみたい。
勘違いかもしれないけど。

Web から local の設定変更とかが可能になれば色々と思いつくよね。
ということで Shell Extension とは全然関係ないお話でした。

Gst 1.0

Novacut/GStreamer1.0 – Ubuntu Wiki
~jderose/+junk/gst-examples : contents of video-player-1.0 at revision 72

こんなページを見つけた。
これでやっと Y901x の GTK3 化に進歩が…

GStreamer 1.0 用だった。
つーか今まで 1.0 パッケージが公開されたことを知らなかったという…
バージョンは 0.11 のようですけど、0.10 と共存可能らしい。

PPA for GStreamer developers : “GStreamer developers” team

Fedora 17 にデフォルトで入っている GStreamer は 0.10 だ。
0.10 用のサンプルは PyGtk コードのまま。

~jderose/+junk/gst-examples : contents of video-player-0.10 at revision 72

でも 1.0 のコードを 0.10 に書き換えすれば動くかも。
よく見たら Python も Python3 じゃないの、とにかくコピペして書き換え。

#!/usr/bin/env python
#-*- coding:utf-8 -*-

# python2

from os import path

import gi
gi.require_version('Gst', '0.10') #'1.0')
from gi.repository import GObject, Gst, Gtk

# copy...

on_sync_message がやはり発行されない…
ということは on_message を作っても msg は空のまま。
0.10 のバインディングは Fedora 15 時と何も変わっていないということみたい。

このアプリを試すためだけに GStreamer 1.0 を導入してくれ。
なんて言えないよ、てか私も今は入れたくないし。

Fedora や Ubuntu の次期版次第だ、とりあえず覚書ということで。

しかしサンプルコードが Python3 なのも気になる。
実用では見向きもされないままで Linux ではガン無視されている Python3 は失敗作ということで Winamp のごとく Python5 が出るとばかり思っていたのだが。

とにかく文字列が Unicode だと local が utf-8 の Linux では都合が悪すぎ。
とずっと思っていたけど前回 gunichar が ucs-4 だと気がついたっけ。
検索してみる。

DSAS開発者の部屋:Python2.x/3.0のunicode内部表現について

あれ、Fedora の Python って u’str’ は UCS-4 だということなの?
おいおい、私みたいに勘違いしていた人って多くないか?
ならば端末からチト試してみよう。

普通に u” のままで日本語出力ができた、なんじゃこりゃ!
と思ったけど format で成形すると駄目。
ついでにスクリプトファイルにすると直 stdout も駄目になる。

ならばスクリプトを ucs-4 で保存、、、スルーされてしまった。
まあ ucs-4 でスクリプトを保存する人はいないし変換すればいいだけ。
まあとにかくそういう動作をするようだ。

うん、そういうことなら Python3 でも別にいいかなと。
でもデフォルトで入るようになるまで手を出したくない。
「このコードを試すためだけに Python3 を入れてくれ」なんて嫌だよね。