2009年06月の記事

2009-06-28 (日)

Nucleusにフィードのリンクをつける。

Posted at: 00:21:00 - Posted by: yashikiba - Category: Nucleus

これもまた、最近になって気になってきたことですが…。
私のこのブログには、「フィード」のリンクがありませんでした。
ブログを始めた頃は、RSSとかAtomなどの意味も知りませんでしたし、このブログにフィードが必要だとはまったく考えなかったのです。

けれども、ふとサイドメニューを見ると、やはり「RSS2.0」のアイコンがないのは、ブログの形として不備なのかなと思いました。
そこで、一昨日辺りから、RSSとAtomのリンクを付けてみました。

Nucleusの場合、スキンによっては、はじめからRSSやAtomのリンクが記述されているものもありますが、このブログのスキンにはありませんでした。
※ ここで言う「スキン」とは、Movable Typeの「テンプレート」、WordPressの「テーマ」に対応すると思います。

いちばん簡単な方法として、サイドメニューに「xml-rss2.php」と「atom.php」への直接のリンクを記述しました。
次に、フィードを配信するために、ヘッド部を以下のように編集しました。
--------------------------------------------------------------
・RSS2.0の設定です。
  … … …
<link rel="alternate" type="application/rss+xml" title="RSS" href="xml-rss2.php" />
                                             ↓この部分を修正。
<link rel="alternate" type="application/rss+xml" title="RSS2.0" href="<%sitevar(url)%>xml-rss2.php" />
※ hrefにスキン変数の<%sitevar(url)%>をつけないと、インデックス・ページ以外だと、Webブラウザの「フィードのアイコン」からのアクセスではRSSやAtomのページが表示できず、以下のようなエラーが出ます。

「Internet Explorer では DTD 付きのフィードはサポートされていません。」

--------------------------------
・Atom1.0の設定です。
  … … …
<link rel="alternate" type="application/atom+xml" title="ATOM1.0" href="<%sitevar(url)%>atom.php" />

・この「Atom1.0」のリンクは新規に追加します。
・Atomは以前は「0.3」だったのですが、Nucleus3.3からバージョンが「1.0」になったようです。
参考: <Nucleus CMS v3.3 日本語版>

--------------------------------------------------------------

このブログでは、Nuclesuの「FancyURLs-2」モードを導入して、静的URLでアクセスできるようにしていますが、このままでは、フィードページでのアイテムのリンクが動的URLのままになってしまいます。
そこで、「テンプレート」も編集しました。
--------------------------------------------------------------
・feeds/rss20の変更。
  … … …
  (省略)
<link><%blogurl%>index.php?itemid=<%itemid%></link>
  ↓ 以下のように変更。
<link><%blogurl%>item/<%itemid%></link>
  (省略)
<comments><%blogurl%>index.php?itemid=<%itemid%></comments>
  ↓ 以下のように変更。
<comments><%blogurl%>item/<%itemid%></comments>
  (省略)

--------------------------------
・feeds/atom/entriesの変更。
  … … …
  (省略)
<link rel="alternate" type="text/html" href="<%blogurl%>index.php?itemid=<%itemid%>" />
  ↓ 以下のように変更。
<link rel="alternate" type="text/html" href="<%blogurl%>item/<%itemid%>" />
  (省略)

--------------------------------------------------------------
参考: <Nucleus - RSSとAtomのFancyURL化 - [餅] 餅空 blog / Nucleus支店>

※上記のサイトでは、「<%CustomURL%>を使用するのが正しい」と言及されているのですが、私は当分、CustomURLを導入しないと思うので、上のように編集しました。
・結果として、RSSとAtomのフィードページにアクセスしても今のところは、問題がないようです。

2009-06-22 (月)

IPTables log analyzerのインストールについて。

Posted at: 00:26:00 - Posted by: yashikiba - Category: CentOS5

このサーバでは、ファイアウォール機能を「iptables」を使って構築しています。
このiptablesのログをWebブラウザで随時確認できるように、「IPTables log analyzer(iptablelog)」をインストールしてみました。
参考: <iptables>

このツールのインストールには、以下の「サイト」を参考にさせて頂きました。
参考: <iptablesログ解析(IPTables log analyzer)>

以下は、その時にした作業です。

1.iptablelog(IPTables log analyzer)のダウンロードとインストール。
・まず、iptablelogに必要なパッケージがインストールされているか、調べます。
--------------------------------------------------------------
# rpm -q mysql-devel
mysql-devel-5.0.45-7.el5
# rpm -q php-mysql
php-mysql-5.1.6-23.2.el5_3

・インストールされていました。
--------------------------------------------------------------

・iptablelogの現時点での最新バージョンは、「v0.9」です。
参考: <IPTables log analyzer>

--------------------------------------------------------------
# wget http://jaist.dl.sourceforge.net/sourceforge/iptablelog/iptablelog-v0.9.tar.bz2
  (省略)
# ls -l *iptablelog*
-rw-r--r-- 1 root root 273221 4月 5 2007 iptablelog-v0.9.tar.bz2

--------------------------------------------------------------

・iptablelogの解凍・展開です。
--------------------------------------------------------------
# tar jxvf iptablelog-v0.9.tar.bz2
iptablelog/
iptablelog/FUTURE
iptablelog/COPYING
  (省略)
ptablelog/utils/resolver_host.php
iptablelog/utils/resolver_native.php
iptablelog/whois.php
iptablelog/INSTALL

# ls -l
  (省略)
drwxr-xr-x 11 root root 4096 4月 5 2007 iptablelog
-rw-r--r-- 1 root root 273221 4月 5 2007 iptablelog-v0.9.tar.bz2

--------------------------------------------------------------

・展開したフォルダを、/var/www/フォルダに移動します。
--------------------------------------------------------------
# mv ./iptablelog/ /var/www/
# ls -l /var/www/
  (省略)
drwxr-xr-x 11 root root 4096 4月 5 2007 iptablelog

--------------------------------------------------------------


2.IPTables log analyzer用のデータベースの作成。
・後で気づいたのですが、この時のデータベースのユーザは「iptablelog_user」としていた方が楽です。
・設定ファイルではデフォルトで、iptablelog_userとなっているので、設定ミスを回避できそうです?
--------------------------------------------------------------
# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 33096
Server version: 5.0.45 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> create database iptablelog character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> grant all on iptablelog.* to iptablelog_user@localhost identified by 'パスワード';
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

--------------------------------------------------------------

・iptablelogデータベースの初期化。
--------------------------------------------------------------
# cat /var/www/iptablelog/conf/iptables.mysql | mysql -u iptablelog_user -p iptablelog
Enter password:
・完了まで、少し時間がかかるかも知れません。

--------------------------------------------------------------

・ここで、phpMyAdminによる「構造」確認をしてみました。
------------------------------------------------------------------
テーブル  操作 レコード数 種別     照合順序      サイズ オーバーヘッド
host_cache     0     MyISAM  utf8_general_ci 1.0 KiB -
ports        7,568   MyISAM  utf8_general_ci 473.4 KiB -
protos        140   MyISAM  utf8_general_ci 10.4 KiB -
ulog          0     MyISAM   utf8_general_ci  2.0 KiB -
4 テーブル  合計 7,708   MyISAM  utf8_general_ci 486.8 KiB 0 バイト


-------------------------------------------------------------------


3.ulogd(The Netfilter Userspace Logging Daemon)のインストール。
・iptablelogのログをMySQLに保存するのには、ulogdが必要です。

参考: <パッケージ: ulogd (1.24-2.1)>
参考: <ULOGターゲット>
* ulogdについては、まだ、よく分からないのですが…。

・現時点では、stable版は「ulogd-1.24」のようです。
参考: <FTP ディレクトリ /pub/ulogd/ / ftp.netfilter.org>

--------------------------------------------------------------
# wget ftp://ftp.netfilter.org/pub/ulogd/ulogd-1.24.tar.bz2
  (省略)
# wget ftp://ftp.netfilter.org/pub/ulogd/ulogd-1.24.tar.bz2.sig
  (省略)
# gpg --verify ulogd-1.24.tar.bz2.sig
gpg: 2006年01月25日 20時32分36秒 JSTにDSA鍵ID CA9A8D5Bで施された署名
gpg: 署名を検査できません: 公開鍵が見つかりません

# gpg --keyserver pgp.nic.ad.jp --recv-key CA9A8D5B
gpg: 鍵CA9A8D5Bをhkpからサーバーpgp.nic.ad.jpに要求
gpg: 鍵CA9A8D5B: 重複したユーザーIDの検出 - 併合
gpg: 鍵CA9A8D5B: 公開鍵“Netfilter Core Team ”を読み込みました
gpg: 絶対的に信用する鍵が見つかりません
gpg: 処理数の合計: 1
gpg: 読込み: 1

# gpg --list-key
/root/.gnupg/pubring.gpg
------------------------
  (省略)
pub 1024D/CA9A8D5B 2001-09-15 [失効: 2007-03-28]
uid Netfilter Core Team

--------------------------------------------------------------
★ あれ?この公開鍵は、失効(期限切れ)になっていました。
・でも、このファイルの検証はしておきました。

# gpg --verify ulogd-1.24.tar.bz2.sig
gpg: 2006年01月25日 20時32分36秒 JSTにDSA鍵ID CA9A8D5Bで施された署名
gpg: “Netfilter Core Team ”からの正しい署名
gpg: 警告: この鍵は所有者によって失効されています!
gpg: 署名が偽物なこともある、ということです。
gpg: 失効理由: 鍵がとりかわっています
gpg: 失効のコメント: key expired
gpg: 警告: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵の指紋: 02AC E2A4 74DD 09D7 FD45 2E2E 35FA 89CC CA9A 8D5B
* 公開日は、「01/25/2006 12:00午前」となっています。

・そこで、最新のベータ版で調べて見ると…。
 (意味はないと思いますが。)
--------------------------------------------------------------
# wget ftp://ftp.netfilter.org/pub/ulogd/ulogd-2.0.0beta3.tar.bz2
  (省略)
# wget ftp://ftp.netfilter.org/pub/ulogd/ulogd-2.0.0beta3.tar.bz2.sig
  (省略)
# gpg --verify ulogd-2.0.0beta3.tar.bz2.sig
gpg: 2009年03月07日 03時03分59秒 JSTにDSA鍵ID 2D0987E6で施された署名
gpg: 署名を検査できません: 公開鍵が見つかりません
# gpg --keyserver pgp.nic.ad.jp --recv-key 2D0987E6
gpg: 鍵2D0987E6をhkpからサーバーpgp.nic.ad.jpに要求
gpg: 鍵2D0987E6: 公開鍵“Netfilter Core Team ”を読み込みました
gpg: 絶対的に信用する鍵が見つかりません
gpg: 処理数の合計: 1
gpg: 読込み: 1
# gpg --verify ulogd-2.0.0beta3.tar.bz2.sig
gpg: 2009年03月07日 03時03分59秒 JSTにDSA鍵ID 2D0987E6で施された署名
gpg: “Netfilter Core Team ”からの正しい署名
gpg: 警告: この鍵は信用できる署名で証明されていません!
gpg: この署名が所有者のものかどうかの検証手段がありません。
主鍵の指紋: 9E6D D99C F953 9928 748C 28D0 4187 F865 2D09 87E6

# gpg --list-key
/root/.gnupg/pubring.gpg
------------------------
  (省略)
pub 1024D/CA9A8D5B 2001-09-15 [失効: 2007-03-28]
uid Netfilter Core Team

pub 1024D/2D0987E6 2007-03-28 [満了: 2011-03-27]
uid Netfilter Core Team
sub 2048g/92AB52E5 2007-03-28 [満了: 2011-03-27]

--------------------------------------------------------------
・確かに、公開鍵は「とりかわっています」。
・でも、「<coreteam@netfilter.org>”からの正しい署名」となっているので、良しとしました。

・ulogのインストールです。
--------------------------------------------------------------
# tar jxvf ulogd-1.24.tar.bz2
  (省略)

# ls -l
  (省略)
drwxr-xr-x 13 1000 1000 4096 1月 25 2006 ulogd-1.24
-rw-r--r-- 1 root root 177398 6月 19 17:00 ulogd-1.24.tar.bz2
  (省略)

# ./configure --prefix=/usr --sysconfdir=/etc --libdir=/usr/local/lib --with-mysql \
> && make && make install
  (省略)

# cp ulogd.init /etc/rc.d/init.d/ulogd
・上のファイルで、起動・停止などをさせます。

--------------------------------------------------------------


4.ulogdの設定と起動。
・参考サイトの通りにしました。
--------------------------------------------------------------
# vi /etc/ulogd.conf ← ulogd設定ファイル編集
#
# ulogd_BASE.so - interpreter plugin for basic IPv4 header fields
# you will always need this
plugin="/usr/local/lib/ulogd/ulogd_BASE.so"
plugin="/usr/local/lib/ulogd/ulogd_LOCAL.so" ← 追加

# output plugins.
#plugin="/usr/local/lib/ulogd/ulogd_LOGEMU.so" ← コメントアウト
#plugin="/usr/local/lib/ulogd/ulogd_OPRINT.so"
plugin="/usr/local/lib/ulogd/ulogd_MYSQL.so" ← コメント解除
#plugin="/usr/local/lib/ulogd/ulogd_PGSQL.so"
#plugin="/usr/local/lib/ulogd/ulogd_SQLITE3.so"
#plugin="/usr/local/lib/ulogd/ulogd_PCAP.so"

[MYSQL]
table="ulog"
pass="パスワード" ← MySQLの所で設定したパスワードです。
user="iptablelog_user" ← この名前が「デフォルト」です。
db="iptablelog" ← これもデフォルトです。
host="localhost"

--------------------------------------------------------------
・ 「iptablelog_user」は、/var/www/iptablelog/conf/config.phpと、
/etc/cron.hourly/iptables_resolveの中でも使われています。
・MySQLのユーザ名を換える場合は、その点に注意する必要があります。

・ulogdの起動です。
--------------------------------------------------------------
# /etc/rc.d/init.d/ulogd start
Starting ulogd: [ OK ]
# chkconfig --add ulogd → 自動起動の設定。
# chkconfig --list ulogd
ulogd 0:off 1:off 2:off 3:on 4:on 5:on 6:off
# chkconfig ulogd on
# chkconfig --list ulogd
ulogd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

--------------------------------------------------------------


5.iptablesの設定。
IPTables log analyzerのログは結果として、すべて/var/log/messagesログファイルに出力されたものと同一になります。
私はiptablesの設定自体がよく分かっていないので、試験的にiptablesで出力するログはできるだけ、iptablelogにも出力させるようにしてみましたが、自信はほとんどありません…。

・以下、ファイアウォール設定スクリプト(/root/iptables.sh)に追加した箇所だけ示します。
--------------------------------------------------------------
# vi ./iptables.sh
  (省略)
# フラグメント化されたパケットはログを記録して破棄
iptables -A INPUT -f -j LOG --log-prefix '[IPTABLES FRAGMENT] : '
iptables -A INPUT -f -j ULOG --ulog-nlgroup 1 --ulog-prefix 'FRAGMENT'→これ。
iptables -A INPUT -f -j DROP

# 1秒間に4回を超えるpingはログを記録して破棄
# ※Ping of Death攻撃対策
iptables -N LOG_PINGDEATH
iptables -A LOG_PINGDEATH -m limit --limit 1/s --limit-burst 4 -j ACCEPT
iptables -A LOG_PINGDEATH -j LOG --log-prefix '[IPTABLES PINGDEATH] : '
iptables -A LOG_PINGDEATH -j ULOG --ulog-nlgroup 1 --ulog-prefix 'PINGDEATH'→これ。
iptables -A LOG_PINGDEATH -j DROP
iptables -A INPUT -p icmp --icmp-type echo-request -j LOG_PINGDEATH

# DROP_COUNTRY_MAKE関数定義
# 指定された国のIPアドレスからのアクセスを破棄するユーザ定義チェイン作成
DROP_COUNTRY_MAKE(){
for addr in `cat /tmp/cidr.txt|grep ^$1|awk '{print $2}'`
do
iptables -A DROP_COUNTRY -s $addr -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES DENY_COUNTRY] : '
iptables -A DROP_COUNTRY -s $addr -m limit --limit 1/s -j ULOG --ulog-nlgroup 1 --ulog-prefix 'DENY_COUNTRY'→これ。
iptables -A DROP_COUNTRY -s $addr -j DROP
done
}

# 上記のルールにマッチしなかったアクセスはログを記録して破棄
iptables -A INPUT -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES INPUT] : '
iptables -A INPUT -m limit --limit 1/s -j ULOG --ulog-nlgroup 1 --ulog-prefix 'INPUT'→これ。
iptables -A INPUT -j DROP
iptables -A FORWARD -m limit --limit 1/s -j LOG --log-prefix '[IPTABLES FORWARD] : '
iptables -A FORWARD -m limit --limit 1/s -j ULOG --ulog-nlgroup 1 --ulog-prefix 'FORWARD'→これ。
iptables -A FORWARD -j DROP

--------------------------------------------------------------
・以上、5行を追加しました。
・この後、必ず、ファイアウォール設定スクリプトを実行します。
* # sh ./iptables.sh
(私のPCではこの実行に約15分を要します。)


6.IPTables log analyzerの設定。
--------------------------------------------------------------
# cp /var/www/iptablelog/conf/config.php.default /var/www/iptablelog/conf/config.php

# vi /var/www/iptablelog/conf/config.php

Password of the MySQL database
$db_password="パスワード"; ← MySQLのパスワード設定

# File Path to your installation
$file_base="/var/www/iptablelog"; # i.e. "/var/www/html/iptablelog" ← アクセス先です。

# cp /var/www/iptablelog/conf/iptables_resolve.default /etc/cron.hourly/iptables_resolve
 ← IPアドレス名前解決スクリプトをcronに登録します。

・IPアドレス名前解決スクリプトの編集。
--------------------------------
# vi /etc/cron.hourly/iptables_resolve
・最初の方のみの編集です。
$iptablelog_path = "/var/www/iptablelog"; # Change this ← アクセス先です。

db_connect("localhost","iptablelog","iptablelog_user", "パスワード"); # Change these db settings
 ← MySQLの設定です。
--------------------------------------------------------------

* 注意。上の「~/iptables_resolve」にエラーがあると、毎時1分にcronのメールが来ます。
--------------------------------------------------------------
/etc/cron.hourly/iptables_resolve: → 例です。

<?

$iptablelog_path = "/var/www/iptablelog"; # Change this
include_once ("$iptablelog_path/utils/db_mysql.php");
  (省略)

--------------------------------------------------------------


7.Apacheの設定。
・私の場合は、内部からのみアクセスできるようにしました。
・また、Basic認証も設定してみました。
* 理由は分からないのですが、「.htaccess」ファイルだと上手く行きませんでした。
 (アカウントの要求ウィンドウがでないのです。)
--------------------------------------------------------------
# vi /etc/httpd/conf.d/iptables.conf ← IPTables log analyzer用Apache設定ファイル作成。
Alias /iptablelog /var/www/iptablelog

<Location /iptablelog>
Order deny,allow
Deny from all
Allow from 127.0.0.1
Allow from 192.168.1.0/24 ← LANのプライベートネットワークを指定。
</Location>

<Directory /var/www/iptablelog/> → Basic認証の設定。
AuthUserFile /var/www/.passwdfilename → パスワードファイル。
AuthGroupFile /dev/null
AuthName "iptablelog" → 適当です。
AuthType Basic
require valid-user
</Directory>
・あらかじめ、「パスワードファイル」は「htpasswd」コマンドで作成しておきます。

# /etc/rc.d/init.d/httpd reload → 設定ファイルの再読み込み。
httpd を再読み込み中: [ OK ]

--------------------------------------------------------------


8.エラーへの対処。
(1) いきなり、エラーが出ました。
http://aaa.bbb.ccc/iptablelog/にアクセスすると、以下の表示になりました。
--------------------------------------------------------------
tags from a db query function db_listbox ( $value_field, // field to use for label $label_field, // field to use for LABEL

$query, // database query $default="" // options with this value are selected by default, can be a scalar or a list ) {

$output = ""; $result = db_query($query); while ($r = db_nextarray($result)) { $value = $r[$value_field]; $label = $r

[$label_field]; if (is_array($default)) $selected = empty($default[$value]) ? "" : "selected"; else $selected = $value ==

$default ? "selected" : ""; $output .= "$label\n"; } return $output; } /* Release resources taken up by a query */ function

db_freeresult($result) { mysql_free_result($result); } /* display a db error message */ function db_handleError($detail) {

$msg = "$detail\n"; $msg = $detail."\n"."Mysql error : ".mysql_errno()." - ".mysql_error(); die ($msg); } ?>

--------------------------------------------------------------

上のように、PHPスクリプトがそのまま表示される場合は、スクリプトにエラーがあったり、PHPの設定に問題があったりします。
(PHPスクリプトが実行されていません。実はここでは気づいていなかったのですが…。)
そこで、設定を見直したりしていましたが、ダメだったので、ネット検索していると、該当ページがありました。
(灯台下暗し?)

参考: <iptablesログ解析の設定方法について>

<上の回答からの引用>
--------------------------------------------------------------
  (省略)
下記ファイルでショートタグが使われていました。他にもあるかもしれません。
utils/db_mysql.php
admin/show_cache.php
admin/show_ports.php
admin/show_protos.php
admin/modules/resolve.php
admin/modules/stats.php
admin/modules/zCustomize.php
reports/modules/users.php
themes/iptables/header.inc
themes/iptables_blue/header.inc
utils/Layout.php
utils/resolver_host.php
utils/resolver_native.php
追記
/etc/cron.hourly/iptables_resolve

また、以下ファイルは構文エラーになっています。
reports/index.php
以下2点が不要です。
// require_once("../conf/config.php"); のみのはず
require_once("conf/config.php");

// 最終行が重複している
pageFooter();
?>
  (省略)
--------------------------------------------------------------

早速、php.iniファイルの「short_open_tag」を「On」にすると、iptablelogのトップページが表示されました。

恐る恐る、上記の回答者様の指摘したファイルを覗いて見ると…。
なんと、標準PHPタグ(standard PHP tags)とshort open tagsが渾然一体となっていました。
・一括変換ができない?

現在では、XMLファイルにPHPを埋め込む場合やセキュリティの観点から、PHPスクリプトの開始タグは、標準PHPタグ(<?PHP)にすることが推奨されているらしいです。

しぶしぶ、上記のファイル内のすべての「short open tag」を、時間をかけて、標準タグに修正しました。
(何しろ、「渾然一体」ですから。)
そして、php.iniの設定は、デフォルトの「short_open_tag = Off」に戻してから、iptablelogにアクセスすると、やっと、正常に(?)ページが表示されました。

現在は、少しずつですが、ログが溜まってきています。
ただ、ネットに書かれていたのですが、急に動作しなくなる場合も結構あるようなので、1週間ぐらいは注意して様子を見ておこうと考えています。

追記
・現在のiptablelogのイメージです。
--------------------------------------------------------------
i p t a b l e s l o g s
R e p o r t s A d m i n   H e l p


Last packets filtered by tag ALL:
Records 0 to 50 of 74
Tag   Date        Host [X] Int. [X] Proto. Src IP Dest. IP [X] Dest. port
INPUT 2009-05-22 01:33:33 zzzz eth0<- TCP ppp.qqq.rrr.sss voicetwo.selfip.com. [Go] 80 (http) [Check]
INPUT 2009-05-21 21:11:39 zzzz eth0<- TCP ppp.qqq.rrr.sss voicetwo.selfip.com. [Go] 80 (http) [Check]
INPUT 2009-05-21 21:11:38 zzzz eth0<- TCP ppp.qqq.rrr.sss voicetwo.selfip.com. [Go] 80 (http) [Check]
  … … …
  … … …
DENY_COUNTRY 2009-05-20 23:16:14 zzzz eth0<- TCP aaa.bbb.ccc.ddd.eee.fff.com.xx. voicetwo.selfip.com. [Go]
80 (http) [Check]
DENY_COUNTRY 2009-05-20 19:46:22 zzzz eth0<- TCP aaa.bbb.ccc.ddd.eee.fff.com.xx. voicetwo.selfip.com. 25 (smtp) [Check]
DENY_COUNTRY 2009-05-20 19:46:16 zzzz eth0<- TCP aaa.bbb.ccc.ddd.eee.fff.com.xx. voicetwo.selfip.com. 25 (smtp) [Check]

--------------------------------------------------------------

2009-06-15 (月)

Windowsパソコンのメモリの増設について。

Posted at: 00:25:00 - Posted by: yashikiba - Category: Windows OS

パソコンのメモリを増設した時のメモです。

1.増設前。
まず、パソコンのマニュアルを見ました。
--------------------------------------------------------------
[取扱説明書(仕様書)]
  (以下、概略)
メモリのタイプ:DDR2 400MHz、または、DDR2 533MHzのバッファなし。(PC2-3200/PC2-4200)
* PC2-3200のペアと、PC2-4200のペアを装着した場合は「400MHz」(遅い方)で動作する。

DIMMコネクタ(メモリスロット)のマザーボード上の配列 - 4スロット(/コネクタ)
DIMMコネクタの並び → 1->3->2->4 ペアは「1と2」、および、「3と4」

--------------------------------------------------------------

次に、増設前に、既設のメモリの情報の取得と動作速度の実測をしておきました。
メモリ情報の取得には、6月1日の記事で紹介した「HWiNFO32」を、速度の計測には、前回の記事で紹介した「CrystalDiskInfo」の作者が製作された、「CrystalDiskMark」を使用しました。

参考: <Crystal Dew World - 作者(ひよひよ氏)のホームページ>


・HWiNFO32によるメモリ情報。
--------------------------------------------------------------
Module Number: 0 → 「row:0」と「row:2」がありました。
Module Size: 512MB
Memory Type: DDR2-SDRAM
DIMM Type: Regular Unbuffered(UDIMM)
Error Check/Correction: None
Memory Speed: 200.0MHz(PC2-3200)
Module Manufacturer: Hynix(Hyundai)
Module Model: HYMP564U648-E3
Serial Number:1 392771071
Manufacturing Date:Year: 2004, Week: 51

--------------------------------------------------------------

・CrystalMark 2004R2によるメモリへのデータアクセス速度の計測。
* 現時点では、最新バージョンは、「2004R3」です。
--------------------------------------------------------------
Read:3649.03 MB/s
Write:1619.27 MB/s
Read/Write:1637.07 MB/s
Cache:10267.12 MB/s Score:1026
* Score:7953
・メモリを1GBから2GBに増設してから、速度を比較するためです。

--------------------------------------------------------------

今回増設するメモリのタイプはPC2-3200か、PC2-4200の2種類しか選択できないのですが、
現在では、この規格も古くなりつつあるので(?)、PC2-4200しか手に入りませんでした。
GreenHouseというブランドです。
<GH-DV533シリーズ - GREEN HOUSE>(533MHz(PC2-4200)対応 240pin DDR2 SDRAM DIMM)>

参考: <GREEN HOUSE>

このシリーズの、「GH-DV533-512MZ」という512MBのメモリを2枚購入しました。
・ちなみに、このメモリは「5年間保証」です。

2.増設。
・この作業は簡単で、特に書くこともありません。
・空いている「2つ」のメモリスロットに2枚カードを取り付けるだけです。
★ ただ、特に、冬季の空気が乾燥している環境で行う際には、静電気対策は必要です。


3.増設後。
・DELLのパソコンだと、メモリ増設直後のシステム環境変更直後の起動では、以下のBIOSメッセージが出ます。
--------------------------------------------------------------
The amount of system memory has changed.
・ここで、セットアップ画面に移行するなら、「F2」キーなどをタイプするようにという表示が出ますが、そのまま起動を続けてもどちらでもいいと思います。

--------------------------------------------------------------
★ 上記の画面から、先に進めない(PCの起動ができない)場合は、メモリかメモリの取り付けに不具合のある可能性があると思います。
・このブログの5月27日付の記事で書いたように、メモリテストをする必要もでてきます。


ここでは、セットアップ画面に移行して、メモリ情報を確認しました。
--------------------------------------------------------------
・Memory Info

Installed Memory = 2.0GB → 増設前は「1.0GB」でした。
Memory Speed = 400MHz
Memory Channel Mode = Dual Interleaved
Memory technology = DDR2 SDRAM
--------------------------------
Memory Slot Size ECC Rank Type    Organization
DIMM 1    512MB No  1  Unbuffered  x8
  … … …
  … … …
DIMM 4    512MB No  1  Unbuffered  x8

--------------------------------------------------------------

・Windowsを再起動させます。
(「休止中」から起動させる場合も、一度、再起動させる必要があります。)

「スタート」ボタンから、「システムのプロパティ」を表示してメモリが認識されているか見ます。
今回は、「2.00GB RAM」とちゃんと表示されました。

・次に、最初にしたように、メモリ情報の確認とアクセス速度の測定をしました。

・HWiNFO32によるメモリ情報。
--------------------------------------------------------------
* row: 0とrow: 2は上記の通りです。
Module Number: 1 → 「row:1」と「row:3」が追加されました。
Module Size: 512MB
Memory Type: DDR2-SDRAM
DIMM Type: Regular Unbuffered(UDIMM)
Error Check/Correction: None
Memory Speed: 266.7MHz(PC2-4200) → PC2-4200です。
Module Manufacturer: PNY Electronics
Module Model:
Serial Number: N/A(該当なし)
Manufacturing Date:Year: N/A

--------------------------------------------------------------
・「Memory Speed」が266.7MHz(PC2-4200)となっていますが、取扱説明書どおり、BIOSセットアップ画面では、「400MHz」と遅い方のモジュールの速度になっています。
・上記で製造会社が<PNY Electronics>となっています。
・今回、通信販売でGreenHouseの製品として購入した価格が1枚¥1,850ですから、以下のWebページでの表示価格と比べても、同じようなものでしょうか?

参考: <512MB PC2-4200 533MHz DDR2 Desktop DIMM - $24.99 >

・CrystalMark 2004R2で性能を調べる。
-----------------------------------------------------------
Read:3490.85 MB/s
Write:1668.16 MB/s
Read/Write:1677.19 MB/s
Cache:10029.77 MB/s Score:1002
* Score:7859

------------------------------------------------------------
★ 増設前よりは少しスコアが落ちていますが、メモリへのアクセス性能は変わらなかったとみなしていいと思います。
・つまり、PC2-4200(533MHz)のモジュールもデュアルチャンネルの「400MHz」で動作しているのが分かりました。


5.ダメ押しというより、必要不可欠なメモリテスト。
これにも以前の記事で紹介した、<MemScope-110.exe>を使いました。
・上のダウンロードファイルで、MemScopeのフロッピーディスク版を作ってメモリテストをします。

結果は、8種類1ラウンドのテストを3回パスさせて終了しました。
エラーは無しでした。
(購入直後のメモリテストは必須だと思います。)

テストに要した時間は1回パスするのに30分、3回で約1時間半でした。
前回は1GBのテストで約45分だったので、今回の2倍の容量のテストでは、ほぼ2倍の時間がかかったようです。

追記
Windowsメモリ診断もするつもりだったのですが、「時間がなくなった」のでやめにしました。

2009-06-12 (金)

CrystalDiskInfoを使う。

Posted at: 00:25:00 - Posted by: yashikiba - Category: Windows OS

HDDの状態を知るユーティリティソフトとして、とても素晴らしいものがあります。
「ひよひよ(hiyohiyo)」氏の製作された「CrystalDiskInfo」です。

参考: <Crystal Dew World - 作者のホームページ>

このソフトは、「一部のUSB/IEEE1394接続にも対応したHDD/SSDユーティリティ」で、
とにかく、使いやすいのはもちろん、ハードディスクの健康状態などが視覚的に分かりやすいのが特徴だと思います。
CrystalDiskInfoのGUI(Graphical User Interface)は美しく、見ていて気持ちがいいです。

ダウンロードは上記の「ひよひよ(hiyohiyo)」氏のサイトからでも、「Vector」と「窓の杜」からでもできます。

参考: <CrystalDiskInfo - Vector>
参考: <CrystalDiskInfo - 「窓の杜」>

なお、インストーラ版でインストールすると以下のようになります。
--------------------------------------------------------------
インストール先:
 C:\Program Files\CrystalDiskInfo
プログラムグループ(スタートメニューのフォルダ名):
 CrystalDiskInfo
追加タスク一覧:
 アイコンを追加する:
  デスクトップ上にアイコンを作成する
 追加機能:
  『Yahoo!ツールバー』をインストールする

--------------------------------------------------------------
・デフォルトでは、『Yahoo!ツールバー』がインストールされますが、
もちろん、インストール設定で変更できます。

CrystalDiskInfoの設定ですが、私は以下のようにしていました。
--------------------------------------------------------------
・このソフトの「メニューバー」から行います。
常駐 → ON(チェックを入れる)
常駐形式 → 非表示
スタートアップ → ON(チェックを入れる)
スタートアップ時の待機時間 → 「120秒」

--------------------------------------------------------------

設定で「常駐」にすると、「通知領域」にDiskInfoのアイコンと、使用しているHDDの温度が台数分表示されます。
「スタートアップ」にチェックを入れると、Windowsの起動時に自動起動します。
(これは、「スタートアップフォルダ」を使用していません。)
ただ、PCの最初の起動時、自宅サーバのバックアップのための「cwrsync.cmd」の実行と、このソフトの起動が重なり、「タスクのビジー状態」の表示が出る場合は、「スタートアップ」をOFFにし、手動で「DiskInfo」を起動させた方がいいと思います。

以下に、このソフトでのHDD情報の項目名とSmartでの項目名の対応を示しておきます。
--------------------------------------------------------------
05 代替処理済のセクタ数
 → 05 Reallocated Sectors Count(不良セクタが発生している。)
C4 セクタ代替処理発生回数
 → C4(196) Reallocation Event Count(上記の代替処理の回数。)
C5 代替処理保留中のセクタ数
 → C5(197) Current Pending Sector Count
        (少なくとも読み込みができていないセクタがある。)
C6 回復不可能セクタ数
 → C6(198) Off-Line Scan Uncorrectable Sector Count
        (磁気ディスクに明らかな問題がある。)

--------------------------------------------------------------

私の場合、上の項目で言うと、「05」が発生しているが、「C5(197)」と「C6(198)」が「0」、つまり、まだ不良セクタの領域も読み込み可能なうちに、速やかにHDDを交換しようと考えています。
このサーバはRAID1なので、smartエラーがでている方をsmartctlでチェック済みの新品に交換し、ホットスペアの状態からリストアするつもりです。

もし、「回復不可能セクタ」(「代替処理保留中のセクタ」も含めて)が発生したなら、そのセクタの場所はsmartctlですぐに分かりますが、その結果で一時的な復旧が可能かどうかは、また、別の機会に「できるだけ早く」調べておくつもりでいるのですが…。

参考: <不良セクタの直し方 - 大徳日記>

追記
3ware-8006-2LPのRAID-1(Mirroring)を利用しているのですが、smartエラーは確率としてはどちらか一方のHDDに出ると思います。

このとき、ディスク・ユニットとしては、正常な方のHDDに対して読み書きを継続できると考えたいのですが、そうではないと考えた方がいいでしょう。
Port番号の低い(Port-0)のHDDの方のみを読み込みに行くと思います。
(その結果、「ディスクの読み込みエラー」で、処理が中断してくれればいいのですが?)

さらに、片方のHDDの読み込みができなければ、cronによる「Verify」の実行でエラーがでて、自動的に「initialization」がスタートします。
これでは困ります。
「不良セクタ」のある方が「Port-0」なら、その「Port-0」のHDDのデータが正常な「Port-1」のHDDにコピーされてしまいます。

このことに一時的に対処するため、cronによる「Verify」の実行は手動ですることにしました。
週に一度の、smartctlの「Long-Self-Test」にパスした後にでも行おうかと、思案中です…。

以下のサイトでの設定をよく見てみると、「Auto Verify」は無効にしてあります。
参考:<RAID管理ツール 3DM2(3ware Disk Manager Version2) の使い方(Fedora)>

2009-06-08 (月)

CentOS5のALSAについて。

Posted at: 00:42:00 - Posted by: yashikiba - Category: CentOS5

以前、CentOS5.0を初めてインストールした頃、「音」が出なくて困ったことがあります。
せっかく、Linuxをインストールしたのに、「サーバだから、音がでなくてもかまわない」と考える訳にはいきませんでした。

★ ここでは、1年半前にしたことを現時点で再現して書いています。
・おそらく、結果として、「サウンド機能」は使用できるようになりますが、やり方としては間違っていると思います。

以下の、3つのサイトを参考にALSAをインストールしてみました。

参考: <Advanced Linux Sound Architecture (ALSA) project homepage>
参考: <Alsa>
参考: <ALSAによるサウンドドライバのインストール>

1.M/B(オンボード)のサウンド用チップセットを調べる。
 (私の場合は、サウンドカードを使用していないので。)
--------------------------------------------------------------
# lspci -v
  (省略)
Multimedia audio controller: VIA Technologies, Inc.
VT8233/A/8235/8237 AC97 Audio Controller

(rev 60)
Subsystem: Micro-Star International Co., Ltd. Unknown device 0430
Flags: medium devsel, IRQ 201
I/O ports at e600 [size=256]
Capabilities: [c0] Power Management version 2
  (省略)

--------------------------------------------------------------
・私の場合、VT8237というチップのようです。


2.ALSAのオリジナルサイトでダウンロードするアーカイブを調べる。
・サウンドカード(チップ)に適合したALSAをインストールするには、上記のALSAのHPの「SoundCards」から「Vendors」、さらに「VIA」の順に辿れば、詳細なインストール方法が載っているページを参照できます。
・私の場合は、オーディオカードは、
VIA VT8233/A8235 AC97 Audio Controller / VIA8233-PCMデバイスでした。
--------------------------------------------------------------
Soundcard List for VIA
--------------------------------
    Product       Chipset(s) Driver & Docs Tags, Notes
VIA southbridge AC97 audio
              VIA82C686
              VIA8233
              VIA8233A   Details → これをクリック。
              VIA8235
              VIA8237

--------------------------------------------------------------
・以上で、「Quick installation」のページが開かれます。


3.最新のALSAをダウンロードする。
・現時点では、バージョンは「1.0.20」でした。
・driver、libとutilsの3つのアーカイブを「/root」に取得します。

# wget ftp://ftp.alsa-project.org/pub/driver/alsa-driver-1.0.20.tar.bz2
# wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.20.tar.bz2
# wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.20.tar.bz2

4.ALSAのソースコードになる「tarball」をすべて、/usr/src/alsa/にコピーします。
# cd /usr/src
# mkdir alsa
# cd alsa
# cp /root/alsa-* .
# ls -l /usr/src/alsa/
alsa-driver-1.0.20.tar.bz2
alsa-lib-1.0.20.tar.bz2
alsa-utils-1.0.20.tar.bz2


5.デフォルトのALSAのモジュールをアンインストールする。
・最新のALSAをインストールする前に現在インストールされているものをアンインストールする必要があります。
・まず、インストールされているRPMパッケージを確認します。
--------------------------------------------------------------
# rpm -qa | grep alsa
alsa-lib-1.0.17-1.el5
alsa-utils-1.0.17-1.el5

# yum info alsa*
  (省略)
Installed Packages
Name : alsa-lib
Arch : i386
Version : 1.0.17
Release : 1.el5
Size : 1.1 M
Repo : installed
  (省略)
Name : alsa-utils
Arch : i386
Version : 1.0.17
Release : 1.el5
Size : 1.6 M
Repo : installed
  (省略)
Available Packages
Name : alsa-lib-devel
Arch : i386
Version : 1.0.17
Release : 1.el5
Size : 1.4 M
Repo : base
  (省略)

--------------------------------------------------------------
・したがって、alsa-libとalsa-utilsだけをアンインストールします。

--------------------------------------------------------------
 rpm -e --nodeps alsa-lib alsa-utils

--------------------------------------------------------------
・依存関係は、utils→lib→driverの順ですが、「-nodeps」オプションで強制アンインストールしました。


6.ALSAのドライバパッケージを解凍・展開・インストールする。
--------------------------------------------------------------
# bunzip2 alsa-driver-1.0.20.tar.bz2 → 「tar jxvf」でもいいと思います。
# tar -xf alsa-driver-1.0.20.tar
# cd alsa-driver-1.0.20
# ./configure --with-cards=via82xx --with-sequencer=yes ; make ; make install

--------------------------------------------------------------
* 私のサウンドカードはvia82xxとしています。

7.libパッケージのインストールをする前に、/dev/以下のファイルのモードを変更する。
--------------------------------------------------------------
# chmod a+rw /dev/dsp /dev/mixer /dev/sequencer

--------------------------------------------------------------
* 私の環境では、/dev/midiファイルはありませんでした(?)。

8.「6」と同様に、libパッケージの解凍・展開・インストールをする。
--------------------------------------------------------------
# cd ..
# bunzip2 alsa-lib-1.0.20.tar.bz2
# tar -xf alsa-lib-1.0.20.tar
# cd alsa-lib-1.0.20
# ./configure ; make ; make install

--------------------------------------------------------------

9.同様に、utilsパッケージの解凍・展開・インストールをする。
--------------------------------------------------------------
# cd ..
# bunzip2 alsa-utils-1.0.20.tar.bz2
# tar -xf alsa-utils-1.0.20.tar
# cd alsa-utils-1.0.20
# ./configure ; make ; make install

--------------------------------------------------------------

・この時点で次のようになっています。
--------------------------------------------------------------
ls -l /usr/src/alsa/
alsa-driver-1.0.20
alsa-driver-1.0.20.tar
alsa-lib-1.0.20
alsa-lib-1.0.20.tar
alsa-utils-1.0.20
alsa-utils-1.0.20.tar

--------------------------------------------------------------

10.ALSAのモジュールをkernelに組み込む。
--------------------------------------------------------------
modprobe snd-via82xx ; modprobe snd-pcm-oss ;
modprobe snd-mixer-oss ; modprobe snd-seq-oss

--------------------------------------------------------------
* Fedora CoreやCentOSでは再起動すると、自動的に組み込まれます。

11.alsamixerで音量の調節をする。
・alsamixerコマンドで、マスタ、ライン、CD、マイクなどの各種チャンネルの音量調節ができます。
・GNOMEからでも、もちろんできますが。
--------------------------------------------------------------
# alsamixer

(以下は、あくまで「イメージ」で、「省略表示」したものです。)

lqqqqqqqqqqqqqqq[AlsaMixer v1.0.20 (Press Escape to quit)]qqqqqqqqqqqqqqqqqqk
x Card: VIA 8237
x Chip: VIA Technologies VIA1617A
x View: [Playback] Capture All
x Item: Master [dB gain=-19.50, -19.50]
x
x
x lqqk    lqqk     lqqk       lqqk    lqqk           lqqk     lqqk
x x x    x x      x x       x x    x x           x x     x x
x x x    x x      x x       x x    x x           x x     x x
x  xaax   xaax    xaax       x x   x x            xaax   x x
x xaax    xaax     xaax     x x     x x           xaax   x x
x tqqu    tqqu     tqqu     mqqj     mqqj    lqqk   tqqu   tqqu
x xOOx    xOOx   xOOx                    xMMx   xOOx   xMMx
x mqqj    mqqj     mqqj                    mqqj   mqqj   mqqj
x 58<>58    74   74<>74   0       0            74<>74  0<>0
x < Master >Master M Headphon 3D Contr  3D Contr 3D Contr  PCM  Surround
x
x
qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq

--------------------------------------------------------------

・ALSAドライバを使用する場合は、システムの再起動をすると、音量は「ミュート」の設定に戻ります。
・また、ALSAドライバはカーネルに依存するので、カーネルのバージョンアップの度に、再コンパイルと再インストールする必要があります(?)。
(libとutilsパッケージについては必要ありません。)

以上で、確かに「音」が出るようになりましたが、なぜ音が出なかったのか、その時も今も分かりません。
現在は、同じマシンを使用していますが、CentOS5.0から5.3にバージョンアップしても、最初から「サウンド」関連の不具合は出ていません。
もし、サウンド関連の不具合が解消できない場合は、ALSAの手動インストールも試したらいいかもしれません。


★ ALSAのドライバが見つからないことについて。
この自宅サーバのCentOS5.3では、サウンドはALSAが機能を提供しているようです。
Linuxでは古くはOSS(OPEN SOUND SYSTEM)というモジュール(?)がサウンド機能を果たしていたそうですが、今はALSAが使われているようです。
(カーネルが「2.6」以降のディストリビューションです。)
・このことは、よく分かりません…。

・ここで、OSSのコマンドを試してみると…。
--------------------------------------------------------------
# soundconf
-bash: soundconf: command not found
# soundon
-bash: soundon: command not found
# soundoff
-bash: soundoff: command not found

--------------------------------------------------------------
・以上のように、無効です。
・ALSAのalsamixerコマンドは上記の通り有効です。

・GNOMEのサウンド管理の画面では、次のように表示されます。
--------------------------------------------------------------
ALSA ドライババージョン:Advanced Linux Sound Architecture Driver Version 1.0.14rc3
ALSA Lib パッケージ:alsa-lib-1.0.17-1.el5
ALSA Utils パッケージ:alsa-utils-1.0.17-1.el5

--------------------------------------------------------------

しかし、locateコマンドでもfindコマンドでも、「alsa-driver-1.0.14rc3」のようなドライバは見つかりませんでした。
(それらしいファイル名でいろいろ検索したのですが、見つからず…。)

ただ、locateで「oss」や「alsa」を検索すると/soundディレクトリなどに、たくさんのファイルが見つかります。
また、起動時にロードされたモジュールを調べると。
--------------------------------------------------------------
# lsmod
Module Size Used by
  (省略)
snd_seq_midi_event 11073 1 snd_seq_oss
snd_seq 49585 5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_pcm_oss 42817 0
sg 36189 0
snd_mixer_oss 19009 1 snd_pcm_oss
  (省略)
snd_seq_device 11725 4 snd_seq_dummy,snd_seq_oss,snd_seq,snd_rawmidi
snd 55237 11

snd_via82xx,snd_ac97_codec,snd_seq_oss,snd_seq,
snd_pcm_oss,snd_mixer_oss,snd_pcm,snd_timer,snd_mpu401_uart,
snd_rawmidi,snd_seq_device
  (省略)

--------------------------------------------------------------
以上のように、OSS関連のモジュールがかなり組み込まれています。

ここで、yumの検索結果をもう1度見てみると。
--------------------------------------------------------------
Name : alsa-lib
  (省略)
Description: Advanced Linux Sound Architecture (ALSA) は Linux オペレーティング : システムにオーディオと MIDI の機能を提供します。 このパッケージに はアプリケーションのプログラミングを単純化して高レベルの機能 : を提供する ALSA ランタイムライブラリの他にも、旧式 OSS API のサポートが含まれ ており、ほとんどの OSS : プログラムに対してバイナリ互換を提供しています。
  (省略)

--------------------------------------------------------------
・この説明を読んだ限りでは、「alsa-lib」だけで「オーディオとMIDIの機能」が提供できるようにも取れますが。

また、以下のサイトから引用したものを見ると。
引用元: <パッケージ: alsa-oss(1.0.12-1)>
--------------------------------------------------------------
  (省略)
アプリケーションが OSS 向けに書かれている場合、そのアプリケーションが ALSA で動くようにするには、二つの方法があります。一つ目の方法は OSS カーネルインターフェイスをエミュレートする特別な ALSA ドライバをロードすることです。これにより、アプリケーション/dev/dsp0 や他の OSS デバイスを開くことが可能になります。二つ目の方法は、本パッケージにより供給される liboss ライブラリでアプリケーションをラップすることです。ラッパーは、アプリケーションに OSS デバイスファイルの代わりに、dev/snd/pcmC0D0C のようなネーティブの ALSA デバイスファイルにアクセスさせます。
  (省略)

--------------------------------------------------------------

つまり、普通にCentOS5をインストールすると、ユーザに対して「サウンド機能」を提供するのは、OSSアプリケーション自体ではなく、そのラッパーであるalsa-libパッケージなのかなと、考えたりもしますが、これについては、本当に分かりません…。

追記
OSSやALSAについては、調べれば調べるほど、いろいろな事項が出てきます。
ですから、自宅サーバの運営だけで手一杯の私としては、今の時点でサーバの「音」が出ているので、これ以上深入りするのはやめます。

追追記
この記事を書き終えたとたんに気づいたのですが。
--------------------------------------------------------------
modprobe snd-via82xx ; modprobe snd-pcm-oss ; modprobe snd-mixer-oss ; modprobe snd-seq-oss

--------------------------------------------------------------
上記のコマンドで、「oss」のモジュールを読み込み直していました。
alsaは、やはり、ossのモジュールを使っていました…。

2009-06-01 (月)

HWiNFO32について。

Posted at: 00:12:00 - Posted by: yashikiba - Category: Windows OS

前回も書いたのですが、メモリの増設について、アレコレ考えました。
そのとき思ったのが、システムのマザーボードに搭載されているメモリの情報を簡単に知るにはどうすればいいかと言うことでした。
* 「マイ コンピュータ」の「プロパティ」では、RAMの容量が分かるだけですから。

このようなユーティリティソフトは、たいていフリーソフトとして企業や個人が提供していることが多いので、早速ネット検索してみると、ありました。

「HWiNFO32」というソフトです。
参考サイト:
<REVIEW - CPUやメモリなどのハードウェア情報を事細かく確認できる「HWiNFO32」>
* オンラインソフト紹介サイト - 窓の杜(08/09/29) *


よく知られたサイトで紹介されているので、安心して利用できると思いました。
このツールで表示できるハードウェア情報は、「CPU、メモリ、マザーボード、拡張スロット、ビデオカード、モニター、ドライブ、オーディオ、ネットワーク、拡張ポートの10種類となっており、ノートPCの場合にはバッテリー情報も加えて表示される」と上記のサイトに記載されていますが、今回はメモリを調べるためだけに使いました。

まず、ソフトのダウンロードです。
ホームページ:<HWiNFO™ & HWiNFO32>

上のページの「Download」のプルダウンメニューから「HWiNFO32」をクリックして、「Download HWiNFO32」のページに移動します。
そこで、ファイルをダウンロードするのですが…。
「Self-installing EXE v2.40-244(2.0MB)」をPrimary(Slovakia)のSiteからダウンロードすると、そのファイルは、なぜかエラーがでて使用できませんでした。
「hw32_240.exe」を実行し、セキュリティの警告のウィンドウから「実行」すると以下のエラーが出ました。

--------------------------------------------------------------
The setup files are corrupted, Please obtain a new copy of the program.

--------------------------------------------------------------
何度か試したのですが、私の環境では上手く行きませんでした。

仕方なくダウンロード元サイトを「FileForum (USA)」として「Download」をクリック。
リンク先の「fileforum」のサイトの右の「Download Now」をクリック。
「情報バー」のウィンドウが出ますが、無視して(閉じて)、「Downloading hw32_240.exe」の下の「click here」をクリックすると、「ファイルのダウンロード」ボックスが出てそこからダウンロードしました。
* なぜ、このようなことを細々と書いたかというと、フリーソフトだとここまで「飛ばす」のか、と思ったからです。
 (どちらにせよ、このソフトが良いものであれば問題はないのですが。)

・hw32_240.exeへの直接のURL
http://fileforum.betanews.com/sendfile/950009060
/1/1243351986.fa588170de4190cb5783662d995357d943e69f59/hw32_240.exe
* 直接のリンクは貼れないようです?

ダウンロードしたhw32_240.exeを実行すると自動でHWiNFO32がインストールされます。
起動した「Setup Wizard」では、すべて「Next」を選択して実行すると以下のようにインストールされます。
--------------------------------------------------------------
インストール先フォルダ:C:\Program Files\HWiNFO22
「すべてのプログラム」での表示フォルダ:HWiNFO32

--------------------------------------------------------------

「スタート」の「すべてのプログラム」で「HWiNFO32」を選択すると、4つのプログラムが表示されますが、メモリの情報を見るだけなら、「HWiNFO32 Program」を選択して、デスクトップにショートカットを作成しておけば便利かなと思います。

HWiNFO32 Programを実行して「Run」をクリックすればすぐに利用できます。
試しにメモリを調べてみると以下の通り、非常に詳細な情報が取得できて少し驚きました。

--------------------------------------------------------------
Row: 0 - 512 MB PC2-3200

General Module Information
Module Number:       0
Module Size:          512 MBytes
Memory Type:         DDR2-SDRAM
DIMM Type:           Regular Unbuffered (UDIMM)
Error Check/Correction:  None
Memory Speed:        200.0 MHz (PC2-3200)
Module Manufacturer:    Hynix (Hyundai)
Module Model:          HYMP564U648-E3
Serial Number:         1392771071
Manufacturing Date:      Year: 2004, Week: 51

Module characteristics
Module Width:          64-bits
Module Voltage:         SSTL 1.8V
SPD Revision:          1.0
Number Of Ranks:      1
Row Address Bits:       14
Column Address Bits:    10
Number Of Banks:       4
  (以下、省略)

--------------------------------------------------------------
これでは、私のパソコンの古いことが丸分かりです。

ところで、上の「Memory Speed」を見ると「200.0 MHz」になっています。
BIOSのセットアップ画面のメモリ情報を見ると、「Memory Speed:400MHz」となっています。
これは、DDR2-SDRAMのメモリモジュールを2枚1組で同期させて使うことで、メモリのベース・クロックの2倍の動作周波数でメモリにアクセスできるということらしいです。
短く言うと、マザーボード上では、CPUはメモリに200X2MHz=400MHzでアクセスできるということです。
* ただし、チップセットがデュアルチャンネルに対応していなければなりません。
* また、常にパソコンではFSBなどのボトルネックを考慮する必要もあります。

この方式を「デュアルチャンネル(Dual Channel)」といい、これを利用するには、(信号経路として?)同期が取れる対になったメモリスロットに同じ規格、同じ容量のメモリモジュールを装着する必要があります。
たとえば、メモリスロット(DIMMコネクタ)のNo.1とNo.2に512MBのメモリモジュール、No.3とNo.4に1GBのメモリを取り付けることで、デュアルチャンネルでメモリを利用できるようです。

また、DDR2の「2」はデュアルチャンネルを示しているのではなく、DRAMの規格を表しているそうです。
DDR SDRAMは、「2ビットのプリフェッチ機能」を持ち、DDR2 SDRAMは、「4ビットのプリフェッチ機能」、DDR3 SDRAMは、「8ビットのプリフェッチ機能」というように規格の違いを示しています。
単純に言うと、数字が大きくなるほど2倍ずつデータ転送速度は速くなります。
* 現在、DDR4 SDRAMまで規格の策定が進められていて、2011年頃市販されるようです。

・また、知ったかぶりをしてしまいましたが、私自身のメモとして書いているのでご容赦下さい…。
 (-_-;)。
 
参考: <DDR2 SDRAM - Wikipedia>
参考: <デュアルチャネルDDR【Dual Channel DDR】 - e-Words>
参考: <デュアルチャネル - Wikipedia>

Statistics

Total044146 7days982 Yesterday146 Today078 IP check in 30 min Since 2007-12-27

Calendar

<   2009-06   >
 123456
78910111213
14151617181920
21222324252627
282930    

Categories

Archives

Links

Search

Syndications

Login