CentOS6.0のカーネルバージョンアップ→kernel3.0への道

kernel3.0がリリースされたんだね~とニュースを眺めておりましたが、眺めるだけでは進歩しませんのでうまくいった試しがないカーネルのバージョンアップをやってみます。

環境
Dell Vostro230S

OS
CentOS6.0 32bit

使うカーネルバージョン
3.0

前回の記事を参考にパッケージのインストールを済ませます。

時計を合わせます。
# ntpdate ntp.nict.jp

最低限これだけは必要と思われるパッケージをインストールします。
# yum install -y wget gcc glib* make ncurses-devel

カーネルのダウンロード
# cd /usr/src/kernel
# wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2

解凍
# tar xvjf linux-3.0.tar.bz2
# rm linux-3.0.tar.bz2
# cd linux-3.0

初期設定
# make mrproper
# cp /boot/config-2.6.18-194.32.1.el5 ./.config

対話式の設定
ここではカーネルに追加された新機能をどうするか質問されます。
本当は明示的に決めないとだめなんですが、ずっとEnter押しっぱなしでいいです。
# make oldconfig

カーネルコンフィグレーションの設定
# make menuconfig
ここでは細かなカーネルの動作設定ができます。
設定するのはCPUの種類だけでいいと思う。
本来だと最低限のドライバ以外を組み込まない設定にすべきですが、しんどいのでやりません。

CPUの設定
今回はCore2ですので、プロセッサオプションを変更しておきます。


「Processor type and features —>」を選択してエンターを押します。


「Processor family (Core 2/newer Xeon) —>」を選択してエンターを押します。


「Core 2/newer Xeon」にカーソルを合わせてエンターを押します。
「Exit」を選択してトップの画面まで戻ってから、「Save an Alternate Configuration File」でconfigを保存してください。

並列コンパイルの設定
# alias make=’make -j5′

コア数x2ぐらいが目安だそうです。
スペックと相談です。

気が向いたのでコンパイルオプションの変更しますた。
やらなくていいですが、気が向いたのでやってみました。
Makefileのこの行を変更します。
# vi Makefile


HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
HOSTCXXFLAGS = -O2

変更後
HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O3 -fomit-frame-pointer -march=native
HOSTCXXFLAGS = -O3

搭載しているCPU専用のコードを生成します。
多分あんまり効果ないと思うけど…
最適化オプションも最大にしておきます。
※色々オプション設定できるけど、コンパイルできなくなるから要注意!!!

コンパイル開始
# make clean;make bzImage;make modules;make modules_install;make install

速いマシンだとすぐ終わるけど、遅いとすごく時間かかります。
i7の同時8スレッドだと20分以内に終わると思う。
ログが流れるのでSSHクライアントで、ログ取得設定しておいたほうがいいでしょう。
マシンスペック次第で1時間以上かかったりしますんで、コーラでも飲んでいましょう。


~コンパイル中

INSTALL /lib/firmware/keyspan_pda/keyspan_pda.fw
INSTALL /lib/firmware/keyspan_pda/xircom_pgs.fw
INSTALL /lib/firmware/bnx2x/bnx2x-e1-6.2.9.0.fw
INSTALL /lib/firmware/bnx2x/bnx2x-e1h-6.2.9.0.fw
INSTALL /lib/firmware/bnx2x/bnx2x-e2-6.2.9.0.fw
DEPMOD 3.0.0
sh /usr/src/kernels/linux-3.0/arch/x86/boot/install.sh 3.0.0 arch/x86/boot/bzImage \
System.map “/boot”

こんな表示でコンパイル完了です。
CentOS6.0 32bitだとi2cモジュールのインストールエラーが出るけど…

うまく起動するかわからないので、ブートローダーの書き換えは避けます。
とりあえず再起動します。
# reboot

起動する直前にエンターを押し、起動するカーネルを選択します。
無事起動したら本当にバージョンが上がっているか確認します。

# uname -a

こんな感じの表示ならOKです。
Linux localhost.localdomain 3.0.0 #1 SMP Thu Aug 4 14:21:50 JST 2011 i686 i686 i386 GNU/Linux

お疲れ様~

チューニングする時は、menuconfigとコンパイルの繰り返しになります。
いろいろ試してください~
Hyper-V環境では諦めた!

カテゴリー: Linux, コンピュータ | CentOS6.0のカーネルバージョンアップ→kernel3.0への道 はコメントを受け付けていません

ぴきゅーん

ある日
ヒグマ「PVS5の増幅管交換しようとしたらケーブル切れたクマ!」
白熊「ちょ!どうするの?」
ヒグマ「直すクマ!」
白熊「特殊な機械ですので別途見積もりで…」
ヒグマ「うるさいクマ!保守契約で直すクマ!MacBookPro供与してるクマ!」
白熊「仕方ないね」



PVS-5は米軍の第二世代ナイトビジョンです。
ナイトビジョンは光を増幅して暗いところでも見えるようにする機械です。
イラクのニュースで緑色の映像になってるのがナイトビジョンの映像です。

今は第三世代とか熱映像装置とかが配備されているので、すっかり時代遅れのモデルですが感動の世界を提供してくれます。
いくら第二世代の時代遅れとはいえ、実戦で大活躍していたナイトビジョンなので公園のカップルなんぞ余裕で観察できます。
(91年の湾岸戦争とか)
しかも二眼なので車も運転できますよ。
(これで戦闘機の運転を米軍はしてたという…)

これね、中古で買ったので増幅管が劣化してました。
というわけで予備の増幅管を買ってきて交換しようとしたら、分解に失敗してケーブルが切れたそうです。



もう直したけどね。
適当なソケットを買ってきて半田付けしました。
ソケットの根元はエポキシ接着剤で固めましょう。
(そのうち振動で折れます)

夜に戦闘する時に相手がナイトビジョン使っていたらフルボッコにされます。
だってね、こっちからは見えないのに相手からは丸見えなんですよ。
赤外線レーザーサイトと一緒に使われたら最悪ですな。
相手が持っていたら嫌な装備ナンバー1です。

カテゴリー: 日記or雑記 | ぴきゅーん はコメントを受け付けていません

パソコンを長持ちさせるコツ

ヒグマ「そろそろパソコンのリプレースしたいくま」
白熊「ですよね~保守契約に入らないとセットアップの補助とかできないですよ」
ヒグマ「それは困るくま!保守しろくま!」
白熊「今はサービス中ですので、納品するパーツと同じ物をこっちに送ってもらえればいいですよ」
ヒグマ「わかったくま!グラボ買うくま!」

というわけで検証用のグラフィックボードが来たわけですよ。

さっそく組立と生きたその前にパソコンの掃除をしましょう。
オフィス用のスリムタワーパソコンってホコリが詰まって電源が壊れやすいです。
全体的に温度が上がりすぎて、いろんな所が壊れます。
タバコ吸う場合はもっと壊れやすくなるのでご注意ください。
情報システム部の私が言うのだから間違いないです。

といううわけでグラボを組み込む前に、圧縮空気でホコリを飛ばしてからケースをアーマーオールで磨き上げました。
エアーコンプレッサー最強です。
最低でも半年に一度は掃除しているので、今回はそんなにホコリは残っていませんでした。

検証するグラボ
RADEON HD6990
※HIS製

とても…大きいです…


※一番上が問題のRADEON HD6990
フルレングスではないですかー
Wildcatを思い出しましたよ(大昔の100万円するグラボ)

爆音かと思ったら意外と静かですな~
GTX275からの乗り換えですがLeft 4 Dead 2は大幅にパフォーマンスアップしました。
他はまだ試してないけど…

買い替えの目的はTeraをしたいからだったりしますが!


ちょっと心配
グラボって70度を簡単に超えるんですよ~
温度計測したいけどゲームしてる時はフルスクリーンの時が多いから確認できないです。
マイコン使って表示器を考えたけど、面倒なんでノートパソコンのブラウザで確認する方法を考えましょう。
HWiNFO64 だと3秒おきにセンサー情報をCSV書き出しできるんで、ファイル共有をした状態で整形スクリプト組んでHTMLに書き換えたらいけそうです。

カテゴリー: Windows, コンピュータ | パソコンを長持ちさせるコツ はコメントを受け付けていません

真空管アンプ(ケース加工)

真空管アンプ作っています。
いろいろ試行錯誤したんだけど、毎回様々な問題にぶつかっておりましたorz

送信管は避けたほうがいい。
→電圧が高いから

真空管の本数は少ないほうがいい
→電圧とかバイアス電圧がー

安い部品で組めるもの
→特にトランスが高いです


無いと詰む物
アナログオシロスコープ(岩通の中古でいいと思う)
デジタルテスタ

あったら楽
高砂製作所のズーム電源(500V)



心が折れるケース加工が終わったお。
糸のこぎり必須です。
ステップドリルがあったら楽だと思う。
今回はホールソーで真空管ソケットの穴を開けたけどちょっと大変でした。
ケース加工する時は方眼紙をスプレー糊で貼りつけたら楽ですよ。
ドライ加工でやったけど、切削油を使うと切れ味が良くなります。(タッピングオイルとか)

真空管って400Vとか普通に発生するので大変ですorz
小さい真空管ならブレッドボードでもテストできるんだけどね~
SPICEでのテストをお勧めします!

カテゴリー: 電子工作 | 真空管アンプ(ケース加工) はコメントを受け付けていません

CentOS6.0のインストール

CentOS6.0のインストール検証が一段落したので結果発表しちゃいます。
※なんか32bit版と64bit版でファイル名が少し違うかもしれない

試した環境
Dell Vostro230S にインストールしたのは32bitと64bit版
Hyper-V(Windows 2008R2) にインストールしたのも32bitと64bit版

一応両方共成功

インストールの手順~

メディアを入れます。



インストールする時にtabキー押してから、linux textと入力するとテキストモードでインストールが開始されます。
※RAIDの片割れのハードディスクを使用してインストールするとエラーがでます。
※なんかコマンドオプションを入れたら通るけど、コマンドのメモ忘れた。




インストールメディアの検査をしますか?
「Skip」でエンターを押します。


ドライバの組み込み~


ようこそ
エンターを押す


「Japanese」をえらんでエンター


インストール中はUTF8で表示できなけど~
「OK」でエンター


キーボードはjp106


Hyper-V環境にインストールする時に出たメッセージです。
ストレージの認識がどうこう~
「Re-initialize」で進めた。


タイムゾーンは東京にします。
Hyper-Vの時はUTC無効にしたほうがいいかもしれない。


ルートのパスワードを決めます。


パスワード強度が弱いですがいいですか?
「Yes」を選択してエンター


「OK」を選択してエンター
パーティーションを切りたい方はご自由にどうぞ。


中身のデータが消えるけど実行していいの?
「Write change to disk」を選択してエンター


コピーの準備とかフォーマットとか~


コピーの進捗が表示されます。


DVDを出してエンターを押します。
勝手に再起動します。


バーが伸びていきます。
最大まで伸びたらいつものログインプロンプトが出ます。

PCによってはNICがシャットダウンした状態で起動するみたい。

とりあえずイーサネットを使えるようにします。
# ifconfig eth0 up
# ifconfig eth0 192.168.1.111 netmask 255.255.255.0

※補足
めでたくNICが認識していたらifconfig -aでシャットダウンしているNICも表示されます。
ifconfig -aでも表示されない場合はドライバの認識がうまくいってないので、チップメーカーのサイトからドライバをダウソしてください。
ifconfigで表示される内容は、現在UpになっているNICのみです。

自動で上がるようにしたい場合
# vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
IPADDR=192.168.1.111
HWADDR=xx:xx:xx:xx:xx:xx
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
GATEWAY=192.168.1.254
DNS1=192.168.1.254
DNS2=192.168.1.253
TYPE=Ethernet
IPV6INIT=no
USERCTL=no
BOOTPROTO=none
ONBOOT=yes

と書いて保存してたらおkだと思う。
この操作で同じセグメントからSSHとかできるようになります。
(SSHDが動いていたらね)

ここからyumコマンドでパッケージ更新とかしたいわけですが、上でDNSとデフォゲを指定しているので大丈夫だと思いますがだめだったら、DNSとかゲートウェイを指定してください。

デフォルトゲートウェイ
# vi /etc/sysconfig/network
GATEWAY=192.168.1.254

DNS
# vi /etc/resolv.conf
nameserver 192.168.1.254

サービスの再起動
# service network restart

これでGoogle.co.jpなどへpingが通るか確認してください。

テキストモードでインストールすると本当に最小限のコマンドしかインストールされないのでご注意ください。

パッケージのインストール
# yum install いろんなパッケージ~
となるんですが、何を入れるかって話なので今使っているSyslogサーバのパッケージを書きだして同じような構成にしますた。
膨大なのでリストを別にうpしました。(暫定版なんだからね!!!)
http://shirokuma-industry.com/wordpress-doc/install-list.txt
ものすごい時間かかるのでコーヒーでも飲んで待ちます。

なぜかパッケージを入れた後にDNSの設定が書き換わるようなので確認してください。
setupコマンドが使えるようになっていますので、DNSのIPを正しいものに変えます。
余計なNICとかが起動するようになっていたら、無効化とかしてください。

※Hyper-V環境での注意
irqbalanseが動作しているとネットワークの通信が出来なくなりました。
下記コマンドを参考に停止してください。
# chkconfig –level 3 irqbalanse off
この場合だとランレベル3の場合は停止しています。

※付録
インストール済みパッケージ一覧
# yum list installed

カーネルのバージョン
# uname -a
# uname -r

カテゴリー: Linux, コンピュータ | CentOS6.0のインストール はコメントを受け付けていません

よく忘れるので

よく忘れるので

CentOS5.6の場合

cronの追加方法
# crontab -e
編集画面に切り替わるので、いつもの書式で書き込みます。
ここの編集画面の操作方法は、viと同じというかviが起動します。
3分間隔でずっと実行して欲しい場合
*/3 * * * * /root/test.sh
毎日23時59分に実行して欲しい場合
59 23 * * * /root/test.sh

shellスクリプト
先頭に必ずお約束文字を入れること
#!/bin/bash
ファイル名を日付にする場合
AAAAdate '+%Y%m%d%H%M'.txt


sambaの設定
ユーザーを追加する場合
bravo6というユーザを追加する場合
# useradd bravo6
# passwd bravo6
適当にパスワードを決めます。

# pdbedit -a bravo6
同じパスワードを登録します。

Windows側のユーザも同じパスワードかつ同じIDじゃないとだめです。

共有するディレクトリを追加するとき
# vi /etc/samba/smb.conf

以下を追加します。
[logs]
comment = Public Stuff
path = /var/log
public = yes
writable = yes
printable = no
write list = +staff

logsという名前で/var/logを共有する場合の例です。
パーミッション設定が必要なので、適切に行います。


CPUの種類を確認する
# cat /proc/cpuinfo

メモリーと搭載量を確認する
# cat /proc/meminfo

カテゴリー: Linux, コンピュータ | よく忘れるので はコメントを受け付けていません

MRTGでSNMPを使わずグラフ化する方法2

設定の続き~

mrtg.cfgに書き出されたログファイルを読み込ませる設定を追加します。

# vi mrtg.cfg
書きこむ内容
### CPU
Target[CPU-Log]: cat /var/log/cpu.txt
MaxBytes[CPU-Log]: 100
Title[CPU-Log]: CPU Usage — Windows2008 Server 192.168.1.1
PageTop[CPU-Log]: CPU usage — Windows2008 Server 192.168.1.1
Options[CPU-Log]: gauge, nopercent
ShortLegend[CPU-Log]: CPU Usage

今回は/var/log/にアクセスしているので、アクセス権限を適切に与えてください。

このデータから作ると、緑のグラフが適当に作成されます。
当然ながら青のグラフは0のままです


自分で使って思ったんだけど、メモリー使用率は算出方法変えないとね。


最後に環境
visual studio 2010

ターゲットホスト
Windows 2008 Server

MRTGホスト
CentOS5.6(32bit)
Hyper-V上で動作

カテゴリー: Linux, Windows, コンピュータ | MRTGでSNMPを使わずグラフ化する方法2 はコメントを受け付けていません

MRTGでSNMPを使わずグラフ化する方法

MRTGでルーターやスイッチのトラフィック監視をしているんですが、WindowsサーバーのCPUなども見ておきたいな
と言う事でどうやって値をとろうかなと考えていたら、VB.netで書きだしてMRTGに読ませたらいいのでは?と
思って作ってみました。

サーバーのリソース監視程度なら、SNMPで出来るんだけどね。
あえてSNMPを使用せず、カスタムスクリプトでやってみました。
以前にルーター温度計とかも作ってたので大丈夫でしょう。


MRTGは所定のフォーマットに従ったデータであれば、別のプログラムが作ったデータからグラフを作ることができます。
例えばCPU温度と部屋の温度の関係とか、油温と油圧のグラフとかそう言うのもできます。

MRTGの文法は以下のとおり
30
50
34000
Sample Data

という4行のデータを渡せばOKです。
この場合だと、30が第一系列の値、50が第二系列の値、3400がシステムのアップタイム、Sample Dataがデータの説明です。
MRTGは必ず二つの系列を使用しますので、一列だけでいい場合は二列目は0でいいです。

例2
49 ←dat11
0 ←data2
34050 ←System Uptime
Sample Data ←Label

システムアップタイムも適当でいいです。

このフォーマットに合う形で、出力するスクリプトを作ります。
と言ってもVB.netなんでゴリゴリ書いたわけですが。

スクリプト編
こんなのVBScriptでできそうなんですが、VB.netが慣れてるのでそっちで作ります。
便利なことにWindowsXP以降だと、システムの各情報を一発で取れるメソッドが有りますので
そう言うのを使ってしまいます。

PerformanceCounterというのを使います。
これは管理ツールの中にあるパフォーマンスモニターで表示される内容と同じ物が取れます。
色んな物が取れますがここでは、ディスクの転送量とCPU使用率とメモリー使用率を取得します。

VB.netで宣言するとこんな感じ

Dim DiskLoadValue As New PerformanceCounter

で、サンプルコード




コマンドラインアプリケーションとして、コンパイルして引数を指定して実行すると
MRTG用のフォーマットで出力されます。

LoadValue.exe 0
という感じで使用します。

LoadValue.exe 0
ディスク転送量

LoadValue.exe 1
CPU使用率

LoadValue.exe 2
メモリー使用率(コミットした量なので、実際に使用している割合だと思う)

この結果をリダイレクトしてやれば完成です。


LoadValue.exe 1 > \\192.168.101\logs\cpu.log
こんな感じでsamba経由で送り付けます。

MRTGサーバー側でcatすれば終わりです。

続きはまた次回へ

カテゴリー: Linux, Windows, コンピュータ | MRTGでSNMPを使わずグラフ化する方法 はコメントを受け付けていません

FortiGate80CのLAN側ポートの制限

FortiGate80Cを設置した時に特定のHUBと通信できない症状があったのでメモ。

ルーター(UTMだけど)
メーカー:Fortinet
機種:FortiGate80C

配下のHUB
メーカー:BUFFALO
機種:BS-G2008MR

PC直接接続などでは問題無しなのに、上記HUB(L2 Switch)を経由すると通信ができなかった。
現象
FortiGate80CとBS-G2008MRでリンクアップしない。

推測される原因
Internalポートが100Mbps固定でオートネゴシエーションに失敗して、リンクスピードが決定できないのだと推測される。

NICなどは、オートネゴシエーションと速度固定はリンク確立方法が変わるんです。
ですので片方がオートネゴシエーションなら両方ともオートネゴシエーションにしないと具合が悪い時があったり、片方が100Mbpsなら両方共100Mbpsにしないと具合が悪い時があります。
過去の現場でネットワークに詳しい人のうんちくでそんな事言ってたので、思い出した次第です。

解決方法
BS-G2008MRでポートスピードを100Mbps固定にする。

カテゴリー: コンピュータ, ネットワーク | FortiGate80CのLAN側ポートの制限 はコメントを受け付けていません

すごい勢いで時間が狂うサーバ

Hyper-V上でCentOSを使用していると、内部時間がすごく狂います。
30分おきにntpサーバへ問い合わせるようにしたいと思います。

というわけでCronで設定します。

1.時計あわせスクリプト
# vi /root/ntp.sh

#!/bin/sh
/usr/sbin/ntpdate ntp.nict.jp > /root/ntp.log

で保存

2.スクリプトの属性変更
chmod 755 /root/ntp.sh

3.Cronへ登録
# crontab -e
*/30 * * * * /root/ntp.sh

で完成。
nict様のntpサーバを利用しています。
もちろん内部でntpサーバを持っているのなら、そっちを使いましょう。

カテゴリー: Linux, コンピュータ | すごい勢いで時間が狂うサーバ はコメントを受け付けていません