Windows NTのIOポート
WindowsのIOポートをたたく必要が出てきそうになったので、調べてみた。よく知られているように、NT系ではIOポートを直接操作することはできない。
昔はDriverLINXのdiportio.dllを使うと、NTからIOを扱うことができた。しかし、今ではリンクが切れている。いろいろと探してみると、Software Informerというところには、あるようだが、それを作っていたScientific Software Tools, Inc.のサイトからはdownloadできない。これはまだ使えるのかな。
ほかには、WinIo.dllというものを使っている人もいるようだ。しかし、それを使うためのbinderを書くのも面倒だな。このくらい自分で書けるようになればよいのだが、windowsのプログラム手法を勉強する気にはなかなかならない。
京都の秋葉
寺町通りを歩いてみた
京都に出張に来たついでに、寺町を歩いてみた。秋葉や日本橋に比べると、当然見劣りしてしまう。秋月やデジットに相当する店は無い。マルツーがあるだけでも有難いと考えるべきだろう。マルツーの中を一通り見てみたが、一つ興味を引かれるものを見つけた。microchipのMCP3551という22bitのDelta-Sigma型A-Dコンバーターだ。精度の高いADコンバーターを探しているのだが、Delta-Sigma型だと精度の高いものがつくれるようだ。原理はいまいち理解できていないが。値段も手ごろだ。インターフェースはSPIなのだが、マイコンで扱うので、問題はない。今後使うADコンバーターの候補に入れておこう。
動画を使ったプレゼン
impressiveで動画
以前はプレゼンテーションはacroreadを使って行っていたが、今はimpressiveを使っている。Ubuntu Weekly Recipeによると、0.10.2からは、動画再生機能が使えるらしいので、つかってみた。
PageProps = { 12: { 'video': "embedded.ogv" } }
という内容を、例えばmovie.infoという名前で作って、–script movie.infoオプションをつけて実行すればよい。すると、12ページ目が表示されたときにmovieが再生される。しかし、一度再生すると、二度目には再生できなかったり、再生中にキーボードで何か操作したら固まってしまったりと、まだ改良の余地があるように思われる。
ubuntu 9.04
mini9のOS
もうそろそろubuntu 9.04のサポートが切れるだろう。現在使用しているPCのほとんどはDebianLennyのLXDEにしているが、例外としてdellのmini9はubuntu9.04で動かしている。これは、インストールした当時、debianでは、SDを指したままにしておくと、udevが立ち上げのときにハングるようでうまくいかなかったので、ubuntuにしたためだ。念のために、versionを確認してみると、やはり9.04だった。
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=9.04 DISTRIB_CODENAME=jaunty DISTRIB_DESCRIPTION="Ubuntu 9.04"
サポート切れしたOSを使い続けるのも嫌なので、どうしようか迷っている。ubuntuのより新しいものに乗り換えるのが無難なのだろうが、最近のubuntuにはいくつか気に入らない点がある。
まず、ログイン画面でユーザー名が選択できてしまうことである。ユーザー名は入力すべきだと思う。
それから、起動時や終了時には、不要な画像を表示して何を裏でやっているのかが分からない。debianは、ターミナル画面になって、いろいろと表示してくれるので、意味はよく分からなくても安心できる。
さらに問題なのが、ctrl+alt+fnでx無しのモードに切り替わらないことである。debianベースなのだから、同じようにできても良いものなのだが。linuxでもプログラムがハングるときはある。それがwindowで動いていれば、ターミナルを立ち上げて殺すこともできるだろうが、全画面のときには、何も受け付けなくなるときがある。そのような場合、debianなら別にログインしてkillすれば問題ない。しかし、ubuntuではこれができないのである。何か別の手法があるのかも知れないけど。
結局、私にはubuntuよりもdebianの方があっているように感じられる。Debian sqeezeもrelease-critical bugsが300個ぐらいになってきているので、そろそろリリースされそうだ。これを待って入れ換えるのも良いのかも知れない。SD問題がどうなっているかが課題だが。
ubuntu 10.04 LTS
windowsからlinuxへ
少し調子の悪いPCがあるということで、様子をみてみた。メモリやHDDをいじっていたら、少し調子は良くなったが、原因はよく分からなかった。まあ、Windowsで使いつづけるのもなんなので、Linuxをインストールすることにした。どのlinuxにしようかと思ったが、素人向けのubuntuにすることにした。リカバリ領域を消さずにインストールしようとしたが、リカバリ領域が邪魔してなかなかうまくいかない。Cドライブを縮めて、その後のパーティションを消して、あいたところにlinuxを入れたらうまくいった。
標準のGNOMEの他にLXDEを入れたが、なんだかとろとろしている。Pen4の3GHzでメモリは512Mbyteなのだが、それにしては遅い。何もしていないようなときにディスクにアクセスをしているのでswapを疑ったが、freeでメモリの状況を見てみても、足りてないわけではない。いろいろといじっていると、余分なディスクアクセスが無くなって、きびきびと動くようになった。なんだったのだろう。
GNOMEだともっと遅いと思ったが、使っていてほとんどストレスを感じない。GNOMEの最適化が進んできたのか、PCの性能が上がって来たのか分からない。個人的にはLXDEを好んで使っているが、この環境は素人向けでは無い気がする。しかし、私はGNOMEだと何をしているのか分かりにくいのであまり好きではない。isoなどもクリックするだけでマウントしてくれたりして驚いたが、どこにマウントされているか分からなくて、ターミナルからコマンドを実行することができなかった。何も知らなくても使えるということと、使いやすいということは必ずしも一致しない。まあ、linuxが素人でも簡単に使えるようになってきたことは、素直にうれしく感じる。もっと普及すると良いが。
アキバの液晶
またまた液晶
日本橋に続いて、秋葉でも液晶を買ってしまった。最初は秋月で何かの液晶を買おうと思っていたのだが、液晶工房に行ったところ、面白そうな液晶がいろいろとあったので、その中からお買い得そうなものを買ってしまった。
一つは、16x2のキャラクタ表示用のSC162Aというものだ。バックライト付で\300というのは激安だった。これまで、キャラクタ表示用の液晶は秋月かデジットで買っていたのだが、液晶工房も捨てがたいことが分かった。
もう一つは、シャープ製5.5インチカラーSTN液晶モジュールのLM6Q40Aというものが、これも\300で売っていたので買ってしまった。インターフェースは、RGBとSYNCで、15kHzらしい。これらの信号の意味を調べないと、これを使うことはできないだろう。目標はこれをマイコンから動作させることだ。
ちなみに、今日は人と一緒だったので、秋月に行くのが後回しになってしまった。液晶はさすがにもう買うべきではないと判断して、mega8を買ってみた。AVRはtiny2313(or at90s2313)とtiny261に続いて三種類目だが、megaは初めてだ。28pinなので、書き込みようの部品が必要になるかも知れない。
久々の日本橋
液晶と水晶
およそ二年半ぶりだと思うが、日本橋に行ってきた。まずはデジットに行こうと思ったら、そのすぐそばに千石があって驚いた。日本橋にも支店ができたらしい。
さて、面白い部品が無いかなと思っていろいろと物色していたが、液晶をいくつかと、水晶を買った。水晶は12MHzのもので100円だったが、USB用に使おうと考えている。知りたかったのは足の間隔で、約5mmだったので、2/10インチなのだろう。
液晶は前回買ったものがあったら買おうと思っていたが、さすがに無かった。代わりにいくつかの種類を見つけた。まずは、確実に動かせそうなものとして、OPTREXのPWB842Bが200円であったので、買ってみた。信号は8pinで使い方を調べた人がいるようで、これを参考にすれば、AVRでも使えると期待したい。ちなみに、ピン配置をメモしておくと、1:/RESET, 2:/SCK, 3:SI, 4:/BUSY, 5:CMD,/DATA, 6:/CS, 7:5V, 8:GNDらしい。
その他に、epsonのLD-BV9332AZという液晶を30円でゲット。元は音楽プレーヤー用のもののようで、四桁の数字といくつかの記号などを表示できる。
千石も覗いてみたが、ホール素子を発見した。磁場の簡易センサーでも作ろうと思っていたのだが、適当なものがなくて、探していたのだ。東芝のTHS119, 123, 126, 130があった。違いがよく分からなかったので購入しなかった。しかし、webショップには無いようだ。後で買おうと思ったら、どこで買えばよいのかな。tiny261と液晶表示なんかをつければ、簡易磁場センサーができると思うのだが。
ちなみに、いつこれらを動かしてみるだけの時間が確保できるかな。
RのGUI
Rcmdr
Rの本を呼んでいたら、Rcmdrというものを見つけた。まずは、aptitude install r-cran-rcmdrでインストールする。そして、Rを立ち上げて、library(Rcmdr)とすると、tcltkを使ったGUIが立ち上がる。Rは非常に便利で高性能なツールだが、コマンドを覚えなければ使えない。私も、GUIをつければコマンドを覚えなくても使えるようになるのでは無いかというように考えて、plotを使ってグラフを作る補助として、tcltkを使ってツールを作ったことがある。まだ地道に進行中であるが。これと同じような思想で作られたものなのだろう。少し使ってみたら、グラフに関しては、それほど細かい指定はできないものの、いろいろなコマンドに関して、基本的な使い方が見れて、なかなか面白いし、コマンドを覚えるためにも便利そうだ。今度、少しいじってみよう。
autorun.inf
MAL_OTORUN
Linuxを使っていると、Windows用のウィルスには感染しないので、その辺りの事情に疎くなってしまう。MAL_OTORUNというウィルスが流行っていることも、今日初めて知った。autorun.infを利用して感染するものらしい。
windowsの自動実行は、いつも鬱陶しいと思っていた。こっちが起動するように指示したときだけ起動すれば良いのに、勝手に起動する。これがデフォルトで有効になっているのが、感染拡大の助けになっている。マヌケな話だ。メールの添付ファイルを勝手に開いたり、windowsのデフォルトの設定には疑問なものが多い。
MAL_OTORUNに感染した場合には、USBメモリに隠しファイルでautorun.infと本体を書き込む。そして、ウィルスを除去しようとしても、既にウィルスが常駐しているので、消そうと思っても、すぐにまた復活する。まあ、Linuxだと隠しファイルも簡単に見えてしまうので、対応は簡単だが。
from etch to lenny
最後のetchマシン
研究室で稼働しているLinuxマシンに一台だけetchがあった。昨日、updateしようとしたら、not foundがいろいろと出てきた。source.listの設定はあっていると思うのだが、何かが変なのかも知れない。折角なので、本日lennyに入れ替えた。すぐに終わると思ったが、xorgの設定でつまってしまった。マシンはHPのproliant ML115というサーバーマシンで、RS232Cで装置の制御に使っている。やはり、/etc/X11/xorg.confの書き換えが必要で、以下のようにした。
Section "Device" Identifier "Videocard0" Driver "vesa" VideoRam 2048 BusID "PCI:5:0:0" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Videocard0" DefaultDepth 16 SubSection "Display" Viewport 0 0 Depth 16 Modes "1024x768" "800x600" EndSubSection EndSection
実は共通のPCにはまだ一台etchが残っているのだが、私の一存だけで再インストールはできないので、もう少し放置かな。