試験運用中なLinux備忘録・旧記事

はてなダイアリーで公開していた2007年5月-2015年3月の記事を保存しています。

CDEmuについての覚え書き(デーモンの各モードごとの細かい使い方)

CDEmuについての覚え書き(概要、カスタムカーネル使用時のビルド設定、ユーザの大まかな操作)」の続き。

デーモン(cdemud)の動作モードに関して

  • (/etc/init.d/以下のスクリプトを使用せず)セッション・バス*1を使用した場合、ユーザごとにデーモンを起動できる・ただし、ユーザはVHBAカーネルモジュールに対する制御を行う(/dev/vhba_ctlへ書き込む)ための権限が必要で、Gentoo Linuxでは「cdemu」グループのメンバになっている*2必要がある
  • システム・バスを使用した場合は、システム全体で複数のユーザから使用できるデーモン(のインスタンス)が1つだけ動作する
  • セッション・バスを使用したデーモンとシステム・バスを使用したデーモンは同時には動作しない
  • 一般ユーザ権限でシステム・バスを使用したデーモンを起動するには、D-BUSと関係した設定*3を編集する必要がある?
  • デーモンはローカルモード(通常のCLIプログラムとしての挙動)の他、システム・バス使用時にはデーモンモード(バックグラウンドで動作し、出力をシステムのログに書き出す)でも動作する
  • /etc/init.d/以下のスクリプトから起動されるデーモンではデーモン・モードでシステム・バスを使用することになる

システムのデーモンを使用する

ここでの使い方は、/etc/init.d/以下のスクリプトからシステムのcdemudデーモンを起動した場合について。
Gentoo Linuxでは、OS起動時に自動起動するように「sudo rc-update add cdemud default」を実行した上で「/etc/init.d/cdemu start」によりデーモンを開始しておく。
デーモンへの引数に関しては、ディストリによって設定方法が異なりGentooでは/etc/conf.d/cdemudを編集*4する。

CDEmu client

システム・バスを使用したデーモンとやりとりをするために、あらゆる操作に対して、-b systemオプションを付ける。もし、これを指定しないと、下のようなエラーが出て失敗する。

ERROR: Failed to connect to CDEmu daemon: org.freedesktop.DBus.Error.ServiceUnknown: The name net.sf.cdemu.CDEMUD_Daemon was not provided by any .service files
ERROR: Failed to connect to daemon!

下は具体的な使い方。

(イメージを読み込む)
$ cdemu -b system load [デバイス番号] [イメージファイルなどの場所]
(イメージを外す)
$ cdemu -b system unload [デバイス番号]
(状態を確認)
$ cdemu -b system status

ここで指定するデバイス番号は0から始まるが、/dev/sr[番号]のデバイス名に対応する番号は、システム上にSCSIで認識される光学ドライブ*5がある場合には、その数だけ後ろにずれる。
(2008/10/26)光学ドライブのデバイス名に関する記述(脚注)を一部修正
http://fun.poosan.net/sawa/index.php?UID=1208449540
の人の環境では/dev/sr0が実ハードウェアのため、CDEmuにおけるデバイス0番が/dev/sr1に対応している。

gCDEmu

右クリックメニューから「Use system bus」にチェックすると、システム・バスを使用したデーモンとやりとりできるようになる。アイコンの色が付いていればOK。
アイコンクリック後、一覧から仮想デバイス番号を選択後、ファイルを開く。

ユーザ権限のデーモン(ローカル・モード)を使用する

ユーザ権限のデーモンを使用する場合、/etc/init.d/以下のスクリプトによるデーモンは動作していない必要がある。Gentoo Linuxでは、これを止めた場合にVHBAのカーネルモジュールを手動で読み込む必要があるようだ。
下は、オーディオ再生にALSAを使用して、最大4つの仮想SCSIドライブを提供するデーモンを起動する例。

$ cdemud -n 4 -a ALSA -o default
CDEmu client

システムのデーモンを使用したときと違うのは-b systemオプションを付けないこと。

gCDEmu

右クリックメニューの「Use system bus」にチェックがされている場合は外す。

関連記事:

使用したバージョン:

  • CDEmu 1.0.0

*1:Xのセッションにログインすると作られる

*2:sudo gpasswd -a [ユーザ名] cdemu

*3:手元のGentooでは/etc/dbus-1/system.d/cdemud-dbus.conf

*4:変数CDEMUD_DEVICESの値を上げると仮想ドライブ数を増やせる

*5:パラレルATAで従来のATA用ドライバを使用している場合以外光学ドライブSCSIで認識され、/dev/sr0などのデバイスでアクセスする