CDEmu

 CD ドライブエミュレータ CDEmu を動かしてみます。

 Windows には、DAEMON Tools という 仮想 CD ドライブがあり、使っていました。Linux で同様なものがないかを探したら、CDEmu というものがありました。しかし、パッケージはないのでソースから、コンパイルできるかどうか試します。

ソースをダウンロードする

https://cdemu.sourceforge.io/ からソースをダウンロードします。ダウンロードしたソースは、以下の 6 つです。

  • libmirage-3.2.4.tar.bz2
  • image-analyzer-3.2.4.tar.bz2
  • cdemu-client-3.2.4.tar.bz2
  • cdemu-daemon-3.2.4.tar.bz2
  • gcdemu-3.2.4.tar.bz2
  • vhba-module-20200106.tar.bz2

必要なパッケージのインストール

 コンパイルする際にいくつかのパッケージが必要になります。

$ sudo apt-get install libnotify-dev libao-dev intltool

カーネルモジュールのコンパイル環境の構築

 カーネルモジュールのコンパイルが必要になるので、環境を構築します。

https://qiita.com/newtypehiro919/items/336e09340e728a94a9f7を参考に準備を整えました。

2021.04.09 追記
カーネルモジュールビルドの準備の記事をアップしました。

コンパイルとインストール

 vhba-module 以外は、展開してコンパイル、インストールでいいですが、はじめに cdemu-daemon に必要な libmirageをインストールしなければなりません。次のようにします。(xxx はパッケージ名)

$ tar xvfj xxx.tar.bz2
$ cd xxx
$ mkdir build
$ cd build
$ cmake ..
$ make -j4
$ sudo make install
$ cd ..

libmirage を入れたあと、ldconfig を実行します。

$ sudo ldconfig

カーネルモジュールのコンパイル

 vhba-module は展開したディレクトリに移動して、次のようにします。

$ sudo make modules
$ sudo make modukes_install
$ sudo depmod -A

 当然、カーネルモジュールのコンパイルの準備が済んでいないとコンパイルできません。

udev のルール追加

 全部インストールできたら、/etc/udev/rules.d に 99-cdemu.rules を追加します。内容は以下の 1 行です。

KERNEL=="vhba_ctl", MODE="0660″, OWNER="root", GROUP="cdrom"

念の為再起動したあと、モジュールをロードしてみます。

$ sudo modprobe vhba

lsmod でモジュールがあれば成功です。

$ lsmod | grep vhba

 gcdemu コマンドを実行すれば、システムトレイに gcdemu が常駐します。クリックでイメージをマウントするダイアログが表示されます。

rc.local の修正

 最後に、カーネルモジュールの vhba を起動時にロードするように、/etc/rc.local に次の一行を追加します。

modprobe vhba

 もっと苦戦するかと思いましたが、意外と楽にインストールできました。これで仮想 CD ドライブに CD イメージをマウントできるようになります。

Raspberry Pi

Posted by sirius