2009年10月8日木曜日

Entrance のインストールと設定

要約


Enlightenment プロジェクトで開発されているディスプレイマネージャEntrance のインストールと設定の記録。

以下の記述で、コマンドプロンプト "#" はスーパーユーザー(root)アカウントを示し、"$" は一般ユーザーアカウントを示す。

参考文献

必要なパッケージ

README ファイルによると、Entrance の構築には以下のライブラリが必要になる。

  • Evas
  • Ecore
  • edje
  • Esmart
  • PAM(オプション)
Entrance のソースコードを含めて、これらのソースはすべて SVN のリポジトリにあるので、以下のコマンドを使ってチェックアウトする。
svn co http://svn.enlightenment.org/svn/e/trunk/パッケージ名
たとえば、
svn co http://svn.enlightenment.org/svn/e/trunk/entrance
svn co http://svn.enlightenment.org/svn/e/trunk/evas
svn co http://svn.enlightenment.org/svn/e/trunk/ecore
svn co http://svn.enlightenment.org/svn/e/trunk/edje
svn co http://svn.enlightenment.org/svn/e/trunk/esmart
のように実行する。PAM はインストール済みなのでそれを使う。

作業内容

ビルド作業

Entrance は、他の E17 関係同様 /opt/e17 以下にインストールするので、インストールプレフィックスを付けてビルドする。

なお、インストール先が標準的な場所ではないので、作業前に PKG_CONFIG_PATH 環境変数と PATH 環境変数を以下のように調整しておく必要がある。

$ ./autogen.sh --prefix=/opt/e17
$ make
$ su
# make install
# /sbin/ldconfig

動作環境の設定

Entrance の基本的な設定は「ディスプレイマネージャ Entrance のインストールと設定」を参照。

注意点

その1

Vine Linux の場合、ディスプレイマネージャは inittab から呼ばれる prefdm から起動されていたが、Debian では起動時のスタートアッププロセスとして登録されている。

/etc/rc0.d/K01gdm -> ../init.d/gdm
/etc/rc1.d/K01gdm -> ../init.d/gdm
/etc/rc6.d/K01gdm -> ../init.d/gdm
/etc/rc2.d/S30gdm -> ../init.d/gdm
/etc/rc3.d/S30gdm -> ../init.d/gdm
/etc/rc4.d/S30gdm -> ../init.d/gdm
/etc/rc5.d/S30gdm -> ../init.d/gdm

Entrance をインストールすると、entrance という名前のスタートアップ用のシェルスクリプトも <インストールプレフィックス>/etc/init.d/entrance という名前でインストールされる。

よって Debian では、/etc/init.d/gdm の代わりに、このインストールされた entrance がブート時に起動するように設定を変更する必要がある。

その2

Entrance の設定ファイル <インストールプレフィックス>/etc/entrance_config.cfg/entrance/session/n/session("n" は数字) というキーに登録されている文字列は、パス名が付いていればセッションを起動するためのコマンドとして認識され、パス名が無ければ単なるセッション名として Xsession に引数として渡される。

Vine Linux の prefdm 以降の処理ではこの文字列を参照して起動するセッションを決めることができた。しかし Debian ではそうはいかないようである。Debian の Xsession では、渡された引数が実行可能ファイルではない場合、警告メッセージを出してフォールバックのセッションが起動してしまう。

また、Entrance は起動可能なセッションを自動的に探し出す機能があるが、その機能で探し出したセッションは Xsession を介さず直接起動されてしまう。これは英語環境では問題ないかもしれないが、少なくとも日本語環境では、Xsession 以降で行われている、日本語入力関係をはじめとする処理内容がすべて飛ばされてしなうので、それでもセッションは起動することは起動するが、きわめて使いにくいセッションになる。

そのため、<インストールプレフィックス>/etc/entrance_config.cfg/entrance/session/n/session("n" は数字)というキーには、セッションを起動するコマンドを、パス名を付けずに登録する必要がある。

その3

Debian の /etc/X11/Xsession を使うとなると、/etc/gdm/Xsession で行われている処理の一部を /etc/X11/Xsession に取り込む必要が出てくる。/etc/gdm/Xsession を利用する場合でも、多少は手を加える必要が出てくるが、前者の方法よりはずっと少なくて済む。

そこで、まず /etc/X11/Xsession/etc/X11/Xsession.original としてバックアップしておく。そして /etc/gdm/Xsession/etc/X11 以下に Xsession という名前でコピーして、それに手を加えて利用することにする。変更内容は以下のとおり。 やっていることは、

  • エラーファイル $HOME/.xsession-errors の設定
  • 言語関係の環境変数設定
  • メッセージなどの出力先を、先に設定したエラーファイルにリダイレクトする設定

設定作業

既存の Xsession のバックアップと新しい Xsession の作成

# cd /etc/X11
# mv Xsession Xsession.original
# cp ../gdm/Xsession .
... ここで、コピーした Xsession を変更する ...

Entrance の設定ファイルにセッション追加

スタートアップスクリプトの入れ替え

# cd /etc/init.d
# cp /opt/e17/etc/init.d/entrance .
# ./gdm stop
# update-rc.d -f gdm remove
# update-rc.d entrance start 99 2 3 4 5 .

再起動

# /sbin/shutdown -r now
以上で、gdm に代わって Entance が立ち上がる。

gdm に戻す場合

gdm に戻す場合は以下のようにする。

# update-rc.d -f entrance remove
# update-rc.d gdm start 30 2 3 4 5 . stop 01 0 1 6 .

0 件のコメント:

コメントを投稿