Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxシステムのマスターロードカーネルのコンパイルプロセスの分析                   

ソースコードのダウンロード

最新のカーネルKernel2.6.0は公式にUSB2.0をサポートしており、カーネルモジュールファイルの接尾辞の最も重要な変更は* .oから*になっている。 * .koなど、私たちはwww.kernel.orgからtarballのソースコードパッケージをダウンロードすることができます。

事前準備

誰もが最初に "mod

Linuxシステムのマスターロードカーネルのコンパイルプロセスの分析                   

ソースコードのダウンロード

最新のカーネルKernel2.6.0は公式にUSB2.0をサポートしており、カーネルモジュールファイルの接尾辞の最も重要な変更は* .oから*になっている。 * .koなど、私たちはwww.kernel.orgからtarballのソースコードパッケージをダウンロードすることができます。

事前準備

誰もが最初に "mod

  
パッチ-p1。

2番目に、カスタムカーネル

カスタマイズされたカーネルは大いなる学習であり、2.4.Nの設定ファイルからロードする場合は、特に2.6.0カーネルに関する多くのハードウェア知識が必要です。確かに、多くの人がトラブルに遭遇しました。ファイルを再設定しています(X Window Server)カーネルを設定する前にソースツリーをクリーンアップしてください/usr/src/linux-2.6.0ディレクトリを入力していない場合は、このディレクトリを入力してください:

#makeのmrproper(このステップなしでちょうどtarballをアンロック)#make gconfig(のGtkはライブラリの開発をサポートする必要がある)、または設定をしたり、xconfigのを作る(Qtはライブラリの開発をサポートする必要があります)

注:ext3ファイルシステムの場合は、カーネル構成ファイルをカスタマイズするときにExt3ファイルとExt2ファイルのサポートを直接カーネルにコンパイルすると、新しいカーネルを有効にしたときにマシンがクラッシュします。 initが見つかりません。init = optionをkernelに渡してみてください。またはkernel panic:VFS:不明なブロック(0,0)にルートfsをマウントできません。最初は知らなかったので、何度かコンパイルしました。この問題を解決するためにExt3とExt2ファイルシステムのサポートをカーネルに直接コンパイルし、 "Module unloading"オプションを選択するか、そうでなければ新しいカーネル環境に入ります。荷を下すことが不可能カーネルモジュール(rmmodコマンドは使用できません)

3つめに、カーネルとモジュールをコンパイルします。

カーネル設定ファイル(/usr /src /linux-2.6.0 /.config)をカスタマイズした後は、カーネルをコンパイルしてモジュール、#make(このコマンドはmake bzImageとmake modulesの作業を完了しました)、arch /i386 /bootディレクトリのbzImageカーネルファイル、あなたのCPUの異なるカーネルファイルの保存場所は異なります、私はIntelのCPUです。

注:RedHat7.2プラットフォームではコンパイルできないエラーメッセージが表示されました。エラーメッセージは次のとおりです:

/tmp/cc2Hu7sH.s:3:エラー:Unknown pseudo-op: ` .incbin「作る[1]:*** [USR /initramfs_data.o]エラー1 makeが:*** [USR]エラー2は、

再インストールのみが9.0の問題を解決します。説明:makeコマンドが私の1.6GHz、128MBマシンで27分間実行されました。

4番目に、モジュールとカーネルファイルをインストールします。

#make modules_install install

上記のコマンドはmake modules_installとmake installに分けられます。make modules_installはカーネルモジュールを/lib /にインストールします。 modules /2.6.0以下。 mkinitrdコマンドとカーネル(bzImage)およびSystem.mapのコピーを完成させてください。/bootディレクトリを確認してください。ファイル名はGRUBブートローダーのように異なります。make installコマンドは自動的にLILOの起動オプションを変更します。手動で変更するには、ブートレコードを書き換えます。

説明:make modules_install installこのコマンドは私の1.6GHz、128Mのマシンで30秒間しか走りませんでした。

5.追記

最後の仕事はシステムを再起動し(#shutdown -r now)、作業結果を確認することです。新しいカーネルに入った後は、rpmコマンドは使えないことがわかりました、これは、特にRH9ユーザーにとってRPMのバグであることがわかりました、/etc /profileファイルを開いてください。 :

#vi /etc /profile(ファイルの最後に数単語追加)[ifuname -r = "2.6.0"];そしてexport LD_ASSUME_KERNEL = 2.2.5 fi

システムにグローバル環境変数を追加するか、#export LD_ASSUME_KERNEL = 2.2.5と入力します。

新しいカーネルで発生する可能性がある問題とその対策:

1、新しいカーネルが立ち上がらない、解決策:カーネルを再設定する(学習はかなり大きい)、おそらくルートブートレコードに関連する(多分非常に少ない)。

2、新しいカーネルモジュールをロードできない、ファイアウォールが機能しない、マウントができない、CDやvfat、ntfsファイルシステムをマウントできないなど、多くの問題が発生する、その解決策:module-init-toolsパッケージをアップグレードする(私はmodutils-2.4.21-23.src.rpmパッケージです)、RedHatユーザーも/etc/rc.d/rc.sysinitファイルを修正する必要があるかもしれません。

3、RedHatユーザーのrpmコマンドを使用できない、解決策:グローバル設定ファイルで変数を宣言してください。
zh-CN"],null,[1],zh-TW"]]]

Copyright © Windowsの知識 All Rights Reserved