lubuntuのアップグレード
ubuntuを使っていたら更新できるようになったとのメッセージが出たので、更新してみた。通常はまだ不具合が残っていると嫌なので、すぐには更新しないのだが、少し前に12.04LTSにアップグレードしようとして失敗して、11.10と12.04のキメラ状態になってしまっていたので、良い機会だと思って12.10に更新した。本当はLTSにしておきたかったのだが、仕方ない。
やはり、一部のパッケージがうまく動いていないようだ。時間が解決してくれると良いが。でも、アンインストールせずにアップグレードできるのだから、楽である。
ubuntuの欠点は、更新が早いことだと感じている。半年おきに更新があるのは、新しいパッケージが組み込まれるのは良いことなのだが、ちょっとはやすぎる気がします。debianは、だいたい二年で更新で、このくらいのペースがちょうどよいように思う。次のwheezyが出るのは、半年ぐらい先かな。
意外に大変なインストール
windowsでruby-opengl
ruby-openglを使って書いたプログラムを、windows上で動かすために、インストールしてみたが、意外に面倒だった。まずはrubygemをインストールする。rubygems-1.8.24.zipを解凍してそのフォルダでruby setup.rbを実行。次にzlib-1.1.4-1-mswin32.zipを解凍してrubyフォルダのbinにzlib.dllだけコピーする。そして、ruby-opengl-0.60.1-x86-mswin32.gemをダウンロードして
gem install --remote ruby-opengl-0.60.1-x86-mswin32.gem
でopenglをインストールする。最後に、glut-3.7.6-bin.zipを解凍してglut32.dllをシステムフォルダーに移動すると、インストールの完了である。しかし、このままでは使えないらしく、rubyスクリプトの先頭に
require "rubygems"
と書かないといけないようだ。
ルービックキューブの手順
ルービックキューブをrubyで
長い時間つきっきりにならないといけない実験のお供に、ルービックキューブをやっていたら、それなりにできるようになった。最初は普通の333をやっていたが、222から777まで全部できるようになってしまった。時間はかかるけど。
333は20手順で解けることが証明されている。私は一層毎に順にそろえていく手法を取っている。そこで、疑問に思ったのが、二層目まで揃えたあとでの最適な手順はどのようなものかということである。
そこで、以前作ったrubyのプログラムを使って、探索を行うことにした。下の二層を変えずに上の一層を変えるような手順には、どのようなものがあるかを、すべての手順を試して調べるというものだ。
六回の手順のものには、上面に十字を作るときに使われるR’ U’ F’ U F Rという手順と、その逆と鏡映などしかないことが分かった。一方、七回の手順のものには、三つの種類があることが分かった。まずは、三つのコーナーを回転するときに使うR U R’ U R U2 R’というものとその派生。次に、三つのコーナーのみを交換するR U’ L’ U R’ U’ Lというものとその派生。新しいものとして、R B L’ B L B2 R’というものも見つけた。四つのコーナーの位置関係を変えずに、エッジの向きを変えることができるので、そういう場合に使えるかも知れない。
ubuntu12.04 on AZでflashを使えるか
armhfでflashを使う試み
先月に一旦断念した、AZにインストールしたubuntu12.04(もどき)でflashを使えるようにするために、少し調べてみた。
以前にも書いたが、mozilla-plugin-gnashを入れると良いという噂があるが、これについてはあまり調査は進んでいない。nspluginwrapperというものもあり、これが使えるかも知れない。
もう一つの方法としては、flashを止めてHTML5を使うという手段である。AZでは、midoriとchromiumでHTML5が使えるらしいので、これらをインストールすれば良いかもしれない。でも、まだ見れるサイトが限られるだろう。
次にAZをいじるときに、挑戦してみよう。
AZの残りの設定
キーボードとflash
今日中にAZの設定を終わらせたいのだが、ubuntu12.04と12.10のキメラ状態になってしまったこともあり、苦しんでいる。しかし、11.10に比べて無線LANは安定したように思える。残されている課題としては、日本語キーボードの認識と、flashである。あと、時々「システムプログラムの問題が見つかりました」というポップアップがでるのもなんとかした。
まず、キーボードだが、GUIからやろうとすると落ちてしまうが、これはキメラ問題のためだろう。結局、直接/etc/default/keyboardを書き換えて、jp106のjpを指定して、あとは以前11.10のときにやったように.Xmodmapを作ってみた。
flashはarmhfではまだできないという噂もある。mozilla-plugin-gnashを入れると良いという噂も聞くが、aptでは見つからない。source.listがおかしい可能性がある。今回は、一旦諦めることにした。
ポップアップは、/var/crash/のファイルを消して、/etc/default/apportのenabledを0にすれば消えるらしい。これで静かになると良いが。
dynabook AZにubuntu 12.04
12.10になってしまった。
ubuntu12.04が出てから一ヶ月以上たったので、そろそろAZのubuntu11.10を更新しようと思ったら、かなり苦しむことになった。ちなみに、そのマシンは人のものなのだが、私はそのマシンのubuntuインストール係となっている。
簡単な方法としては、11.10からのupgradeが考えられるのだが、無線LANが不安定で、途中で止まってしまう。ネット上の情報でも、あまりうまく行っていないようなので、この方法は諦めて、クリーンインストールすることになった。
まずは、公式のwikiにあるbootimgとtar.gzをダウンロードして、nvflashでAZにbootimgを書き込むために、USBケーブルでつないで、AZをctrl+escを押しながら電源ボタンを押して立ち上げたあとで、
nvflash --bl /usr/lib/nvflash/fastboot.bin --download 6 ubuntu-12.04-preinstalled-desktop-armhf+ac100.bootimg
として、転送が終了したらAZの電源ボタンを長押しして落とす。一方、USBメモリにubuntu-12.04-preinstalled-desktop-armhf+ac100.tar.gzをコピーする。そのUSBメモリをさしてAZを起動すると、インストールが始まるはずなのだが、始まらずに、いつもとは少し違う感じで11.10が立ち上がってしまう。何か間違っていないかいろいろと調べたが、分からない。パーティション6をバックアップしていたら、元に戻すこともできたのだが。
ネットでいろいろと調べた結果、12.10のdaily builtを入れることにした。5/30のものがあったので、これをダウンロードして、こちらもほぼ同じ要領で作業すると、今度はインストーラーが立ち上がって、本当にやって良いのかを聞いてくる。yを押すと無事にインストールが始まり、しばらく待つと設定が始まる。言語の選択では最後にある日本語を選択し、wifiにはまずは接続しない設定にした。しかし、地域の選択のところで落ちてしまう。さらに、ターミナルの開き方が分からないので、何をして良いか分からない。
GUIのみからできることとして、wifiをつないでみて、ソフトのアップデートをやってみた。そして、再起動をかけると、今度は最後までインストールをすることができた。実は最初に試行錯誤していたときには、GUIからユーザーを追加をしてしまい、インストーラーとかち合って失敗するということが分かり、やり直しをするはめになった。
一応のインストールはできたのだが、ここで悩んだのが、12.10のままでいくか、12.04に戻すかである。名前は12.10であるが、まだ実質は12.04だと考えられるので、ここでaptのsource.listをquntalからpreciseにしておけば、名実ともに12.04LTSになるのではという考えである。それは後で考えることにして、LXDEを入れようとしたら、いくつかのパッケージが見つからないと言われたので、自動的にaptをpreciseにすることになった。aptitude updateと、aptitude upgradeをすると、一応終了した。そして、lubuntu-desktopをインストールした。
次は日本語である。まずは、ubuntu Japanese teamのレポジトリからできるかと思ったが、うまくいかないので、普通に設定から言語サポートで選んで設定した。でも、これはlanguage-pack-gnome-jaを入れているだけのようなので、ターミナルでやれば良かった気がする。
USB-serialインターフェース
FT232RLを使ってみた
マイコンを使って自作の装置を作るときには、PCとどのインターフェースを使って通信するかを悩む。以前の計測装置はGPIBが標準だったので、別のマイコンでGPIBをUARTに変換してから、マイコンと通信をしていた。しかし、GPIBは標準ではなくなって、USBを使った方が良い状況になってきている。そこで、最近はUSBからRS232Cに変換するケーブルを用い、これをMAX232でレベルコンバートして、マイコンと通信するようにしている。しかし、いちいちレベルコンバートが面倒だし、マイコン用の電源を準備しないといけない。
FTDI社のUSB-UARTの変換ICであるFT232RLを用いれば、USBからUARTを介してマイコンと通信できるのではということで、試してみた。ICがSSOPだったので、細かくて半田付けに苦労したが、USBコネクターをつないで、Linuxに接続したら、ttyUSB0ができた。どうやらうまく動いているようだ。そのあといろいろといじっていたら、ICを逆さまにさしてしまい、ICが発熱してあわててはずした。死んだかなと思ったら、ttyUSB0が出てくるので、まだ生きているのかな。
AVRと配線でつなぐところまではやったが、次は実際にマイコンで何かプログラムを動かしてみよう。
新測定用PC
lubuntuを採用
新しく測定用のPCとして注文していたものが、本日届いたので、セットアップした。今回のPCは狭いところに置くので、小型のノートにしたが、注文する際には、Windowsの無いものを見つけるのに苦労したので、届いた喜びも格別だ。
まず、OSをdebianにするかubuntuにするか迷ったが、最近12.04LTSが出てこの先5年は使えるubuntuを採用することにした。そこで、lbuntuの64bit版をdownloadしてインストールした。
次に、必要なrubyとtcltkとRをインストールした。そして、usbtmcのpermissionの設定をして、ようやく測定ができる準備が整った。これから徐々に整備していこう。
usbtmcの権限
udevを用いたusbtmcの権限の変更
ubuntuからusbtmcの装置を制御して使っていたが、一つ問題を残していた。装置が認識されたときに、root権限しかアクセスができないようになっているのだ。これまではchownとかchmodとかでごまかしていたが、ようやく権限の設定に成功したので、ここに書いておく。
まず、usbtmcグループを
groupadd usbtmc
として作成する。次に、/etc/udev/rules.d/40-usbtmc-permissions.rulesに
KERNEL=="usbtmc*", GROUP="usbtmc", MODE="0660"
と記述する。PCを再起動したら、usbtmcグループとして認識するようになった。あとは/etc/groupを編集してユーザーをusbtmcグループに加えれば、読み書きができるようになる。 最初はusbtmcグループを作成せずにudevをいじっていて、うまく行かずに苦しんでいたが、グループを作ったらやっとうまく言った。やはり、サボってはいけないという教訓なのだろう。
ubuntuのGSL
debianとubuntuのGSLの違い
以前、spline補完をするのに、ruby-gslを使った。その時はdebianを使っていたのだが、
xa=NArray.to_na(data[0]) ya=NArray.to_na(data[1]) spline = GSL::Spline.alloc("cspline",ya,xa)
としたら動いていた。ところが、ubuntuではこれが動かないことが分かった。いろいろと調べていたら、
xa=GSL::Vector.alloc(data[0]) ya=GSL::Vector.alloc(data[1]) spline = GSL::Spline.alloc("cspline",ya,xa)
としたら動くようになった。ubuntuとdebianでこんなところが違うとは。