カーネル2.4.0導入活用術
主な内容
|
Linux
kernelとは Linux kernel 2.4の新機能 大規模リソースが利用可能に LVM(論理ボリュームマネージャ) rawデバイス kHTTPd kernel 2.4.0導入実践記 まずはダウンロードから ソースのインストール カーネルの設定 カーネルのコンパイル Rio500を使ってみる |
それでは、実際に2.4.0を導入してみることにしましょう。特に、今回はMP3プレーヤとして爆発的に売れたDiamond Rio500との接続を目指すことにします。
Rio500はUSBケーブルを使ってPCと接続し、MP3ファイルをPC側からアップロードする仕様になっています。Rio500を購入すると、このUSBケーブルとWindows/Macintosh用のドライバやアップロード用ソフトが添付されてきます。愛用していたCD Walkmanが半年ほど前に壊れたとき、MD WalkmanとMP3プレーヤのどちらを購入するか迷ったあげく、Rio500を購入しました。
今回の2.4.0にはRio500と接続できるドライバが収録されているので、LinuxからもMP3ファイルをアップロードできるはずです。ただし、ドキュメントには「EXPERIMENTAL」(実験用)と書いてあり、ちょっと不安ではあるのですが……。
今回の実験では、Red Hat Linux 7(改訂版)にkernel 2.4.0を導入することにします(Red Hat Linux 7は、標準では2.2.16のカーネルが採用されています)。
また、利用したハードウェア環境は以下のとおりです。
- CPU : Celeron 633MHz
- メモリ : 384MB
- チップセット : Intel 815E
■まずはダウンロードから
まずは、2.4.0のソースをダウンロードしなければなりません。ソースは、以下の「The Linux Kernel Archives」が本家ですが、時間帯によっては混んでいることもあるので、国内のringサーバープロジェクトのミラーサイトを利用した方がいいでしょう。
The Linux Kernel Archives
http://www.kernel.org/
RingServer Project
ftp://ftp.ring.gr.jp/
ftp://ftp.ring.gr.jp/pub/linux/kernel.org/kernel/v2.4/
これらのサイトから、linux-2.4.0.tar.gzをダウンロードすることにします。私はftp://ring.so-net.ne.jp/からダウンロードすることにしました。ファイルは20MB強もあったので、64kbps環境の私にはちょっと苦しいダウンロードになりました。
■ソースのインストール
とりあえず、ダウンロードしてきたファイルを自分のホームディレクトリ(例では~hamano)に置きます。このファイルは圧縮されているので、まずこれを解凍します。kernelのソースは/usr/srcの下のlinux-<バージョン>というディレクトリの下に置くのが慣例となっているので、以下のようにして/usr/src/linux-2.4.0下にソース一式を格納します。
# cd /usr/src |
最後の行は、このディレクトリに対して/usr/src/linuxなるシンボリックリンクを作成するためのものです。
■カーネルの設定
それでは、カーネルの設定を始めましょう。X Window System(以下X)を利用している環境であれば、以下のような手順でxconfigを起動します。Xを利用していない場合は、xconfigの代わりにmenuconfigなどを利用します。
# cd /usr/src/linux |
xconfigを起動すると以下のような画面が表示されます。この画面を使って、自分が必要なデバイスドライバや、カーネル内で利用するパラメータ値を設定したりします。大抵の項目は、y、m、nの3つから選択できるようになっていて、yはその機能をカーネル内に取り込む設定。mはカーネル自体には取り込まないがモジュールとして準備しておき、いつでも使えるようにする設定。nはその機能を使わない設定を意味しています。
xconfigのメイン画面(クリックすると拡大表示します) |
lspciコマンドなどを利用して自分が使っているハードウェア環境を調べ、必要なデバイスドライバを組み込むようにします。私もいくつか設定をデフォルトの状態から変更したので、その一部を紹介したいと思います(変更すべき項目は環境によってそれぞれです)。
Code maturity level optionsのPromot for development and/or incomplete code/drivers
この項目をyにすると、まだ正式サポートされていない機能やデバイスが選択できるようになります。Rio500のドライバを設定するのに必要となります。
Processor type and featuresのProcessor family
デフォルトでは「Pentium-III」になっていますが、私のマシンのCPUはCeleronなので(ビンボーなのです……)、「Pentium-Pro/Celeron/Pentium-II」に変更しました。
Network device supportのEthernet(10 or 100Mbit)の中
このマシンに入っているネットワークカードが3Comの3c905-TXというものなので、「3Com cards」をyとし、「3c509/3c900 series support」をmとしました。
Charactor devicesのIntel I810/I815 support
マザーボードのチップセットがi815Eなのでyとしました。
USB Support
Rio500とPCをUSBで接続するので、USBに関する設定の幾つかをyやmとしました。特に、「UHCI Alternate Driver support」をyにし、一番下にある「USB Diamond Rio500 support」をmにしました。
USB supportの設定画面(クリックすると拡大表示します) |
必要な設定を終えたら、「Save and Exit」をクリックして終了します。
■カーネルのコンパイル
それでは、カーネルのコンパイルを始めましょう。
# unset LANG |
これで、もしエラーが出なければ問題ありません。私がやった限り、いくつかの設定パターンでエラーが出て、途中で止まってしまいました。止まったときは、表示されているメッセージの最後の方を読むとなんとなくどこが悪いかが分かります。
それでは、今作ったカーネルとそのモジュールを適切な場所に配置します。ここでは、すでに入っている2.2.16の設定を消さないように注意する必要があります。
# make modules_install |
あとはブート時に2.4.0の方が立ち上がるように設定するだけです。
# vi /etc/lilo.conf |
として、liloを以下のように書き換えます。
既存の、
image=/boot/vmlinuz-2.2.16-22 |
のlabelの部分をlinuxからlinux22に変更したあと、ファイルの一番最後に
image=/boot/vmlinuz-2.4.0 |
を追加します。設定が終わったらviを終了して
# lilo -v |
と入力します。これで、次回起動時には2.4.0が立ち上がります。ちなみに、電源投入後に出てくる「lilo:」のところで「linux22」と入力すると、いままで使っていたカーネル(2.2.16)が立ち上がります。
うまくいったようであれば、
# /sbin/shutdown -r now |
として再起動してみてください。きちんと設定できていれば、2.4.0が起動するはずです。最初のブート画面がものすごい勢いで流れていくので、本当に2.4.0が立ち上がっているのか不安だったので、
# uname -r |
と入力してバージョンを確認しました。うまく立ち上がっていれば2.4.0と表示されるはずです。
これでカーネル自体の入れ替えは終わりです。私の環境では、設定からここまでで約40分くらいかかりました。
カーネル2.4.0にしたLASER5 Linux 6.4のログイン画面(編集局作成) |
■Rio500を使ってみる
2.4.0ではUSBが使えるほか、「実験的」とはしながらもRio500との接続用のドライバが準備されています。ここでは、いま作ったカーネル上で必要なアプリケーションの設定を行い、Rio500へMP3ファイルをアップロードできるようにしたいと思います。
これをPCと通信できるようにします |
まずは、Rio500と通信するためのソフトをダウンロードしてきます。
RIO 500 linux drivers
http://rio500.sourceforge.net/
http://download.sourceforge.net/rio500/rio500-0.7.tar.gz
ダウンロードが終わったら展開し、コンパイル・インストールと進めていきます。
# tar xzvf rio500-0.7.tar.gz |
これでインストールは完了です。インストールすると、
- rio_add_directory
- rio_add_song
- rio_font_info
- rio_get_song
- rio_add_folder
- rio_del_song
- rio_format
- rio_stat
の8つのプログラムが/usr/local/binの下にインストールされます。
それではRio500を接続してみましょう。Rio付属のUSBケーブルを使ってPCとつなぎます(ここでRioの電源を入れておきます)。そして、Rio用のモジュールをインストールします。
# modprobe rio500 |
と入力すると、
Your Rio500 has firmware revision 1.04 |
といった感じで、現在Rioの中に入っているデータのリストが表示されます。これはまさしく、いまRioに私が入れているデータです(成功です!)。
それでは次に、今回の目標であるMP3ファイルのアップロードをしてみましよう。コマンドrio_add_songに、アップロードしたいMP3ファイルをオプションとして渡すことで、アップロードできるようです。
# rio_add_song ~hamano/wish.mp3 |
本当にアップロードできているのでしょうか。ちょっと不安なので確認してみます。
# rio_stat
|
確かにアップロードできているようです。
Rioをケーブルから外し、イヤホンで再生してみると、いまアップした曲が確かに流れています。無事アップロードも成功というわけです。
以上、短い解説ではありましたが、私の2.4.0インストール体験を紹介させていただきました。
この2.4.0、本当に必要な機能が実装され、安心して使えるようになるにはまだまだ時間がかかるでしょうし、現場で使われ始めるのはもっと後になるでしょうが、それだけに期待も膨らみます。
みなさんも、ぜひ空いているマシンにでもインストールして試してみてください(VMwareで遊ぶなんて手もありますよ!)。
2/2
|
|
Linux Square全記事インデックス |
Linux Squareフォーラム Linuxカーネル関連記事 |
連載:Linux Kernel Watch(連載中) Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします |
|
連載:Linuxファイルシステム技術解説 ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する |
|
特集:全貌を現したLinuxカーネル2.6[第1章] エンタープライズ向けに刷新されたカーネル・コア ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する |
|
特集:/procによるLinuxチューニング[前編] /procで理解するOSの状態 Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する |
|
特集:仮想OS「User
Mode Linux」活用法 Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
Linuxのカーネルメンテナは柔軟なシステム カーネルメンテナが語るコミュニティとIA-64 Linux IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|