カテゴリー: Linux

LinuxとICH7は鬼門?!

GigabyteのGA-8I945Gマザーボードを購入しました。このマザーボートを購入した理由はPCI Express x16用のハイエンドグラフィックスカードは必要なかった事と廉価なPCI Expressグラフィックスカードが無かった事、そしてPentinumDを使いたかった為です。
# IntelのxxxGチップセットはグラフィックスカード機能を内蔵しています。
# 16MBくらいのメインメモリは使えるのだろう、と思っていたらGA-8I945G
# は最大でも8MBしか使えません…

945チップセットはICH7によってPATA/SATA IDEインターフェース機能が提供されています。ネットで検索するとSuSEなどのディストリビューションではSATAのみの環境でもインストールできているようですがMomonga Linux 2はインストールでませんでした。ATA HDDのFAQサイトではata_piixかahciでICH7で利用できると書いてあるのですが、SATAデバイスは全く認識されない状態でした。

仕方が無いのでPATAのHDDとDVD ROMをIDE0インターフェース接続してとりあえずインストールした後、いろいろ試して見る事にしました。しかし、このIDE0のインターフェースが悪いのかICH7サポートが悪いのか、DVD ROMをはずしてもhdparmで2MB/秒程度の速度しか出ていません。状態を確認するとDMAさえ使っていませんでした。hdparm -d1でDMAを有効に設定しようと試みても「サポートしていない」旨のエラーでDMAも有効に出来ません。

なんとしてもSATA HDDを使えるようにしなければと思いつつネット検索していると、カーネルのデバイス認識に問題あるため(?)チェックコードを削除するとSATAドライブを認識できたケースがある事を見つけました。kernelに次のパッチを適用してやっとSATA HDDが認識できました。

--- linux-2.6.10/drivers/scsi/ata_piix.c.orig   2005-08-01 10:44:38.000000000 +0900
+++ linux-2.6.10/drivers/scsi/ata_piix.c        2005-08-01 10:44:53.000000000 +0900
@@ -589,12 +589,6 @@
        port_info[0] = &piix_port_info[ent->driver_data];
        port_info[1] = NULL;

-       if (port_info[0]->host_flags & PIIX_FLAG_AHCI) {
-               int rc = piix_disable_ahci(pdev);
-               if (rc)
-                       return rc;
-       }
-
        if (port_info[0]->host_flags & PIIX_FLAG_COMBINED) {
                u8 tmp;
                pci_read_config_byte(pdev, ICH5_PMR, &tmp);

hdparmでも66MB/秒と普通の数値が出ています。cp -ax でPATAにインストールしたMomonga Linux 2をSATAにコピーし、grub.confやinitrdイメージを作り直してパッチ付きカーネルでブートできるようにしました。ここでは書いていませんが、要所要所で適切にBIOSも設定しなければなりません。設定を間違えるとPATAのディスクさえ認識してくれません。ご注意下さい。

他のディストリビューションでSATAのみの環境でのブートを試みたのはKnoppix3.9 日本語版だけですが、これもSATAデバイスを全く認識してくれませんでした。SuSEなら大丈夫(?!)なのかもしれませんが…

GigabyteのGA-8I945GはLinuxで使えない事もないですがお勧めできるM/Bでは無いです。同じシリーズのM/Bも同じかと思います。M/Bの問題と言うより、もしかしてICH7/ICH7RはLinuxにとって鬼門?!

# PS/2マウスコネクタの接触が悪いのか、他の原因なのか分かりませんが
# マウスが動かなくなるのも困ります。抜き差しすると直ります…
# 955チップセットに買い換えるかな…

SATAとPATAの混在環境

最近のマザーボートはSATAとPATA、両方のインターフェースが当り前のように着いてきます。しかし、LinuxでPATA、SATAのHDD両方が接続されている場合は簡単に構成できない場合が多いかも知れません。

Althon64のPCを組む為にASUS A8V Deluxeを購入しました。AthlonXP 2500+に接続していた80GBのHDD(/dev/hda – WindowsXPのみインストールされている)と200GB HDD(/dev/hdb – 各種Linuxのビルド・テスト環境がインストールされている)を
200GB (/dev/hda – 古い80GBのWindowsXPのパーティションのコピーとLinux)と250GB(/dev/sda – 古い200GBの各種Linuxビルド・テスト環境)に移行しました。

WindowXPのパーティションの移動はddコマンドで簡単に移動できます。今のHDDはLBAが当たり前でシリンダ数さえ合っていればddでデバイスからデバイスへコピーするだけで移動できます。CPUとマザーボードが変わりましたがXPからはWindows2000やNT様に苦労する事はありません。

苦労したのはLinuxのシステムイメージの移行です。PATAとSATAの混在環境にしたのですがブートに色々な問題が発生します。Linuxのブートプロセスはある程度知っているので、ほとんどは既に知っている問題だったのですがBIOSの設定とgrubの動作に手惑いました。

ご存知の通りLinuxはHDDの認識にBIOSを使いません。このため最初にgrubを起動したときとブート後のデバイスの順序が異なっていました。BIOSの設定とLinuxが認識するHDDのデバイスの順序が異なっていると混乱してしまいます。BIOSの設定をLinuxの認識順序と合わせる事ができるBIOSであれば、同じにすると問題を回避できると思います。Wikiには多少詳しく(?)記述しています。

Momonga LinuxとFedora Coreパッケージの比較

前にMomongaLinuxとFedoraCoreのパッケージの比較を行うスクリプトを作っていたのですが更新対象をFedoraCore 3からFedoraCore 4に変更しました。

http://www.momonga-linux.org/~yohgaki/compare_distribution_srpm.php?type=src_only

ついでにMomongaLinux 2とMomongaLinuxのtrunk(開発版)との違いも比較できるURLも用意しました。

http://www.momonga-linux.org/~yohgaki/compare_ml2_vs_devel.php?type=src_only

この比較リストの作成は時間がかかるのでキャッシュを使っています。確かキャッシュの有効期限は6時間くらいに設定していたと思います。最後に更新されてから6時間以上経過するとリストを再作成するので運が悪いとページの表示に時間がかかります。

Momongaでautofs

NFSボリュームへのマウントはautofsを利用しているのですがMomonga Linux 2をインストールしたばかりの環境でNFSボリュームのマウントが非常に長い時間がかかるのでおかしいな、と思っていたらportmapperが動作していませんでした…マウントは出来ていたので直ぐに気が付きませんでした。

autofs(NFS)を使う場合、portmapの起動もお忘れなく。

chkconfig autofs on
chkconfig portmap on

NvidiaのTwinView

MomongaLinux2でNvidiaのGeForce FX5200とFX6200でTwinViewオプション(Dual Head機能)を使ってみました。

結論から言うと動作しますが、怪しい動作をします…
使っているPCのチップセットなどと関係しているのかも知れませんが

Option “NvAGP” “1”

と設定してやっと安定動作しました。

xorg 6.8.2でTwinViewを設定して失敗している例が多くあるようで、私も設定に苦労しました。オプションの組み合わせで動作しない場合が多く、さらに動作不良を起こすと再起動しない限りコンソールさえも使えない状態になります。一見動作したように見えても直ぐに画面がフリーズしXが100%CPUを使い、カーソルは動くがCRTL+ALT+BSでのZapも効きません。SSHでログインしてXプロセスを殺しても再起動しないと画面表示は全く行われない、という悲惨な状態でした。

しかし、一旦動作する状態になると割りと安定している(?)のか数時間使った程度ではフリーズしたりしていません。OpenGLのスクリーンセーバーも普通に動作しています。どうしてもダメなら新しいカードを買う必要がありますね…

NvidiaのTwinViewを使っているユーザは少ないのか日本語の情報はあまり無かったような気がします。多分、あまり使われていない(?)のでしょう。もしxorg.confが欲しい方がいらしたらコメントを下さい。

SATA IIのベンチマーク

メモ。ITMediaのSATA IIのベンチマーク。

SATA IIのNCD(Native Command Queuing)の効果は期待していたよりは効果が低いですがBarracuda 7200.8 SATA NCQ速いですね。

順次読込みは130Mバイト/秒に達している。これは、コントローラがPCI-Expressに接続されていないと性能をフルに発揮できないことを示している。

これって私のSATA IのLinux BOXでhdparmした時の倍くらいの速度です。130MB/秒だと1Gbpsを超える速度ですが、133GBプラッタのHDDはそんなに速い?! と思いSeagateのサイトに行きHDDのデータシートを見てみると

Sustained Transfer Rate (Mbytes/Sec) 65

と記載されていました。

ターボリナックスが中古パソコン専用のLinuxを提供開始

この中古パソコン専用!と言う部分ですが、TL10はxfce4をサポートしているのでxfce4がデフォルトのデスクトップ環境になっているディストリビューション、と言うことだと理解しました。間違っています??

手元にあるPCで256MB以下のPCが無いので解りませんが、128MB程度あればそれなりに使える速度で動作すると思います。

Turbolite 10
http://www.turbolinux.co.jp/10d/turbo_lite.html

少なくとも64MBや128MBメモリのPCでWindows XPを動作させてFirefoxを使用するよりかなり快適と思います。

マーケティングには色々な手法がありますが、このマーケティング、一般受けするのかな?

追記:
マーケティングの法則として適切なセグメンテーションは必須です。例えば、いくら良いカツラでも男性用と女性用は別にマーケティングしないとダメ等、があります。ページを見るとターボリナックスとしても中古もしくは古いPCに新たな投資をユーザが行うとは考えていない事は分かります。妥当な予測と思いますが、ビジネスになるか、それともマーケティングには色々な手法と同じくパブリシティの利用のみを考えているのか? 私は後者のような気がします。

ブートローダのインストールで固まる場合の対処

SATAが1台だけ搭載されているDELL PowerEdge 800にMomonga Linux 2をインストールを試みるとブートローダ(Grub)のインストール中に固まってしまいました。どうもブートローダのインストールができない状態のようなので、インストール中のXの画面から

ALT+SHFIT+F2

でVertual Console 2からtopコマンドと実行するとgrubプロセスが100%CPUを使用した状態でした。何らかの理由で無限ループに陥ったことが原因と思います。

とりあえずの対処は手動でGrubをインストールすればOKです。まず、grubのプロセスIDを調べてkill PID、そして

chroot /mnt/sysimage /sbin/grub-install –recheck /dev/sda

と入力して手動でGrubをインストールすればOKです。インストール出来ない場合は–recheckを削除して試してください。あとはXの画面に

ALT+F7

で戻り、「再起動しますか?」と聞かれているはずなので再起動すればOKです。
# バーチャルコンソールから再起動しても良いですが、一応…

Grubがインストールできないケースはあまり無い(?)とは思いますが、情報として。

Momonga Linux 2リリース

Momonga Linux 2が2005/4/27にリリースされました。

主なパッケージ

*kernel 2.6.10
*gcc 3.4.3
*glibc 2.3.4
*xorg-x11 6.8.2
*emacs 22.0.50
*firefox 1.0.3
*httpd 2.0.54
*mozilla 1.7.7
*OpenOffice.org 1.1.4
*openssh 4.0p1
*PHP 5.0.4
*postfix 2.2.1
*ruby 1.8.2
*samba 3.0.14a
*sylpheed 1.9.9

早々にPHP5が投入されています。
# 入れたのは私ですが。
# 最近何もできなくて申し訳ない > メンバーの方。

HDDのパフォーマンス

折角久しぶりにLinuxマシンのSATAドライブが動作したのでhdparmで速度を測定してみました。

[root@sena root]# hdparm -tT /dev/hdb

/dev/hdb:
Timing buffer-cache reads: 3400 MB in 2.00 seconds = 1700.85 MB/sec
Timing buffered disk reads: 122 MB in 3.04 seconds = 40.11 MB/sec
[root@sena root]# hdparm -tT /dev/sda

/dev/sda:
Timing buffer-cache reads: 3408 MB in 2.00 seconds = 1704.85 MB/sec
Timing buffered disk reads: 160 MB in 3.02 seconds = 53.03 MB/sec

普通の速度は出ているようです。

そういえば「高速ネットワーク通信実験に成功。DVD一枚分のデータが数秒で送信可能」という見出しの記事を見掛けますが、数秒で送るにはメモリから送信しないとダメですね。仮に私のPCではDVD一枚分を数秒で送信するとして、十分なメモリがあってもPC3200 Dual Channelでは厳しそうな感じですけど… 実用化するときにはMRAMが湯水のように使える時代になっているのでしょうね。

SATAデバイス

今Momonga Linuxが動作しているPCでSATAドライブが付いているのは1台きりだったのですが、この1台のSATAドライブがMoで認識されなくなって久しいです。データ用のディスク領域が足りなくなって来たので「今時PATAドライブではなぁ」と思いSATAのドライブが買ってきてしまいました。

買って来てしまった物は仕方無いので使える様に設定するまでです。使えるようにする環境はHEADではなくSTABLE_1 (Momonga Linux 1)です。とりあえず今SATAドライブがつながっているいるだけのPCのカーネルはとても古い(2.4.26-12mp4-smp)ので最新のSTABLE_1のkernel(2.4.27-4mp4)にアップグレードしました。ブート時にkernel bug云々と言われpanicを起こしました。困ったときのIRCと言うことでMoのIRCで聞いて見るとSATAでも普通に使えてるようです。「オンボードのIDE RAIDのI/FをBIOSで無効にしてみたら」と言われ、試してみた所とりあえずブートはするようになりましたがfdisk -lとしてもドライブが見えません。

古いカーネル(2.4.24とかだったような)では/dev/hdeと形で認識されていたのですが、今のカーネルはSCSIとして認識させないとならないとの事だったので

modprobe ata_piix

とすると/dev/sdaとして認識されました。ここまで来れば/etc/modules.confに

alias scsi_hostadapter ata_piix

を追加して/boot/kernel-2.4.27-12mp4-smp.imgをmkinitrdで作り直せばfdisk -lで普通に見えるようになります。


[root@sena root]# fdisk -l

Disk /dev/sda: 160.0 GB, 160041885696 bytes
255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 1 19457 156288321 83 Linux

Disk /dev/hda: 80.0 GB, 80054059008 bytes
255 heads, 63 sectors/track, 9732 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hda1 1 8400 67472968+ 8a Unknown
/dev/hda4 8401 9732 10699290 5 Extended
/dev/hda5 8401 8650 2008093+ 82 Linux swap
/dev/hda6 8651 9732 8691133+ 83 Linux

Disk /dev/hdb: 80.0 GB, 80026361856 bytes
255 heads, 63 sectors/track, 9729 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/hdb1 1 9729 78148161 83 Linux