M3A-H/HDMIでCentOS5.2を

目次
はじめに
第1の問題 :HDDを認識してくれない!
第2の問題:RAIDを構成したら、いきなりインストール途中でフリーズする。
第3の問題:NICのドライバがまともに動かない。
未解決の問題

1 はじめに

最近、ASUSのM3A-H/HDMIにCentOS5.2-X68_64をインストールした。
ところが、いい感じにハマってしまった・・・
ネットを見ると、同じように苦しんでいる人が意外に多いようなので、インストール記録を書くことにした。
このM/BとOSの組み合わせでのハマりのポイントは3つほどあり、何とか実用に耐える環境が構築できた。
ちなみに未解決の問題も、いくつかある。

今回使用した、機器/環境など

ハードウェア
CPU AMD Phenom x4 9450
M/B ASUS M3A-H/HDMI
Memory 4GB
HDD 500GB SATA×2(RAID1)
OS
CentOS 5.2-X86_64

***お約束の注意事項***

 この文章は無許可での再配布を可能とする。
 この文章は完全に無保証であり、この文章によって生じたいかなる損害も、執筆者が負うものでは
 ない。この文章の扱いは自己責任でお願いする。
 この文章に対する訂正、補足、助言等は大歓迎である。みんなで幸せになろう:-)

2 第1の問題:HDDを認識してくれない!

今回、S-ATA3のHDDを2つ用意し、Linux側からS/W RAIDを構成する予定であった。
だが、HDDをCentOSのインストーラが認識してくれない。

ネットを調べると、CentOSに限らず、Linuxインストールでこの問題に悩む人は国際的に多数いることがわかった。
S-ATAのポートを変えることでうまくいく、という指摘もあったが(SATA3,4に接続すればいい、とのこと)、
当方の環境ではうまくいかなかった。

そこで、マザーボードのOptionRomUtilityから、直接RAID1を構成した。
(OptionRomUtilityは、起動時に[CTRL] +[F]キーで起動。)

3 第2の問題:RAIDを構成したら、いきなりインストール途中でフリーズする。

ASUSのサイトを調べたところ、これはBIOSの問題のようだ。
http://support.asus.com.tw/download/download.aspx?SLanguage=ja-jp
(ここからモデルを選択。OSはWindows2Kを選択した。)

BIOSの更新履歴にこんなことが書いてある。

0803 M3A-H/HDMI用BIOS
1. 新しいVGAドライバのインストールに失敗する問題を解決。
2. RAID構成後に64ビットOSのインストールに失敗する問題を解決

とのことで、BIOSのバージョンが0803より古いと、問題が起きることが判明。
早速最新版の1001にアップデート。
BIOSをアップデートして起動後、正しくデバイスが認識され、インストールは無事に終了した。

なお、通常のHDDではないため、デバイス名が特殊になる。
現在、当方の環境でdfするとこんな感じの結果が返ってくる。

[root@bar ~]# df
Filesystem           1K-ブロック    使用   使用可 使用% マウント位置
/dev/mapper/pdc_dhjebefciep2
                      49594228   4187488  42846784   9% /
/dev/mapper/pdc_dhjebefciep5
                     413277708 196070728 195875072  51% /foo
/dev/mapper/pdc_dhjebefciep1
                       2030736     61200   1864716   4% /boot
tmpfs                  1887040         0   1887040   0% /dev/shm


第3の問題:NIC のドライバがまともに動かない。

マザーボード付属のLinux用LANドライバがmakeに失敗してしまう。
しかも、後で確認したところ、付属ドライバは、修正したところでやはりマトモには動かないことがわかった。
(make, make installは可能で、IPアドレスの付与もできるが、他マシンとの通信が全くできない。)

この問題に悩む人も結構多かった。手持ちのNICを増設して回避した人もいる。
私も、最初はそれを試した。
(3com 905B-TXを使用。旧Linuxの定番 DEC 21140-AFも試したが、後述する問題が出た。)
だが、せっかくオンボードでギガビットイーサがついているM/Bなのにもったいない!
そこで、以下の手順で、オンボードのギガビットイーサを使用できるようにした。


4.1 まずは最新のドライバを取得

Atherosの以下のサイトから、「Atheros L1 Linux Driver」をダウンロード。
(今回使用したバージョンは、l1-linux-v1.2.40.3.tar.gz)
http://partner.atheros.com/Drivers.aspx


4.2 適当な場所に展開


4.3 展開したファイルのソースを修正する。

※ 注意 ※
この項(4.3)の修正は、カーネルのバージョンが「2.6.18-92.1.13.el5」のCentOS 5.2上で、
「l1-linux-v1.2.40.3.tar.gz」を展開したソースをもとに、
コンパイル時のエラーメッセージを参照しつつ実施したものです。

別のカーネルバー ジョンのCentOS、CentOS以外のLinuxでは、
不要な作業である可能性が 高く、また、致命的な不具合が発生するかもしれません。

ま ず、通常通りmakeを試したとき、以下のエラーメッセージが出ることを確認する。
※ エラーが出なかった場合は、そのままmake install。

[foo@bar src]# make
make -C /lib/modules/2.6.18-92.1.13.el5/build SUBDIRS=/usr/local/src/src modules
make[1]: ディレクトリ `/usr/src/kernels/2.6.18-92.1.13.el5-x86_64' に入ります
  CC [M]  /usr/local/src/src/at_main.o
In file included from /usr/local/src/src/at.h:29,
                 from /usr/local/src/src/at_main.c:27:
/usr/local/src/src/kcompat.h:1116: error: redefinition of typedef ‘irq_handler_t’
include/linux/interrupt.h:67: error: previous declaration of ‘irq_handler_t’ was here
make[2]: *** [/usr/local/src/src/at_main.o] エラー 1
make[1]: *** [_module_/usr/local/src/src] エラー 2
make[1]: ディレクトリ `/usr/src/kernels/2.6.18-92.1.13.el5-x86_64' から出ます
make: *** [default] エラー 2

太字部分のエラーが出ていることが、以下の修正を行う前提となる。
他のエラー(たとえばカーネルソースが見つからない、など)については、
既にWeb上に優れた解説などがあると思うので、適宜調査してほしい。

エラーを確認後、kcompat.hをコピーしてバックアップを作成し、ソースを修正する。
具体的には、1116行目にあるこの行を削除。

typedef irqreturn_t (*irq_handler_t)(int, void*, struct pt_regs *);

元のファイルとの差分はこんな感じ
[foo@bar src]$ diff kcompat.h.orig kcompat.h
1116d1115
< typedef irqreturn_t (*irq_handler_t)(int, void*, struct pt_regs *);


4.4 make, make install

お決まりの手順。これで再起動をかければ、めでたくオンボードのNICが認識されているはずだ。

5 未解決の問題

現在も、いくつかの問題が課題として残っている。

・ BIOSにまだバグがある??
OS起動時に、こんなメッセージが出る。
Memory for crash kernel (0x0 to 0x0) not within permisible range
PCI: BIOS Bug: MOPG areg at e0000000 is not EB20-reserved
PCI: Not useing MMCONFIG
powernow-K8: Pre-initialization of ACPI failed
powernow-K8: Your BIOS does not provide _PSS objects. PowerNow! does not work
in SMP systems without _PSS objects. Complain to your BIOS vendor.
詳細は不明だが、どうもPowerNow!が稼働していないことはわかる。
「BIOSバグ」や「BIOSベンダに相談してください(←無難な日本語に意訳)」など、不穏な文字がある。

・ WindowsMeも2000もインストールできない。
この環境では、古いWindowsは、インストールできないようだ。
どちらのOSも、「メモリが不足している」旨のメッセージが出て、 OSのインストールに失敗する。
4GBで不足とは、WindowsMe/2000も偉くなったものだ。
なお、WindowsMeではSerialATAのHDDが認識され、500GBのディスクのFAT32フォーマットにまでは成功した。

・ DEC 21140-AFカードで再起動後通信不可
このカード、ドライバのインストール、認識、外部通信まですんなりとうまくいったのだが、
マシン再起動をかけたときに、外部との通信がうまくできない状態になる事象が発生した。
また、電源が入った状態でLanケーブルの抜き差しを行うことにより、事象が解決することも確認した。
原因はよくわからない。古くなったNIC個体の問題なのか、相性の問題なのか・・・

・ Xenカーネルが起動しない。
起動中にフリーズする。通常のカーネル(Xenがついていないもの)をGRUBでデフォルトにして回避している。
原因、対処方法とも、今のところ不明。











back to home