xubuntu9.04をmini9に

4度めのOSの入れ替え
そろそろmini9のOSを変えたくなって、xubuntu9.04でLXDEにすることにした。 実際に作業する前に、これまでの環境で起動時間を測定。debian lennyのLXDEでは、電源のスイッチを押してから、ログイン画面が出るまでに42秒。実際には、grubが数秒待っているので、40秒といったところか。パスワードを打ってからが3秒ぐらいだった。ちなみに終了には20秒ぐらいを要した。 xubuntu-9.04-desktop-i386をdownloadしてから、CDに焼く。電源を入れて0を押してCDから立ち上げ、日本語を選択し、インストールを選んで開始。USAのキーボードを選んで、キーボードのテストをすると、Fnを使うキーのいくつかが入力できないが、気にせず続ける。swapを使わないようにするために、手動でパーティションをするが、このとき、ext2の方がSSDには良いらしいので、ext2をマウントポイントは/で選んで、swap無しという警告が出るのを確認して、インストールをスタート。 10分ほどでインストールが完了したので、とりあえず起動時間の測定。debianの楽々の勝利だと予想していたが、ログイン画面が出るまでは、33秒と速い。一方、パスワードを打ってからは18秒もかかった。ちなみに終了は17秒とあまり変わらない。 LXDEに入れ替えるために、aptitudeをupdateしてから、lxdeをインストール。もう一度、起動時間の測定。当然ログイン画面までは変わらないが、sessionをLXDEにすると、パスワードを打ってからは、3秒と高速。なかなか良い感じなので、自分なりのカスタマイズを。 まずは、基本的な設定。まずはパネルを右側に持っていく。外観の設定でフォントを7ポイントに。openboxの設定でappearanceのフォントをすべて7ポイントにし、desktopを四つにする。デスクトップ設定で壁紙を削除。terminalの設定の外観からフォントを7ポイントに。firefoxの表示をカスタマイズして、アドレスをメニューの横にもっていって、すべてのツールバーを削除。音がでるように、/etc/modprobe.d/alsa-base.confを以前の日記のように書き足す。 あとは日本語がつかえるようにする。manpages-jaをインストール。system toolsの中の言語サポートから、日本語をインストール。再起動すると、anthyから日本語が使えるようになる。 さて、残った問題はFnと共に押すキーである。一部は有効になっているのだが、これはハードウェアの問題だろう。押せない文字は~|\の四つだが、これらは比較的よく使うので、このままではいけない。は全角半角として認識されているようで、どこかで日本語のキーボードという設定がされているらしい。dpkg-reconfigure xserver-xorgで設定しているとjp106となっていたが、これをpc101にしても、何も変わらない。結局、dpkg-reconfigure console-setupでpc101にして、再起動したらうまくいった。いったい、設定ファイルはどこにあるんだろう。

Read more...

rubyのsymbol

シンボルクラス
ある文字列で指定されたメソッドを呼び出すときに、これまではevalを使って、

eval('"test".%s'%["size"])

などとしていた。evalはバグの原因になりやすいので、あまり使いたくはないのだが、これ以外の方法が分からなかったので、仕方なくそうしていた。 しかし、symbolというのを使うと、次のようにもっとスマートにできるようだ。

"test".send("size".to_sym)
"test".send(:size)

文字列で管理していたものを、symbolで管理して、必要に応じて文字列に変換するようにすれば良いように思われる。 1.8.7では動いているが、いつからあったのだろう。クラスを定義していて、インスタンス変数を外部からアクセスするために、

attr_accessor :name

などと書いているときに、コロンはなんだろうと思ってはいたが、実はこれはシンボルを表すものだったのか。

Read more...

ubuntu netbook remix

mini9でubuntu 9.04
ubuntuの9.04を試してみようと思って、どれかにしようか迷ったけど、netbook remixにした。SDにデータをバックアップして、日本のページにはnetbook用が無かったので、www.ubuntu.comからimgをdownloadして、フラッシュにimgを

dd if=ubuntu-9.04-netbook-remix-i386.img of=/dev/sda bs=1M

としてboot用にコピーした。 0を押してフラッシュから起動すると、インストールしないでも試してみれるようだったので、とりあえずそれを実行。読み込みに時間がかかるので、起動が遅いのはともかくとして、自分の期待したものとはあまりにも違っていて唖然。 まず、ランチャーみたいなのが全面に立ち上がって、それから抜けることができない。ターミナルも立ち上げるのに苦労した。ようやくクラシックスタイルを見つけて、それに変えてみたものの、こちらではターミナルさえ見つけることができずに断念。 良かった点としては、firefoxでFn+ZでF11を押すと、titleバーに加えてmenuバーまで隠せて、画面全体をbrowserとして使えたということがある。このあたりはgnomeがやっているのかな。LXDEではできないだろうか。 ubuntuの日本語remixも挑戦しようと思ったが、こちらはCD用でフラッシュからは起動できなかったので、保留。いずれにせよ、gnomeになってしまうので、これをなんとかしないといけない。xubuntuを入れてからLXDEにする方が良いのかな。それともminimalインストールが選択できると良いのだが。 まあ、mini9はもうしばらくはdebian lennyで行きそうだ。

2009/5/13追記 firefoxでF11を押すと画面全体をbrowserとして使えるようになるのは、firefox自身の機能のようだ。ただし、LXDEの場合にはopenboxがF11でtitle barを隠すというshort cutになっているので、それが働いてしまう。LXDEで使うときには、メニューの表示のところで、全画面を選ぶ必要がある。しかし、これは面倒なので、.config/openbox/lxde-rc.xmlを編集して、F11をF12に変えた。F12には何も割り当てられていないようだったので。F11を押すとfirefoxの全画面、F12でopenboxの全画面になるようになった。

Read more...

ubuntu 9.04

ubuntu 9.04がリリースされた。
kernelは2.6.28らしい。xubuntuもほぼ同時にリリースされているので、mini9に入れてみようかな。LXDEに少しは慣れてきたので、LXDEで使えるとよいのだが。ubuntuはよく理解していないのだが、Desktop 日本語 Remixが良いのか、Netbook Remixにするべきなのかどうなんだろう。debianと同じ感覚で使えるとよいのだが。minimal installができるのであれば、それにLXDEとか日本語とかを入れていけば良い気がする。気が向いたらインストールしよう。

Read more...

rubyでbinaryの解析

有効数字

まれに、binaryのデータを扱う必要が出てくる場合がある。データ構造が公開されている場合には問題無いのだが、それが公開されていない場合には、自分で解析する必要がある。

時々使用するある装置のデータはbinaryで保存されていて、普段はこれを付属のtoolでasciiにしている。この時の操作が面倒なので、以前に変換プログラムを書こうと思ったが、構造が分からずに挫折していた。最近、また思い立って解析を試みた。このとき、rubyのunpackを思い出して、これを使ったところ、最低限の解析に成功した。

整数の場合は、データの並びを見れば大体予想ができるが、今回は小数を扱っていたので、データを見てもいまいち分からなかった。結局、dataにbinaryを入れて、

p data.unpack("E")
などとして、それっぽい数字が出てくるものを探していった。

最終的には、すべてのデータはdoubleで保存されていただけだったのだが、これは予想外だった。有効数字が6桁ぐらいしかないのに、floatでも十分なのだが。実際、asciiに変換したものの方がファイルサイズが小さくなっている。binaryで保存している意味が無いような気がする。データを解析する前に、このことに気がついていれば、doubleだと推定できたのかもしれないが、最初はfloatぐらいだろうと思って、いろいろと試していて、時間がかかってしまった。

Read more...

USB to serial or parallel

mini9用のインターフェース
最近のPCでは、外部インターフェースの種類が少なくなってきている。ノートはもとより、デスクトップでさえ、PS2やプリンターポート、RS232Cなどのポートが無いものも増えてきている。その代わりに、USBは標準となっている。 市販のデバイスをつなぐのであれば、USBで困ることは無い。しかし、自作しようとした場合、USBはかなり敷居が高い。これまで、PS2,RS232C,GPIB,プリンターポートなどにつなげる機器は自作したことがあるし、それらを制御するプログラムを書いたこともあるが、USBはまだ無い。 mini9に何かをつなぐ場合、USBしか無いので、USB機器をつくれるようになるまでは、USBから別のインターフェースに変換して、それを使うのが簡単に思われる。その候補としては、USB to serialとUSB to parallelがすぐに思いつくが、どちらが良いだろうか。parallelの方がTTLだし信号の数も多いので、望ましいと思っていたが、必ずしもそうでは無いかも知れない。 UNIXで扱う場合、serialはttyS0などから使う。USB to serialでは、これがttyUSB0に変わる。一方、parallelは、lpがparport0を介して信号をやりとりする。細かい制御をする場合には、lpを開放して、parport0に直接アクセスしている。しかし、USB to parallelではusblp0になるが、これはparport0とは切り離されているようだ。つまり、parport0からは制御できないようなのである。 とりあえず、LIRCとAVRを使えるようにしたいのだが、これにはUSB to serialの方が良いのではないかと考えている。LIRCではparallelはparport0を使っているようなので、USBからは使えないみたいだ。ttyusb0に関しては、少し調べた感じでは、使っている人もいるような感じなので、苦労はするかもしれないが、使えるような気がする。一方、AVRは、USB to serialでは使えないという記述も見られるので、どうなんだろうか。avrdudeでポートを指定したら使えないかなと期待しているが。

Read more...

F11 and F12

mini9のファンクションキー
np2をつかっていると、F12でマウスを切り替える。mini9の英語キーボードにはF10までしかないので、この方法は使えない。実は、マウスの中ボタンで切り替えることができるのだが、F12も使えることが分かった。Fn+zがF11で、Fn+xがF12に対応している。

2009/4/10追記 LXDEでF11を押すと、全画面モードにできる。マウスで上のバーから非装飾を選ぶよりも簡単で良い。

Read more...

lennyでxnp2

xnp2のインストール
PC98も過去のマシンになって結構たった気がするが、ときどき使いたくなる。mini9で98のソフトが使えるようにxnp2をインストールした。 まず、必要なパッケージをaptitudeで入れたが、libgtk2.0-devとlibsdl-sound1.2-devとlibsdl-mixer1.2-devを入れてみた。あとは、

wget http://www.asahi-net.or.jp/~aw9k-nnk/np2/release/xnp2-0.83.tar.bz2
tar xjf xnp2-0.83.tar.bz2
cd xnp2-0.83/
cd np2tool
unzip np2tool.zip
mv np2tool/np2tool.d88 .
cd ..
cd x11

として必要なファイルを準備して、config.tmplを編集する。ここでは、SDL_CONFIGのXCOMMを削除して、USE_SDLAUDIOとUSE_SDLMIXERのundefをdefineに変えた。そして、

xmkmf -a
make
sudo make install install.man
xmkmf -a

make sudo make install install.man として、インストール終了。ピポったときは、ひとしおの感動を味わえます。

Read more...

networkの設定

家と職場の切り替え
家では固定ipで、職場ではdhcpをつかっている。これを切り替えるのに、ubuntuではメニューのシステム設定ぐらいから切り替えていたが、debianでは/etc/network/interfacesを書き換えていた。しかし、debianのリファレンスを読んでいたら、便利な方法を見つけた。/etc/network/interfacesには、

iface work inet dhcp
iface home inet static
  address 10.0.0.222
  netmask 255.255.255.0

と書いておき、sudo ifup eth0=homeとかで起動すると、それぞれの設定でネットワークを使えるようになる。メニューをいじるよりも楽に設定ができるようになった。

Read more...

inspiron mini9にDebian Lenny

再挑戦
電源を入れて0を押してboot menuを出し、CDから起動してインストールの開始。LXDE用のCDを使って、swapを無くしてbase systemのインストールが終わったら、taskselでデスクトップとラップトップと標準システムを選択。前は、音が出せなかったが、/etc/modprobe.d/alsa-baseに

options snd-hda-intel model=acer

と書くと、音も出るようになった。acerでなくdellでも良いという噂だったが、うまくいかなかった。また、xrandrを使うと、外部ディスプレイにも出力できた。一応、hotkey-setupも入れておいた。 それから、重大なことを発見した。どうやら、SDをさしたまま起動するとハングするようだ。前回インストールしたときには、ハングした原因が分からずに諦めたが、これだったようだ。どのように回避したら良いかを調べなければ。

2009/4/5追記 半日使ってみて、inspiron mini9+Debian Lenny LXDEについて分かったことを書いておこう。

  • windowで非/装飾を選ぶと、上の部分のバーが無くなって画面の面積を節約できる。
  • 外部ディスプレイには、LXDEのSettings-Monitor Settingsから制御できる。
  • ntfsはrootしかmountできない。
  • SDをさしたまま起動すると、udevがハングする。
あとの二つについては、今後なんとかしたい。

2009/4/6追記 ntfsについては、ntfs-3gを入れたら、user権限でもアクセスできるようになった。あとはSDの問題か。別のSDをさしても同じ挙動だったので、相性とかじゃなくて、本質的な問題なのだろう。

2009/4/10追記 kernel2.6.26ではSDを挿したまま起動できないが、2.6.27では大丈夫らしい。しかし、2.6.27はsidにあるのかな。

Read more...