2009年11月3日

Java開発環境(SDK)のセットアップ

Javaの開発を行う必然性が生じて、環境のセットアップを行う。
開発環境自体はpkgsrcを用いてセットアップする。その作業の覚書。

まずは、インストールするSDKのバージョンを決める。
Package一覧を見ると、J2SE1.4, J2SE5.0, J2SE6.0がある。最新版のJ2SE6.0をインストールすることにする。

まずは、/etc/mk.confに以下のエントリを追加する。
  ACCEPTABLE_LICENSES+= sun-jdk6-license

インストールを行うためにはバイナリファイルを自分でダウンロードしてくる必要がある。(ライセンスの関係?)
http://java.sun.com/products/archive/から"JDK 6u14"と"JRE 6u14"のLinux版をダウンロードし、/usr/pkgsrc/distfilesにファイルをおく。

以下のコマンドでインストール作業を実行
  $ cd /usr/pkgsrc/lang/sun-jdk6/
  $ make
  $ make install
  $ make clean
  $ make clean-depends

続いて、/etc/fstabに以下を追記する。
  procfs   /emul/linux/proc    procfs   rw,linux

インストールしたjava関連コマンドは /usr/pkg/java/sun-6/bin/ 配下に置かれるので、PATHの設定を行う。これでOK!

2009年11月2日

Adobe Readerのインストール

これまでNetBSDではPDFファイルは見ていなかった(Windowsですませていた)のだけれども、いい加減使い勝手が悪いので、Adobre Readerをインストールすることにする。

まずは、pkg_addでバイナリをインストールしようと試みるもエラー発生。
調べてみると、pkgsrcではバイナリ版のパッケージは用意されていなかった。(おそらくライセンス関係の問題だと思われる)

では、ソースコードからのビルドを実行。今度はビルドエラーが出た。
  $ cd /usr/pkgsrc/print/acroread7/
  $ make
  ERROR: This package has set PKG_FAIL_REASON:
  ERROR: acroread7-7.0.9nb2 has an unacceptable license condition:
  ERROR:     adobe-acrobat-license
    (以下略)
エラーメッセージにある通り、ライセンスの関係から意図的にエラーとしている模様。
エラーメッセージの内容にしたがい、/etc/mk.conf に以下のエントリを追加
  ACCEPTABLE_LICENSES+= adobe-acrobat-license
この修正を加えた上で、以下のコマンドでインストール成功!
  $ cd /usr/pkgsrc/print/acroread7/
  $ make
  $ make install
  $ make clean
  $ make clean-depends

ただ、これだけだと日本語のフォントがインストールされていないので、acroread7-jpnfontもインストールする。これでOK!

2009年11月1日

ath0: device timeout

NetBSD5.0を使用していて、無線LANドライバで以下のような警告(?)メッセージが表示される。
ath0: device timeout (txq 1, txintrperiod 5)
ath0: device timeout (txq 1, txintrperiod 4)
ath0: device timeout (txq 1, txintrperiod 3)
ath0: device timeout (txq 1, txintrperiod 2)
このメッセージが何なのかはサッパリ分からない。
調べてみると、NetBSDのメーリングリストで以下の解決策が記載されていた。

/etc/sysctl.conf  に以下を追加する。
  hw.ath0.txintrperiod=1
これで、とりあえず警告メッセージは表示されなくなった。

2009年10月1日

Goole Android を試してみる。

Google Androidが気になっていて、今回開発環境にトライしてみる。
基本的には、"Android Developers"のサイトに従ってインストールおよびHelloAndroidプロジェクト実施。しかしながら、エミュレータの動作が非常に遅くて、なかなか難航しています。

エミュレータの動作が遅いのは、Googleで調べると色々なところで指摘されている模様。
私の環境では、「仮想デバイス」を作成して初回の実行ではうまく動作するが、2回目以降はいつまでたっても起動しなかったり・・・。今後、この点についてちょっと調べないとなと思っています。

Androidの仮想デバイスに関する操作については、JavaDriveさんのサイトが大変参考になります。
  JavaDrive : http://www.javadrive.jp/android/index.html

ちなみに、個人で使用している環境は以下の通り。
  OS : Windows XP Professional SP3
  Eclipse : Eclipse 3.5 (Galilero)
  Android SDK : Android SDK 1.6R1 (Windows用)
  CPU : Pentium-M 1.7GHz
  メモリ : 1GB

# 余談。Android携帯には興味があるが、私的な理由で個人的にauにしたいと思っています。(現在はSoftbank)現時点ではNTT DocomoからしかAndroid携帯は発売されていませんが、来年('10年)にはAUからも発売されるのかな?

2009年9月24日

pkglint, cpuflagsのインストール(ソースコードから)

せっかくpkgsrcを利用しているのだから、ソースコードから自前でビルド+インストールできるようにしたいと思いました。pkgsrcはインストール済み(その時の記録)ですが、これまではバイナリインストールしか行っていませんでした。

今回、NetBSDのサイトで公開されている"The pkgsrc guide"を参考にソースコードからビルドする方式を試してみることにしました。まずは、ガイドに載っている pkglint というパッケージをインストール。基本的にガイドに載っている通りのコマンドを実行すればOKでした。
  $ cd /usr/pkgsrc/pkgtools/pkglint
  $ make
  $ make install
  $ make clean
  $ make clean-depends
なんて簡単なんだろう。ちょっと感動です。

続いて、「せっかくソースからコンパイルするのだから、コンパイルオプションで最適化を行いたい」と思いcpuflagsをインストールすることにしました。
  $ cd /usr/pkgsrc/devel/cpuflags
  $ make
  $ make install
  $ make clean
  $ make clean-depends

さっそくインストールしたcpuflagsコマンドを実行したところ、以下のような出力になった。
  $ cpuflags
  -mfpmath=sse -msse2 -march=pentium-m
この設定を、pkgsrcのソースコードビルドで有効にするために、/etc/mk.conf を作成し以下を記述
  USE_CPUFLAGS=yes
これでビルド時に自動的に cpuflags コマンドの結果(上述の設定)がコンパイルオプションとして渡されるのかな?(試していないが‥)

2009年9月23日

Enhanced SpeedStep(その2)

先日のエントリでEnhanced SpeedStepでCPU動作周波数を設定する方法について記載しましたが、前回調べたestdにて自動で設定をできるようにしてみました。

まずはプログラムのインストール。PackageCollectionからインストールします。
  $ pkg_add ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/5.0_2009Q2/All/estd-0.6.tgz
インストール時にメッセージが出てくる通り、動作させるためには /etc/rc.d/estd というファイルを作成する必要があります(ファイルの記載内容は、/usr/pkg/share/examples/rc.d/estd を参考にします)。まずは深く考えずに、サンプルファイルをコピー。
  $ cp /usr/pkg/share/examples/rc.d/estd /etc/rc.d/estd
  $ chmod 755 /etc/rc.d/estd
また、/etc/rc.conf に以下のエントリを追加します。
  estd=YES
これで、システム再起動あるいは、estdの起動(/etc/rc.d/estd start)を行います。



これで設定はOK。ちゃんと動いていることを確認するためにCPUに負荷のかからない状態(ターミナルソフトを立ち上げているだけ)と負荷のかかる状態(カーネルコンパイル時)とで、CPU動作周波数を確認。
  $ sysctl machdep.est  #負荷がかかっていない状態
  machdep.est.frequency.target = 600
  machdep.est.frequency.current = 600
  $ sysctl machdep.est  #負荷がかかっている状態
  machdep.est.frequency.target = 1700
  machdep.est.frequency.current = 1700
ちゃんと動いている模様。

2009年9月19日

色々(Emacs関係)

Emacsを使っていて何点か‥

まず、Anthyでの日本語変換がうまく行かない。
Anthyモードへの切り替えおよびひらがなの入力はできたが変換がうまく動作しない。
Emacsの起動時メッセージに
 "anthyのelcファイルが23系でコンパイルされている"
みたいなWarinigメッセージが出ていた。これが原因かと思う。
僕は22系のEmacsをインストールしたが、Package Collectionのanthy-elispは23系でコンパイルされている模様。そこで、anthy-elispがインストールされている /usr/pkg/share/emacs/site-lisp/anthy/ 配下のelcファイルをコンパイルしなおす。
Emacsを起動して、"M-x byte-compile-file"を行えばOK。
これを行ったところ、変換も問題無く動作するようになった。

続いてctagsについて。
EmacsでもTAGを参照したいが、NetBSDに標準で入っているtagsコマンドはEmacs用のTAGファイル作成には対応していない模様。そこで、Package Collectionのexctagsをインストールする。
  $ pkg_add ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/5.0_2009Q2/All/exctags-5.7.tgz
これでEmacsでもTAGを使って関数の参照が可能になった。

Enhanced SpeedStep

使用しているPCはThinkPad X31で、CPUにはPentium-M(Baniasコア)が使われている。
このコアにはEnhanced Intel Speedstep Technologyが搭載されている。

このコアでは、動作周波数は600MHz〜1.7GHzが使用できるのだが、Xを起動すると1.7GHz固定になってしまう。処理自体はほとんど行わせていないにも係わらずファンが回り出したりするので、これを何とか設定できないものかな?と思い色々と試してみる。

まずはOSでどのように動作しているのかを確認。"sysctl -A"コマンドで関係しそうなものは以下。
  machdep.est.frequency.target = 1700
  machdep.est.frequency.current = 1700
  machdep.est.frequency.available = 1700 1400 1200 1000 800 600
availableは分かる。currentも"現在の周波数"ってことだろうけど、targetって何だろう?
カーネルのソースコード(sys/arch/x86/x86/est.c)をザッとながめたところ、targetで指定した周波数に設定されるように見える。(currentは参照するだけっぽい)

そこで、sysctlコマンドを使って周波数を変更できるか試してみた。
  $ sysctl -w machdep.est.frequency.target = 1000
  machdep.est.frequency.target: 1700 -> 1000
  $ sysctl machdep.est
  machdep.est.frequency.target = 1000
  machdep.est.frequency.current = 1000
  machdep.est.frequency.available = 1700 1400 1200 1000 800 600
設定できた模様。

過去にLinuxを使っていた時には、cpufreqd というデーモンプログラムで動作周波数を自動的に変更していたが、NetBSDでも同様なことをしてくれるプログラムは無いものだろうか?
と思って探してみたら、estd というプログラムがあった。今度試してみよう。

アプリケーションのインストール

最低限必要なアプリケーションをインストールする。
とりあえず、Emacsとブラウザ(Firefox)が必須。

Emacs(22系)と、Emacs上でAnthyを利用するためのElispをインストールする。
  $ pkg_add ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/5.0_2009Q2/All/emacs-22.3nb2.tgz
  $ pkg_add ftp://ftp.netbsd.org/pug/pkgsrc/packages/NetBSD/i386/5.0_2009Q2/All/anthy-elisp-9100nb3.tgz

続いてFirefoxのインストール
$ pkg_add ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/5.0_2009Q2/All/firefox3-3.0.13.tgz
Firefoxを入れた後は、昔調べたこれでフォントサイズを設定。


ちなみに、前回 mlterm 上で日本語が入力できなかったが、今回入れたEmacs, Firefox共に日本語入力は問題無くできた。
# mltermで日本語入力ができないのは、mlterm側の問題っぽい?



とりあえずは、このマシンで作業をするための最低限の環境が整ったのでOKとしよう。