←Home

Fri, 2005-09-16

でびやん野郎
〜Debian Sargeで構築するインターネットサーバ

1.ハードウェア環境
2.Debian Sargeインスト
3.Hyperthreading対応のカーネルをつくる
4.Xインストール
5.VNCサーバインストール
6.音を鳴らす
7.テレビみたり、ラジオ聞いたりする
8.BIND9インストール

 

 

 

 

 

Debian Woody→Sargeへの移行ヒストリー。このタイミングでハードウェア環境も一新。APTでUPUPしたいので、なるべくパッケージでインスト。Xとかもいれちゃえぇ。

1.ハードウェア環境

CPU

Pentium4 Processor 2.40GHz(通称2.4C)
-1.525V max
-System Bus 800MHz
-512KB L2-Cache
-PGA-478
-Intel Hyper-Threading Technology

Memory Sumsung M368L6523CUS-CCC 512MB ×2
Motherboard

ASUS P4P800 SE
-Intel 865PE チップセット
-800 MHz FSB
-デュアルチャンネルDDR400メモリ
-Intel Hyper-Threading テクノロジ
-Intel ICH5R

VIDEO ATI RADEON 8500
Audio(on board) ADI AD1985 SoundMAX 6-channel CODEC
LAN(on board) Marvell 88E8001 Gigabit Lan Controller supporting 10/100/1000 BASE-T Ethernet
TV capture & radio

IO DATA GV-BCTV5-PCI
-BT878チップ

HDD IBM Deskstar IC35L040AVER07-0 40GB PATA
Seagate Baracuda7200.7 120GB SATA
その他 floopy disk,CD-RW  

2.OS(Debian Sarge)をインストールする

SATAのHDDがあったりで、kernel2.6でインストしたいので

Press F1 for help, or ENTER to boot:linux26

にてインスト。あとはだいたいデフォで。

aptのリポジトリがCD-ROMだけになっちゃってんので、以下のコマンドで再設定。日本の適当なとこで。

# apt-setup

最適なAPTリポジトリを設定してくれるapt-spyというパッケージをインストールしてみる。

# apt-get install apt-spy
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
libcurl3
提案パッケージ:
libcurl3-gssapi ca-certificates libldap2-dev
以下のパッケージが新たにインストールされます:
apt-spy libcurl3
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
265kB のアーカイブを取得する必要があります。
展開後に追加で 725kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://ftp.yz.yamagata-u.ac.jp stable/main libcurl3 7.13.2-2 [238kB]
取得:2 http://ftp.yz.yamagata-u.ac.jp stable/main apt-spy 3.1-13 [27.7kB]
265kB を 1s で取得しました (182kB/s)
未選択パッケージ libcurl3 を選択しています。
(データベースを読み込んでいます... 現在 21973 個のファイルとディレクトリがインストールされています。)
(.../libcurl3_7.13.2-2_i386.deb から) libcurl3 を展開しています...
未選択パッケージ apt-spy を選択しています。
(.../apt-spy_3.1-13_i386.deb から) apt-spy を展開しています...
libcurl3 (7.13.2-2) を設定しています ...

apt-spy (3.1-13) を設定しています ...

apt-spyコマンドを使って最適なAPTリポジトリを検索する。

# apt-spy -d stable -s JP

SERVER: ftp2.jp.debian.org
Benchmarking FTP...
Downloaded 4190200 bytes in 19.97 seconds
Download speed: 204.87 kB/sec
Benchmarking HTTP...
Downloaded 3992600 bytes in 15.15 seconds
Download speed: 257.30 kB/sec

(長いので省略)
Writing new sources.list file: /etc/apt/sources.list

なかみを確認。うちは法政大学になりました。

# sources.list generated by apt-spy v3.1
deb http://ring.hosei.ac.jp/archives/linux/debian/debian/ stable main
deb-src http://ring.hosei.ac.jp/archives/linux/debian/debian/ stable main
deb http://security.debian.org/ stable/updates main
~/etc/apt/sources.list: unmodified: line 1

ここでmanコマンドでエラー。

# man apt-cache
apt-cache(8) を再フォーマットしています。しばらくお待ちください...
invalid charset name
man: コマンドはステータス 256 で終了しました: (echo '.ll 117n'; /usr/bin/zsoelim /tmp/zmanVjzhm4) | /usr/bin/tbl | /usr/bin/nroff -mandoc -rLL=117n -rLT=117n -Tnippon | exec /usr/bin/pager -s

これについては、環境変数PAGERが設定されていないのが原因のようです。~.bashrcに以下を追加。

export PAGER=jless

り、うまくいかん・・w って、jlessが入ってないからだ・・・( ´,_ゝ`)プッ。ってことで、apt-get install jlessでさくっとインスト。OKK!

3.Hyperthreading対応のカーネルをつくる

デフォルトのままだと、Hyperthreading(SMP)が有効にならないようです。Google調べたり、デビアンのMLで訪ねたところ、Hyperthreading(SMP)を有効にするには2通りの方法があるようです。

1つは、カーネルをコンパイルして再構築する方法(実は、Hyperthreading(SMP)のオプションがでてこなくて難儀しました)。2つめは、kernel-imageをapt-get installでいれちまう方法です。後者のほうがさっくりぱっくりで簡単ですが、今回はカーネルをコンパイルして作り直すとします(個人的にこちらのほうが慣れてるってのもありますし、ほかのカーネルオプションを変更したくなったとき困るので・・。)

カーネルソースヲゲット # apt-get install kernel-source-2.6.8 # cd /usr/src/ # tar xvfj kernel-source-2.6.8.tar.bz2 # ln -s kernel-source-2.6.8 linux # cd linux # cp /boot/config-2.6.8-2-386 .config # make oldconfig # make menuconfig ここで失敗。libncursesをいれよとの命令が。 # apt-get install libncurses5-dev # make menuconfig

ここで、すかさず、「Processor type and feature」を選択すると、以下の画面が表示されます。ただぁしぃ!「486 emulation」のチェックを外さないと、「Symmetric multi-processing support」がでてきませぇん(ってMLでおしえてもらいました。)ので注意しましょう。これは、だいぶハマリました。

っで、「Symmetric multi-processing support」を選択すると、さらにサブの項目がでてきます。っと同時に「Enable kernel irq balancing」ってのもでてきます。

とりあえず、このままでもよさそうなんですが、「SMT (Hyperthreading) scheduler support」のところで、?を押してヘルプをみてみると、

今回利用のCPUによさげなことがかいてあるので、チェックをいれてみました。

# apt-get install kernel-package コンパイル # make-kpkg --initrd --revision=custom.smp.20050905 kernel-image 30分〜1時間くらいかかったでしょうか・・。 # cd .. インストール # dpkg -i kernel-image-2.6.8_custom.smp.20050905_i386.deb 念のため、GRUBのリストをチェキ # less /etc/grub/menu.lst

ほでもって、irqbalanceをaptget install でインストしておきます。以下のような画面が表示されますが、どちらもONにしてみました。しょうじきこのあたりはよくわかりません(,,゚Д゚)様子を見ながらまたコンパイルし直すことになるかもかもですね。

っで、確認として、Topコマンドを実行後、「1」を押してCPUが2つ認識されているか確認します。

その他、

# less /proc/cpuinfo

でも確認できるようです。

processor : 0
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.40GHz
stepping : 9
cpu MHz : 2399.061
cache size : 512 KB
physical id : 0
siblings : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid
bogomips : 4751.36

processor : 1
vendor_id : GenuineIntel
cpu family : 15
model : 2
model name : Intel(R) Pentium(R) 4 CPU 2.40GHz
stepping : 9
cpu MHz : 2399.061
cache size : 512 KB
physical id : 0
siblings : 2
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 2
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid
bogomips : 4784.12

ハイ!おしまい。あ、あとコンパイル時に2つのCPUを使うように環境変数を設定しておくといいみたいです。~bashrcに以下を追加!

export CONCURRENCY_LEVEL=2

これだけだと、いまいち効果のほどがわからないので、そのうちベンチマークでもとってみたいかとおもいます。

4.Xインストール

さてさて、CPU、ネットワーク、HDDなど基本的なハードウェアは使えるようになったので、Xいれて、あちゃこちゃ設定したいとおもいます。

# apt-get install x-window-system

ここでいろいろきいてくるとおもいますが、省略・・(,,゚Д゚)
引き続き、gdmをインストします。

# apt-get install gdm

gdmをインストールするまえは、xdmっていうのがはいっているそうです。こいつは、いらんので、アンインストします。

# apt-get remove xdm
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下のパッケージは「削除」されます:
x-window-system xdm
アップグレード: 0 個、新規インストール: 0 個、削除: 2 個、保留: 0 個。
0B のアーカイブを取得する必要があります。
展開後に 1200kB のディスク容量が解放されます。
続行しますか? [Y/n] n
中断しました。

っとおもったら、せっかくいれたxまでぬかれそうになったので、中止w
引き続きましてぇ、gnomeか、kdeをインストするんですが、どっちもいれちゃいます。

# apt-get install kde
# apt-get install gnome

このままだと、KDEにて日本語が表示されないので、以下のパッケージもいれます。

# apt-get install kde-i18n-ja

あれ・・。まだ日本語が表示されないなぁとおもってたら、以下のフォントをいれわすれてますた・・・。

# apt-get install ttf-kochi-mincho-naga10 ttf-kochi-gothic-naga10

5.VNCサーバインストール

# apt-get install vncserver

っで、起動します。vncserverの引数にあるのが、ディスプレイ番号ってやつみたいですね。クライアントから接続する場合にもこのディスプレイ番号を指定します。

# vncserver :1

You will require a password to access your desktops.

Password:
Verify:

New 'X' desktop is xxx:1

Starting applications specified in /etc/X11/Xsession
Log file is /root/.vnc/xxx:1.log

っで、適当なVNCクライアントで、サーバに接続してみましょう。って、ウィンドウちっちゃ!色も足りてないみたいです。ってことで・・・。例によって、~.bachrcに以下を追加します。

alias vncstart='vncserver :1 -geometry 1024x768'
alias vnckill='vncserver -kill :1'

sourceコマンドですぐさま反映させます。

# source .bashrc

で、もう一度VNCクライアントから接続しなおします。以下は、UltraVNCのクライアントです。

コマンドのエイリアスつくったので、起動と終了は以下の通り。

# vncstart
# vnckill

6.音を鳴らす

オンボードのサウンドカードなんですが、インストールした時点でデバイスは認識されていました。音を鳴らすには、OSSとALSA(Advanced Linux Sound Architecture)があるらしいですが、ALSAでつかえるようにします。

# apt-get install alsa-base
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
alsa-utils
提案パッケージ:
apmd discover alsa-oss
以下のパッケージが新たにインストールされます:
alsa-base alsa-utils
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
257kB のアーカイブを取得する必要があります。
展開後に追加で 725kB のディスク容量が消費されます。
続行しますか? [Y/n]
取得:1 http://ftp.jp.debian.org stable/main alsa-utils 1.0.8-4 [146kB]
取得:2 http://ftp.jp.debian.org stable/main alsa-base 1.0.8-7 [111kB]
257kB を 1s で取得しました (201kB/s)
パッケージを事前設定しています ...
未選択パッケージ alsa-utils を選択しています。
(データベースを読み込んでいます... 現在 91041 個のファイルとディレクトリがインストールされています。)
(.../alsa-utils_1.0.8-4_i386.deb から) alsa-utils を展開しています...
未選択パッケージ alsa-base を選択しています。
(.../alsa-base_1.0.8-7_all.deb から) alsa-base を展開しています...
alsa-utils (1.0.8-4) を設定しています ...
alsa-base (1.0.8-7) を設定しています ...

alsa-baseパッケージをインストールすると、alsaconf,alsactl,alsamixerコマンドが使えるようになります。ってことで、

# alsaconf
Terminating processes: 3596.
Unloading ALSA sound driver modules: snd-bt87x snd-intel8x0 snd-ac97-codec snd-pcm snd-timer snd-page-alloc snd-mpu401-uart snd-rawmidi snd-seq-device.
Building card database...

update-modules を実行中...
Loading driver...
Setting default volumes...
Saving the mixer setup used for this in /var/lib/alsa/asound.state.
=========================================================
これで ALSA が使用可能になりました。
音量の調整には、ミキサープログラムをご使用下さい。

音量の調節は、ミキサーつかえってことなんで、以下のコマンドで調整します。

# alsamixer

っとやると、以下のようなステキな画面がでてくるんで、適当に音量を調節しましょう。ま、最初はミュートになっているものもあるとおもうので、全部100%にしてから、細かいところを調整していったほうがよかろうとおもいます。ミュートの解除の仕方については、こちら

っで、なんか聞いてみましょう。以下はVNCクライアントから接続したときのものです。ファイルはSSHで転送するなりなんとかします。わたしのGnome環境では、Totemっていうプレイヤーが起動しました。Totemの音量とAlsamixerで設定した音量は同期してないみたいで、ちょっとおかしな動きをしますが、まぁ、よしとします(*'(ェ)'*)

っで、再起動後も音量が反映されるように以下のコマンドで保存します。

# alsactl store

7.テレビみたり、ラジオ聞いたりする

最近は、LinuxでもHDエンコーディングのTVキャプチャカードがつかえるらしいですが、手持ちのIO DATA GV-BCTV5-PCIを使います。こちらもカードはインスト時に認識されているようです。Woodyのときは、カードの番号やらいろいろ設定しないとデバイス自体が認識されませんでしたが、便利になったもんです。
このカードでテレビをみるきはないんですが、ひさびさにラジオを聞きたいなと思った次第です。Linuxに限らず、ラジオカードってあんまりないんですよねぇ〜。

# dmesg
(省略)
Linux video capture interface: v1.00
bttv: driver version 0.9.15 loaded
bttv: using 8 buffers with 2080k (520 pages) each for capture
bttv: Bt8xx card found (0).
ACPI: PCI interrupt 0000:02:0b.0[A] -> GSI 23 (level, low) -> IRQ 193
bttv0: Bt878 (rev 17) at 0000:02:0b.0, irq: 193, latency: 64, mmio: 0xefefe000
bttv0: detected: I-O Data Co. GV-BCTV5/PCI [card=81], PCI subsystem ID is 10fc:4070
bttv0: using: IODATA GV-BCTV5/PCI [card=81,autodetected]
bttv0: gpio: en=00000000, out=00000000 in=00f690f7 [init]
bttv0: using tuner=17
bttv0: i2c: checking for TDA9875 @ 0xb0... not found
bttv0: i2c: checking for TDA7432 @ 0x8a... not found
tuner: chip found at addr 0xc2 i2c-bus bt878 #0 [sw]
tuner: type set to 17 (Philips NTSC_M (MK2)) by bt878 #0 [sw]
bttv0: registered device video0
bttv0: registered device vbi0
bttv0: registered device radio0
bttv0: PLL: 28636363 => 35468950 .. ok
bt878: AUDIO driver version 0.0.0 loaded
bt878: Bt878 AUDIO function found (0).
ACPI: PCI interrupt 0000:02:0b.1[A] -> GSI 23 (level, low) -> IRQ 193
bt878(0): Bt878 (rev 17) at 02:0b.1, irq: 193, latency: 64, memory: 0xefeff000
btaudio: driver version 0.7 loaded [digital+analog]
(省略)

おもむろに、同軸ケーブルをつなぎます。っで、わたしだけかもしれないんですが、ラジオを聞くのにもこの同軸ケーブルを接続するとよいというのをこのたび知りました_| ̄|○ (アンテナのつながり方にも依存)。付属の室内アンテナを使った場合、私の部屋だと東京FMをほとんど聞き取ることができませんが、だいぶよい感じです。いままで、ラジカセ(死語でしょうか・・)でラジオをきくといえば、アンテナをのばして聞くもんだとおもっておりました(笑)
さてさて、準備がととのったところで、テレビをみてみたいとおもいます。使うソフトは、xawtvです。こいつをインストします。

# apt-get install xawtv

っで、xawtvを実行するには、自分のホームディレクトリ直下に、".xawtv"ファイルに設定が記述されている必要があります。capture=grabdisplayにするとウィンドウにあわせて拡大・縮小してくれてよい感じです。こちらは、ココを参考にさしてもらいました(ってほとんどパクリですけど・・汗)

[global]
ratio = 4:3
freqtab = japan-bcast
pixsize = 640 x 480
pixcols = 1
jpeg-quality = 75
keypad-ntsc = no
keypad-partial = yes
osd = yes

# [Station name]
# capture = overlay | grabdisplay | on | off
# input = Television | Composite1 | S-Video | ...
# norm = PAL | NTSC | SECAM | ...
# channel = #
# fine = # (-128..+127)
# key = keysym | modifier+keysym
# color = #
# bright = #
# hue = #
# contrast = #

[defaults]
norm = NTSC
input = Television
capture = grabdisplay
color = 46%
bright = 47%
hue = 49%
contrast = 40%

[1ch]
channel = 1
norm = NTSC
key = 1

[2ch]
channel = 2
norm = NTSC
key = 2

[3ch]
channel = 3
norm = NTSC
key = 3

[4ch]
channel = 4
norm = NTSC
key = 4

[5ch]
channel = 5
norm = NTSC
key = 5

[6ch]
channel = 6
norm = NTSC
key = 6

[7ch]
channel = 7
norm = NTSC
key = 7

[8ch]
channel = 8
norm = NTSC
key = 8

[9ch]
channel = 9
norm = NTSC
key = 9

[10ch]
channel = 10
norm = NTSC
key = a

[11ch]
channel = 11
norm = NTSC
key = b

[12ch]
channel = 12
norm = NTSC
key = c

準備ができたので、起動してみます。

# xawtv
This is xawtv-3.94, running on Linux/i686 (2.6.8)
Xlib: extension "XVideo" missing on display ":1.0".
Xlib: extension "XVideo" missing on display ":1.0".
WARNING: Your X-Server has no DGA support.
can't open /dev/video0: No such file or directory
v4l-conf had some trouble, trying to continue anyway
v4l2: open /dev/video0: そのようなファイルやディレクトリはありません
v4l2: open /dev/video0: そのようなファイルやディレクトリはありません
v4l: open /dev/video0: そのようなファイルやディレクトリはありません
no video grabber device available

って、起動しない・・・t。なんでだろう・・。
って、VNC経由でテレビみようとしてるからだ・・・( ´,_ゝ`)プッ 詳しい理由はわかりませんが、環境変数が設定されてないからとかなんでしょう。きちんとモニタを切り替えてxawtvコマンドを実行すればNPでした。

上は、選挙のときのものですが、あえて、ぼかしてあります。画質もそれなりですが、ふつうにみる分には問題ありませんです、ハイ。

って、今度は音がならない・・・。って、alsamixerでボリュームあげただけで、ミュートになってた・・・_| ̄|○ 切り替えは、下記のウィンドウにて「→」「←」で移動したのち、「m」キーで切り替えることが出来ます。このキャプチャカードの場合は、AUXに相当するとおもいます。

次に、課題のラジオをきいてみましょう。アプリケーションは、ためしたところgradioってのがよさげです。コマンドで使用することもできるし、X上で実行することもできます。

# apt-get install gradio

っで、X上で、gradioコマンドを実行してもよいし、

# gradio -c -f 80

上記のように、"-c"(コマンドラインで)、"-f 80"(周波数80:東京FM)を聞くってやってもOKです。ミュートしたいときは、"-m + "です。その他のコマンドは以下の通りですが、ボリュームは効かないみたいですね。

-c  コマンドラインインターフェイスのみ使う
-v  0-11を指定してボリュームを設定する(効果なし)
-f  周波数を設定(MHz)
-m  引数 (+)で、ミュート、引数 (-)で音をだす。
-d  ラジオデバイスとしてファイル名を使う(なんのこっちゃ?)
-h  ヘルプ表示
-V  バージョンの表示

あれ、東京FMしか聞けない・・・。っておもったら、同軸ケーブルをテレビ側につけっぱなしでした。こんなミスばっかだなぁ・・_| ̄|○

8.BIND9インストール

外向け、内向けの名前解決のためにBIND9をインストールしちゃいます。

ns1:~# apt-get install bind9
パッケージリストを読みこんでいます... 完了
依存関係ツリーを作成しています... 完了
以下の特別パッケージがインストールされます:
libisccc0 libisccfg0
提案パッケージ:
bind9-doc
以下のパッケージが新たにインストールされます:
bind9 libisccc0 libisccfg0
アップグレード: 0 個、新規インストール: 3 個、削除: 0 個、保留: 4 個。
440kB のアーカイブを取得する必要があります。
展開後に追加で 1044kB のディスク容量が消費されます。
続行しますか? [Y/n]
取得:1 http://ftp.jp.debian.org stable/main libisccc0 1:9.2.4-1 [76.0kB]
取得:2 http://ftp.jp.debian.org stable/main libisccfg0 1:9.2.4-1 [88.2kB]
取得:3 http://ftp.jp.debian.org stable/main bind9 1:9.2.4-1 [276kB]
440kB を 3s で取得しました (142kB/s)
未選択パッケージ libisccc0 を選択しています。
(データベースを読み込んでいます... 現在 95599 個のファイルとディレクトリがインストールされています。)
(.../libisccc0_1%3a9.2.4-1_i386.deb から) libisccc0 を展開しています...
未選択パッケージ libisccfg0 を選択しています。
(.../libisccfg0_1%3a9.2.4-1_i386.deb から) libisccfg0 を展開しています...
未選択パッケージ bind9 を選択しています。
(.../bind9_1%3a9.2.4-1_i386.deb から) bind9 を展開しています...
libisccc0 (9.2.4-1) を設定しています ...

libisccfg0 (9.2.4-1) を設定しています ...

bind9 (9.2.4-1) を設定しています ...
Adding group `bind' (111)...
終了。
システムユーザ bind を追加しています...
Adding new user `bind' (105) with group `bind'.
ホームディレクトリは作成しません。
Starting domain name service: named.

[設定]

設定ファイルは、/etc/bind/named.confにあるので、これを修正します。Debian流にいくと、viewステートメントなどのジブントコ設定は、/etc/bind/named.conf.localに記述するようです。
また、optionsのステートメントは、/etc/bind/named.conf.optionsに記述するようです。ま、そうかかなくても動きますけどね。

[起動・終了・再起動]

すでに起動しているかとおもいますんで、ゾーンの設定ファイルを読み込みなおします。このあたりは、一般的な話ですね。起動、終了、再起動のコマンドは以下の通りです。

設定ファイル読み込み
# rndc reload
起動
# /etc/init.d/bind9 start
終了
# /etc/init.d/bind9 stop
再起動
# /etc/init.d/bind9 restart

[ログ]

 

[チェック]

 

 

 

 

 

 

 

 

 

 

 

 

 

 


(C) Copyright 2002 MAMOCHIN.COM All Rights Reserved