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,
---
>