UbuntuでLinuxカーネルをコンパイルする際の一般的なエラーの概要
最近、カーネルのコンパイルを含むLinuxカーネル分析コースの主要な宿題をしています。多くの問題が発生しました。要約は次のとおりです。
●カーネルをコンパイルしてmakemenuconfigコマンドを実行すると、致命的なエラーエラーが表示されます:curses.h:そのようなファイルまたはディレクトリはありません
理由:欠落しています。ubuntuシステムにはncurses develがないため、このパッケージをインストールし
て問題を解決してください:コマンドsudo apt-get installlibncurses5-devを実行してくださいlibssl-dev
●カーネルをコンパイルしてmakemenuconfigコマンドを実行すると、致命的なエラーエラーが表示されます:openssl / opensslv.h:そのようなファイルまたはディレクトリはありません
理由:対応するSSLスイートがubuntuシステムにないためでもあります。
解決策:コマンドsudo apt-get install build-essentialopensslを実行します。
●カーネルをコンパイルしてmakemenuconfigコマンドを実行すると、エラー/ bin / sh:1:flex:notfoundが表示されます。
理由:flexおよびbisonコンパイルツールがインストールされていません
解決策:コマンドsudo apt-get install flexbisonを実行します
このようなエラーはさまざまなコンポーネントが不足していることが原因であるため、カーネルをコンパイルして環境構成の準備をする前に、次のコマンドを実行することをお勧めします。
sudo apt-get update
sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install flex bison
●フォルダを他のディレクトリにコピーまたは切り取ることはできず、許可を求めません
理由:コンピューターには多くのフォルダーがあり、rootユーザーのみがそれらを操作する権限を持っています。
解決策:nautilusファイル管理ツールを使用してroot権限で操作します。
sudo nautilus
●カーネルファイルへの変更権限はなく、強制保存コマンド:wq!も無効です
理由:ファイルの読み取りと書き込みの権限がありません。
解決策:chmodコマンドを使用してファイルのアクセス許可を変更します(666は、すべてのユーザーがファイルの読み取りおよび書き込みのアクセス許可を持っていることを意味します)。
sudo chmod 666 文件名
●apt-getinstallコマンドを使用してソフトウェアをインストールすると、「メディアを交換してください。xxxのマークが付いたディスクをドライブに挿入してEnterキーを押してください」というプロンプトが表示されます。
理由:プロンプトにCD-ROMドライブがないはずですが、突然このエラー
解決策が表示されました:コンピューターでディレクトリ/etc/apt/sources.listを見つけ、右クリックして他のプログラムを選択し、sources.listを開きます。テキストエディタでコメントアウトする最初の行(deb cdrom:の先頭)は、その前に#を追加して次のようにします。
#deb cdrom:…
●エラーcc1:エラー:コードモデルカーネルは、カーネルのコンパイル時にPICモードをサポートしていません
理由:プロンプトが表示されたら、PICモデルがサポートされていない可能性があります。
解決策がわかりません:カーネルファイルの下でMakefileを見つけ、KBUILD_CFLAGS部分の最後に-fno-pieを追加します。