2008/09/17

iPod nano

注文していたピンマイクが届いたので、早速近所でオーディオマッピングを数回試してみました。が、何回やっても上手く行かなかったのでMP3プレーヤーを暫く観察していると、どうやら録音機能に問題があって3分を過ぎた頃に勝手にリセットされたり電源がオフになったりしていたようです。更新用のファームウェアを探してみましたが見つからず、MP3プレーヤーでのオーディオマッピングは中止しました。

仕方が無いのでICレコーダーを探すことにしようかとも一瞬思ったのですが、前に買った物のことを考えるとちょっと気が進みませんでした。そうこうしているうちに、自分が持っている第2世代iPod nanoでも録音ができることが分かりました。

アマゾンで探してみると、iPodで録音するためのアクセサリーはいくつかのサードパーティーから発売されていました。
今回は右から2番目のiTalk Proを選びました。理由は注文時点で一番安かったから。(今は在庫切れで、在庫切れの状態ではその時の値段が表示されないみたいです。)

まぁ、上手く行くのかちょっと心配ですが、届くのが楽しみです。

2008/09/11

Xubuntu

一昨日UbuntuでMarbleを動かした後、もう少しLinuxに触ってみたいなぁなんて思い始め、昨日の午後からウィキペディアを参考にLinuxディストリビューションの選定を始めました。導入先は海外旅行の時に持って行く以外は最近ほとんど触らなくなってしまった古いノートPCです。本当はCentOSVine Linuxとか、SLAX-jaとか、Ubuntuとは系統の違うものを試して見たかったのですが、自分の経験値を考えると敷居が高そうなので、結局Xubuntuを使うことにしました。

早速ダウンロードして焼いたLiveCDを入れてみるといい感じで立ち上がり、このノートPCでも十分使えそうだったので、デスクトップ上に表示されているアイコンをクリックして、そのままインストール作業を開始しました。随分前の話ですがこのノートPCをメインのマシンとして使っていたことがあり、今使っているノートPCを買ってメインのマシンではなくなった時に、雑誌の付録のVine Linuxをインストールしたことがあります。Vine Linuxの方は入れてみたものの、日本語入力で躓いたのでネットワークへの接続にも挑戦せずに放置したまま使っていませんでしたが、実はその時のブートローダやext3とswapのパーティションが残っていたので、ディスクの整理やパーティションの切り直しなどはせずにそのまま使うことにしました。スワップ領域含めて5GBしかないので狭いですけど、Webとちょっとしたコマンドやスクリプトを試すだけということにして、まぁこれで我慢しようと思います。

今回は作業の途中でメモを取らなかったので、残せる情報があまり無いのですが、思い出せるものを書いておこうと思います。

1. 日本語入力

ウィキペディアによると「Xubuntuには、日本語ローカライズ版はない」とのことなので少々不安を感じていましたが、LiveCDで立ち上げるとメニューやデスクトップ上のアイコン名などが日本語で表示されていました。どのように判断しているのかよく分かりませんが、Windowsが立ち上がっている時にLiveCDを入れて再起動の操作をしていたので、それと関係があるのかも知れません。で、インストールの際には言語の選択があるので、そこでは「日本語」を選択します。

インストールが終わると日本語の表示は問題ありませんでしたが、日本語入力はできませんでした。検索すると日本語入力をできるようにするための方法を書かれている人が居たので、リンクを貼っておきます。 上記のページを参考にパッケージを追加すると、メニューの「Applications → 設定」に「Anthy 辞書管理」が追加されていました。でも、全然変換できないと言うか、変換システムが動いている様子がありません。自分が引っ掛かった点は、Caps Lockにしていたためのようです。これはメニューの「Applications → 設定 → SCIM入力メソッドの設定」を起動し、パッケージの追加後に表示されるようになった「IMエンジン → Anthy」をクリック、「ローマ字入力」タブをクリック、「大文字入力時に一時ASCIIモードに切り替える」のチェックを外すことで直るようです。

2. 無線LAN

有線のLANはケーブルを繋いだだけで使えるようになったのですが、無線LANはなかなか繋がりませんでした。使用している無線LANカードはエレコムの「Laneed Wireless PC Card LD-WL11/CB」というCardBus対応のものです。いろいろ試行錯誤したのでやったことやその順序の記憶があやふやなのですが、作業の最初の頃に下のコマンドを打った時に表示されていたような気がするので、今考えると無線LANカードはハードウェア的には自動的に認識されていたように思います。

lspciコマンドの出力結果の一番下に表示されているのが、無線LANカードです。
x20@thinkpad-x20:~$ sudo su
[sudo] password for x20:
root@thinkpad-x20:/home/x20# lspci -v
00:00.0 Host bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
Flags: bus master, medium devsel, latency 64
Memory at f8000000 (32-bit, prefetchable) [size=64M]
Capabilities: [a0] AGP version 1.0

00:01.0 PCI bridge: Intel Corporation 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03) (prog-if 00 [Normal decode])
Flags: bus master, 66MHz, medium devsel, latency 128
Bus: primary=00, secondary=01, subordinate=01, sec-latency=64
I/O behind bridge: 00002000-00002fff
Memory behind bridge: f4100000-f5ffffff
Prefetchable memory behind bridge: 20000000-200fffff

00:07.0 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ISA (rev 02)
Flags: bus master, medium devsel, latency 0

00:07.1 IDE interface: Intel Corporation 82371AB/EB/MB PIIX4 IDE (rev 01) (prog-if 80 [Master])
Flags: bus master, medium devsel, latency 64
[virtual] Memory at 000001f0 (32-bit, non-prefetchable) [disabled] [size=8]
[virtual] Memory at 000003f0 (type 3, non-prefetchable) [disabled] [size=1]
[virtual] Memory at 00000170 (32-bit, non-prefetchable) [disabled] [size=8]
[virtual] Memory at 00000370 (type 3, non-prefetchable) [disabled] [size=1]
I/O ports at 1800 [size=16]

00:07.2 USB Controller: Intel Corporation 82371AB/EB/MB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
Flags: bus master, medium devsel, latency 64, IRQ 11
I/O ports at 1820 [size=32]

00:07.3 Bridge: Intel Corporation 82371AB/EB/MB PIIX4 ACPI (rev 03)
Flags: medium devsel, IRQ 9

00:08.0 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
Subsystem: IBM ThinkPad A/T/X Series
Flags: bus master, medium devsel, latency 168, IRQ 11
Memory at 50000000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=02, subordinate=05, sec-latency=176
Memory window 0: 10000000-13fff000 (prefetchable)
Memory window 1: 14000000-17fff000
I/O window 0: 00001400-000014ff
I/O window 1: 00001c00-00001cff
16-bit legacy interface ports at 0001

00:08.1 CardBus bridge: Ricoh Co Ltd RL5c476 II (rev 80)
Subsystem: IBM ThinkPad A/T/X Series
Flags: bus master, medium devsel, latency 168, IRQ 11
Memory at 50100000 (32-bit, non-prefetchable) [size=4K]
Bus: primary=00, secondary=06, subordinate=09, sec-latency=176
Memory window 0: 18000000-1bfff000 (prefetchable)
Memory window 1: 1c000000-1ffff000
I/O window 0: 00003000-000030ff
I/O window 1: 00003400-000034ff
16-bit legacy interface ports at 0001

00:0a.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet Pro 100 (rev 09)
Subsystem: Intel Corporation EtherExpress PRO/100+ MiniPCI
Flags: bus master, medium devsel, latency 66, IRQ 11
Memory at f4010000 (32-bit, non-prefetchable) [size=4K]
I/O ports at 1840 [size=64]
Memory at f4020000 (32-bit, non-prefetchable) [size=128K]
[virtual] Expansion ROM at 20100000 [disabled] [size=1M]
Capabilities: [dc] Power Management version 2

00:0a.1 Serial controller: Xircom Mini-PCI V.90 56k Modem (prog-if 02 [16550])
Subsystem: Intel Corporation Unknown device 2408
Flags: medium devsel, IRQ 11
I/O ports at 1810 [size=8]
Memory at f4011000 (32-bit, non-prefetchable) [size=4K]
Capabilities: [dc] Power Management version 2

00:0b.0 Multimedia audio controller: Cirrus Logic Crystal CS4281 PCI Audio (rev 01)
Subsystem: IBM Unknown device 0183
Flags: bus master, medium devsel, latency 64, IRQ 11
Memory at f4012000 (32-bit, non-prefetchable) [size=4K]
Memory at f4000000 (32-bit, non-prefetchable) [size=64K]
Capabilities: [40] Power Management version 2

01:00.0 VGA compatible controller: ATI Technologies Inc Rage Mobility P/M AGP 2x (rev 64) (prog-if 00 [VGA controller])
Subsystem: IBM Unknown device 0182
Flags: bus master, stepping, medium devsel, latency 66, IRQ 11
Memory at f5000000 (32-bit, non-prefetchable) [size=16M]
I/O ports at 2000 [size=256]
Memory at f4100000 (32-bit, non-prefetchable) [size=4K]
[virtual] Expansion ROM at 20000000 [disabled] [size=128K]
Capabilities: [50] AGP version 1.0
Capabilities: [5c] Power Management version 2

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8180L 802.11b MAC (rev 20)
Subsystem: Elecom Co Ltd Unknown device b003
Flags: bus master, medium devsel, latency 64, IRQ 11
I/O ports at 1400 [size=256]
Memory at 14000000 (32-bit, non-prefetchable) [size=512]
Capabilities: [50] Power Management version 2

無線LANカードのチップがRealtek Semiconductor社のRTL8180Lと分かりRealtek社のサイトで検索すると「Linux kernel 2.6.X」と書かれたドライバがあったので、なんとなく古そうな感じもしましたがまずはこれをダウンロードしてみることにしました。解凍してできたフォルダにMakefileが含まれていたので分かりもしないくせにそのフォルダでmakeを実行してみると、ファイルだかディレクトリだかが無いというメッセージが出てフォルダの中身が消えてしまい、カードのランプも全然点灯せず結局駄目だったようです。

仕方がないのでndiswrapperを試してみることに。Realtek社のサイトからWindows 98SE/ME/2K/XP用のNDIS5ドライバらしきものをダウンロードして解凍しておきます。「Applications → システム」の「Synaptic パッケージマネージャ」を起動してndiswrapperを検索すると、3つのパッケージ(ndisgtk、ndiswrapper-common、ndiswrapper-utils-1.9)が表示されたので、全部インストール。ここで再起動が必要だったどうかは忘れましたが、「Applications → システム」に「Windows Wireless Drivers」が追加されているので、これを起動。Install New Driverをクリックするとinfファイルの場所を尋ねられるので、先程解凍したフォルダの中にあるNET8180.INFを指定してインストールします。これでカードのランプが一つ点くようになりました。

後はアクセスポイントとの接続設定で、ネットワーク名やワイヤレスセキュリティ(暗号化の種類やキーなど)を設定し、上手く繋がるとカードのランプが1つは点灯、もう1つは点滅するようになります。この辺の手順はアクセスポイント側の設定によっても異なりますし、何度も試行錯誤してよく思い出せないので、残念ながら書けません。

3. スクリーンショット

大したことではありませんが、せっかくなのでついでに。
Ubuntuではスクリーンショットを撮るためのアプリケーションが最初からメニューに登録されていますが、Xubuntuのメニューでは見付かりませんでした。Xubuntuの場合は画面の上下に表示されているパネル(バー)を右クリックし、表示されたメニューの「アイテムを追加」をクリックして、Screenshotというアイテムを追加するとパネルにカメラのアイコンが表示されるようになります。

2008/09/09

Marble

先日、国土数値情報の空港データをインポートするためのPerlスクリプトがLinux上で動かないという問い合わせがありました。私自身はWindows上でしか使ったことが無かったので、OpenStreetMapの日本語メーリングリスト (talk-ja) で尋ねてみると、鉄道データ用のスクリプトFedora8/9とCentOS5.2で特に問題無く動いているとのこと。私も、Mapnikを動かして以来使っていなかったUbuntu8.04で試してみました。久々にUbuntuを使う為、無線LANの調子が悪い中を170MBのファイルをダウンロードしてVMware Playerをアップデートしたり、Ubuntuに224個のアップデートを適用したりしたのですが、CPANから"XML::Simple"をインストールしなければならなかったことを除けば、空港データ用のスクリプトも特に問題無く動きました。

意外にあっさり終わってしまったなと思っていた時に、talk-jaで話題になっていたMarbleのことを思い出しました。Marbleというアプリケーションは、(衛星画像や地図が表面に貼り付けられた)地球をGoogle Earthのようにグリグリと回せるもので、OpenStreetMapの地図の表示もできます。

talk-jaでは「KDE Marble」と紹介されていたのでLinuxをあまり使ったことの無い私はUbuntuには関係の無い話だと思っていましたが、Windows版Qtを使っており、もしかしたらと思って公式サイトを眺めているとQt-onlyでもコンパイルできることが分かったので、私もMarbleを触ってみることにしました。

せっかくなので、MarbleをQt-onlyアプリケーションとしてコンパイルして動かすまでに試行錯誤したことを書いておこうと思います。



1. Qtの導入

QtはMapnikViewerを動かす為に入れてあったので、今回は無し。その時のメモはこちら

2. ソースコードの入手

ソースコード (.tar.gzファイル) はダウンロードページから入手できますが、コンパイルの手引きのページではSVNからの入手を奨めているので、今回はSVNから安定版を入手することにしました。
vmuser@vmuser-desktop:~$ sudo su
[sudo] password for vmuser:
root@vmuser-desktop:/home/vmuser# cd /usr/local/src
root@vmuser-desktop:/usr/local/src# svn co svn://anonsvn.kde.org/home/kde/branches/KDE/4.1/kdeedu/marble


3. cmakeのインストール

cmakeは使ったことが無く、Ubuntu8.04にも入っていなかったのでインストールしました。
vmuser@vmuser-desktop:~$ sudo su
[sudo] password for vmuser:
root@vmuser-desktop:/home/vmuser# apt-get install cmake
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libestraier8 libqdbm14
これらを削除するには 'apt-get autoremove' を利用してください。
以下のパッケージが新たにインストールされます:
cmake
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 0 個。
4808kB のアーカイブを取得する必要があります。
この操作後に追加で 12.4MB のディスク容量が消費されます。
取得:1 http://jp.archive.ubuntu.com hardy/main cmake 2.4.7-1build1 [4808kB]
4808kB を 5min24s で取得しました (14.8kB/s)
未選択パッケージ cmake を選択しています。
(データベースを読み込んでいます ... 現在 141371 個のファイルとディレクトリがインストールされています。)
(.../cmake_2.4.7-1build1_i386.deb から) cmake を展開しています...
cmake (2.4.7-1build1) を設定しています ...


4. buildディレクトリの作成

buildディレクトリを作成して移動します。
root@vmuser-desktop:/usr/local/src# cd ../bin
root@vmuser-desktop:/usr/local/bin# mkdir marble-build
root@vmuser-desktop:/usr/local/bin# cd marble-build
※ディレクトリの作成場所はコンパイルの手引きのページに書いてあるものと異なっています。

5. cmakeの実行

cmakeを実行します。
root@vmuser-desktop:/usr/local/bin/marble-build# cmake -DQTONLY=ON ../../src/marble
-- Check for working C compiler: /usr/bin/gcc
-- Check for working C compiler: /usr/bin/gcc -- works
-- Check size of void*
-- Check size of void* - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
WARNING: This project requires version 2.4.8 of CMake. You are running version 2.4.7.

CMake Error: Qt qmake not found!
-- Configuring done
qmakeが見付からないと怒られたので、cmakeをやり直しました。
root@vmuser-desktop:/usr/local/bin/marble-build# cmake -DQTONLY=ON -DQT_QMAKE_EXECUTABLE=/usr/local/Trolltech/Qt-4.3.4/bin/qmake ../../src/marble
WARNING: This project requires version 2.4.8 of CMake. You are running version 2.4.7.

-- Looking for Q_WS_X11
-- Looking for Q_WS_X11 - found
-- Looking for Q_WS_MAC
-- Looking for Q_WS_MAC - not found.
-- Looking for Q_WS_WIN
-- Looking for Q_WS_WIN - not found.
-- Found Qt-Version 4.3.4

-- Not building with Gpsd Support
-- not building with gpsd support
-- Configuring done
-- Generating done
-- Build files have been written to: /usr/local/bin/marble-build

root@vmuser-desktop:/usr/local/bin/marble-build# ls
CMakeCache.txt Makefile src
CMakeFiles cmake_install.cmake svnscript.cmake
CPackConfig.cmake cmake_uninstall.cmake tests
CPackSourceConfig.cmake data

root@vmuser-desktop:/usr/local/bin/marble-build#
なんかCMakeのバージョンが古いという警告メッセージが出ていますけど、CMakeはさっきインストールしたばかりでどうしたらいいのか分からないので、そのまま進むことにしました。

6. makeの実行

makeを実行します。
root@vmuser-desktop:/usr/local/bin/marble-build# make
出力メッセージは長いので省略。

7. make installの実行

make installを実行します。
root@vmuser-desktop:/usr/local/bin/marble-build# make install
出力メッセージは長いので省略。

8. marbleの実行

marbleを実行します。
vmuser@vmuser-desktop:~$ marble
marble: error while loading shared libraries: libQtCore.so.4: cannot open shared object file: No such file or directory
vmuser@vmuser-desktop:~$
動きません。ホームディレクトリにlibQtCore.so.4のシンボリックリンクを作ってみましたが、状況は変わらず駄目でした。

cmakeの段階でQT_QTCORE_LIBRARYを指定してやり直し。
root@vmuser-desktop:/usr/local/bin/marble-build# cmake -DQTONLY=ON -DQT_QMAKE_EXECUTABLE=/usr/local/Trolltech/Qt-4.3.4/bin/qmake -DQT_QTCORE_LIBRARY=/usr/local/Trolltech/Qt-4.3.4/lib/libQtCore.so.4.3.4 ../../src/marble > cmakelog.txt
WARNING: This project requires version 2.4.8 of CMake. You are running version 2.4.7.


root@vmuser-desktop:/usr/local/bin/marble-build#
状況は変わらず、これも駄目。

検索して少し調べてみると、環境変数でLD_LIBRARY_PATHを指定すると良いようです。 .bashrc の末尾に追加して試してみると、
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.3.4/lib
export LD_LIBRARY_PATH
今度は libmarblewidget.so.6 が見付からないと怒られてしまいましたので、.bashrc を修正すると、
LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.3.4/lib:/usr/local/bin/marble-build/src/lib
export LD_LIBRARY_PATH
解決!

2008/09/03

ピンマイク

オーディオマッピングで使おうと思っているMP3プレーヤーには内臓マイクが付いていて、大きさ・形(・色まで)が今使っているGPSロガーとほぼ同じUSBメモリータイプなので、そのまま手に持って使うこともできます。でも、いくら小さいとは言っても両手に1つずつ同じような物を持って歩くのが嫌だったので、外部マイクを買うことにしました。

本当は下の画像(アマゾンの広告)の一番左の物のようなハンドマイクみたいな形で、手元でマイクのOn/Offができる物を探していたのですが、トランシーバー用のハンドマイクしか見付からなかったので諦めました。OpenStreetMapの日本語メーリングリスト (Talk-ja) でピンマイクを使っていると言う人がいたので、私もそのタイプにすることにして探してみると真ん中の画像の物が一番安かったみたいですが、実際には一番右の画像の物を注文しました。理由は単に、私のMP3プレーヤーが2.5Фマイク端子で、一番右の画像の物が3.5Ф→2.5Ф変換プラグ付きだったからです。



注文してから気が付いたのですが、一番右の画像の物はコードの長さが1.8mなんですよね。車に乗っている時は構いませんけど、徒歩の時にはちょっと長いような気がします。MP3プレーヤーを鞄に入れるとしても、1.2m位がちょうど良かったのに。鞄の中でコードがぐちゃぐちゃになるなぁ。まぁ、コード整理用の小物を見付けて来れば済む話ですけど、なるべくなら余計なものを持って歩きたくないですし...
Atom