ZZRでツーリングマップル(中四国版)全制覇への道 〜ついでにLinuxハッカーも目指してます〜

どうも。ここは、バイクを買って一年ちょっとの駆け出しライダー兼Linux狂のITサラリーマンのブログです。 ツーリングマップルの全ページ制覇の記録と、日々のLinuxハッキングの記録を記します。

Let's Noteが来た

ひさしぶりの日記でいきなりだけど、レッツノート(CF-W5AWDBJR)買った。

最近、残業多かったし、ボーナスも入ったし、何よりレッツノート欲しかったしw

Vista Business が入っているが、そこそこ軽い。 しかし、OSインストール直後にディスク使用量8Gとはどういうことや!

とりあえず、Debian入れてやるからな。まってろよ、おれのレッツよ。

Eclipse3.2.xの文字コード指定方法

勉強のために、自宅のGentooマシンにEclipse3.2.1をインストールしてみる。
そしらた、なぜかソースファイル保存時に

「保管が失敗しました。:null」

とかいうエラーが出る。
仕事ではWindows版の3.2.2を使っているが、こんなエラーは見たことない。
うむむ、LinuxでのJava系開発環境構築は苦労が多い…
いろいろ試してみると、どうやら日本語が含まれているときにエラーが出るようだ。

「なんだ、文字コードしてやればいいのか〜」

と思い、「ウィンドウ」->「設定」->「一般」->「エディター」あたりを探してみるが、見つからない。
フィルターで「コード」とかかけても、、見つからない。
ネットを探してみると、 「ウィンドウ」->「設定」->「一般」->「コンテンツ・タイプ」にあるよという情報があるではないですか。

こりゃわかんねーよ。。。

危うく、Gentoo のせいかと思い、あきらめて Windows に走るとこでしたよ。
あ〜、今日は入出力勉強しときたかったのに…。

Debian 3.1 jless の日本語表示について

仕事でDebian 3.1 Sarge を使っているが、なぜか日本語表示の調子が悪かった。

・日本語ファイルをlessすると 「"test.txt" may be a binary file. See it anyway? 」
と表示される。日本語ファイルはきちんと見れる。

・manすると「man: コマンドはステータス 256 で終了しました:」と表示され、マニュアル
 が表示されない。
  しょうがないから、alias man='LANG=C man' とかせざるを得ない。

jlessもインストールして、環境変数 PAGER も jless に設定しているのに、この状態。

いい加減イライラしていたが、運よく @ITの記事で、ページャを lv にしてみよ、という
情報を発見。

さっそく試してみる。

# apt-get install lv
$ export PAGER=lv
$ man man
名前
man - オンラインリファレンスマニュアルのインターフェース


キターーー!

まったく、jless さーん、頼みますよ〜。


これは何が悪かったのだろう?

じっくり調べたいが、これに時間を割いたせいで、仕事の方が進まなかったのでもう深追いはしない。

おかげでまだ会社ですよ、トホホ…

Gentoo超高速化???

後輩にGentooはいいぞいいぞと勧められ、断腸の思いで、慣れ親しんだPlamoLinuxを
捨ててGentooをインストールしました。
しかし、私は激しく後悔しました。私のGentooLinuxには致命的な欠陥があったのです。

それは、「やたら重い」

emergeやっただけでloadaverageが3とか4とかまで上がって、軽くフリーズ状態でした。

で、いろいろと人に聞いてみたところ、「それ、DMAが有効になってないんじゃないのか?」と。

あれ〜、確かhdparm実行した覚えがあるんだけど、と記憶を辿ってみたところ、

あ、あれはインストール中にやっただけだから、インストール後は有効になってないんじゃ…

というわけで、いまさらGentooでDMAを有効にした時の記録です。
よって、タイトルの超高速化とは、ものすごい裏技でもなんでもなく、単にDMAを有効にしただけの話です(アホだな〜)

===== 動作環境 ===============
CPU: Pentium 4
Disk: Seagate
カーネル:2.6.18-gentoo-r3
==============================

■高速化前のHDの設定
# hdparm -v /dev/hda
/dev/hda:
multcount = 0 (off)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 19457/255/63, sectors = 312581808, start = 0

■高速化前の性能測定
# hdparm -Tt /dev/hda

/dev/hda:
Timing cached reads: 1608 MB in 2.00 seconds = 802.93 MB/sec
Timing buffered disk reads: 10 MB in 3.47 seconds = 2.89 MB/sec

■Gentooオススメのオプションを設定
# hdparm -d1 -A1 -m16 -u1 -a64 /dev/hda

setting fs readahead to 64
setting multcount to 16
setting unmaskirq to 1 (on)
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
setting drive read-lookahead to 1 (on)
multcount = 16 (on)
unmaskirq = 1 (on)
using_dma = 0 (off)
readahead = 64 (on)


なぜかDMAが有効にならない。
ネットで調べたところ、どうやらカーネルの再構築が必要ということがわかった。

■カーネルを再構築してDMAを有効化

自分のマシンのチップセットのサポートをカーネルに組み込む
(今回は"Intel PIIXn chipsets support ")
Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
[*] Generic PCI bus-master DMA support <-これは有効にしていた
[*] Use PCI DMA by default when available <-これは有効にしていた
<*> Intel PIIXn chipsets support <-これを有効にしていなかった!

■カーネル再構築後に再度測定
# hdparm -v /dev/hda
/dev/hda:
multcount = 0 (off)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 1 (on) <-自動でDMAが有効になっている
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 19457/255/63, sectors = 312581808, start = 0


# hdparm -Tz /dev/hda
/dev/hda:
Timing cached reads: 1672 MB in 2.00 seconds = 834.22 MB/sec
Timing buffered disk reads: 156 MB in 3.01 seconds = 51.82 MB/sec

は、速い…

■さらに高速化
# hdparm -A1 -m16 -u1 -a64 /dev/hda
省略

# hdparm -Tz /dev/hda
/dev/hda:
Timing cached reads: 1768 MB in 2.00 seconds = 883.10 MB/sec
Timing buffered disk reads: 160 MB in 3.02 seconds = 53.05 MB/sec

若干向上。

32bit I/Oモードを有効にしてみる。
# hdparm -c1 /dev/hda
/dev/hda:
Timing cached reads: 1840 MB in 2.00 seconds = 919.64 MB/sec
Timing buffered disk reads: 160 MB in 3.02 seconds = 52.97 MB/sec

これでやっとまともに使える環境になりました。
正直、Gentooって使えね〜、と思ってました。ごめんなさい。

しかし、亀からうさぎに生まれ変わった気分ですな。

GentooでTomcat

JSP/Servletの勉強をしようと思い、Gentoo LinuxにTomcatをインストールしようとemergeするがなぜか入らない。

エラーを見ると、

# emerge tomcat


* There was a problem determining which VM to use for generation-1
* This is because the way Java is handled on Gentoo has drastically changed.
* There does not seem to be a 1.4 or 1.3 JDK installed.
* You should probably install =virtual/jdk-1.4* or =virtual/jdk-1.3*
* It is important to have either a 1.4 or 1.3 JDK installed
* in order for the old and new Java systems to coexist
* Details about this can be found at:
* http://overlays.gentoo.org/proj/java/wiki/Why_We_Need_Java14
* If you wonder why we can't just depend on the needed JDK version,
* then read https://bugs.gentoo.org/show_bug.cgi?id=144240


ん、JDKの1.4か1.3が必要ですよ、とかいってるじゃないですか。

ぐぐってみると、とあるブログに、PortageのTomcat(現在のporageのバージョンは5.5.20-r7)の依存コンポーネントの中にはまだJDK1.4が必要なものがあるとの情報を発見。

え〜、まじですかー?

怠惰な性格も手伝って、わざわざ昔のバージョンを入れるのは面倒くさいし、何かイヤだということで、Jakartaからダウンロードして手動インストールする。
バージョンはportageと同じ5.5.20。
JDKはportageのsun-jdk1.5.0.09を既にインストールしていた。

このやり方ってGentoo的いいのうだろうか?? とりあえずは動いたが…

ホームページ アフィリエイト レンタルサーバー FC2ブログ