【ぷろじぇくと64(ろくよん)】 ~第8日目:NICドライバ対応の顛末・・・

レンタルサーバー
BIG-server.com

簡単・はやい・大容量・どんな目的にもマッチするレンタルサーバー

HOME プライス お見積もり・プラン選択 お申し込み ユーザーサポート お問い合わせ

■ 【ぷろじぇくと64(ろくよん)】 ~T-Bananaサーバで64ビットOSを動かすぞっ!!の巻~

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
目次に戻る
第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に以下の行を追加する
if_em_load="YES"

 確認方法は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日目に続く。

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
目次に戻る


Copyright (C) 1997-2013, BIG-server.com. All Rights Reserved.
レンタルサーバー BIG-server.com
Powered By Maido3.com