| ■ 【ぷろじぇくと64(ろくよん)】 〜T-Bananaサーバで64ビットOSを動かすぞっ!!の巻〜
|
第8日目:NICドライバ対応の顛末・・・
|
Brian(以下、( ^ω^))から『百式 到着!』の連絡をもらったのは良いけど、
OSがFreeBSD 6.2-STABLEでないとオンラインにならないという局面にぶち当たり
ちょっと涙目の俺(以下、('A`))です・・・・
なんでか、というと
1) FreeBSD 6.2-STABLE のportsに入っていないソフトをインストールしている
(例えばImageMagick。ALLとか他のフォルダの中を探しても見つからない)
2) STABLE版のシステムソース(/usr/src/sys ね)が見当たらない
という状況だからです。
元々FreeBSD 6.2-RELEASEでこれまでパッケージとかを作ってきたので、ある意味
「一からやり直し」に近かったりします。
問題になっているのはIntel NICのドライバ(em)だから、6.2-RELEASEのemを
最新版にしてしまえば良いんだ。
どっかに最新のソースがないかなあ・・・・と探してみたら、ありました。
しかもIntelのサイトで。
(Intel NIC の最新ドライバについての詳細はココを参照して下さい。)
さっそくREADME.txtを読むと、、、、カーネルソースへの反映方法まで載ってる。
やったー!!!
要約すると
1) 解凍する
tar xzvf em-6.6.6.tar.gz
2) ソースのディレクトリに移動する
cd em-6.6.6/src
3) ソースファイル(拡張子が .c と .h)をシステムソースのNICドライバ
emのディレクトリにコピーする
cp *.c /usr/src/sys/dev/em
cp *.h /usr/src/sys/dev/em
4) 後はカーネル再構築を実行する
|
と書かれている。
この方法でうまくいくかなあ。やってみよう。
# cd /usr/src
# ls -l
total 18126
drwxr-xr-x 4 root wheel 512 Sep 10 20:55 em-6.6.6
drwxr-xr-x 58 root wheel 1024 Nov 14 07:55 sys
# cp em-6.6.6/src/*.c /usr/src/sys/dev/em
# cp em-6.6.6/src/*.h /usr/src/sys/dev/em
# cd sys/amd64/conf
# config TTIGER01
Kernel build directory is ../compile/TTIGER01
Don't forget to do ``make cleandepend; make depend''
# cd ../compile/TTIGER01/
# make depend;
rm -f .newdep
make -V CFILES -V SYSTEM_CFILES -V GEN_CFILES | MKDEP_CPP="cc -E" CC="cc"
xargs mkdep -a -f .newdep -O -pipe -march=opteron -Wall -Wredundant-decls
-Wnested-externs -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
-Winline -Wcast-qual -fformat-extensions -std=c99 -g -nostdinc -I- -I.
-I../../.. -I../../../contrib/altq -I../../../contrib/ipfilter
-I../../../contrib/pf -I../../../dev/ath -I../../../contrib/ngatm
-I../../../dev/twa -D_KERNEL -DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h
-fno-common -finline-limit=8000 --param inline-unit-growth=100
--param large-function-growth=1000 -mcmodel=kernel -mno-red-zone -mfpmath=387
-mno-sse -mno-sse2 -mno-mmx -mno-3dnow -msoft-float -fno-asynchronous-unwind-tables
-ffreestanding
../../../dev/em/if_em.c:80:23: e1000_api.h: No such file or directory
../../../dev/em/if_em.c:81:25: e1000_82575.h: No such file or directory
../../../dev/em/if_em.c:82:19: if_em.h: No such file or directory
mkdep: compile failed
*** Error code 1
Stop in /usr/src/sys/amd64/compile/TTIGER01.
#
|
なんで同じ階層にソース置いているのに「ねえよ、ゴルァ!」って言うんですか!
うーん、元のソースを一旦消してから全部コピーして再実行しても結果は同じだし、
時間も無いし・・・・
((^_^;)さんからは「早くっ!早くっ!」と言われているし。)
その時READMEで「もう1つ」の方法が書いてあったので、試しにそっちをやってみたら
成功した。(詳細は解説のところで)
でも、これって本当に「小手先」で回避したと言われても仕方が無いなあ・・・
そして、カーネルを6.2-STABLEから6.2-RELEASEへ再構築した。
一般には「ダウングレード」と言われるけど、今まで作ってきたパッケージとか
ImageMagickとかも入れたいし。
ここで順番を間違えると、リブート後サーバが「お亡くなり」になるのでもう一度確認。
1) FreeBSD 6.2-RELEASE システムソース(/usr/src/sys)を固めたものを転送する
2) 解凍する
3) amd64のconfディレクトリ(/usr/src/sys/amd64/conf)に移動する
4) コンフィグレーションファイル(TTIGER01)を持ってくる
5) config TTIGER01 を実行する
6) cd ../compile/TTIGER01 でディレクトリを移動する
7) make depend; make; make install でコンパイル&インストール祭り
|
んで、ここから「禁術」を実行
8) NICドライバのモジュールを生成&インストールする
9) /boot/loader.conf でドライバを呼び出す様に修正する
10) 一息ついて、覚悟を決める
11) rebootコマンドでサーバを再起動する
|
無事『百式』は帰ってきた。
通常のサーバセットアップだと各アプリケーションソフトのインストールや
サーバの設定ファイルの作成(/etc/rc.confとか)を行なってからカーネルの
再構築を行なうんだけど、、、、、『百式』は逆の手順となりました。
サーバがあまりにも新しいハード機器で構成されている為、こうなりました。
(『百式』のスペック情報はココを参照して下さい。)
そしてアプリケーションを全てインストールして、動作チェックを実行していると、
うちのサーバ管理者(以下、(・∀・))が背後から現れた。
('A`):「あのさあ、チェックの方、どうかな?」
(・∀・):「あ、動いてるよー、ApacheとかSpeedyとか。。。」
('A`):「(ほっ)」
(・∀・):「でもねえ、、、メールは動かないよ。」
('A`):「えっ!でもさ、1回目のチェックの時は問題ないって・・・」
(・∀・):「ああ、あれね・・・実はさ、同じメアドで送受信テストしてたから
実はサーバ内でメールが転送されてたんだ。だから一見うまく動いた
ように見えただけ。」
('A`):「orz・・・・・送信も受信もダメなの?」
(・∀・):「受信はOKだった。でも送信は25番も587番も共にダメ。」
('A`):「何がダメなのか判るかなあ?俺くわしくないんだよ。」
(・∀・):「あ、俺出かけるから。(^_^;)さん、あとよろしくです。じゃあね〜♪」
('A`):「(えっ、えっ、えええっ)」
(^_^;):「で・き・た・か? 明日動かすぞ〜!!!」
('A`):「(号泣)」
とりあえず動くことは動くけど、、、パッケージは完成していない。
残り時間はもうほとんど無い。
どうなる? どうする?
明日頑張るか・・・・・
|
|
[Intel NIC のドライバインストールについて]
まず今回導入したIntelのNIC(Pro/1000)のドライバはココ以下のURLから入手できます。
(ファイル名は em-6.6.6.tar.gz です。)
http://downloadcenter.intel.com/Detail_Desc.aspx?strState=LIVE&ProductID=2874&DwnldID=13742&lang=jpn
またインストール方法等を記したREADMEファイルはこのURLで閲覧できます。
http://downloadmirror.intel.com/13742/ENG/README.txt
本文でも書きましたが、ドライバのインストール方法には2つの方法があります。
1) 最新ドライバのモジュールを生成して、起動時に動的に呼び出す
tar xzvf em-6.6.6.tar.gz
cd em-6.6.6
make
make install
|
まで実行し、エディタ(viやemacs等)で /boot.loader.confに以下の行を追加する
確認方法はdmesgを実行し、NIC(em0)のところに以下の表示がされていたらOK。
em0: port 0x20e0-0x20ff
mem 0x90300000-0x9031ffff,0x90324000-0x90324fff irq 20 at device 25.0 on pci0
em0: Ethernet address: 00:16:76:bc:b3:7d
em0: [FAST]
|
2) カーネル再構築時にソースから生成して、カーネル組み込み型とする
tar xzvf em-6.6.6.tar.gz
cd em-6.6.6/src
cp *.c /usr/src/sys/dev/em
cp *.h /usr/src/sys/dev/em
|
まで実行し、カーネル再構築を実施する。
今回は最初 2) の方法で試したけど、エラーになったので 1)の方法で乗り切りました(汗
(百式スレでむむむさんからは褒めて頂いたようで嬉しいのですが、実は本来の
組み込み方じゃなかったので、恥ずかしい限りです・・・・・)
http://qb5.2ch.net/test/read.cgi/operate/1195544502/246
[百式(tiger3501)のスペックについて]
ここでは『百式(サーバ名はtiger3501)』のスペックについてお話します。
百式が生まれるきっかけの1つは社内で「Core2Duoでbanana数台分なら、Quadは
もっとすごいんじゃない?」という話からでした。
ちょうどその頃、('A`)は数々のサーバを作っているPolywell社のSam社長と
会っていました。
(2ちゃんねるでも何度も紹介されていますが、とても紳士的な人です。)
んで、「ユー、こんなのもあるよ。どうだい?」と勧めてもらったのが
この『百式』でも使われている Quad-Core (Core2 Extreme) QX6850だったのです。
実際このCPUを積んで、かつGeForce8800がついたマシンを見せてもらいました。
その時はフライトシュミレータのゲームを動かしての耐久テストが行なわれていて、
動きが速いし、なめらかだし、、、、一発で夢中になりました。
そして色々検討して最終的に決まった『百式』のスペックはこんな内容です。
CPU : Intel Quad-Core Extreme QX6850 3.0GHz 8M 1333FSB
RAM : 8GB 4xDDR2 667MHz 2G PC5300 Memory Unbuffered
HDD : 2xSeagate ST3250410AS 250GB 7,200rpm SATA150/300
NIC : Intel(R) PRO/1000 Network Connection Version - 6.6.6
ケース : 1102EV-17"Short 1U Chassis 1xSlimCD+2HD Bays w/o
電源 : 1U 270W 80Plus High Efficiency P/S ATX
|
但し、当初はSASで73GBのHDDを2つ取り付けてRAID 6で構成しようとしてました。
だけどSASのコントローラがこのサーバのケースだと直接取り付けられないので、
PCIライザーカード(横向きに拡張カードとかを取り付ける為の、繋ぎ用のカード)で
くっ付ける試みをしてました。
でも、、、、SASのカードもライザーカードもOSからは認識できるのに、肝心のSASの
ドライブ(HDD)が見つからない、となってしまって・・・・
なので、今の『百式』はSATAのHDDを2つ取り付けてRAID 1で動かしています。
(Intel純正のマザーボードなので、RAIDコントローラー内蔵です)
またジャンパースイッチを引っこ抜いてSATA300の状態で取り付けています。
|
|
|
7日目に戻る。 9日目に続く。
解析
|