LinuxコマンドラインからiMON VFDのVFD(蛍光表示管)を操作する。 ここではSilverStonetek製のアルミケースLC20Mに付属しているVFDを、Fedora Core 6(2.6.18-1.2798.fc6)から操作する。
なお、SilverStonetekのページにてリンクされているLinux用ドライバ(Linux Drivers for Soundgraph iMON USB IR/VFD Devices)は、カーネル2.6.18ではコンパイルできないためここでは使用しない。
必要ドライバ類のインストール
iMON VFDのドライバは、赤外線リモコン用のドライバ群であるLIRCに含まれているので、まずはLIRCをインストールする。 ATrpmsより、下記4つのRPMを取得する。
- lirc
- lirc-lib
- lirc-kmdl
- lirc-devices
wget http://dl.atrpms.net/all/lirc-0.8.1-63_cvs20060930.fc6.at.i386.rpm
wget http://dl.atrpms.net/all/lirc-lib-0.8.1-63_cvs20060930.fc6.at.i386.rpm
wget http://dl.atrpms.net/all/lirc-kmdl-2.6.18-1.2798.fc6-0.8.1-63_cvs20060930.fc6.at.i686.rpm
wget http://dl.atrpms.net/all/lirc-devices-0.8-3.fc6.at.noarch.rpm
LIRCをインストールする前に、PortAudioをインストールしておく(LIRCのインストールに必要なため)。
yum install portaudio
PortAudioのインストールが終わったら、LIRCをインストールする。
rpm -Uvh lirc*.rpm
modprobeでiMON VFD用のモジュールをロードする。
# modprobe lirc_imon
lsmodでlirc_imonが表示されれば、インストールは成功。
# lsmod | grep imon
lirc_imon 16772 0 ←このように表示されればOK
lirc_dev 17172 1 lirc_imon
この時点で/dev/lcd0が存在していれば、VFDへの出力準備が整ったことになる。
# ls -l /dev/lcd0
crw------- 1 root root 180, 144 11月 7 23:11 /dev/lcd0
文字の出力
iMON VFDに文字を表示するには、/dev/lcd0に書き込みを行う。 例えば、下記のようにすると、
date -R > /dev/lcd0
このように表示される。

なお、root以外でも書き込めるようにするには、下記のように権限を変える必要がある。
chmod 666 /dev/lcd0
Perlを用いて出力する場合の例は、下記の通り。
#!/usr/local/bin/perl
if ( -e "/dev/lcd0" ) {
if ( !open( VFD, "+< /dev/lcd0" ) ) {
die;
}
else {
# 0x60〜0x79の20文字を表示する
for ( $i = 0x60; $i < 0x80; $i++ ) {
print VFD chr( $i );
}
close( VFD );
}
}
出力可能な文字
iMON VFDで出力可能な文字は下記の表のとおり。

公式で紹介されているドライバを使う場合
Linux Drivers for Soundgraph iMON USB IR/VFD Devicesにて公開されているドライバを2.6.18のカーネルで使用する場合は、imon_vfd.cの下記の場所を変えればコンパイル可能? (未確認)
< #include <linux/config.h>
---
> #include <linux/autoconf.h>
43c43
< #include <linux/devfs_fs_kernel.h>
---
> //#include <linux/devfs_fs_kernel.h>
122c122
< .owner = THIS_MODULE,
---
>
147c147
< .owner = THIS_MODULE,
---
>
162c162
< .mode = DEVFS_MODE,
---
>